https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99437
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2021-03-07 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Trying 144, 146 -> 148: 144: r159:V8HI=r165:V8HI 0>>const_vector REG_DEAD r165:V8HI 146: r155:V8QI=trunc(r159:V8HI) REG_DEAD r159:V8HI 148: r153:V16QI=vec_concat(r155:V8QI,const_vector) REG_DEAD r155:V8QI Successfully matched this instruction: (set (reg:V16QI 153 [ _101 ]) (vec_concat:V16QI (truncate:V8QI (lshiftrt:V8HI (reg:V8HI 165 [ _113 ]) (const_vector:V8HI [ (const_int 15 [0xf]) repeated x8 ]))) (const_vector:V8QI [ (const_int 0 [0]) repeated x8 ]))) I have not reduced it yet but the above shows where the problem is introduced inside combine. I think the constrants/predicates for aarch64_shrnv8hi_insn_le on the const_vect (shift) are incorrect.