https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67346
Bug ID: 67346 Summary: PowerPC: could not split insn Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: anton at samba dot org Target Milestone: --- The following testcase: # cat testcase.i struct { long f1; } c; int a, d, e; volatile int b; void fn2() { a = 3; for (; a <= 8; a++) { unsigned long *f = &c.f1; e = 5 + 1; *f |= d &= e; b ? : b; } } void fn1() { c.f1 = -2; fn2(); } hits an ICE: # gcc -O3 testcase.i testcase.i: In function ‘fn1’: testcase.i:22:1: error: could not split insn } ^ (insn 24 23 28 (set (reg:DI 6 6 [168]) (ior:DI (reg:DI 6 6 [196]) (const_int -2 [0xfffffffffffffffe]))) testcase.i:13 243 {*iordi_mask} (nil)) testcase.i:22:1: internal compiler error: in final_scan_insn, at final.c:2995 0x107923e3 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) ../../gcc/gcc/rtl-error.c:109 0x104a3d6b final_scan_insn(rtx_insn*, _IO_FILE*, int, int, int*) ../../gcc/gcc/final.c:2995 0x104a4267 final(rtx_insn*, _IO_FILE*, int) ../../gcc/gcc/final.c:2058 0x104a46d7 rest_of_handle_final ../../gcc/gcc/final.c:4449 0x104a46d7 execute ../../gcc/gcc/final.c:4524