https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118662
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P3 |P2 Known to fail| |14.1.0 Target|X86_64 |x86_64-*-* Known to work| |13.3.0 --- Comment #12 from Richard Biener <rguenth at gcc dot gnu.org> --- We combine Trying 7, 9 -> 10: 7: r106:V4QI=[r119:DI] REG_DEAD r119:DI 9: r108:V4HI=sign_extend(vec_select(r106:V4QI#0,parallel)) 10: r109:V4SI=sign_extend(vec_select(r108:V4HI#0,parallel)) REG_DEAD r108:V4HI to modifying insn i2 9: r109:V4SI=sign_extend([r119:DI]) modifying insn i3 10: r106:V4QI=r109:V4SI#0 where i3 is problematic. r106 is no longer computed correctly (while a QImode subreg of a SImode reg that's sign-extended from a QImode val is a no-op round-trip the same is of course not true for vector modes).