https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92515
--- Comment #3 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> --- Author: rsandifo Date: Fri Nov 15 14:37:57 2019 New Revision: 278295 URL: https://gcc.gnu.org/viewcvs?rev=278295&root=gcc&view=rev Log: Fix vector/scalar to vector/vector conversion (PR92515) r278235 broke conversions of vector/scalar shifts into vector/vector shifts on targets that only provide the latter. We need to record whether a conversion is required in that case too. Also, the old useless_type_conversion_p condition seemed unnecessarily strong, since the shift amount can have a different signedness from the shifted value and its vector type is never assumed to be identical to vectype. The patch therefore uses tree_nop_conversion_p instead. 2019-11-15 Richard Sandiford <richard.sandif...@arm.com> gcc/ PR tree-optimization/92515 * tree-vect-stmts.c (vectorizable_shift): Record incompatible op1 types when converting a vector/scalar shift into a vector/vector one, using tree_nop_conversion_p instead of useless_type_conversion_p. Move the conversion code to the transform block. Modified: trunk/gcc/ChangeLog trunk/gcc/tree-vect-stmts.c