https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118739
--- Comment #5 from Uroš Bizjak <ubizjak at gmail dot com> --- So, we have: Trying 15 -> 16: 15: flags:CCNO=cmp(r115:SI,0) REG_DEAD r115:SI 16: r106:QI=flags:CCNO>0 Successfully matched this instruction: (set (reg:CCNO 17 flags) (compare:CCNO (reg:SI 115 [ _1 ]) (const_int 0 [0]))) Successfully matched this instruction: (set (reg:QI 106 [ _37 ]) (subreg:QI (reg:SI 115 [ _1 ]) 0)) Which I don't think is correct.