This may be a duplicate of PR34393 and/or PR34412, but it does not seem totally target specific. The following code (extracted from the Polyhedron test suite):
SUBROUTINE RELDISP() IMPLICIT NONE REAL :: SRAMB, EPSEFF SAVE SRAMB = SQRT(EPSEFF) END gives when compiled with '-O -ffast-math -mrecip' on i686-apple-darwin9: aermod_red1.f90: In function 'reldisp': aermod_red1.f90:8: error: unrecognizable insn: (insn 12 11 13 3 aermod_red1.f90:8 (set (reg:SF 66) (ne:SF (mem/u/c/i:SF (reg/f:SI 60) [0 epseff+0 S4 A32]) (reg:SF 71))) -1 (nil)) aermod_red1.f90:8: internal compiler error: in extract_insn, at recog.c:1990 and on x86_64-unknown-linux-gnu: aermod_red1.f90: In function ‘reldisp’: aermod_red1.f90:8: error: unrecognizable insn: (insn 8 7 9 3 aermod_red1.f90:8 (set (reg:SF 65) (ne:SF (mem/u/c/i:SF (symbol_ref:DI ("epseff.857") [flags 0x2] <var_decl 0x2a95d28e70 epseff>) [0 epseff+0 S4 A32]) (reg:SF 68))) -1 (nil)) aermod_red1.f90:8: internal compiler error: in extract_insn, at recog.c:1990 I don't get the ICE on powerpc-apple-darwin9. The ICE disappears if I remove the "SAVE" or the '-mrecip' option or if I use -m32 on x86_64-unknown-linux-gnu. -- Summary: ICE in extract_insn, at recog.c:1990 Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dominiq at lps dot ens dot fr http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34673