test case: $ cat bug1.c void f1() { long bit=0, exponent; exponent = -exponent; for (bit = 1; exponent; bit <<= 1) if (exponent & bit) exponent ^= bit; }
# Compilation parameters $ gcc -c -O3 -m64 bug1,c gcc gives internal compiler error on Powerpc platform. bug1.c: In function ‘f1’: bug1.c:8: error: could not split insn (insn:TI 13 11 14 (parallel [ (set (reg:CC 75 7 [125]) (compare:CC (neg:DI (reg/v:DI 0 0 [orig:119 exponent ] [119])) (const_int 0 [0x0]))) (set (reg/v:DI 0 0 [orig:118 exponent.1 ] [118]) (neg:DI (reg/v:DI 0 0 [orig:119 exponent ] [119]))) ]) 76 {*rs6000.md:1653} (nil) (nil)) bug1.c:8: internal compiler error: in final_scan_insn, at final.c:2419 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. Compiler works with all other optimization flags. After doing reghunt I found a patch, which may not necessarily have caused the above failure but compiler started failing after application of this patch, http://gcc.gnu.org/ml/gcc-cvs/2005-05/msg00232.html -- Summary: mainline gcc causing internal compiler error. Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: uttamp at us dot ibm dot com CC: gcc-bugs at gcc dot gnu dot org,geoffk at gcc dot gnu dot org,uttamp at us dot ibm dot com GCC build triplet: powerpc64-linux GCC host triplet: powerpc64-linux GCC target triplet: powerpc64-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21761