[Bug rtl-optimization/108516] Useless movzx instruction emitted when loading 8 bits from 24 bit struct
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Jan 24 13:18:52 GMT 2023
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108516
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Component|target |rtl-optimization
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #1)
> Confirmed:
>
> Trying 16 -> 6:
> 16: r86:QI#0=zero_extract(r87:HI,0x8,0x8)
> REG_DEAD r87:HI
> 6: r84:SI=zero_extend(r86:QI)
> REG_DEAD r86:QI
> Failed to match this instruction:
> (set (reg:SI 84 [ s.e2 ])
> (zero_extract:SI (reg:HI 87)
> (const_int 8 [0x8])
> (const_int 8 [0x8])))
Hmm, is this even valid RTL that combine is producing ...
If there was a subreg to SI mode there from the HI mode reg, it would match
correctly.
More information about the Gcc-bugs
mailing list