Require equal shift amounts for IFN_DIV_POW2

Jeff Law law@redhat.com
Mon Jan 6 16:35:00 GMT 2020


On Thu, 2019-12-19 at 15:22 +0000, Richard Sandiford wrote:
> IFN_DIV_POW2 currently requires all elements to be shifted by the
> same amount, in a similar way as for WIDEN_LSHIFT_EXPR.  This patch
> enforces that when building the SLP tree.
> 
> If in future targets want to support IFN_DIV_POW2 without this
> restriction, we'll probably need the kind of vector-vector/
> vector-scalar split that we already have for normal shifts.
> 
> Tested on aarch64-linux-gnu and x86_64-linux-gnu.  OK to install?
> 
> Richard
> 
> 
> 2019-12-19  Richard Sandiford  <richard.sandiford@arm.com>
> 
> gcc/
> 	* tree-vect-slp.c (vect_build_slp_tree_1): Require all shifts
> 	in an IFN_DIV_POW2 node to be equal.
> 
> gcc/testsuite/
> 	* gcc.target/aarch64/sve/asrdiv_1.c: Remove trailing %s.
> 	* gcc.target/aarch64/sve/asrdiv_2.c: New test.
> 	* gcc.target/aarch64/sve/asrdiv_3.c: Likewise.
OK
jeff
> 



More information about the Gcc-patches mailing list