[aarch64][vect] Support V8QI->V8HI WIDEN_ patterns

2021-02-09 Thread Joel Hutton via Gcc-patches
Hi Richards, This patch adds support for the V8QI->V8HI case from widening vect patterns as discussed to target PR98772. Bootstrapped and regression tested on aarch64. [aarch64][vect] Support V8QI->V8HI WIDEN_ patterns In the case where 8 out of every 16 elements are widened using a wi

Re: [aarch64][vect] Support V8QI->V8HI WIDEN_ patterns

2021-02-10 Thread Richard Sandiford via Gcc-patches
t; > > [aarch64][vect] Support V8QI->V8HI WIDEN_ patterns > > In the case where 8 out of every 16 elements are widened using a > widening pattern and the next 8 are skipped the patterns are not > recognized. This is because they are normally used in a pair, such as > VEC

Re: [aarch64][vect] Support V8QI->V8HI WIDEN_ patterns

2021-02-10 Thread Joel Hutton via Gcc-patches
Thanks for the quick review. Updated patch attached. I've addressed your comments below. Tests are still running, OK for trunk assuming tests come out clean? [aarch64][vect] Support V8QI->V8HI WIDEN_ patterns In the case where 8 out of every 16 elements are widened using a widening pat

Re: [aarch64][vect] Support V8QI->V8HI WIDEN_ patterns

2021-02-10 Thread Richard Sandiford via Gcc-patches
Joel Hutton writes: > @@ -277,6 +277,81 @@ optab_for_tree_code (enum tree_code code, const_tree > type, > } > } > > +/* Function supportable_half_widening_operation > + I realise existing (related) functions do have a “Function foo” line, but it's not generally the GCC style, so I think

Re: [aarch64][vect] Support V8QI->V8HI WIDEN_ patterns

2021-02-11 Thread Joel Hutton via Gcc-patches
inary widening operation can only be supported directly by the >> architecture. */ >> @@ -4981,10 +5052,16 @@ vectorizable_conversion (vec_info *vinfo, >> c1 = codecvt1; >> c2 = codecvt2; >>} >> - vect_create_vectori

Re: [aarch64][vect] Support V8QI->V8HI WIDEN_ patterns

2021-02-11 Thread Richard Sandiford via Gcc-patches
One more formatting nit, sorry: Joel Hutton writes: > +bool > +supportable_half_widening_operation (enum tree_code code, > +tree vectype_out, tree vectype_in, > +enum tree_code *code1) The arguments need reindenting for the new function nam