https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85730

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |segher at gcc dot gnu.org

--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
The GIMPLE IL is now using BIT_INSERT_EXPRs consistently for all cases and
combine does

Trying 8 -> 11:
    8: {r90:SI=r89:SI<<0x1;clobber flags:CC;}
      REG_DEAD r89:SI
      REG_UNUSED flags:CC
   11: strict_low_part(r92:V4QI#0)=r90:SI#0
      REG_DEAD r90:SI
Failed to match this instruction:
(set (strict_low_part (subreg:QI (reg:V4QI 92 [ v ]) 0))
    (ashift:QI (subreg:QI (reg:SI 89 [ v ]) 0)
        (const_int 1 [0x1])))

where it fails to try (add:QI (subreg...) (subreg...)) instead of the shift by
1.

Not sure whether targets should have a special-case pattern here or whether
that's for combine to un-canonicalize it?

Reply via email to