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).

Reply via email to