[Bug target/17956] New: [4.0 Regression] ICE in rs6000_emit_minmax, config/rs6000/rs6000.c:11725
pinskia at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Tue Oct 12 21:57:00 GMT 2004
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
More information about the Gcc-bugs
mailing list