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

            Bug ID: 87510
           Summary: ICE in gen_reg_rtx, at emit-rtl.c:1155
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
                CC: segher at gcc dot gnu.org
  Target Milestone: ---
              Host: x86_64-pc-linux-gnu
            Target: ppc64le-linux-gnu

Following ICEs:

$ cat ice.cpp
// RUN: %clang_cc1 -verify -fsyntax-only %s

float foof(float x);
double food(double x);
void foo(bool b, float f);

void bar() {

  float c = 1.7;
  bool b = c;

  double e = 1.7;
  b = e;

  b = foof(4.0);

  b = foof(c < 1); // expected-warning {{implicit conversion turns
floating-point number into bool: 'float' to 'bool'}}

  b = food(e < 2); // expected-warning {{implicit conversion turns
floating-point number into bool: 'double' to 'bool'}}

  foo(c, b);    // expected-warning {{implicit conversion turns floating-point
number into bool: 'float' to 'bool'}}
  foo(c, c);

}

$ gcc ice.cpp -mno-popcntd -mcpu=power9 -c
during RTL pass: split5
ice.cpp: In function ‘void bar()’:
ice.cpp:24:1: internal compiler error: in gen_reg_rtx, at emit-rtl.c:1155
24 | }
   | ^
0x58d260 gen_reg_rtx(machine_mode)
       
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/emit-rtl.c:1155
0xfc1399 gen_floatdisf2(rtx_def*, rtx_def*)
       
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/config/rs6000/rs6000.md:6237
0xfc1ab2 gen_split_168(rtx_insn*, rtx_def**)
       
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/config/rs6000/rs6000.md:5594
0x8645f6 try_split(rtx_def*, rtx_insn*, int)
       
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/emit-rtl.c:3851
0xaa6451 split_insn
       
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/recog.c:2893
0xaaae87 split_all_insns_noflow()
       
/home/marxin/BIG/buildbot/buildworker/marxinbox-gcc-trunk-ppc64le/build/gcc/recog.c:3055
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Reply via email to