This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Results for egcs-2.91.52 19980727 (gcc2 ss-980609 experiment


| > 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>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]