[Bug target/84524] -O3 causes behavior change
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Feb 23 09:01:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84524
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
A side note, this shows how badly we need a type demotion pass, perhaps just on
the LOOP_VECTORIZED copy of loop before vectorization:
vect__27.7_175 = [vec_unpack_lo_expr] vect_v_16.5_173;
vect__27.7_176 = [vec_unpack_hi_expr] vect_v_16.5_173;
vect__28.8_177 = vect__27.7_175 << 1;
vect__28.8_178 = vect__27.7_176 << 1;
vect__29.9_179 = VEC_PACK_TRUNC_EXPR <vect__28.8_177, vect__28.8_178>;
or some match.pd patterns that will fix it after the vectorization. The above
is completely useless variant to just vector unsigned short << 1.
More information about the Gcc-bugs
mailing list