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

            Bug ID: 72771
           Summary: powerpc64le ICE with -mcpu=power9
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: anton at samba dot org
                CC: amodra at gcc dot gnu.org, meissner at gcc dot gnu.org,
                    segher at gcc dot gnu.org, wschmidt at gcc dot gnu.org
  Target Milestone: ---
            Target: powerpc64le-linux

The following test case:

void fn2(void);
void fn3(unsigned long);

signed char a;
int b, c, e, f;
float *d;

void fn1(void) {
        short g = 0;
lbl_986:
        for (;;) {
                c = 0;
                for (; c <= 2;) {
                        *d = g;
                        fn2();
                        if (e)
                                goto lbl_986;
                }
                g = 2;
                for (; g >= 0; g--) {
                        for (; b;) {
                                fn3(45360);
                                f = 0;
                                for (; a >= 0; a--)
                                        ;
                        }
                }
        }
}

Built with:

gcc -O3 -mcpu=power9

Hits an ICE:

crash1.i:29:1: error: insn does not satisfy its constraints:
 }
 ^
(insn 316 362 349 38 (parallel [
            (set (reg:SF 63 31 [orig:334 _48 ] [334])
                (float:SF (mem/u/c:HI (lo_sum:DI (reg:DI 6 6)
                            (unspec:DI [
                                    (symbol_ref/u:DI ("*.LC14") [flags 0x2])
                                    (reg:DI 2 2)
                                ] UNSPEC_TOCREL)) [6  S2 A16])))
            (clobber (reg:DI 77 0))
            (clobber (scratch:DI))
        ]) 350 {*floathisf2_internal}
     (expr_list:REG_EQUAL (const_double:SF -1.0e+0 [-0x0.8p+1])
        (nil)))
crash1.i:29:1: internal compiler error: in extract_constrain_insn, at
recog.c:2211
0x10839993 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
        ../../gcc/gcc/rtl-error.c:108
0x108399eb _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
        ../../gcc/gcc/rtl-error.c:119
0x107ff5f7 extract_constrain_insn(rtx_insn*)
        ../../gcc/gcc/recog.c:2211
0x107ce263 reload_cse_simplify_operands
        ../../gcc/gcc/postreload.c:390
0x107cfe43 reload_cse_simplify
        ../../gcc/gcc/postreload.c:176
0x107cfe43 reload_cse_regs_1
        ../../gcc/gcc/postreload.c:215
0x107d1737 reload_cse_regs
        ../../gcc/gcc/postreload.c:67
0x107d1737 execute
        ../../gcc/gcc/postreload.c:2342

Reply via email to