https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118418
--- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> --- For GCN, when the assert occurs as follows. As code = LT it looks indeed closely related to STORE_FLAG_VALUE == 1 vs -1. (gdb) p debug_rtx(reg0_val) (const_int -1 [0xffffffffffffffff]) (gdb) p debug_rtx(reg1_val) (const_int -1 [0xffffffffffffffff]) (gdb) p mode1 $14 = E_HImode (gdb) p codes[i0] $12 = EQ (gdb) p codes[i1] $13 = NE rtx val0 = simplify_const_relational_operation (codes[i0], mode1, reg0_val, reg1_val); rtx val1 = simplify_const_relational_operation (codes[i1], mode1, reg0_val, reg1_val); (gdb) p debug_rtx(val0) (const_int -1 [0xffffffffffffffff]) (gdb) p debug_rtx(val1) (const_int 0 [0]) (gdb) p code $19 = LT rtx val = simplify_const_relational_operation (code, mode0, val0, val1); (gdb) p debug_rtx(val) (const_int -1 [0xffffffffffffffff]) 8600 ASSERT_RTX_EQ (val, folded); (gdb) p debug_rtx(folded) (const_int 0 [0]) (gdb) p mode0 $15 = E_QImode (gdb) p debug_rtx(cmp_res) (ne:QI (reg:SI 711) (reg:SI 712))