This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Results for egcs-2.91.52 19980727 (gcc2 ss-980609 experiment
- To: dje at watson dot ibm dot com (David Edelsohn)
- Subject: Re: Results for egcs-2.91.52 19980727 (gcc2 ss-980609 experiment
- From: Carlo Wood <carlo at runaway dot xs4all dot nl>
- Date: Wed, 5 Aug 1998 14:06:54 +0200 (CEST)
- Cc: egcs at cygnus dot com (egcs at cygnus dot com)
| > FAIL: gcc.c-torture/execute/ieee/980619-1.c execution, -O1
| > FAIL: gcc.c-torture/execute/ieee/980619-1.c execution, -O2
| > FAIL: gcc.c-torture/execute/ieee/980619-1.c execution, -O2 -fomit-frame-pointer
| > -finline-functions
| > FAIL: gcc.c-torture/execute/ieee/980619-1.c execution, -O2 -fomit-frame-pointer
| > -finline-functions -funroll-loops
| > FAIL: gcc.c-torture/execute/ieee/980619-1.c execution, -O2 -fomit-frame-pointer
| > -finline-functions -funroll-all-loops
| > FAIL: gcc.c-torture/execute/ieee/980619-1.c execution, -O2 -g
| > FAIL: gcc.c-torture/execute/ieee/980619-1.c execution, -Os
|
| These are expected failures and not a bug. By default, GCC for
| AIX runs in common-mode which means the single-precision floating-point
| instructions added to PowerPC architecture are not present. This testcase
| specifically tests
|
| sizeof (float) != 4
|
| but that does not catch that internally GCC is emitting double-precision
| floating-point instructions and only restricts the value to
| single-prevision when storing to memory. This test passes if GCC is told
| to use the PowerPC architecture (and it does not fail on Linux/PPC which
| only uses the PowerPC architecture).
|
| I would propose marking it XFAIL unless the compiler is targeted
| at the PowerPC architecture. I don't know enough about DejaGNU to create
| an appropriate 980619-1.x and testing for the various CFLAGS might be too
| complicated. One also could test for the appropriate _ARCH_PPC macro
| definition in the testcase itself at the same point the test for float
| size is done.
|
| David
Can you please test if the following would fix this problem on PowerPC?
*** 980619-1.c.orig Wed Aug 5 13:49:59 1998
--- 980619-1.c Wed Aug 5 14:04:17 1998
***************
*** 1,5 ****
--- 1,6 ----
int main(void)
{
+ volatile float g;
float reale = 1.0f;
float oneplus;
int i;
***************
*** 13,18 ****
--- 14,21 ----
if (oneplus == 1.0f)
break;
reale=reale/2.0f;
+ g = reale;
+ reale = g;
}
/* Assumes ieee754 accurate arithmetic above. */
if (i != 24)
--
Carlo Wood <carlo@runaway.xs4all.nl>