https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101200
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|tree-optimization |rtl-optimization Keywords| |missed-optimization Severity|normal |enhancement --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- This does not make sense: Trying 12 -> 14: 12: {r93:QI=r82:QI 0>>0x4;clobber flags:CC;} REG_DEAD r82:QI REG_UNUSED flags:CC 14: {r95:DI=r93:QI#0&0xf;clobber flags:CC;} REG_UNUSED flags:CC REG_DEAD r93:QI Failed to match this instruction: (parallel [ (set (reg:DI 95 [ a ]) (zero_extract:DI (subreg:HI (reg:QI 82 [ d.0_1 ]) 0) (const_int 4 [0x4]) (const_int 4 [0x4]))) (clobber (reg:CC 17 flags)) ]) How can you have a subreg of HI and then get a zero_extract of DI?