https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84251
--- Comment #4 from Uroš Bizjak <ubizjak at gmail dot com> --- cse1 pass of gcc-7 converts several insns (15,16,19,24) in BB4 from: 12: L12: 13: NOTE_INSN_BASIC_BLOCK 4 14: flags:CCFPU=cmp(r89:DF,r90:DF) 15: r96:QI=ordered(flags:CCFPU,0) 16: r95:SI=zero_extend(r96:QI) 18: r97:SI=0 17: flags:CCFPU=cmp(r89:DF,r90:DF) 19: r92:SI={(uneq(flags:CCFPU,0))?r95:SI:r97:SI} 20: r88:SI=r92:SI 24: ax:SI=r88:SI 25: use ax:SI to: 12: L12: 13: NOTE_INSN_BASIC_BLOCK 4 14: flags:CCFPU=cmp(r89:DF,r90:DF) 15: r96:QI=0x1 REG_DEAD flags:CCFPU 16: r95:SI=0x1 REG_DEAD r96:QI 18: r97:SI=0 17: flags:CCFPU=cmp(r89:DF,r90:DF) REG_DEAD r90:DF REG_DEAD r89:DF 19: r92:SI=uneq(flags:CCFPU,0) REG_DEAD r97:SI REG_DEAD r95:SI REG_DEAD flags:CCFPU 20: r88:SI=r92:SI REG_DEAD r92:SI 24: ax:SI=r92:SI REG_DEAD r88:SI 25: use ax:SI cse2 pass later removes (insn 17): 12: L12: 13: NOTE_INSN_BASIC_BLOCK 4 19: r92:SI=uneq(flags:CCFPU,0) REG_DEAD flags:CCFPU 24: ax:SI=r92:SI REG_DEAD r92:SI 25: use ax:SI For some reason, cse1 pass of gcc-8 converts only (insn 24), leaving: 12: L12: 13: NOTE_INSN_BASIC_BLOCK 4 14: flags:CCFP=unspec[cmp(r89:DF,r90:DF)] 27 15: r96:QI=ordered(flags:CCFP,0) REG_DEAD flags:CCFP 16: r95:SI=zero_extend(r96:QI) REG_DEAD r96:QI 18: r97:SI=0 17: flags:CCFP=unspec[cmp(r89:DF,r90:DF)] 27 REG_DEAD r90:DF REG_DEAD r89:DF 19: r92:SI={(uneq(flags:CCFP,0))?r95:SI:r97:SI} REG_DEAD r97:SI REG_DEAD r95:SI REG_DEAD flags:CCFP 20: r88:SI=r92:SI REG_DEAD r92:SI 24: ax:SI=r92:SI REG_DEAD r88:SI 25: use ax:SI