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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2023-04-24
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
                 CC|                            |yinyuefengyi at gmail dot com

--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Ah, it ICEs on powerpc64-linux too, with -m32 -O2 -mpowerpc64 -mcpu=power3 (or
10 etc.),
-mpowerpc64 is what matters.
In *.postreload we have
(jump_insn 10 7 32 2 (parallel [
            (set (pc)
                (if_then_else (eq (and:DI (reg:DI 9 9 [121])
                            (const_int 2146435072 [0x7ff00000]))
                        (const_int 0 [0]))
                    (label_ref:SI 40)
                    (pc)))
            (clobber (reg:DI 9 9 [125]))
            (clobber (reg:CC 100 0))
        ]) "pr109566-3.c":6:6 229 {*branch_anddi3_dot}
     (int_list:REG_BR_PROB 708669604 (nil))
The define_insn_and_split has been introduced already in GCC 12 in PR102239
r12-6433
and I'd say it is just wrong, the FAIL part doesn't belong there, that is an
ICE if for a define_insn_and_split with "#" the splitter part FAILs.
The condition on the instruction or predicates/constraints should make sure it
is splittable.

Reply via email to