[PATCH,testsuite] cleanup powerpc tests for SPE

Nathan Froyd froydnj@codesourcery.com
Mon Jan 12 20:01:00 GMT 2009


The patch below does several cleanups on the testsuite for SPE targets.
Going roughly in order through the ChangeLog:

- Run tests on all EABI targets and check for SPE with dejagnu to permit
  SPE multilibs to work correctly.

- Pass -mspe/-mfloat-gprs=single where necessary to avoid warnings about
  incompatibilities between E500 and FPRs.

- powerpc-none-eabispe only defines __PPC__ and not __powerpc__, so
  check for that where necessary.  (This also happens to be applicable
  to VxWorks targets.)

Tested on powerpc-none-eabi and powerpc-none-eabispe.  OK to commit?

-Nathan

2009-01-12  Daniel Jacobowitz  <dan@codesourcery.com>

	* gcc.target/powerpc/20030505.c: Compile for all EABI targets.
	Explicitly enable SPE.
	* gcc.target/powerpc/ppc-spe.c: Likewise.

	* gcc.target/powerpc/20030218-1.c: Pass -mfloat-gprs=single.
	Expect -flax-vector-conversions message.  Adjust incompatible
	types errors.
	* gcc.target/powerpc/spe1.c: Pass -mspe and -mfloat-gprs=single.
	Make Foo extern.

	* gcc.dg/cpp/assert4.c: Recognize __PPC__.

	* g++.dg/other/opaque-1.C: Run on targets with SPE.

	* g++.dg/ext/spe-1.C: Pass -mspe and -mfloat-gprs=single.
	* g++.dg/other/opaque-2.C: Likewise.
	* g++.dg/other/opaque-3.C: Likewise.

Index: gcc.dg/cpp/assert4.c
===================================================================
--- gcc.dg/cpp/assert4.c	(revision 143303)
+++ gcc.dg/cpp/assert4.c	(working copy)
@@ -313,7 +313,7 @@
 # error
 #endif
 
-#if defined __powerpc__
+#if defined __powerpc__ || defined __PPC__
 # if defined __powerpc64__
 #  if (#cpu(powerpc) || #machine(powerpc) \
        || !#cpu(powerpc64) || !#machine(powerpc64))
Index: gcc.target/powerpc/20030218-1.c
===================================================================
--- gcc.target/powerpc/20030218-1.c	(revision 143303)
+++ gcc.target/powerpc/20030218-1.c	(working copy)
@@ -1,5 +1,5 @@
 /* { dg-do compile { target powerpc-*-eabi* } } */
-/* { dg-options "-mspe=yes" } */
+/* { dg-options "-mspe=yes -mfloat-gprs=single" } */
 
 /* Test vectors that can interconvert without a cast.  */
 
@@ -15,10 +15,11 @@ main (void)
 
   opp = vfloat;
   vshort = opp;
-  vfloat = vshort; /* { dg-error "incompatible types in assignment" } */
+  vfloat = vshort; /* { dg-error "incompatible types when assigning" } */
 
   /* Just because this is a V2SI, it doesn't make it an opaque.  */
-  vint = vshort; /* { dg-error "incompatible types in assignment" } */
+  vint = vshort; /* { dg-message "note: use -flax-vector-conversions to permit conversions between vectors with differing element types or numbers of subparts" } */
+  /* { dg-error "incompatible types when assigning" "" { target *-*-* } 21 } */
 
   return 0;
 }
Index: gcc.target/powerpc/20030505.c
===================================================================
--- gcc.target/powerpc/20030505.c	(revision 143303)
+++ gcc.target/powerpc/20030505.c	(working copy)
@@ -1,5 +1,5 @@
-/* { dg-do compile { target powerpc-*-eabispe* } } */
-/* { dg-options "-W" } */
+/* { dg-do compile { target powerpc-*-eabi* } } */
+/* { dg-options "-W -mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single" } */
 
 #define __vector __attribute__((vector_size(8)))
 
Index: gcc.target/powerpc/ppc-spe.c
===================================================================
--- gcc.target/powerpc/ppc-spe.c	(revision 143303)
+++ gcc.target/powerpc/ppc-spe.c	(working copy)
@@ -1,5 +1,5 @@
-/* { dg-do compile { target powerpc-*-eabispe } } */
-/* { dg-options "-mcpu=8540 -mabi=spe -O0" } */
+/* { dg-do compile { target powerpc-*-eabi* } } */
+/* { dg-options "-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single -O0" } */
 
 /* (Test with -O0 so we don't optimize any of them away).  */
 
Index: gcc.target/powerpc/spe1.c
===================================================================
--- gcc.target/powerpc/spe1.c	(revision 143303)
+++ gcc.target/powerpc/spe1.c	(working copy)
@@ -1,12 +1,12 @@
 /* { dg-do compile { target powerpc-*-eabi* } } */
-/* { dg-options "-mcpu=8540 -mabi=spe -O0" } */
+/* { dg-options "-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single -O0" } */
 
 /* (Test with -O0 so we don't optimize any of them away).  */
 
 
 typedef float __attribute__((vector_size(8))) __ev64_fs__;
 
-static __ev64_opaque__ Foo (void);
+__ev64_opaque__ Foo (void);
 
 void Bar ()
 {
Index: g++.dg/ext/spe1.C
===================================================================
--- g++.dg/ext/spe1.C	(revision 143303)
+++ g++.dg/ext/spe1.C	(working copy)
@@ -1,5 +1,5 @@
 /* { dg-do compile { target powerpc-*-eabi* } } */
-/* { dg-options "-mcpu=8540 -mabi=spe -O0" } */
+/* { dg-options "-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single -O0" } */
 
 typedef int v2si __attribute__ ((vector_size (8)));
 
Index: g++.dg/other/opaque-1.C
===================================================================
--- g++.dg/other/opaque-1.C	(revision 143303)
+++ g++.dg/other/opaque-1.C	(working copy)
@@ -1,4 +1,4 @@
-/* { dg-do run { target powerpc-*-eabispe* powerpc*-*-linux*spe* } } */
+/* { dg-do run { target powerpc*-*-* && powerpc_spe } } */
 
 #define __vector __attribute__((vector_size(8)))
 typedef float __vector __ev64_fs__;
Index: g++.dg/other/opaque-2.C
===================================================================
--- g++.dg/other/opaque-2.C	(revision 143303)
+++ g++.dg/other/opaque-2.C	(working copy)
@@ -1,5 +1,5 @@
 /* { dg-do compile { target powerpc-*-eabi* powerpc*-*-linux*spe* } } */
-/* { dg-options "-mcpu=8540 -mabi=spe" } */
+/* { dg-options "-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single" } */
 
 #define __vector __attribute__((vector_size(8)))
 typedef float __vector __ev64_fs__;
Index: g++.dg/other/opaque-3.C
===================================================================
--- g++.dg/other/opaque-3.C	(revision 143303)
+++ g++.dg/other/opaque-3.C	(working copy)
@@ -1,5 +1,5 @@
 /* { dg-do compile { target powerpc-*-eabi* powerpc*-*-linux*spe* } } */
-/* { dg-options "-mcpu=8540 -mabi=spe" } */
+/* { dg-options "-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single" } */
 
 __ev64_opaque__ o;
 #define v __attribute__((vector_size(8)))



More information about the Gcc-patches mailing list