https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70761
Bug ID: 70761 Summary: C++ ICE on ppc64le and ppc64 with -m64 Product: gcc Version: 5.3.1 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: markos at freevec dot org Target Milestone: --- Target: ppc64le, ppc64 Created attachment 38326 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38326&action=edit Reduced testcase for ICE on ppc64/ppc64le On ppc64le (Debian testing, g++ 5.3.1-14) $ g++-5 -O2 testcase.cpp testcase.cpp: In function ‘void x36()’: testcase.cpp:150:1: error: unable to generate reloads for: } ^ (jump_insn 10 5 11 2 (parallel [ (set (pc) (if_then_else (eq (reg:DI 3 3) (const_int 1 [0x1])) (label_ref:DI 20) (pc))) (set (reg:DI 63 31 [orig:157 D.3107 ] [157]) (plus:DI (reg:DI 3 3) (const_int -1 [0xffffffffffffffff]))) (clobber (scratch:CC)) (clobber (scratch:DI)) ]) testcase.cpp:132 794 {*ctrdi_internal5} (expr_list:REG_DEAD (reg:DI 3 3) (int_list:REG_BR_PROB 4877 (nil))) -> 20) testcase.cpp:150:1: internal compiler error: in find_reloads, at reload.c:3862 0x102c425b _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) ../../src/gcc/rtl-error.c:110 0x109dcd8f find_reloads(rtx_insn*, int, int, int, short*) ../../src/gcc/reload.c:3862 0x109f03a3 calculate_needs_all_insns ../../src/gcc/reload1.c:1540 0x109f03a3 reload(rtx_insn*, int) ../../src/gcc/reload1.c:1028 0x10903027 do_reload ../../src/gcc/ira.c:5454 0x10903027 execute ../../src/gcc/ira.c:5613 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <file:///usr/share/doc/gcc-5/README.Bugs> for instructions. On powerpc32 (Debian testing, g++ 5.3.1-14, only when -m64 is added) $ g++-5 -m64 -O2 testcase.cpp testcase.cpp: In function ‘void x36()’: testcase.cpp:150:1: error: unable to generate reloads for: } ^ (jump_insn 10 5 11 2 (parallel [ (set (pc) (if_then_else (eq (reg:DI 3 3) (const_int 1 [0x1])) (label_ref:DI 20) (pc))) (set (reg:DI 63 31 [orig:157 D.3085 ] [157]) (plus:DI (reg:DI 3 3) (const_int -1 [0xffffffffffffffff]))) (clobber (scratch:CC)) (clobber (scratch:DI)) ]) testcase.cpp:132 794 {*ctrdi_internal5} (expr_list:REG_DEAD (reg:DI 3 3) (int_list:REG_BR_PROB 4877 (nil))) -> 20) testcase.cpp:150:1: internal compiler error: in find_reloads, at reload.c:3862 0x1027c933 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) ../../src/gcc/rtl-error.c:110 0x108ecbf7 find_reloads(rtx_insn*, int, int, int, short*) ../../src/gcc/reload.c:3862 0x108feefb calculate_needs_all_insns ../../src/gcc/reload1.c:1540 0x108feefb reload(rtx_insn*, int) ../../src/gcc/reload1.c:1028 0x1082d9db do_reload ../../src/gcc/ira.c:5454 0x1082d9db execute ../../src/gcc/ira.c:5613 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <file:///usr/share/doc/gcc-5/README.Bugs> for instructions. Reduced testcase attached, same for both architectures