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))

Reply via email to