https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86901
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords|ra | Last reconfirmed|2020-05-16 00:00:00 |2021-8-22 Component|middle-end |rtl-optimization --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- The DI mode comes from combine: Trying 7 -> 8: 7: r98:SI=r96:SF#0 0>>0x14 8: r99:SI=r98:SI&0x7ff REG_DEAD r98:SI Successfully matched this instruction: (set (subreg:DI (reg:SI 99) 0) (zero_extract:DI (subreg:DI (reg/v:SF 96 [ y ]) 0) (const_int 11 [0xb]) (const_int 20 [0x14]))) allowing combination of insns 7 and 8 original costs 16 + 4 = 20 replacement cost 16 deferring deletion of insn with uid = 7. modifying insn i3 8: r99:SI#0=zero_extract(r96:SF#0,0xb,0x14) deferring rescan insn with uid = 8.