Gcc 4.0 20051113 and 4.120051207 miscompiled eon in SPEC CPU 2K with -O2. I got
Running 252.eon ref base o2 default
*** Miscompare of pixels_out.kajiya, see /export/spec/src/2000/spec/benchspec/CINT2000/252.eon/run/00000002/pixels_out.kajiya.mis
x86-64 seems OK. Gcc 4.2 20051203 is OK.
The last time I looked at eon failing on x86, it was due to excessive precission for fp. Yes FP in an int test but what ever.
Also I should note that it would fail the same way for 3.4, 3.3, and many older compilers.
And if that is the case this is a dup of bug 323.
It could be. After adding -ffast-math to gcc 4.1, eon is OK.
Can you try -ffloat-store or do the following:
On Linux/ix86 we use long double precision for evaluation of floating point variables. This can lead to different values than the expected values. I'm experimenting on the tests for cfg-branch with a small shared library that is preloaded.
The complete code is below, I compiled it with gcc -Wall -O2 -shared -o libchange-precission.so change-precission.c and set LD_PRELOAD to this library.
extern void change_precission (void) __attribute__ ((constructor));
unsigned int cw = 0x27f;
__asm__ volatile ("fldcw %0" :: "m" (*&cw));
-ffloat-store fixed eon for gcc 4.1.
Then this is a dup of 323, closing as such.
*** This bug has been marked as a duplicate of 323 ***