https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106069
--- Comment #17 from Richard Biener <rguenth at gcc dot gnu.org> --- Seeing Trying 21 -> 24: 21: r150:V4SI=vec_select(vec_concat(r146:V4SI,r141:V4SI),parallel) REG_DEAD r146:V4SI REG_DEAD r141:V4SI 24: {r151:SI=vec_select(r150:V4SI,parallel);clobber scratch;} ... Successfully matched this instruction: (set (reg:SI 151) (vec_select:SI (reg:V4SI 141) (parallel [ (const_int 3 [0x3]) ]))) shouldn't that be (vec_select:SI (reg:V4SI 146) ...)? Or does (vec_concat:V8SI (xx:V4SI xx:V4SI)) magically swap the two V4SI vectors?