[Bug rtl-optimization/60818] ICE in validate_condition_mode on powerpc*-linux-gnu*

segher at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Mar 31 13:42:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60818

--- Comment #22 from Segher Boessenkool <segher at gcc dot gnu.org> ---
The combination that makes it die is:

Trying 18, 17 -> 19:
Successfully matched this instruction:
(set (reg:CC 176)
    (reg:CC 164))

Where insn 18 is

(set (reg:SI 174)
    (gt:SI (reg:CC 164)
        (const_int 0 [0])))

and insn 17 is

(set (reg:SI 173)
    (lt:SI (reg:CC 164)
        (const_int 0 [0])))

and insn 19 is

(insn 19 18 22 2 (set (reg:CCUNS 176)
        (compare:CCUNS (reg:SI 173)
            (reg:SI 174))) "60818-19.c":4 772 {*cmpsi_unsigned}
     (expr_list:REG_DEAD (reg:SI 174)
        (expr_list:REG_DEAD (reg:SI 173)
            (nil))))

the combined insn should not simply copy the CC (it needs to swap
the greater-than and smaller-than results), and it needs to return
a CCUNS anyway.  Where did this come from...


More information about the Gcc-bugs mailing list