https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119428
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- In GCC 13 combine produced: ``` Trying 12, 13 -> 14: 12: r101:QI=0xfffffffffffffffe 13: {r98:QI=r101:QI<-<r91:SI#0;clobber flags:CC;} REG_UNUSED flags:CC REG_DEAD r91:SI 14: {[r100:DI+r94:DI]=[r100:DI+r94:DI]&r98:QI;clobber flags:CC;} REG_DEAD r94:DI REG_DEAD r100:DI REG_UNUSED flags:CC REG_DEAD r98:QI Failed to match this instruction: (parallel [ (set (zero_extract:HI (mem:QI (plus:DI (reg:DI 100) (reg:DI 94)) [0 *ADDR_11+0 S1 A8]) (const_int 1 [0x1]) (zero_extend:SI (subreg:QI (reg/v:SI 91 [ nrD.2738 ]) 0))) (const_int 0 [0])) (clobber (reg:CC 17 flags)) (set (reg:QI 101) (const_int -2 [0xfffffffffffffffe])) ]) ``` Notice the zero_extend to SI there .