We ICE building hercules for powerpc32. Reduced testcase, build with -O2 -fPIC -mlong-double-128:
typedef int int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned char uint8_t; typedef unsigned int uint32_t; typedef struct REGS REGS; typedef union { uint32_t F; } FW; typedef union { struct { FW L; } F; } DW; typedef struct _PSW { DW ia; } PSW; struct REGS { PSW psw; DW cr[16]; }; struct ebfp { long double v; }; void ( s390_convert_fix32_to_bfp_ext_reg) (REGS *regs) { struct ebfp op1; int32_t op2; ((regs))->psw.ia.F.L.F += (4); if(!((regs)->cr[(0)].F.L.F & 0x00040000)) op1.v = (long double)op2; put_ebfp(&op1); } -- Summary: ICE in extract_insn, at recog.c:2084, -fPIC -mlong- double-128 Product: gcc Version: 4.1.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rguenth at gcc dot gnu dot org GCC target triplet: ppc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26350