This causes an Ada bootstrap, ../../xgcc -B../../ -c -g -O2 -W -Wall -gnatpg s-fore.adb -o s-fore.o The trees look like: natural___XDLU_0__2147483647 r; long_long_float t;
<bb 0>: t = MAX_EXPR <ABS_EXPR <lo>, ABS_EXPR <hi>>; if (t >= 1.0e+1 == 0) goto <L11>; else goto <L12>; <L11>:; r = 2; goto <bb 2> (<L2>); <L12>:; r = 2; <L1>:; t = t / 1.0e+1; r = r + 1; if (t >= 1.0e+1 == 0) goto <L2>; else goto <L1>; <L2>:; return r; } I cannot reproduce this with the C compiler as MAX_EXPR is not generated without -ffast-math. The closest C code I could get is: #include <math.h> long double fabsl(long double); long double Fore (long double lo, long double hi) { long double r; long double t; long double t1; long double t2; int tt; //t = MAX_EXPR <ABS_EXPR <lo>, <hi>>; t1 = fabsl(lo); t2 = fabsl(hi); t = t1 >= t2 ? t1 : t2; tt = (t >= 1.0e+1L); if (tt == 0) goto L12; L11:; r = 2; goto L2; L12:; r = 2; L1:; t = t / 1.0e+1L; r = r + 1; tt = (t >= 1.0e+1L); if (tt == 0) goto L1; L2:; return r; } -- Summary: [4.0 Regression] ICE in rs6000_emit_minmax, config/rs6000/rs6000.c:11725 Product: gcc Version: 4.0.0 Status: UNCONFIRMED Keywords: ice-on-valid-code, build Severity: normal Priority: P2 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pinskia at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org GCC target triplet: powerpc-darwin http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17956