[RFA,2/3] Remove Cell Broadband Engine SPU targets: testsuite

Message ID 20190902201739.02A83D802F0@oc3748833570.ibm.com
State New
Headers show
Series
  • [RFA,1/3] Remove Cell Broadband Engine SPU targets
Related show

Commit Message

Ulrich Weigand Sept. 2, 2019, 8:17 p.m.
[RFA][2/3] Remove Cell Broadband Engine SPU targets: testsuite

Remove all references to spu from the testsuite directory.

Tested on s390x-ibm-linux.

OK for mainline?

(Deleted directories omitted from patch.)

Bye,
Ulrich



gcc/testsuite/ChangeLog:

	* lib/compat.exp: Remove references to spu.
	* lib/fortran-torture.exp: Likewise.
	* lib/gcc-dg.exp: Likewise.
	* lib/gfortran.exp: Likewise.
	* lib/target-supports.exp: Likewise.
	* lib/target-utils.exp: Likewise.

	* c-c++-common/torture/complex-sign-add.c: Remove references to spu.
	* c-c++-common/torture/complex-sign-mixed-add.c: Likewise.
	* c-c++-common/torture/complex-sign-mixed-div.c: Likewise.
	* c-c++-common/torture/complex-sign-mixed-mul.c: Likewise.
	* c-c++-common/torture/complex-sign-mixed-sub.c: Likewise.
	* c-c++-common/torture/complex-sign-mul-minus-one.c: Likewise.
	* c-c++-common/torture/complex-sign-mul-one.c: Likewise.
	* c-c++-common/torture/complex-sign-mul.c: Likewise.
	* c-c++-common/torture/complex-sign-sub.c: Likewise.

	* g++.dg/opt/temp1.C: Remove references to spu.
	* g++.dg/opt/vt1.C: Likewise.
	* g++.dg/torture/type-generic-1.C: Likewise.
	* g++.dg/warn/pr30551-2.C: Likewise.
	* g++.dg/warn/pr30551.C: Likewise.
	* g++.old-deja/g++.jason/thunk2.C: Likewise.
	* g++.old-deja/g++.other/comdat5.C: Likewise.
	* g++.old-deja/g++.other/local-alloc1.C: Likewise.

	* gcc.c-torture/compile/20001226-1.c: Remove references to spu.
	* gcc.c-torture/execute/20030222-1.c: Likewise.
	* gcc.c-torture/execute/20031003-1.c: Likewise.
	* gcc.c-torture/execute/20101011-1.c: Likewise.
	* gcc.c-torture/execute/conversion.c: Likewise.
	* gcc.c-torture/execute/ieee/compare-fp-4.x: Likewise.
	* gcc.c-torture/execute/ieee/fp-cmp-2.x: Likewise.
	* gcc.c-torture/execute/ieee/inf-1.c: Likewise.
	* gcc.c-torture/execute/ieee/inf-2.c: Likewise.
	* gcc.c-torture/execute/ieee/mul-subnormal-single-1.x: Likewise.
	* gcc.c-torture/execute/ieee/rbug.c: Likewise.
	* gcc.c-torture/execute/pr39228.c: Likewise.
	* gcc.c-torture/execute/ieee/20010114-2.x: Remove file.
	* gcc.c-torture/execute/ieee/20030331-1.x: Remove file.
	* gcc.c-torture/execute/ieee/920518-1.x: Remove file.
	* gcc.c-torture/execute/ieee/compare-fp-1.x: Remove file.
	* gcc.c-torture/execute/ieee/fp-cmp-4f.x: Remove file.
	* gcc.c-torture/execute/ieee/fp-cmp-8f.x: Remove file.

	* gcc.dg/20020312-2.c: Remove references to spu.
	* gcc.dg/20030702-1.c: Likewise.
	* gcc.dg/and-1.c: Likewise.
	* gcc.dg/builtin-inf-1.c: Likewise.
	* gcc.dg/builtins-1.c: Likewise.
	* gcc.dg/builtins-43.c: Likewise.
	* gcc.dg/builtins-44.c: Likewise.
	* gcc.dg/builtins-45.c: Likewise.
	* gcc.dg/float-range-1.c: Likewise.
	* gcc.dg/float-range-3.c: Likewise.
	* gcc.dg/float-range-4.c: Likewise.
	* gcc.dg/float-range-5.c: Likewise.
	* gcc.dg/fold-overflow-1.c: Likewise.
	* gcc.dg/format/ms_unnamed-1.c: Likewise.
	* gcc.dg/format/unnamed-1.c: Likewise.
	* gcc.dg/hex-round-1.c: Likewise.
	* gcc.dg/hex-round-2.c: Likewise.
	* gcc.dg/lower-subreg-1.c: Likewise.
	* gcc.dg/nrv3.c: Likewise.
	* gcc.dg/pr15784-3.c: Likewise.
	* gcc.dg/pr27095.c: Likewise.
	* gcc.dg/pr28243.c: Likewise.
	* gcc.dg/pr28796-2.c: Likewise.
	* gcc.dg/pr30551-3.c: Likewise.
	* gcc.dg/pr30551-6.c: Likewise.
	* gcc.dg/pr30551.c: Likewise.
	* gcc.dg/pr70317.c: Likewise.
	* gcc.dg/sms-1.c: Likewise.
	* gcc.dg/sms-2.c: Likewise.
	* gcc.dg/sms-3.c: Likewise.
	* gcc.dg/sms-4.c: Likewise.
	* gcc.dg/sms-5.c: Likewise.
	* gcc.dg/sms-6.c: Likewise.
	* gcc.dg/sms-7.c: Likewise.
	* gcc.dg/stack-usage-1.c: Likewise.
	* gcc.dg/strlenopt-73.c: Likewise.
	* gcc.dg/titype-1.c: Likewise.
	* gcc.dg/tls/thr-cse-1.c: Likewise.
	* gcc.dg/torture/builtin-attr-1.c: Likewise.
	* gcc.dg/torture/builtin-complex-1.c: Likewise.
	* gcc.dg/torture/builtin-cproj-1.c: Likewise.
	* gcc.dg/torture/builtin-frexp-1.c: Likewise.
	* gcc.dg/torture/builtin-ldexp-1.c: Likewise.
	* gcc.dg/torture/builtin-logb-1.c: Likewise.
	* gcc.dg/torture/builtin-math-2.c: Likewise.
	* gcc.dg/torture/builtin-math-5.c: Likewise.
	* gcc.dg/torture/builtin-modf-1.c: Likewise.
	* gcc.dg/torture/fp-int-convert.h: Likewise.
	* gcc.dg/torture/pr25947-1.c: Likewise.
	* gcc.dg/torture/type-generic-1.c: Likewise.
	* gcc.dg/tree-ssa/20040204-1.c: Likewise.
	* gcc.dg/tree-ssa/ivopts-1.c: Likewise.
	* gcc.dg/tree-ssa/ssa-fre-3.c: Likewise.
	* gcc.dg/tree-ssa/vector-6.c: Likewise.
	* gcc.dg/uninit-C-O0.c: Likewise.
	* gcc.dg/uninit-C.c: Likewise.
	* gcc.dg/vect/no-math-errno-slp-32.c: Likewise.
	* gcc.dg/vect/no-math-errno-vect-pow-1.c: Likewise.
	* gcc.dg/vect/vect-float-extend-1.c: Likewise.
	* gcc.dg/vect/vect-float-truncate-1.c: Likewise.
	* gcc.dg/vect/vect.exp: Likewise.
	* gcc.gd/vect/costmodel/spu/: Remove directory.

	* gcc.target/spu/: Remove directory.

	* gfortran.dg/bessel_6.f90: Remove references to spu.
	* gfortran.dg/bessel_7.f90: Likewise.
	* gfortran.dg/char4_iunit_1.f03: Likewise.
	* gfortran.dg/chmod_1.f90: Likewise.
	* gfortran.dg/chmod_2.f90: Likewise.
	* gfortran.dg/chmod_3.f90: Likewise.
	* gfortran.dg/default_format_1.f90: Likewise.
	* gfortran.dg/default_format_denormal_1.f90: Likewise.
	* gfortran.dg/erf_2.F90: Likewise.
	* gfortran.dg/erf_3.F90: Likewise.
	* gfortran.dg/init_flag_10.f90: Likewise.
	* gfortran.dg/init_flag_3.f90: Likewise.
	* gfortran.dg/int_conv_2.f90: Likewise.
	* gfortran.dg/integer_exponentiation_3.F90: Likewise.
	* gfortran.dg/integer_exponentiation_5.F90: Likewise.
	* gfortran.dg/isnan_1.f90: Likewise.
	* gfortran.dg/isnan_2.f90: Likewise.
	* gfortran.dg/maxloc_2.f90: Likewise.
	* gfortran.dg/maxlocval_2.f90: Likewise.
	* gfortran.dg/maxlocval_4.f90: Likewise.
	* gfortran.dg/minloc_1.f90: Likewise.
	* gfortran.dg/minlocval_1.f90: Likewise.
	* gfortran.dg/minlocval_4.f90: Likewise.
	* gfortran.dg/module_nan.f90: Likewise.
	* gfortran.dg/namelist_42.f90: Likewise.
	* gfortran.dg/namelist_43.f90: Likewise.
	* gfortran.dg/nan_1.f90: Likewise.
	* gfortran.dg/nan_2.f90: Likewise.
	* gfortran.dg/nan_3.f90: Likewise.
	* gfortran.dg/nan_4.f90: Likewise.
	* gfortran.dg/nan_5.f90: Likewise.
	* gfortran.dg/nan_6.f90: Likewise.
	* gfortran.dg/nearest_1.f90: Likewise.
	* gfortran.dg/nearest_3.f90: Likewise.
	* gfortran.dg/open_errors.f90: Likewise.
	* gfortran.dg/pr20257.f90: Likewise.
	* gfortran.dg/read_infnan_1.f90: Likewise.
	* gfortran.dg/real_const_3.f90: Likewise.
	* gfortran.dg/realloc_on_assign_2.f03: Likewise.
	* gfortran.dg/reassoc_4.f: Likewise.
	* gfortran.dg/scalar_mask_2.f90: Likewise.
	* gfortran.dg/scratch_1.f90: Likewise.
	* gfortran.dg/stat_1.f90: Likewise.
	* gfortran.dg/stat_2.f90: Likewise.
	* gfortran.dg/transfer_simplify_1.f90: Likewise.
	* gfortran.dg/typebound_operator_9.f03: Likewise.

	* gfortran.fortran-torture/execute/intrinsic_nearest.x: Remove
	references to spu.
	* gfortran.fortran-torture/execute/intrinsic_set_exponent.x: Likewise.
	* gfortran.fortran-torture/execute/nan_inf_fmt.x: Likewise.
	* gfortran.fortran-torture/execute/getarg_1.x: Remove file.

-- 
  Dr. Ulrich Weigand
  GNU/Linux compilers and toolchain
  Ulrich.Weigand@de.ibm.com

Patch

Index: gcc/testsuite/c-c++-common/torture/complex-sign-add.c
===================================================================
--- gcc/testsuite/c-c++-common/torture/complex-sign-add.c	(revision 275321)
+++ gcc/testsuite/c-c++-common/torture/complex-sign-add.c	(working copy)
@@ -28,9 +28,7 @@ 
 void
 check_add_float (void)
 {
-#ifndef __SPU__
   CHECK_ADD (float, __builtin_copysignf, 0.0f, 0.0if);
-#endif
 }
 
 void
Index: gcc/testsuite/c-c++-common/torture/complex-sign-mixed-add.c
===================================================================
--- gcc/testsuite/c-c++-common/torture/complex-sign-mixed-add.c	(revision 275321)
+++ gcc/testsuite/c-c++-common/torture/complex-sign-mixed-add.c	(working copy)
@@ -29,9 +29,7 @@ 
 void
 check_add_float (void)
 {
-#ifndef __SPU__
   CHECK_ADD (float, __builtin_copysignf, 0.0f, 0.0if);
-#endif
 }
 
 void
Index: gcc/testsuite/c-c++-common/torture/complex-sign-mixed-div.c
===================================================================
--- gcc/testsuite/c-c++-common/torture/complex-sign-mixed-div.c	(revision 275321)
+++ gcc/testsuite/c-c++-common/torture/complex-sign-mixed-div.c	(working copy)
@@ -20,9 +20,7 @@ 
 void
 check_div_float (void)
 {
-#ifndef __SPU__
   CHECK_DIV (float, __builtin_copysignf, 0.0f, 0.0if, 1.0f);
-#endif
 }
 
 void
Index: gcc/testsuite/c-c++-common/torture/complex-sign-mixed-mul.c
===================================================================
--- gcc/testsuite/c-c++-common/torture/complex-sign-mixed-mul.c	(revision 275321)
+++ gcc/testsuite/c-c++-common/torture/complex-sign-mixed-mul.c	(working copy)
@@ -28,9 +28,7 @@ 
 void
 check_mul_float (void)
 {
-#ifndef __SPU__
   CHECK_MUL (float, __builtin_copysignf, 0.0f, 0.0if);
-#endif
 }
 
 void
Index: gcc/testsuite/c-c++-common/torture/complex-sign-mixed-sub.c
===================================================================
--- gcc/testsuite/c-c++-common/torture/complex-sign-mixed-sub.c	(revision 275321)
+++ gcc/testsuite/c-c++-common/torture/complex-sign-mixed-sub.c	(working copy)
@@ -29,9 +29,7 @@ 
 void
 check_sub_float (void)
 {
-#ifndef __SPU__
   CHECK_SUB (float, __builtin_copysignf, 0.0f, 0.0if);
-#endif
 }
 
 void
Index: gcc/testsuite/c-c++-common/torture/complex-sign-mul-minus-one.c
===================================================================
--- gcc/testsuite/c-c++-common/torture/complex-sign-mul-minus-one.c	(revision 275321)
+++ gcc/testsuite/c-c++-common/torture/complex-sign-mul-minus-one.c	(working copy)
@@ -36,9 +36,7 @@ 
 void
 check_mul_float (void)
 {
-#ifndef __SPU__
   CHECK_MUL (float, __builtin_copysignf, 0.0f, 0.0if, 1.0f);
-#endif
 }
 
 void
Index: gcc/testsuite/c-c++-common/torture/complex-sign-mul-one.c
===================================================================
--- gcc/testsuite/c-c++-common/torture/complex-sign-mul-one.c	(revision 275321)
+++ gcc/testsuite/c-c++-common/torture/complex-sign-mul-one.c	(working copy)
@@ -36,9 +36,7 @@ 
 void
 check_mul_float (void)
 {
-#ifndef __SPU__
   CHECK_MUL (float, __builtin_copysignf, 0.0f, 0.0if, 1.0f);
-#endif
 }
 
 void
Index: gcc/testsuite/c-c++-common/torture/complex-sign-mul.c
===================================================================
--- gcc/testsuite/c-c++-common/torture/complex-sign-mul.c	(revision 275321)
+++ gcc/testsuite/c-c++-common/torture/complex-sign-mul.c	(working copy)
@@ -28,9 +28,7 @@ 
 void
 check_mul_float (void)
 {
-#ifndef __SPU__
   CHECK_MUL (float, __builtin_copysignf, 0.0f, 0.0if);
-#endif
 }
 
 void
Index: gcc/testsuite/c-c++-common/torture/complex-sign-sub.c
===================================================================
--- gcc/testsuite/c-c++-common/torture/complex-sign-sub.c	(revision 275321)
+++ gcc/testsuite/c-c++-common/torture/complex-sign-sub.c	(working copy)
@@ -28,9 +28,7 @@ 
 void
 check_sub_float (void)
 {
-#ifndef __SPU__
   CHECK_SUB (float, __builtin_copysignf, 0.0f, 0.0if);
-#endif
 }
 
 void
Index: gcc/testsuite/g++.dg/opt/temp1.C
===================================================================
--- gcc/testsuite/g++.dg/opt/temp1.C	(revision 275321)
+++ gcc/testsuite/g++.dg/opt/temp1.C	(working copy)
@@ -24,12 +24,7 @@ 
 }
  
 struct T {
-#ifdef __SPU__
-  /* SPU returns aggregates up to 1172 bytes in registers.  */
-  int a[300];
-#else
   int a[128];
-#endif
   T &operator+=(T const &v) __attribute__((noinline));
   T operator+(T const &v) const { T t = *this; t += v; return t; }
 };
Index: gcc/testsuite/g++.dg/opt/vt1.C
===================================================================
--- gcc/testsuite/g++.dg/opt/vt1.C	(revision 275321)
+++ gcc/testsuite/g++.dg/opt/vt1.C	(working copy)
@@ -1,7 +1,6 @@ 
 // Test whether vtable for S is not put into read-only section.
 // { dg-do compile { target fpic } }
 // { dg-options "-O2 -fpic -fno-rtti" }
-// { dg-skip-if "requires unsupported run-time relocation" { spu-*-* } }
 // { dg-skip-if "No Windows PIC" { *-*-mingw* *-*-cygwin } }
 // Origin: Jakub Jelinek <jakub@redhat.com>
 
Index: gcc/testsuite/g++.dg/torture/type-generic-1.C
===================================================================
--- gcc/testsuite/g++.dg/torture/type-generic-1.C	(revision 275321)
+++ gcc/testsuite/g++.dg/torture/type-generic-1.C	(working copy)
@@ -3,7 +3,6 @@ 
 
 /* { dg-do run } */
 /* { dg-add-options ieee } */
-/* { dg-skip-if "No Inf/NaN support" { spu-*-* } } */
 /* { dg-skip-if "No subnormal support" { csky-*-* } { "-mhard-float" } } */
 
 #include "../../gcc.dg/tg-tests.h"
Index: gcc/testsuite/g++.dg/warn/pr30551-2.C
===================================================================
--- gcc/testsuite/g++.dg/warn/pr30551-2.C	(revision 275321)
+++ gcc/testsuite/g++.dg/warn/pr30551-2.C	(working copy)
@@ -1,6 +1,5 @@ 
 // PR 30551 -Wmain is enabled by -pedantic/-pedantic-errors.
 // { dg-do compile }
 // { dg-options "-pedantic-errors" }
-// { dg-skip-if "-Wmain not enabled with -pedantic on SPU" { spu-*-* } } 
 int main(char a) {} /* { dg-error "first argument of .*main.* should be .int." "int" } */
 /* { dg-error "main.* takes only zero or two arguments" "zero or two" { target *-*-* } .-1 } */ 
Index: gcc/testsuite/g++.dg/warn/pr30551.C
===================================================================
--- gcc/testsuite/g++.dg/warn/pr30551.C	(revision 275321)
+++ gcc/testsuite/g++.dg/warn/pr30551.C	(working copy)
@@ -1,6 +1,5 @@ 
 // PR 30551 -Wmain is enabled by default.
 // { dg-do compile }
 // { dg-options "" }
-// { dg-skip-if "-Wmain not enabled on SPU" { spu-*-* } } 
 int main(char a) {} /* { dg-warning "first argument of .*main.* should be .int." "int" } */
 /* { dg-warning "main.* takes only zero or two arguments" "zero or two" { target *-*-* } .-1 } */ 
Index: gcc/testsuite/g++.old-deja/g++.jason/thunk2.C
===================================================================
--- gcc/testsuite/g++.old-deja/g++.jason/thunk2.C	(revision 275321)
+++ gcc/testsuite/g++.old-deja/g++.jason/thunk2.C	(working copy)
@@ -1,6 +1,5 @@ 
 // { dg-do run { target fpic } }
 // { dg-options "-fPIC" }
-// { dg-skip-if "requires unsupported run-time relocation" { spu-*-* } }
 // Test that non-variadic function calls using thunks and PIC work right.
 
 struct A {
Index: gcc/testsuite/g++.old-deja/g++.other/comdat5.C
===================================================================
--- gcc/testsuite/g++.old-deja/g++.other/comdat5.C	(revision 275321)
+++ gcc/testsuite/g++.old-deja/g++.other/comdat5.C	(working copy)
@@ -2,6 +2,5 @@ 
 // { dg-do link { target fpic } }
 // { dg-additional-sources " comdat5-aux.cc" }
 // { dg-options "-O2 -fPIC" }
-// { dg-skip-if "requires unsupported run-time relocation" { spu-*-* } }
 
 #include "comdat4.C"
Index: gcc/testsuite/g++.old-deja/g++.other/local-alloc1.C
===================================================================
--- gcc/testsuite/g++.old-deja/g++.other/local-alloc1.C	(revision 275321)
+++ gcc/testsuite/g++.old-deja/g++.other/local-alloc1.C	(working copy)
@@ -1,6 +1,5 @@ 
 // { dg-do assemble { target fpic } }
 // { dg-options "-O0 -fpic" }
-// { dg-skip-if "requires unsupported run-time relocation" { spu-*-* } }
 // Origin: Jakub Jelinek <jakub@redhat.com>
 
 struct bar {
Index: gcc/testsuite/gcc.c-torture/compile/20001226-1.c
===================================================================
--- gcc/testsuite/gcc.c-torture/compile/20001226-1.c	(revision 275321)
+++ gcc/testsuite/gcc.c-torture/compile/20001226-1.c	(working copy)
@@ -1,7 +1,6 @@ 
 /* { dg-do assemble } */
 /* { dg-skip-if "too much code for avr" { "avr-*-*" } } */
 /* { dg-skip-if "too much code for pdp11" { "pdp11-*-*" } } */
-/* { dg-xfail-if "PR36698" { spu-*-* } { "-O0" } { "" } } */
 /* { dg-skip-if "" { m32c-*-* } } */
 /* { dg-timeout-factor 4.0 } */
 
Index: gcc/testsuite/gcc.c-torture/execute/20030222-1.c
===================================================================
--- gcc/testsuite/gcc.c-torture/execute/20030222-1.c	(revision 275321)
+++ gcc/testsuite/gcc.c-torture/execute/20030222-1.c	(working copy)
@@ -3,7 +3,6 @@ 
    succeeded at all.  We use volatile to make sure the long long is
    actually truncated to int, in case a single register is wide enough
    for a long long.  */
-/* { dg-skip-if "asm would require extra shift-left-4-byte" { spu-*-* } } */
 /* { dg-skip-if "asm requires register allocation" { nvptx-*-* } } */
 #include <limits.h>
 
Index: gcc/testsuite/gcc.c-torture/execute/20031003-1.c
===================================================================
--- gcc/testsuite/gcc.c-torture/execute/20031003-1.c	(revision 275321)
+++ gcc/testsuite/gcc.c-torture/execute/20031003-1.c	(working copy)
@@ -19,15 +19,9 @@ 
 #if INT_MAX == 2147483647
   if (f1() != 2147483647)
     abort ();
-#ifdef __SPU__
-  /* SPU float rounds towards zero.  */
-  if (f2() != 0x7fffff80)
-    abort ();
-#else
   if (f2() != 2147483647)
     abort ();
 #endif
-#endif
   return 0;
 }
 
Index: gcc/testsuite/gcc.c-torture/execute/20101011-1.c
===================================================================
--- gcc/testsuite/gcc.c-torture/execute/20101011-1.c	(revision 275321)
+++ gcc/testsuite/gcc.c-torture/execute/20101011-1.c	(working copy)
@@ -10,9 +10,6 @@ 
 #elif defined (__riscv)
   /* On RISC-V division by zero does not trap.  */
 # define DO_TEST 0
-#elif defined (__SPU__)
-  /* On SPU division by zero does not trap.  */
-# define DO_TEST 0
 #elif defined (__sh__)
   /* On SH division by zero does not trap.  */
 # define DO_TEST 0
Index: gcc/testsuite/gcc.c-torture/execute/conversion.c
===================================================================
--- gcc/testsuite/gcc.c-torture/execute/conversion.c	(revision 275321)
+++ gcc/testsuite/gcc.c-torture/execute/conversion.c	(working copy)
@@ -284,15 +284,9 @@ 
     abort();
   if (f2u(1.99) != 1)
     abort();
-#ifdef __SPU__
-  /* SPU float rounds towards zero.  */
-  if (f2u((float) ((~0U) >> 1)) != 0x7fffff80)
-    abort();
-#else
   if (f2u((float) ((~0U) >> 1)) != (~0U) >> 1 &&	/* 0x7fffffff */
       f2u((float) ((~0U) >> 1)) != ((~0U) >> 1) + 1)
     abort();
-#endif
   if (f2u((float) ~((~0U) >> 1)) != ~((~0U) >> 1))	/* 0x80000000 */
     abort();
 
@@ -445,15 +439,9 @@ 
     abort();
   if (f2ull(1.99) != 1LL)
     abort();
-#ifdef __SPU__
-  /* SPU float rounds towards zero.  */
-  if (f2ull((float) ((~0ULL) >> 1)) != 0x7fffff8000000000ULL)
-    abort();
-#else
   if (f2ull((float) ((~0ULL) >> 1)) != (~0ULL) >> 1 &&	/* 0x7fffffff */
       f2ull((float) ((~0ULL) >> 1)) != ((~0ULL) >> 1) + 1)
     abort();
-#endif
   if (f2ull((float) ~((~0ULL) >> 1)) != ~((~0ULL) >> 1)) /* 0x80000000 */
     abort();
 
Index: gcc/testsuite/gcc.c-torture/execute/ieee/20010114-2.x
===================================================================
--- gcc/testsuite/gcc.c-torture/execute/ieee/20010114-2.x	(revision 275321)
+++ gcc/testsuite/gcc.c-torture/execute/ieee/20010114-2.x	(nonexistent)
@@ -1,6 +0,0 @@ 
-if [istarget "spu-*-*"] {
-    # This doesn't work on the SPU because single precision floats are
-    # always rounded toward 0.
-    return 1
-}
-return 0
Index: gcc/testsuite/gcc.c-torture/execute/ieee/20030331-1.x
===================================================================
--- gcc/testsuite/gcc.c-torture/execute/ieee/20030331-1.x	(revision 275321)
+++ gcc/testsuite/gcc.c-torture/execute/ieee/20030331-1.x	(nonexistent)
@@ -1,6 +0,0 @@ 
-if [istarget "spu-*-*"] {
-    # This doesn't work on the SPU because single precision floats are
-    # always rounded toward 0.
-    return 1
-}
-return 0
Index: gcc/testsuite/gcc.c-torture/execute/ieee/920518-1.x
===================================================================
--- gcc/testsuite/gcc.c-torture/execute/ieee/920518-1.x	(revision 275321)
+++ gcc/testsuite/gcc.c-torture/execute/ieee/920518-1.x	(nonexistent)
@@ -1,6 +0,0 @@ 
-if [istarget "spu-*-*"] {
-    # This doesn't work on the SPU because single precision floats are
-    # always rounded toward 0.
-    return 1
-}
-return 0
Index: gcc/testsuite/gcc.c-torture/execute/ieee/compare-fp-1.x
===================================================================
--- gcc/testsuite/gcc.c-torture/execute/ieee/compare-fp-1.x	(revision 275321)
+++ gcc/testsuite/gcc.c-torture/execute/ieee/compare-fp-1.x	(nonexistent)
@@ -1,6 +0,0 @@ 
-if [istarget "spu-*-*"] {
-    # The SPU single-precision floating point format does not
-    # support Nan & Inf. 
-    return 1
-}
-return 0
Index: gcc/testsuite/gcc.c-torture/execute/ieee/compare-fp-4.x
===================================================================
--- gcc/testsuite/gcc.c-torture/execute/ieee/compare-fp-4.x	(revision 275321)
+++ gcc/testsuite/gcc.c-torture/execute/ieee/compare-fp-4.x	(working copy)
@@ -13,11 +13,5 @@ 
     }
 }
 
-if [istarget "spu-*-*"] {
-    # The SPU single-precision floating point format does not
-    # support Nan & Inf.
-    return 1
-}
-
 lappend additional_flags "-fno-trapping-math"
 return 0
Index: gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-2.x
===================================================================
--- gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-2.x	(revision 275321)
+++ gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-2.x	(working copy)
@@ -13,10 +13,4 @@ 
     }
 }
 
-if [istarget "spu-*-*"] {
-    # The SPU single-precision floating point format does not
-    # support Nan & Inf.
-    return 1
-}
-
 return 0
Index: gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4f.x
===================================================================
--- gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4f.x	(revision 275321)
+++ gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-4f.x	(nonexistent)
@@ -1,6 +0,0 @@ 
-if [istarget "spu-*-*"] {
-    # The SPU single-precision floating point format does not
-    # support Nan & Inf. 
-    return 1
-}
-return 0
Index: gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-8f.x
===================================================================
--- gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-8f.x	(revision 275321)
+++ gcc/testsuite/gcc.c-torture/execute/ieee/fp-cmp-8f.x	(nonexistent)
@@ -1,6 +0,0 @@ 
-if [istarget "spu-*-*"] {
-    # The SPU single-precision floating point format does not
-    # support Nan & Inf. 
-    return 1
-}
-return 0
Index: gcc/testsuite/gcc.c-torture/execute/ieee/inf-1.c
===================================================================
--- gcc/testsuite/gcc.c-torture/execute/ieee/inf-1.c	(revision 275321)
+++ gcc/testsuite/gcc.c-torture/execute/ieee/inf-1.c	(working copy)
@@ -2,10 +2,7 @@ 
 
 int main()
 {
-#ifndef __SPU__
-  /* The SPU single-precision floating point format does not support Inf.  */
   float fi = __builtin_inff();
-#endif
   double di = __builtin_inf();
   long double li = __builtin_infl();
 
@@ -13,28 +10,22 @@ 
   double dh = __builtin_huge_val();
   long double lh = __builtin_huge_vall();
 
-#ifndef __SPU__
   if (fi + fi != fi)
     abort ();
-#endif
   if (di + di != di)
     abort ();
   if (li + li != li)
     abort ();
 
-#ifndef __SPU__
   if (fi != fh)
     abort ();
-#endif
   if (di != dh)
     abort ();
   if (li != lh)
     abort ();
 
-#ifndef __SPU__
   if (fi <= 0)
     abort ();
-#endif
   if (di <= 0)
     abort ();
   if (li <= 0)
Index: gcc/testsuite/gcc.c-torture/execute/ieee/inf-2.c
===================================================================
--- gcc/testsuite/gcc.c-torture/execute/ieee/inf-2.c	(revision 275321)
+++ gcc/testsuite/gcc.c-torture/execute/ieee/inf-2.c	(working copy)
@@ -25,9 +25,6 @@ 
 
 void testf(float f, float i)
 {
-#ifndef __SPU__
-  /* The SPU single-precision floating point format does not support Inf.  */
-
   if (f == __builtin_inff())
     abort ();
   if (f == -__builtin_inff())
@@ -47,7 +44,6 @@ 
     abort ();
   if (f < -__builtin_inff())
     abort ();
-#endif
 }
 
 void testl(long double f, long double i)
Index: gcc/testsuite/gcc.c-torture/execute/ieee/mul-subnormal-single-1.x
===================================================================
--- gcc/testsuite/gcc.c-torture/execute/ieee/mul-subnormal-single-1.x	(revision 275321)
+++ gcc/testsuite/gcc.c-torture/execute/ieee/mul-subnormal-single-1.x	(working copy)
@@ -13,11 +13,6 @@ 
     # not aware of any system that has this.
     set torture_execute_xfail "m68k-*-*"
 }
-if [istarget "spu-*-*"] {
-    # The SPU single-precision floating point format does not
-    # support subnormals.
-    return 1
-}
 if { [istarget "tic6x-*-*"] && [check_effective_target_ti_c67x] } {
     # C6X floating point hardware turns denormals to zero in multiplications.
     set torture_execute_xfail "tic6x-*-*"
Index: gcc/testsuite/gcc.c-torture/execute/ieee/rbug.c
===================================================================
--- gcc/testsuite/gcc.c-torture/execute/ieee/rbug.c	(revision 275321)
+++ gcc/testsuite/gcc.c-torture/execute/ieee/rbug.c	(working copy)
@@ -41,14 +41,8 @@ 
   k = 0x8234508000000001ULL;
   x = s (k);
   k = (unsigned long long) x;
-#ifdef __SPU__
-  /* SPU float rounds towards zero.  */
-  if (k != 0x8234500000000000ULL)
-    abort ();
-#else
   if (k != 0x8234510000000000ULL)
     abort ();
-#endif
 
   exit (0);
 }
Index: gcc/testsuite/gcc.c-torture/execute/pr39228.c
===================================================================
--- gcc/testsuite/gcc.c-torture/execute/pr39228.c	(revision 275321)
+++ gcc/testsuite/gcc.c-torture/execute/pr39228.c	(working copy)
@@ -1,5 +1,4 @@ 
 /* { dg-add-options ieee } */
-/* { dg-skip-if "No Inf/NaN support" { spu-*-* } } */
 
 extern void abort (void);
 
Index: gcc/testsuite/gcc.dg/20020312-2.c
===================================================================
--- gcc/testsuite/gcc.dg/20020312-2.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/20020312-2.c	(working copy)
@@ -96,8 +96,6 @@ 
 /* No pic register.  */
 #elif defined(__m32c__)
 /* No pic register.  */
-#elif defined(__SPU__)
-#  define PIC_REG  "126"
 #elif defined (__frv__)
 # ifdef __FRV_FDPIC__
 #  define PIC_REG "gr15"
Index: gcc/testsuite/gcc.dg/20030702-1.c
===================================================================
--- gcc/testsuite/gcc.dg/20030702-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/20030702-1.c	(working copy)
@@ -2,7 +2,6 @@ 
    correctly in combine.  */
 /* { dg-do compile { target fpic } } */
 /* { dg-options "-O2 -fpic -fprofile-arcs" } */
-/* { dg-skip-if "requires unsupported run-time relocation" { spu-*-* } } */
 /* { dg-require-profiling "-fprofile-generate" } */
 
 int fork (void);
Index: gcc/testsuite/gcc.dg/and-1.c
===================================================================
--- gcc/testsuite/gcc.dg/and-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/and-1.c	(working copy)
@@ -1,8 +1,8 @@ 
 /* { dg-do compile } */
 /* { dg-options "-O2" } */
-/* { dg-final { scan-assembler "and" { target powerpc*-*-* spu-*-* } } } */
-/* There should be no nand for this testcase (for either PPC or SPU). */
-/* { dg-final { scan-assembler-not "nand" { target powerpc*-*-* spu-*-* } } } */
+/* { dg-final { scan-assembler "and" { target powerpc*-*-* } } } */
+/* There should be no nand for this testcase (for PPC). */
+/* { dg-final { scan-assembler-not "nand" { target powerpc*-*-* } } } */
 
 int f(int y)
 {
Index: gcc/testsuite/gcc.dg/builtin-inf-1.c
===================================================================
--- gcc/testsuite/gcc.dg/builtin-inf-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/builtin-inf-1.c	(working copy)
@@ -1,7 +1,7 @@ 
 /* { dg-do compile } */
 
 float fi = __builtin_inff();
-/* { dg-error "does not support infinity" "INF unsupported" { target pdp11*-*-* vax-*-* spu-*-* } .-1 } */
+/* { dg-error "does not support infinity" "INF unsupported" { target pdp11*-*-* vax-*-* } .-1 } */
 double di = __builtin_inf();
 /* { dg-error "does not support infinity" "INF unsupported" { target pdp11*-*-* vax-*-* } .-1 } */
 long double li = __builtin_infl();
Index: gcc/testsuite/gcc.dg/builtins-1.c
===================================================================
--- gcc/testsuite/gcc.dg/builtins-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/builtins-1.c	(working copy)
@@ -144,7 +144,7 @@ 
 FPTEST0     (huge_val)
 FPTEST2     (hypot)
 FPTEST1     (ilogb)
-FPTEST0     (inf)  /* { dg-warning "target format does not support infinity" "inf" {target pdp11*-*-* spu-*-*} } */
+FPTEST0     (inf)  /* { dg-warning "target format does not support infinity" "inf" {target pdp11*-*-* } } */
 FPTEST1     (j0)
 FPTEST1     (j1)
 FPTEST2ARG1 (jn, int)
Index: gcc/testsuite/gcc.dg/builtins-43.c
===================================================================
--- gcc/testsuite/gcc.dg/builtins-43.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/builtins-43.c	(working copy)
@@ -12,20 +12,15 @@ 
 main ()
 {
   double nan = __builtin_nan ("");
-#ifndef __SPU__
-  /* The SPU single-precision floating point format does not support NANs.  */
   float nanf = __builtin_nanf ("");
-#endif
   long double nanl = __builtin_nanl ("");
 
   if (!__builtin_isnan (nan))
     link_error ();
-#ifndef __SPU__
   if (!__builtin_isnan (nanf))
     link_error ();
   if (!__builtin_isnanf (nanf))
     link_error ();
-#endif
   if (!__builtin_isnan (nanl))
     link_error ();
   if (!__builtin_isnanl (nanl))
Index: gcc/testsuite/gcc.dg/builtins-44.c
===================================================================
--- gcc/testsuite/gcc.dg/builtins-44.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/builtins-44.c	(working copy)
@@ -13,20 +13,15 @@ 
 main ()
 {
   double pinf = __builtin_inf ();
-#ifndef __SPU__
-  /* The SPU single-precision floating point format does not support Inf.  */
   float pinff = __builtin_inff ();
-#endif
   long double pinfl = __builtin_infl ();
 
   if (__builtin_isinf (pinf) != 1)
     link_error ();
-#ifndef __SPU__
   if (__builtin_isinf (pinff) != 1)
     link_error ();
   if (__builtin_isinff (pinff) != 1)
     link_error ();
-#endif
   if (__builtin_isinf (pinfl) != 1)
     link_error ();
   if (__builtin_isinfl (pinfl) != 1)
@@ -34,10 +29,8 @@ 
 
   if (__builtin_isinf_sign (-pinf) != -1)
     link_error ();
-#ifndef __SPU__
   if (__builtin_isinf_sign (-pinff) != -1)
     link_error ();
-#endif
   if (__builtin_isinf_sign (-pinfl) != -1)
     link_error ();
 
Index: gcc/testsuite/gcc.dg/builtins-45.c
===================================================================
--- gcc/testsuite/gcc.dg/builtins-45.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/builtins-45.c	(working copy)
@@ -13,34 +13,24 @@ 
 main ()
 {
   double nan = __builtin_nan ("");
-#ifndef __SPU__
-  /* The SPU single-precision floating point format does not support NANs.  */
   float nanf = __builtin_nanf ("");
-#endif
   long double nanl = __builtin_nanl ("");
 
   double pinf = __builtin_inf ();
-#ifndef __SPU__
-  /* The SPU single-precision floating point format does not support Inf.  */
   float pinff = __builtin_inff ();
-#endif
   long double pinfl = __builtin_infl ();
 
   if (__builtin_finite (pinf))
     link_error ();
-#ifndef __SPU__
   if (__builtin_finitef (pinff))
     link_error ();
-#endif
   if (__builtin_finitel (pinfl))
     link_error ();
 
   if (__builtin_finite (nan))
     link_error ();
-#ifndef __SPU__
   if (__builtin_finitef (nanf))
     link_error ();
-#endif
   if (__builtin_finitel (nanl))
     link_error ();
 
Index: gcc/testsuite/gcc.dg/float-range-1.c
===================================================================
--- gcc/testsuite/gcc.dg/float-range-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/float-range-1.c	(working copy)
@@ -4,7 +4,6 @@ 
 /* Origin: Joseph Myers <jsm@polyomino.org.uk> */
 /* { dg-do compile } */
 /* { dg-options "-ansi -pedantic-errors -Woverflow" } */
-/* { dg-skip-if "No Inf support" { spu-*-* } } */
 
 void
 f (void)
Index: gcc/testsuite/gcc.dg/float-range-3.c
===================================================================
--- gcc/testsuite/gcc.dg/float-range-3.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/float-range-3.c	(working copy)
@@ -1,7 +1,6 @@ 
 /* PR 23572 : warnings for out of range floating-point constants.  */
 /* { dg-do compile } */
 /* { dg-options "-std=c99" } */
-/* { dg-skip-if "No Inf support" { spu-*-* } } */
 #include <math.h>
 
 #ifndef INFINITY
Index: gcc/testsuite/gcc.dg/float-range-4.c
===================================================================
--- gcc/testsuite/gcc.dg/float-range-4.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/float-range-4.c	(working copy)
@@ -1,7 +1,6 @@ 
 /* PR 23572 : warnings for out of range floating-point constants.  */
 /* { dg-do compile } */
 /* { dg-options "-Wno-overflow -std=c99" } */
-/* { dg-skip-if "No Inf support" { spu-*-* } } */
 #include <math.h>
 
 #ifndef INFINITY
Index: gcc/testsuite/gcc.dg/float-range-5.c
===================================================================
--- gcc/testsuite/gcc.dg/float-range-5.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/float-range-5.c	(working copy)
@@ -2,7 +2,6 @@ 
    Test that they are NOT pedantic warnings.  */
 /* { dg-do compile } */
 /* { dg-options "-pedantic-errors -std=c99" } */
-/* { dg-skip-if "No Inf support" { spu-*-* } } */
 #include <math.h>
 
 #ifndef INFINITY
Index: gcc/testsuite/gcc.dg/fold-overflow-1.c
===================================================================
--- gcc/testsuite/gcc.dg/fold-overflow-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/fold-overflow-1.c	(working copy)
@@ -1,6 +1,5 @@ 
 /* { dg-do compile } */
 /* { dg-require-effective-target int32plus } */
-/* { dg-skip-if "No Inf support" { spu-*-* } } */
 /* { dg-options "-O -ftrapping-math" } */
 
 /* There should be exactly 2 +Inf in the assembly file.  */
Index: gcc/testsuite/gcc.dg/format/ms_unnamed-1.c
===================================================================
--- gcc/testsuite/gcc.dg/format/ms_unnamed-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/format/ms_unnamed-1.c	(working copy)
@@ -10,7 +10,7 @@ 
 
 /* Definition of TItype follows same logic as in gcc.dg/titype-1.c,
    but must be a #define to avoid giving the type a name.  */
-#if (defined(__LP64__) && !defined(__hppa__)) || defined(__SPU__)
+#if defined(__LP64__) && !defined(__hppa__)
 #define TItype int __attribute__ ((mode (TI)))
 #else
 #define TItype long
Index: gcc/testsuite/gcc.dg/format/unnamed-1.c
===================================================================
--- gcc/testsuite/gcc.dg/format/unnamed-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/format/unnamed-1.c	(working copy)
@@ -10,7 +10,7 @@ 
 
 /* Definition of TItype follows same logic as in gcc.dg/titype-1.c,
    but must be a #define to avoid giving the type a name.  */
-#if (defined(__LP64__) && !defined(__hppa__)) || defined(__SPU__)
+#if defined(__LP64__) && !defined(__hppa__)
 #define TItype int __attribute__ ((mode (TI)))
 #else
 #define TItype long
Index: gcc/testsuite/gcc.dg/hex-round-1.c
===================================================================
--- gcc/testsuite/gcc.dg/hex-round-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/hex-round-1.c	(working copy)
@@ -1,7 +1,6 @@ 
 /* Test for hexadecimal float rounding: bug 21720.  */
 /* { dg-do link } */
 /* { dg-options "-O -std=gnu99" } */
-/* { dg-skip-if "SPU float rounds towards zero" { spu-*-* } } */
 
 #include <float.h>
 
Index: gcc/testsuite/gcc.dg/hex-round-2.c
===================================================================
--- gcc/testsuite/gcc.dg/hex-round-2.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/hex-round-2.c	(working copy)
@@ -2,7 +2,6 @@ 
    in number.  */
 /* { dg-do link } */
 /* { dg-options "-O -std=gnu99" } */
-/* { dg-skip-if "SPU float rounds towards zero" { spu-*-* } } */
 
 #include <float.h>
 
Index: gcc/testsuite/gcc.dg/lower-subreg-1.c
===================================================================
--- gcc/testsuite/gcc.dg/lower-subreg-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/lower-subreg-1.c	(working copy)
@@ -1,4 +1,4 @@ 
-/* { dg-do compile { target { ! { mips64 || { aarch64*-*-* arm*-*-* ia64-*-* sparc*-*-* spu-*-* tilegx-*-* } } } } } */
+/* { dg-do compile { target { ! { mips64 || { aarch64*-*-* arm*-*-* ia64-*-* sparc*-*-* tilegx-*-* } } } } } */
 /* { dg-options "-O -fdump-rtl-subreg1" } */
 /* { dg-additional-options "-mno-stv" { target ia32 } } */
 /* { dg-skip-if "" { { i?86-*-* x86_64-*-* } && x32 } } */
Index: gcc/testsuite/gcc.dg/nrv3.c
===================================================================
--- gcc/testsuite/gcc.dg/nrv3.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/nrv3.c	(working copy)
@@ -3,12 +3,7 @@ 
 /* { dg-do compile } */
 /* { dg-options "-O -fdump-tree-optimized" } */
 
-#ifdef __SPU__
-/* SPU returns aggregates up to 1172 bytes in registers.  */
-typedef struct { int x[300]; void *y; } S;
-#else
 typedef struct { int x[20]; void *y; } S;
-#endif
 typedef struct { int a; S b; } T;
 S nrv_candidate (void);
 void use_result (S, int);
Index: gcc/testsuite/gcc.dg/pr15784-3.c
===================================================================
--- gcc/testsuite/gcc.dg/pr15784-3.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/pr15784-3.c	(working copy)
@@ -1,5 +1,4 @@ 
 /* { dg-do compile } */
-/* { dg-skip-if "No NaN support" { spu-*-* } } */
 /* SH4 without -mieee defaults to -ffinite-math-only.  */
 /* { dg-options "-fdump-tree-gimple -fno-finite-math-only" } */
 /* Test for folding abs(x) where appropriate.  */
Index: gcc/testsuite/gcc.dg/pr27095.c
===================================================================
--- gcc/testsuite/gcc.dg/pr27095.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/pr27095.c	(working copy)
@@ -19,7 +19,7 @@ 
   memset (x, argc, strlen (x));
   return 0;
 }
-/* { dg-final { scan-assembler-not "(?n)strlen\(.*\n\)+.*strlen" { target { ! { powerpc*-*-darwin* hppa*-*-hpux* ia64-*-hpux* alpha*-*-* spu-*-* tic6x-*-* } } } } } */
+/* { dg-final { scan-assembler-not "(?n)strlen\(.*\n\)+.*strlen" { target { ! { powerpc*-*-darwin* hppa*-*-hpux* ia64-*-hpux* alpha*-*-* tic6x-*-* } } } } } */
 /* hppa*-*-hpux* has an IMPORT statement for strlen (plus the branch). */
 /* *-*-darwin* has something similar. */
 /* tic6x emits a comment at the point where the delayed branch happens.  */
@@ -29,5 +29,3 @@ 
 /* { dg-final { scan-assembler-not "(?n)strlen\(.*\n\)+.*strlen\(.*\n\)+.*strlen\(.*\n\)+.*strlen" { target ia64-*-hpux* } } } */
 /* alpha-*-* has a GOT load and the call.  */
 /* { dg-final { scan-assembler-not "(?n)jsr .*,strlen\(.*\n\)+.*jsr .*,strlen" { target alpha*-*-* } } } */
-/* spu-*-* has a branch hint and the call.  */
-/* { dg-final { scan-assembler-not "(?n)brsl.*,strlen\(.*\n\)+.*brsl.*,strlen" { target spu-*-* } } } */
Index: gcc/testsuite/gcc.dg/pr28243.c
===================================================================
--- gcc/testsuite/gcc.dg/pr28243.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/pr28243.c	(working copy)
@@ -4,7 +4,6 @@ 
 /* { dg-do compile } */
 /* { dg-require-effective-target fpic } */
 /* { dg-options "-O2 -ftracer -fPIC" } */
-/* { dg-skip-if "requires unsupported run-time relocation" { spu-*-* } } */
 
 struct displayfuncs {
   void (*init) ();
Index: gcc/testsuite/gcc.dg/pr28796-2.c
===================================================================
--- gcc/testsuite/gcc.dg/pr28796-2.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/pr28796-2.c	(working copy)
@@ -1,7 +1,6 @@ 
 /* { dg-do run } */
 /* { dg-options "-O2 -funsafe-math-optimizations -fno-finite-math-only -DUNSAFE" } */
 /* { dg-add-options ieee } */
-/* { dg-skip-if "No Inf/NaN support" { spu-*-* } } */
 
 #include "tg-tests.h"
 
Index: gcc/testsuite/gcc.dg/pr30551-3.c
===================================================================
--- gcc/testsuite/gcc.dg/pr30551-3.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/pr30551-3.c	(working copy)
@@ -1,7 +1,6 @@ 
 /* PR 30551 -Wmain is enabled by -pedantic-errors. */
 /* { dg-do compile } */
 /* { dg-options "-pedantic-errors" } */
-/* { dg-skip-if "-Wmain not enabled with -pedantic on SPU" { spu-*-* } } */
 void main(char a) {} /* { dg-error "first argument of .main. should be .int." "int" } */
 /* { dg-error ".main. takes only zero or two arguments" "zero or two" { target *-*-* } .-1 } */ 
 /* { dg-error "return type of .main. is not .int." "return type" { target *-*-* } .-2 } */ 
Index: gcc/testsuite/gcc.dg/pr30551-6.c
===================================================================
--- gcc/testsuite/gcc.dg/pr30551-6.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/pr30551-6.c	(working copy)
@@ -1,7 +1,6 @@ 
 /* PR 30551 -Wmain is enabled by -pedantic. */
 /* { dg-do compile } */
 /* { dg-options "-pedantic" } */
-/* { dg-skip-if "-Wmain not enabled with -pedantic on SPU" { spu-*-* } } */
 void main(char a) {} /* { dg-warning "first argument of .main. should be .int." "int" } */
 /* { dg-warning ".main. takes only zero or two arguments" "zero or two" { target *-*-* } .-1 } */ 
 /* { dg-warning "return type of .main. is not .int." "return type" { target *-*-* } .-2 } */ 
Index: gcc/testsuite/gcc.dg/pr30551.c
===================================================================
--- gcc/testsuite/gcc.dg/pr30551.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/pr30551.c	(working copy)
@@ -1,7 +1,6 @@ 
 /* PR 30551 -Wmain is enabled by -Wall.  */
 /* { dg-do compile } */
 /* { dg-options "-Wall" } */
-/* { dg-skip-if "-Wmain not enabled with -Wall on SPU" { spu-*-* } } */
 void main(char a) {} /* { dg-warning "first argument of .main. should be .int." "int" } */
 /* { dg-warning ".main. takes only zero or two arguments" "zero or two" { target *-*-* } .-1 } */ 
 /* { dg-warning "return type of .main. is not .int." "return type" { target *-*-* } .-2 } */ 
Index: gcc/testsuite/gcc.dg/pr70317.c
===================================================================
--- gcc/testsuite/gcc.dg/pr70317.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/pr70317.c	(working copy)
@@ -1,6 +1,6 @@ 
 /* PR tree-optimization/70317 */
 /* { dg-do compile } */
-/* { dg-skip-if "No NaN support" { spu*-*-* vax*-*-* pdp11*-*-* } } */
+/* { dg-skip-if "No NaN support" { vax*-*-* pdp11*-*-* } } */
 /* { dg-options "-O2 -fdump-tree-optimized" } */
 /* { dg-additional-options "-fno-common" { target hppa*-*-hpux* } } */
 
Index: gcc/testsuite/gcc.dg/sms-1.c
===================================================================
--- gcc/testsuite/gcc.dg/sms-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/sms-1.c	(working copy)
@@ -40,5 +40,5 @@ 
   return 0;
 }
 
-/* { dg-final { scan-rtl-dump-times "SMS succeeded" 1 "sms"  { target powerpc*-*-* spu-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "SMS succeeded" 1 "sms"  { target powerpc*-*-* } } } */
 
Index: gcc/testsuite/gcc.dg/sms-2.c
===================================================================
--- gcc/testsuite/gcc.dg/sms-2.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/sms-2.c	(working copy)
@@ -32,4 +32,4 @@ 
       }
 }
 
-/* { dg-final { scan-rtl-dump-times "SMS loop many exits" 1 "sms" { target spu-*-* powerpc*-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "SMS loop many exits" 1 "sms" { target powerpc*-*-* } } } */
Index: gcc/testsuite/gcc.dg/sms-3.c
===================================================================
--- gcc/testsuite/gcc.dg/sms-3.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/sms-3.c	(working copy)
@@ -39,5 +39,5 @@ 
   return 0;
 }
 
-/* { dg-final { scan-rtl-dump-times "SMS succeeded" 1 "sms" { target spu-*-* powerpc*-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "SMS succeeded" 1 "sms" { target powerpc*-*-* } } } */
 
Index: gcc/testsuite/gcc.dg/sms-4.c
===================================================================
--- gcc/testsuite/gcc.dg/sms-4.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/sms-4.c	(working copy)
@@ -35,5 +35,5 @@ 
   return 0;
 }
 
-/* { dg-final { scan-rtl-dump-times "SMS succeeded" 1 "sms" { target spu-*-* powerpc*-*-* } } } */
+/* { dg-final { scan-rtl-dump-times "SMS succeeded" 1 "sms" { target powerpc*-*-* } } } */
 
Index: gcc/testsuite/gcc.dg/sms-5.c
===================================================================
--- gcc/testsuite/gcc.dg/sms-5.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/sms-5.c	(working copy)
@@ -46,6 +46,5 @@ 
   return 0;
 }
 
-/* { dg-final { scan-rtl-dump-times "SMS succeeded" 1 "sms" { target spu-*-* } } } */
 
 
Index: gcc/testsuite/gcc.dg/sms-6.c
===================================================================
--- gcc/testsuite/gcc.dg/sms-6.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/sms-6.c	(working copy)
@@ -42,5 +42,4 @@ 
   return 0;        
 }
 
-/* { dg-final { scan-rtl-dump-times "SMS succeeded" 1 "sms" { target spu-*-* } } } */
 /* { dg-final { scan-rtl-dump-times "SMS succeeded" 3 "sms" { target powerpc*-*-* } } } */
Index: gcc/testsuite/gcc.dg/sms-7.c
===================================================================
--- gcc/testsuite/gcc.dg/sms-7.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/sms-7.c	(working copy)
@@ -44,5 +44,4 @@ 
   return 0;        
 }
 
-/* { dg-final { scan-rtl-dump-times "SMS succeeded" 1 "sms" { target spu-*-* } } } */
 
Index: gcc/testsuite/gcc.dg/stack-usage-1.c
===================================================================
--- gcc/testsuite/gcc.dg/stack-usage-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/stack-usage-1.c	(working copy)
@@ -79,8 +79,6 @@ 
 #  define SIZE 96  /* 256 - 160 bytes for register save area */
 #elif defined (__s390__)
 #  define SIZE 160 /* 256 -  96 bytes for register save area */
-#elif defined (__SPU__)
-#  define SIZE 224
 #elif defined (__epiphany__)
 #  define SIZE (256 - __EPIPHANY_STACK_OFFSET__)
 #elif defined (__RL78__)
Index: gcc/testsuite/gcc.dg/strlenopt-73.c
===================================================================
--- gcc/testsuite/gcc.dg/strlenopt-73.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/strlenopt-73.c	(working copy)
@@ -89,7 +89,7 @@ 
 
 /* The following tests assume GCC transforms the memcpy calls into
    int128_t assignments which it does only on targets that define
-   the MOVE_MAX macro to 16.  That's only spu, s390, and i386 with
+   the MOVE_MAX macro to 16.  That's only s390 and i386 with
    int128_t support.  */
 
 const char a8[32] = "01234567";
Index: gcc/testsuite/gcc.dg/titype-1.c
===================================================================
--- gcc/testsuite/gcc.dg/titype-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/titype-1.c	(working copy)
@@ -1,7 +1,7 @@ 
 /* { dg-do run } */
 
 /* Not all platforms support TImode integers.  */
-#if (defined(__LP64__) && !defined(__hppa__)) || defined(_WIN64) || defined(__SPU__)
+#if (defined(__LP64__) && !defined(__hppa__)) || defined(_WIN64)
 typedef int TItype __attribute__ ((mode (TI)));
 #else
 typedef long TItype;
Index: gcc/testsuite/gcc.dg/tls/thr-cse-1.c
===================================================================
--- gcc/testsuite/gcc.dg/tls/thr-cse-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/tls/thr-cse-1.c	(working copy)
@@ -18,10 +18,9 @@ 
   return a;
 }
 
-/* { dg-final { scan-assembler-not "emutls_get_address.*emutls_get_address.*" { target { ! { "*-wrs-vxworks"  "*-*-darwin8"  "hppa*-*-hpux*" "spu-*-*" "i?86-*-mingw*" "x86_64-*-mingw*" visium-*-* } } } } } */
+/* { dg-final { scan-assembler-not "emutls_get_address.*emutls_get_address.*" { target { ! { "*-wrs-vxworks"  "*-*-darwin8"  "hppa*-*-hpux*" "i?86-*-mingw*" "x86_64-*-mingw*" visium-*-* } } } } } */
 /* { dg-final { scan-assembler-not "call\tL___emutls_get_address.stub.*call\tL___emutls_get_address.stub.*" { target "*-*-darwin8" } } } */
 /* { dg-final { scan-assembler-not "(b,l|bl) __emutls_get_address.*(b,l|bl) __emutls_get_address.*" { target "hppa*-*-hpux*" } } } */
-/* { dg-final { scan-assembler-not "(brsl|brasl)\t__emutls_get_address.*(brsl|brasl)\t__emutls_get_address.*" { target spu-*-* } } } */
 /* { dg-final { scan-assembler-not "tls_lookup.*tls_lookup.*" { target *-wrs-vxworks } } } */
 /* { dg-final { scan-assembler-not "call\t___emutls_get_address.*call\t___emutls_get_address" { target "i?86-*-mingw*" } } } */
 /* { dg-final { scan-assembler-not "call\t__emutls_get_address.*call\t__emutls_get_address" { target "x86_64-*-mingw*" } } } */
Index: gcc/testsuite/gcc.dg/torture/builtin-attr-1.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/builtin-attr-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/torture/builtin-attr-1.c	(working copy)
@@ -339,7 +339,7 @@ 
 BUILTIN_FPTEST0    (huge_val)
 FPTEST2            (hypot)
 FPTEST1T           (ilogb, int)
-BUILTIN_FPTEST0    (inf) /* { dg-warning "does not support infinity" "INF unsupported" { target vax-*-* pdp11-*-* spu-*-* } } */
+BUILTIN_FPTEST0    (inf) /* { dg-warning "does not support infinity" "INF unsupported" { target vax-*-* pdp11-*-* } } */
 FPTEST1            (j0)
 FPTEST1            (j1)
 FPTEST2ARG1        (jn, int)
Index: gcc/testsuite/gcc.dg/torture/builtin-complex-1.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/builtin-complex-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/torture/builtin-complex-1.c	(working copy)
@@ -19,13 +19,11 @@ 
       abort ();								\
   } while (0)
 
-#ifndef __SPU__
 void
 comparef (float a, float b)
 {
   COMPARE_BODY (a, b, float, __builtin_copysignf);
 }
-#endif
 
 void
 compare (double a, double b)
@@ -39,7 +37,6 @@ 
   COMPARE_BODY (a, b, long double, __builtin_copysignl);
 }
 
-#ifndef __SPU__
 void
 comparecf (_Complex float a, float r, float i)
 {
@@ -46,7 +43,6 @@ 
   comparef (__real__ a, r);
   comparef (__imag__ a, i);
 }
-#endif
 
 void
 comparec (_Complex double a, double r, double i)
@@ -95,10 +91,8 @@ 
 void
 check_float (void)
 {
-#ifndef __SPU__
   ALL_CHECKS (0.0f, -0.0f, __builtin_nanf(""), __builtin_inff(),
 	      float, comparecf);
-#endif
 }
 
 void
Index: gcc/testsuite/gcc.dg/torture/builtin-cproj-1.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/builtin-cproj-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/torture/builtin-cproj-1.c	(working copy)
@@ -18,11 +18,7 @@ 
 #define CPROJ(X) __builtin_cproj(X)
 #define CPROJF(X) __builtin_cprojf(X)
 #define CPROJL(X) __builtin_cprojl(X)
-#ifndef __SPU__
 #define INF __builtin_inff()
-#else
-#define INF __builtin_inf()
-#endif
 #define I 1i
 #define CPSGN(X,Y) __builtin_copysignf((X),(Y))
 #define CIMAG(X) __builtin_cimagf(X)
@@ -36,7 +32,6 @@ 
 
 /* Test that (cproj(X) == ZERO+Inf) and that the signs of the
    imaginary parts match.  ZERO is +/- 0i.  */
-#ifndef __SPU__
 #define TEST_CST_INF(X,ZERO) do { \
   if (CPROJF(X) != ZERO+INF || CKSGN_I(CPROJF(X),ZERO+INF)) \
     link_error(__LINE__); \
@@ -45,14 +40,6 @@ 
   if (CPROJL(X) != ZERO+INF || CKSGN_I(CPROJL(X),ZERO+INF)) \
     link_error(__LINE__); \
 } while (0)
-#else
-#define TEST_CST_INF(X,ZERO) do { \
-  if (CPROJ(X) != ZERO+INF || CKSGN_I(CPROJ(X),ZERO+INF)) \
-    link_error(__LINE__); \
-  if (CPROJL(X) != ZERO+INF || CKSGN_I(CPROJL(X),ZERO+INF)) \
-    link_error(__LINE__); \
-} while (0)
-#endif
 
 /* Test that (cproj(X) == X) for all finite (X).  */
 #define TEST_CST(X) do { \
@@ -62,7 +49,6 @@ 
 
 /* Test that cproj(X + I*INF) -> (ZERO + INF), where ZERO is +-0i.
    NEG is either blank or a minus sign when ZERO is negative.  */
-#ifndef __SPU__
 #define TEST_IMAG_INF(NEG,ZERO) do { \
   if (CPROJF(f+I*NEG INF) != ZERO+INF \
       || CKSGN_I (CPROJF(f+I*NEG INF), ZERO+INF)) \
@@ -74,19 +60,8 @@ 
       || CKSGN_I (CPROJL(ld+I*NEG INF), ZERO+INF)) \
     link_error(__LINE__); \
 } while (0)
-#else
-#define TEST_IMAG_INF(NEG,ZERO) do { \
-  if (CPROJ(d+I*NEG INF) != ZERO+INF \
-      || CKSGN_I (CPROJ(d+I*NEG INF), ZERO+INF)) \
-    link_error(__LINE__); \
-  if (CPROJL(ld+I*NEG INF) != ZERO+INF \
-      || CKSGN_I (CPROJL(ld+I*NEG INF), ZERO+INF)) \
-    link_error(__LINE__); \
-} while (0)
-#endif
 
 /* Like TEST_IMAG_INF, but check that side effects are honored.  */
-#ifndef __SPU__
 #define TEST_IMAG_INF_SIDE_EFFECT(NEG,ZERO) do { \
   int side = 4; \
   if (CPROJF(++side+I*NEG INF) != ZERO+INF \
@@ -101,23 +76,9 @@ 
   if (side != 10) \
     link_error(__LINE__); \
 } while (0)
-#else
-#define TEST_IMAG_INF_SIDE_EFFECT(NEG,ZERO) do { \
-  int side = 4; \
-  if (CPROJ(++side+I*NEG INF) != ZERO+INF \
-      || CKSGN_I (CPROJ(++side+I*NEG INF), ZERO+INF)) \
-    link_error(__LINE__); \
-  if (CPROJL(++side+I*NEG INF) != ZERO+INF \
-      || CKSGN_I (CPROJL(++side+I*NEG INF), ZERO+INF)) \
-    link_error(__LINE__); \
-  if (side != 8) \
-    link_error(__LINE__); \
-} while (0)
-#endif
 
 /* Test that cproj(INF, POSITIVE) -> INF+0i.  NEG is either blank or a
    minus sign to test negative INF.  */
-#ifndef __SPU__
 #define TEST_REAL_INF(NEG) do { \
   __real cf = NEG INF; \
   __imag cf = (x ? 4 : 5); \
@@ -135,23 +96,8 @@ 
       || CKSGN_I (CPROJL(cld), INF)) \
     link_error(__LINE__); \
 } while (0)
-#else
-#define TEST_REAL_INF(NEG) do { \
-  __real cd = NEG INF; \
-  __imag cd = (x ? 4 : 5); \
-  if (CPROJ(cd) != INF \
-      || CKSGN_I (CPROJ(cd), INF)) \
-    link_error(__LINE__); \
-  __real cld = NEG INF; \
-  __imag cld = (x ? 4 : 5); \
-  if (CPROJL(cld) != INF \
-      || CKSGN_I (CPROJL(cld), INF)) \
-    link_error(__LINE__); \
-} while (0)
-#endif
 
 /* Like TEST_REAL_INF, but check that side effects are honored.  */
-#ifndef __SPU__
 #define TEST_REAL_INF_SIDE_EFFECT(NEG) do { \
   int side = -9; \
   __real cf = NEG INF; \
@@ -172,23 +118,6 @@ 
   if (side != -3) \
     link_error(__LINE__); \
 } while (0)
-#else
-#define TEST_REAL_INF_SIDE_EFFECT(NEG) do { \
-  int side = -9; \
-  __real cd = NEG INF; \
-  __imag cd = (x ? 4 : 5); \
-  if (CPROJ((++side,cd)) != INF \
-      || CKSGN_I (CPROJ((++side,cd)), INF)) \
-    link_error(__LINE__); \
-  __real cld = NEG INF; \
-  __imag cld = (x ? 4 : 5); \
-  if (CPROJL((++side,cld)) != INF \
-      || CKSGN_I (CPROJL((++side,cld)), INF)) \
-    link_error(__LINE__); \
-  if (side != -5) \
-    link_error(__LINE__); \
-} while (0)
-#endif
 
 void foo (_Complex long double cld, _Complex double cd, _Complex float cf,
 	  long double ld, double d, float f, int x)
Index: gcc/testsuite/gcc.dg/torture/builtin-frexp-1.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/builtin-frexp-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/torture/builtin-frexp-1.c	(working copy)
@@ -54,7 +54,6 @@ 
 
 /* Test that FUNCRES(frexp(NEG FUNCARG(ARGARG),&i)) is false.  Check
    the sign as well.  Ensure side-effects are evaluated in i.  */
-#ifndef __SPU__
 #define TESTIT_FREXP2(NEG,FUNCARG,ARGARG,FUNCRES) do { \
   int i=5; \
   if (!__builtin_##FUNCRES##f(__builtin_frexpf(NEG __builtin_##FUNCARG##f(ARGARG),&i)) \
@@ -70,20 +69,6 @@ 
       || CKEXP(i,8)) \
     link_error(__LINE__); \
   } while (0)
-#else
-#define TESTIT_FREXP2(NEG,FUNCARG,ARGARG,FUNCRES) do { \
-  int i=6; \
-  /* SPU single-precision floating point format does not support Inf or Nan.  */ \
-  if (!__builtin_##FUNCRES(__builtin_frexp(NEG __builtin_##FUNCARG(ARGARG),&i)) \
-      || CKSGN(__builtin_frexp(NEG __builtin_##FUNCARG(ARGARG),(i++,&i)), NEG __builtin_##FUNCARG(ARGARG)) \
-      || CKEXP(i,7)) \
-    link_error(__LINE__); \
-  if (!__builtin_##FUNCRES##l(__builtin_frexpl(NEG __builtin_##FUNCARG##l(ARGARG),&i)) \
-      || CKSGN_L(__builtin_frexpl(NEG __builtin_##FUNCARG##l(ARGARG),(i++,&i)), NEG __builtin_##FUNCARG##l(ARGARG)) \
-      || CKEXP(i,8)) \
-    link_error(__LINE__); \
-  } while (0)
-#endif
 
 void __attribute__ ((__noinline__))
 foo(void)
Index: gcc/testsuite/gcc.dg/torture/builtin-ldexp-1.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/builtin-ldexp-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/torture/builtin-ldexp-1.c	(working copy)
@@ -47,7 +47,6 @@ 
 
 /* Test that FUNCRES(FUNC(NEG FUNCARG(ARGARG),ARG2)) is false.  Check
    the sign as well.  */
-#ifndef __SPU__
 #define TESTIT3(FUNC,NEG,FUNCARG,ARGARG,ARG2,FUNCRES) do { \
   if (!__builtin_##FUNCRES##f(__builtin_##FUNC##f(NEG __builtin_##FUNCARG##f(ARGARG),ARG2)) \
       || CKSGN_F(__builtin_##FUNC##f(NEG __builtin_##FUNCARG##f(ARGARG),ARG2), NEG __builtin_##FUNCARG##f(ARGARG))) \
@@ -59,17 +58,6 @@ 
       || CKSGN_L(__builtin_##FUNC##l(NEG __builtin_##FUNCARG##l(ARGARG),ARG2), NEG __builtin_##FUNCARG##l(ARGARG))) \
     link_error(__LINE__); \
   } while (0)
-#else
-#define TESTIT3(FUNC,NEG,FUNCARG,ARGARG,ARG2,FUNCRES) do { \
-  /* SPU single-precision floating point format does not support Inf or Nan.  */ \
-  if (!__builtin_##FUNCRES(__builtin_##FUNC(NEG __builtin_##FUNCARG(ARGARG),ARG2)) \
-      || CKSGN(__builtin_##FUNC(NEG __builtin_##FUNCARG(ARGARG),ARG2), NEG __builtin_##FUNCARG(ARGARG))) \
-    link_error(__LINE__); \
-  if (!__builtin_##FUNCRES##l(__builtin_##FUNC##l(NEG __builtin_##FUNCARG##l(ARGARG),ARG2)) \
-      || CKSGN_L(__builtin_##FUNC##l(NEG __builtin_##FUNCARG##l(ARGARG),ARG2), NEG __builtin_##FUNCARG##l(ARGARG))) \
-    link_error(__LINE__); \
-  } while (0)
-#endif
 
 /* Using foo==MIN/MAX float values, test that FUNC(foo,EXP) == foo*exp2(EXP),
    and also that FUNC(foo,-EXP) == foo*exp2(-EXP).  */
Index: gcc/testsuite/gcc.dg/torture/builtin-logb-1.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/builtin-logb-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/torture/builtin-logb-1.c	(working copy)
@@ -48,7 +48,6 @@ 
 
 /* Test if FUNCRES(FUNC(NEG FUNCARG(ARGARG))) is false.  Check the
    sign as well.  */
-#ifndef __SPU__
 #define TESTIT3(FUNC,NEG,FUNCARG,ARGARG,FUNCRES,NEG2) do { \
   if (!__builtin_##FUNCRES##f(__builtin_##FUNC(NEG __builtin_##FUNCARG##f(ARGARG))) \
       || CKSGN_F(__builtin_##FUNC##f(NEG __builtin_##FUNCARG##f(ARGARG)), NEG2 __builtin_##FUNCARG##f(ARGARG))) \
@@ -60,17 +59,6 @@ 
       || CKSGN_L(__builtin_##FUNC##l(NEG __builtin_##FUNCARG##l(ARGARG)), NEG2 __builtin_##FUNCARG##l(ARGARG))) \
     link_error(__LINE__); \
   } while (0)
-#else
-#define TESTIT3(FUNC,NEG,FUNCARG,ARGARG,FUNCRES,NEG2) do { \
-  /* SPU single-precision floating point format does not support Inf or Nan.  */ \
-  if (!__builtin_##FUNCRES(__builtin_##FUNC(NEG __builtin_##FUNCARG(ARGARG))) \
-      || CKSGN(__builtin_##FUNC(NEG __builtin_##FUNCARG(ARGARG)), NEG2 __builtin_##FUNCARG(ARGARG))) \
-    link_error(__LINE__); \
-  if (!__builtin_##FUNCRES##l(__builtin_##FUNC##l(NEG __builtin_##FUNCARG##l(ARGARG))) \
-      || CKSGN_L(__builtin_##FUNC##l(NEG __builtin_##FUNCARG##l(ARGARG)), NEG2 __builtin_##FUNCARG##l(ARGARG))) \
-    link_error(__LINE__); \
-  } while (0)
-#endif
 
 void __attribute__ ((__noinline__))
 foo(void)
Index: gcc/testsuite/gcc.dg/torture/builtin-math-2.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/builtin-math-2.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/torture/builtin-math-2.c	(working copy)
@@ -60,21 +60,15 @@ 
 void bar()
 {
   /* An argument of NaN is not evaluated at compile-time.  */
-#ifndef __SPU__
   foof (__builtin_exp2f (__builtin_nanf("")));
-#endif
   foo (__builtin_exp2 (__builtin_nan("")));
   fool (__builtin_exp2l (__builtin_nanl("")));
 
   /* An argument of Inf/-Inf is not evaluated at compile-time.  */
-#ifndef __SPU__
   foof (__builtin_exp2f (__builtin_inff()));
-#endif
   foo (__builtin_exp2 (__builtin_inf()));
   fool (__builtin_exp2l (__builtin_infl()));
-#ifndef __SPU__
   foof (__builtin_exp2f (-__builtin_inff()));
-#endif
   foo (__builtin_exp2 (-__builtin_inf()));
   fool (__builtin_exp2l (-__builtin_infl()));
 
@@ -137,36 +131,24 @@ 
   TESTIT (tgamma, -3.0);
 
   /* An argument of NaN is not evaluated at compile-time.  */
-#ifndef __SPU__
   foof (__builtin_powf (__builtin_nanf(""), 2.5F));
-#endif
   foo (__builtin_pow (__builtin_nan(""), 2.5));
   fool (__builtin_powl (__builtin_nanl(""), 2.5L));
-#ifndef __SPU__
   foof (__builtin_powf (2.5F, __builtin_nanf("")));
-#endif
   foo (__builtin_pow (2.5, __builtin_nan("")));
   fool (__builtin_powl (2.5L, __builtin_nanl("")));
 
   /* An argument of Inf/-Inf is not evaluated at compile-time.  */
-#ifndef __SPU__
   foof (__builtin_powf (__builtin_inff(), 2.5F));
-#endif
   foo (__builtin_pow (__builtin_inf(), 2.5));
   fool (__builtin_powl (__builtin_infl(), 2.5L));
-#ifndef __SPU__
   foof (__builtin_powf (-__builtin_inff(), 2.5F));
-#endif
   foo (__builtin_pow (-__builtin_inf(), 2.5));
   fool (__builtin_powl (-__builtin_infl(), 2.5L));
-#ifndef __SPU__
   foof (__builtin_powf (2.5F, __builtin_inff()));
-#endif
   foo (__builtin_pow (2.5, __builtin_inf()));
   fool (__builtin_powl (2.5L, __builtin_infl()));
-#ifndef __SPU__
   foof (__builtin_powf (2.5F, -__builtin_inff()));
-#endif
   foo (__builtin_pow (2.5, -__builtin_inf()));
   fool (__builtin_powl (2.5L, -__builtin_infl()));
 
@@ -242,25 +224,17 @@ 
   TESTIT (ilogb, 0.0);
   TESTIT (ilogb, -0.0);
 
-#ifndef __SPU__
   foof (__builtin_ilogbf (__builtin_inff()));
-#endif
   foo (__builtin_ilogb (__builtin_inf()));
   fool (__builtin_ilogbl (__builtin_infl()));
-#ifndef __SPU__
   foof (__builtin_ilogbf (-__builtin_inff()));
-#endif
   foo (__builtin_ilogb (-__builtin_inf()));
   fool (__builtin_ilogbl (-__builtin_infl()));
 
-#ifndef __SPU__
   foof (__builtin_ilogbf (__builtin_nanf("")));
-#endif
   foo (__builtin_ilogb (__builtin_nan("")));
   fool (__builtin_ilogbl (__builtin_nanl("")));
-#ifndef __SPU__
   foof (__builtin_ilogbf (-__builtin_nanf("")));
-#endif
   foo (__builtin_ilogb (-__builtin_nan("")));
   fool (__builtin_ilogbl (-__builtin_nanl("")));
 
@@ -306,8 +280,7 @@ 
 }
 
 /* { dg-final { scan-tree-dump-times "exp2 " 9 "original" } } */
-/* { dg-final { scan-tree-dump-times "exp2f" 9 "original" { target { ! { spu*-*-* } } } } } */
-/* { dg-final { scan-tree-dump-times "exp2f" 6 "original" { target { spu*-*-* } } } } */
+/* { dg-final { scan-tree-dump-times "exp2f" 9 "original" } } */
 /* { dg-final { scan-tree-dump-times "exp2l" 9 "original" } } */
 /* { dg-final { scan-tree-dump-times "asin " 2 "original" } } */
 /* { dg-final { scan-tree-dump-times "asinf" 2 "original" } } */
@@ -337,8 +310,7 @@ 
 /* { dg-final { scan-tree-dump-times "tgammaf" 5 "original" } } */
 /* { dg-final { scan-tree-dump-times "tgammal" 5 "original" } } */
 /* { dg-final { scan-tree-dump-times "pow " 13 "original" } } */
-/* { dg-final { scan-tree-dump-times "powf" 13 "original" { target { ! { spu*-*-* } } } } } */
-/* { dg-final { scan-tree-dump-times "powf" 7 "original" { target { spu*-*-* } } } } */
+/* { dg-final { scan-tree-dump-times "powf" 13 "original" } } */
 /* { dg-final { scan-tree-dump-times "powl" 13 "original" } } */
 /* { dg-final { scan-tree-dump-times "sqrt " 1 "original" } } */
 /* { dg-final { scan-tree-dump-times "sqrtf" 1 "original" } } */
@@ -356,8 +328,7 @@ 
 /* { dg-final { scan-tree-dump-times "_logbf" 2 "original" } } */
 /* { dg-final { scan-tree-dump-times "_logbl" 2 "original" } } */
 /* { dg-final { scan-tree-dump-times "ilogb " 6 "original" } } */
-/* { dg-final { scan-tree-dump-times "ilogbf" 6 "original" { target { ! { spu*-*-* } } } } } */
-/* { dg-final { scan-tree-dump-times "ilogbf" 2 "original" { target { spu*-*-* } } } } */
+/* { dg-final { scan-tree-dump-times "ilogbf" 6 "original" } } */
 /* { dg-final { scan-tree-dump-times "ilogbl" 6 "original" } } */
 /* { dg-final { scan-tree-dump-times "y0 " 3 "original" } } */
 /* { dg-final { scan-tree-dump-times "y0f" 3 "original" } } */
Index: gcc/testsuite/gcc.dg/torture/builtin-math-5.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/builtin-math-5.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/torture/builtin-math-5.c	(working copy)
@@ -28,21 +28,15 @@ 
 void bar()
 {
   /* An argument of NaN is not evaluated at compile-time.  */
-#ifndef __SPU__
   foof (__builtin_csqrtf (__builtin_nanf("")));
-#endif
   foo (__builtin_csqrt (__builtin_nan("")));
   fool (__builtin_csqrtl (__builtin_nanl("")));
 
   /* An argument of Inf/-Inf is not evaluated at compile-time.  */
-#ifndef __SPU__
   foof (__builtin_csqrtf (__builtin_inff()));
-#endif
   foo (__builtin_csqrt (__builtin_inf()));
   fool (__builtin_csqrtl (__builtin_infl()));
-#ifndef __SPU__
   foof (__builtin_csqrtf (-__builtin_inff()));
-#endif
   foo (__builtin_csqrt (-__builtin_inf()));
   fool (__builtin_csqrtl (-__builtin_infl()));
 
@@ -51,36 +45,24 @@ 
   TESTIT (cexp, -1e20);
   
   /* An argument of NaN is not evaluated at compile-time.  */
-#ifndef __SPU__
   foof (__builtin_cpowf (__builtin_nanf(""), 2.5F));
-#endif
   foo (__builtin_cpow (__builtin_nan(""), 2.5));
   fool (__builtin_cpowl (__builtin_nanl(""), 2.5L));
-#ifndef __SPU__
   foof (__builtin_cpowf (2.5F, __builtin_nanf("")));
-#endif
   foo (__builtin_cpow (2.5, __builtin_nan("")));
   fool (__builtin_cpowl (2.5L, __builtin_nanl("")));
 
   /* An argument of Inf/-Inf is not evaluated at compile-time.  */
-#ifndef __SPU__
   foof (__builtin_cpowf (__builtin_inff(), 2.5F));
-#endif
   foo (__builtin_cpow (__builtin_inf(), 2.5));
   fool (__builtin_cpowl (__builtin_infl(), 2.5L));
-#ifndef __SPU__
   foof (__builtin_cpowf (-__builtin_inff(), 2.5F));
-#endif
   foo (__builtin_cpow (-__builtin_inf(), 2.5));
   fool (__builtin_cpowl (-__builtin_infl(), 2.5L));
-#ifndef __SPU__
   foof (__builtin_cpowf (2.5F, __builtin_inff()));
-#endif
   foo (__builtin_cpow (2.5, __builtin_inf()));
   fool (__builtin_cpowl (2.5L, __builtin_infl()));
-#ifndef __SPU__
   foof (__builtin_cpowf (2.5F, -__builtin_inff()));
-#endif
   foo (__builtin_cpow (2.5, -__builtin_inf()));
   fool (__builtin_cpowl (2.5L, -__builtin_infl()));
 
@@ -110,14 +92,12 @@ 
 
 }
 
-/* { dg-final { scan-tree-dump-times "csqrtf" 3 "original" { target { ! { spu*-*-* } } } } } */
-/* { dg-final { scan-tree-dump-times "csqrtf" 0 "original" { target { spu*-*-* } } } } */
+/* { dg-final { scan-tree-dump-times "csqrtf" 3 "original" } } */
 /* { dg-final { scan-tree-dump-times "csqrt " 3 "original" } } */
 /* { dg-final { scan-tree-dump-times "csqrtl" 3 "original" } } */
 /* { dg-final { scan-tree-dump-times "cexpf" 2 "original" } } */
 /* { dg-final { scan-tree-dump-times "cexp " 2 "original" } } */
 /* { dg-final { scan-tree-dump-times "cexpl" 2 "original" } } */
-/* { dg-final { scan-tree-dump-times "cpowf" 18 "original" { target { ! { spu*-*-* } } } } } */
-/* { dg-final { scan-tree-dump-times "cpowf" 12 "original" { target { spu*-*-* } } } } */
+/* { dg-final { scan-tree-dump-times "cpowf" 18 "original" } } */
 /* { dg-final { scan-tree-dump-times "cpow " 18 "original" } } */
 /* { dg-final { scan-tree-dump-times "cpowl" 18 "original" } } */
Index: gcc/testsuite/gcc.dg/torture/builtin-modf-1.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/builtin-modf-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/torture/builtin-modf-1.c	(working copy)
@@ -63,7 +63,6 @@ 
 /* Test that modf(NEG FUNCARG(ARGARG, &iptr)) == FRACRES &&
    FUNCRES(iptr) is true.  Check the sign of both as well.  This is
    for checking an argument of Inf.  */
-#ifndef __SPU__
 #define TESTIT_MODF2(NEG,FUNCARG,ARGARG,FUNCRES,FRACRES) do { \
   float iptrf = 0.5; double iptr = 0.5; long double iptrl = 0.5; \
   if (__builtin_modff(NEG __builtin_##FUNCARG##f(ARGARG),&iptrf) != FRACRES##f \
@@ -82,27 +81,10 @@ 
       || CKSGN_IPTR_L(iptrl,FRACRES##l)) \
     link_error(__LINE__); \
   } while (0)
-#else
-#define TESTIT_MODF2(NEG,FUNCARG,ARGARG,FUNCRES,FRACRES) do { \
-  /* SPU single-precision floating point format does not support Inf or Nan.  */ \
-  double iptr = 0.5; long double iptrl = 0.5; \
-  if (__builtin_modf(NEG __builtin_##FUNCARG(ARGARG),&iptr) != FRACRES \
-      || CKSGN(__builtin_modf(NEG __builtin_##FUNCARG(ARGARG),&iptr), FRACRES) \
-      || CKIPTR(!__builtin_##FUNCRES(iptr),0) \
-      || CKSGN_IPTR(iptr,FRACRES)) \
-    link_error(__LINE__); \
-  if (__builtin_modfl(NEG __builtin_##FUNCARG##l(ARGARG),&iptrl) != FRACRES##l \
-      || CKSGN_L(__builtin_modfl(NEG __builtin_##FUNCARG##l(ARGARG),&iptrl), FRACRES##l) \
-      || CKIPTR(!__builtin_##FUNCRES##l(iptrl),0) \
-      || CKSGN_IPTR_L(iptrl,FRACRES##l)) \
-    link_error(__LINE__); \
-  } while (0)
-#endif
 
 /* Test that FUNCRES(modf(NEG FUNCARG(ARGARG, &iptr))) is true &&
    FUNCRES(iptr) is true.  Check the sign of both as well.  This is
    for checking an argument of NaN.  */
-#ifndef __SPU__
 #define TESTIT_MODF3(NEG,FUNCARG,ARGARG,FUNCRES) do { \
   float iptrf = 0.5; double iptr = 0.5; long double iptrl = 0.5; \
   if (CKRES(!__builtin_##FUNCRES##f(__builtin_modff(NEG __builtin_##FUNCARG##f(ARGARG),&iptrf))) \
@@ -121,22 +103,6 @@ 
       || CKSGN_IPTR_L(iptrl,NEG 1)) \
     link_error(__LINE__); \
   } while (0)
-#else
-#define TESTIT_MODF3(NEG,FUNCARG,ARGARG,FUNCRES) do { \
-  /* SPU single-precision floating point format does not support Inf or Nan.  */ \
-  double iptr = 0.5; long double iptrl = 0.5; \
-  if (CKRES(!__builtin_##FUNCRES(__builtin_modf(NEG __builtin_##FUNCARG(ARGARG),&iptr))) \
-      || CKSGN(__builtin_modf(NEG __builtin_##FUNCARG(ARGARG),&iptr), NEG 1) \
-      || CKIPTR(!__builtin_##FUNCRES(iptr),0) \
-      || CKSGN_IPTR(iptr,NEG 1)) \
-    link_error(__LINE__); \
-  if (CKRES(!__builtin_##FUNCRES##l(__builtin_modfl(NEG __builtin_##FUNCARG##l(ARGARG),&iptrl))) \
-      || CKSGN_L(__builtin_modfl(NEG __builtin_##FUNCARG##l(ARGARG),&iptrl), NEG 1) \
-      || CKIPTR(!__builtin_##FUNCRES##l(iptrl),0) \
-      || CKSGN_IPTR_L(iptrl,NEG 1)) \
-    link_error(__LINE__); \
-  } while (0)
-#endif
 
 void __attribute__ ((__noinline__))
 foo(void)
Index: gcc/testsuite/gcc.dg/torture/fp-int-convert.h
===================================================================
--- gcc/testsuite/gcc.dg/torture/fp-int-convert.h	(revision 275321)
+++ gcc/testsuite/gcc.dg/torture/fp-int-convert.h	(working copy)
@@ -7,7 +7,7 @@ 
 
 /* Not all platforms support TImode integers; logic as in
    gcc.dg/titype-1.c.  */
-#if (defined(__LP64__) && !defined(__hppa__)) || defined(_WIN64) || defined(__SPU__)
+#if (defined(__LP64__) && !defined(__hppa__)) || defined(_WIN64)
 typedef int TItype __attribute__ ((mode (TI)));
 typedef unsigned int UTItype __attribute__ ((mode (TI)));
 #else
Index: gcc/testsuite/gcc.dg/torture/pr25947-1.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/pr25947-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/torture/pr25947-1.c	(working copy)
@@ -1,6 +1,5 @@ 
 /* PR target/25947: define_split in cris.md caused unrecognized insn.  */
 /* { dg-options "-fpic" { target fpic } } */
-/* { dg-skip-if "requires unsupported run-time relocation" { spu-*-* } { "-O0" } { "" } } */
 
 extern char *rl_line_buffer;
 extern int rl_point;
Index: gcc/testsuite/gcc.dg/torture/type-generic-1.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/type-generic-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/torture/type-generic-1.c	(working copy)
@@ -3,7 +3,6 @@ 
 
 /* { dg-do run } */
 /* { dg-require-effective-target inf } */
-/* { dg-skip-if "No Inf/NaN support" { spu-*-* } } */
 /* { dg-skip-if "No subnormal support" { csky-*-* } { "-mhard-float" } } */
 /* { dg-options "-DUNSAFE" { target tic6x*-*-* visium-*-* nvptx-*-* } } */
 /* { dg-add-options ieee } */
Index: gcc/testsuite/gcc.dg/tree-ssa/20040204-1.c
===================================================================
--- gcc/testsuite/gcc.dg/tree-ssa/20040204-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/tree-ssa/20040204-1.c	(working copy)
@@ -33,4 +33,4 @@ 
    that the && should be emitted (based on BRANCH_COST).  Fix this
    by teaching dom to look through && and register all components
    as true.  */
-/* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" { xfail { ! "alpha*-*-* arm*-*-* aarch64*-*-* powerpc*-*-* cris-*-* crisv32-*-* hppa*-*-* i?86-*-* mmix-*-* mips*-*-* m68k*-*-* moxie-*-* nds32*-*-* s390*-*-* sh*-*-* sparc*-*-* spu-*-* visium-*-* x86_64-*-* riscv*-*-* or1k*-*-* msp430-*-* pru*-*-*" } } } } */
+/* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" { xfail { ! "alpha*-*-* arm*-*-* aarch64*-*-* powerpc*-*-* cris-*-* crisv32-*-* hppa*-*-* i?86-*-* mmix-*-* mips*-*-* m68k*-*-* moxie-*-* nds32*-*-* s390*-*-* sh*-*-* sparc*-*-* visium-*-* x86_64-*-* riscv*-*-* or1k*-*-* msp430-*-* pru*-*-*" } } } } */
Index: gcc/testsuite/gcc.dg/tree-ssa/ivopts-1.c
===================================================================
--- gcc/testsuite/gcc.dg/tree-ssa/ivopts-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/tree-ssa/ivopts-1.c	(working copy)
@@ -1,7 +1,7 @@ 
 /* { dg-do compile } */
 
 /* Not all platforms support TImode integers.  */
-#if (defined(__LP64__) && !defined(__hppa__)) || defined(__SPU__)
+#if defined(__LP64__) && !defined(__hppa__)
 typedef int TItype __attribute__ ((mode (TI)));
 #else
 typedef long TItype;
Index: gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-3.c
===================================================================
--- gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-3.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-3.c	(working copy)
@@ -5,7 +5,7 @@ 
 
    When the condition is true, we distribute "(int) (a + b)" as
    "(int) a + (int) b", otherwise we keep the original.  */
-/* { dg-do compile { target { { ! mips64 } && { ! spu-*-* } } } } */
+/* { dg-do compile { target { ! mips64 } } } */
 /* { dg-options "-O -fno-tree-forwprop -fno-tree-ccp -fwrapv -fdump-tree-fre1-details" } */
 
 /* From PR14844.  */
Index: gcc/testsuite/gcc.dg/tree-ssa/vector-6.c
===================================================================
--- gcc/testsuite/gcc.dg/tree-ssa/vector-6.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/tree-ssa/vector-6.c	(working copy)
@@ -32,5 +32,5 @@ 
   return v;
 }
 
-/* { dg-final { scan-tree-dump-times "Now a gimple register: v" 2 "ssa" { target { { i?86-*-* x86_64-*-* aarch64*-*-* spu*-*-* } || { powerpc_altivec_ok } } } } } */
-/* { dg-final { scan-tree-dump-times "Now a gimple register: v" 2 "ccp1" { target { { i?86-*-* x86_64-*-* aarch64*-*-* spu*-*-* } || { powerpc_altivec_ok } } } } } */
+/* { dg-final { scan-tree-dump-times "Now a gimple register: v" 2 "ssa" { target { { i?86-*-* x86_64-*-* aarch64*-*-* } || { powerpc_altivec_ok } } } } } */
+/* { dg-final { scan-tree-dump-times "Now a gimple register: v" 2 "ccp1" { target { { i?86-*-* x86_64-*-* aarch64*-*-* } || { powerpc_altivec_ok } } } } } */
Index: gcc/testsuite/gcc.dg/uninit-C-O0.c
===================================================================
--- gcc/testsuite/gcc.dg/uninit-C-O0.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/uninit-C-O0.c	(working copy)
@@ -3,7 +3,7 @@ 
 /* { dg-options "-Wuninitialized" } */
 
 /* Not all platforms support TImode integers.  */
-#if (defined(__LP64__) && !defined(__hppa__)) || defined(__SPU__)
+#if defined(__LP64__) && !defined(__hppa__)
 typedef int TItype __attribute__ ((mode (TI)));
 #else
 typedef long TItype;
Index: gcc/testsuite/gcc.dg/uninit-C.c
===================================================================
--- gcc/testsuite/gcc.dg/uninit-C.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/uninit-C.c	(working copy)
@@ -3,7 +3,7 @@ 
 /* { dg-options "-O -Wuninitialized" } */
 
 /* Not all platforms support TImode integers.  */
-#if (defined(__LP64__) && !defined(__hppa__)) || defined(__SPU__)
+#if defined(__LP64__) && !defined(__hppa__)
 typedef int TItype __attribute__ ((mode (TI)));
 #else
 typedef long TItype;
Index: gcc/testsuite/gcc.dg/vect/no-math-errno-slp-32.c
===================================================================
--- gcc/testsuite/gcc.dg/vect/no-math-errno-slp-32.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/vect/no-math-errno-slp-32.c	(working copy)
@@ -13,4 +13,4 @@ 
    }
 }
 
-/* { dg-final { scan-tree-dump "pattern recognized" "vect" { xfail spu*-*-* } } } */
+/* { dg-final { scan-tree-dump "pattern recognized" "vect" } } */
Index: gcc/testsuite/gcc.dg/vect/no-math-errno-vect-pow-1.c
===================================================================
--- gcc/testsuite/gcc.dg/vect/no-math-errno-vect-pow-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/vect/no-math-errno-vect-pow-1.c	(working copy)
@@ -10,4 +10,4 @@ 
     x[i] = __builtin_pow (x[i], 0.5);
 }
 
-/* { dg-final { scan-tree-dump "pattern recognized" "vect" { xfail spu*-*-* } } } */
+/* { dg-final { scan-tree-dump "pattern recognized" "vect" } } */
Index: gcc/testsuite/gcc.dg/vect/vect-float-extend-1.c
===================================================================
--- gcc/testsuite/gcc.dg/vect/vect-float-extend-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/vect/vect-float-extend-1.c	(working copy)
@@ -38,4 +38,4 @@ 
   return main1 ();
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail spu*-*-* } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
Index: gcc/testsuite/gcc.dg/vect/vect-float-truncate-1.c
===================================================================
--- gcc/testsuite/gcc.dg/vect/vect-float-truncate-1.c	(revision 275321)
+++ gcc/testsuite/gcc.dg/vect/vect-float-truncate-1.c	(working copy)
@@ -37,4 +37,4 @@ 
   return main1 ();
 }
 
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail spu*-*-* } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
Index: gcc/testsuite/gcc.dg/vect/vect.exp
===================================================================
--- gcc/testsuite/gcc.dg/vect/vect.exp	(revision 275321)
+++ gcc/testsuite/gcc.dg/vect/vect.exp	(working copy)
@@ -266,9 +266,6 @@ 
 # Don't allow IPA cloning, because it throws our counts out of whack.
 set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
 lappend DEFAULT_VECTCFLAGS "-O3" "-fno-ipa-cp-clone"
-if  [istarget "spu-*-*"] {
-  lappend DEFAULT_VECTCFLAGS "-funroll-loops"
-}
 
 et-dg-runtest dg-runtest [lsort \
 	[glob -nocomplain $srcdir/$subdir/O3-*.\[cS\]]] \
Index: gcc/testsuite/gfortran.dg/bessel_6.f90
===================================================================
--- gcc/testsuite/gfortran.dg/bessel_6.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/bessel_6.f90	(working copy)
@@ -1,12 +1,8 @@ 
-! { dg-do run { xfail spu-*-* } }
 ! { dg-add-options ieee }
 !
 ! PR fortran/36158
 ! PR fortran/33197
 !
-! XFAILed for SPU targets since we don't have an accurate library
-! implementation of the single-precision Bessel functions.
-!
 ! Run-time tests for transformations BESSEL_JN
 !
 implicit none
Index: gcc/testsuite/gfortran.dg/bessel_7.f90
===================================================================
--- gcc/testsuite/gfortran.dg/bessel_7.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/bessel_7.f90	(working copy)
@@ -1,4 +1,4 @@ 
-! { dg-do run { xfail *-*-mingw* spu-*-* } }
+! { dg-do run { xfail *-*-mingw* } }
 ! { dg-add-options ieee }
 !
 ! PR fortran/36158
@@ -8,9 +8,6 @@ 
 ! of BESSEL_YN(n,x) has different results.  It returns NAN rather than
 ! -INF for "x=0.0" and all "n".
 !
-! XFAILed for SPU targets since we don't have an accurate library
-! implementation of the single-precision Bessel functions.
-!
 ! Run-time tests for transformations BESSEL_YN
 !
 implicit none
Index: gcc/testsuite/gfortran.dg/char4_iunit_1.f03
===================================================================
--- gcc/testsuite/gfortran.dg/char4_iunit_1.f03	(revision 275321)
+++ gcc/testsuite/gfortran.dg/char4_iunit_1.f03	(working copy)
@@ -1,6 +1,5 @@ 
 ! { dg-do run }
 ! { dg-add-options ieee }
-! { dg-skip-if "NaN not supported" { spu-*-* } }
 ! PR37077 Implement Internal Unit I/O for character KIND=4
 ! Test case prepared by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 program char4_iunit_1
Index: gcc/testsuite/gfortran.dg/chmod_1.f90
===================================================================
--- gcc/testsuite/gfortran.dg/chmod_1.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/chmod_1.f90	(working copy)
@@ -1,4 +1,4 @@ 
-! { dg-do run { target { ! { *-*-mingw* *-*-cygwin* spu-*-* } } } }
+! { dg-do run { target { ! { *-*-mingw* *-*-cygwin* } } } }
 ! { dg-options "-std=gnu" }
 ! See PR38956.  Test fails on cygwin when user has Administrator rights
   implicit none
Index: gcc/testsuite/gfortran.dg/chmod_2.f90
===================================================================
--- gcc/testsuite/gfortran.dg/chmod_2.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/chmod_2.f90	(working copy)
@@ -1,4 +1,4 @@ 
-! { dg-do run { target { ! { *-*-mingw* *-*-cygwin* spu-*-* } } } }
+! { dg-do run { target { ! { *-*-mingw* *-*-cygwin* } } } }
 ! { dg-options "-std=gnu" }
 ! See PR38956.  Test fails on cygwin when user has Administrator rights
   implicit none
Index: gcc/testsuite/gfortran.dg/chmod_3.f90
===================================================================
--- gcc/testsuite/gfortran.dg/chmod_3.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/chmod_3.f90	(working copy)
@@ -1,4 +1,4 @@ 
-! { dg-do run { target { ! { *-*-mingw* *-*-cygwin* spu-*-* } } } }
+! { dg-do run { target { ! { *-*-mingw* *-*-cygwin* } } } }
 ! { dg-options "-std=gnu -fdefault-integer-8" }
 ! See PR38956.  Test fails on cygwin when user has Administrator rights
   implicit none
Index: gcc/testsuite/gfortran.dg/default_format_1.f90
===================================================================
--- gcc/testsuite/gfortran.dg/default_format_1.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/default_format_1.f90	(working copy)
@@ -1,4 +1,4 @@ 
-! { dg-do run { xfail spu-*-* powerpc-ibm-aix* } }
+! { dg-do run { xfail powerpc-ibm-aix* } }
 ! Test XFAILed on Darwin because the system's printf() lacks
 ! proper support for denormals.
 !
Index: gcc/testsuite/gfortran.dg/default_format_denormal_1.f90
===================================================================
--- gcc/testsuite/gfortran.dg/default_format_denormal_1.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/default_format_denormal_1.f90	(working copy)
@@ -1,4 +1,4 @@ 
-! { dg-do run { xfail *-*-darwin[89]* *-*-cygwin* spu-*-* powerpc-ibm-aix* } }
+! { dg-do run { xfail *-*-darwin[89]* *-*-cygwin* powerpc-ibm-aix* } }
 ! Test XFAILed on these platforms because the system's printf() lacks
 ! proper support for denormals.
 !
Index: gcc/testsuite/gfortran.dg/erf_2.F90
===================================================================
--- gcc/testsuite/gfortran.dg/erf_2.F90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/erf_2.F90	(working copy)
@@ -1,10 +1,6 @@ 
-! { dg-do run { xfail spu-*-* } }
 ! { dg-options "-fno-range-check -ffree-line-length-none -O0" }
 ! { dg-add-options ieee }
 !
-! XFAILed for SPU targets because our library implementation of
-! the double-precision erf/erfc functions is not accurate enough.
-!
 ! Check that simplification functions and runtime library agree on ERF,
 ! ERFC and ERFC_SCALED.
 
Index: gcc/testsuite/gfortran.dg/erf_3.F90
===================================================================
--- gcc/testsuite/gfortran.dg/erf_3.F90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/erf_3.F90	(working copy)
@@ -1,4 +1,4 @@ 
-! { dg-do run { xfail spu-*-* ia64-*-linux* } }
+! { dg-do run { xfail ia64-*-linux* } }
 ! { dg-options "-fno-range-check -ffree-line-length-none -O0" }
 ! { dg-add-options ieee }
 ! { dg-skip-if "PR libfortran/59313" { hppa*-*-hpux* } }
@@ -6,9 +6,6 @@ 
 ! Check that simplification functions and runtime library agree on ERF,
 ! ERFC and ERFC_SCALED, for quadruple-precision.
 !
-! XFAILed for SPU targets because our library implementation of
-! the double-precision erf/erfc functions is not accurate enough.
-!
 ! XFAILed for IA64 Linux because of a glibc bug:
 ! http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59227
 
Index: gcc/testsuite/gfortran.dg/init_flag_10.f90
===================================================================
--- gcc/testsuite/gfortran.dg/init_flag_10.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/init_flag_10.f90	(working copy)
@@ -1,7 +1,6 @@ 
 ! { dg-do run }
 ! { dg-options "-finit-real=NAN" }
 ! { dg-add-options ieee }
-! { dg-skip-if "NaN not supported" { spu-*-* } }
 !
 ! PR fortran/50619
 !
Index: gcc/testsuite/gfortran.dg/init_flag_3.f90
===================================================================
--- gcc/testsuite/gfortran.dg/init_flag_3.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/init_flag_3.f90	(working copy)
@@ -1,7 +1,6 @@ 
 ! { dg-do run }
 ! { dg-options "-finit-integer=-1 -finit-logical=false -finit-real=nan" }
 ! { dg-add-options ieee }
-! { dg-skip-if "NaN not supported" { spu-*-* } }
 
 program init_flag_3
   call real_test
Index: gcc/testsuite/gfortran.dg/int_conv_2.f90
===================================================================
--- gcc/testsuite/gfortran.dg/int_conv_2.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/int_conv_2.f90	(working copy)
@@ -1,5 +1,4 @@ 
 ! { dg-do compile }
-! { dg-skip-if "NaN not supported" { spu-*-* } }
 ! PR fortran/37930
 program test
   implicit none
Index: gcc/testsuite/gfortran.dg/integer_exponentiation_3.F90
===================================================================
--- gcc/testsuite/gfortran.dg/integer_exponentiation_3.F90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/integer_exponentiation_3.F90	(working copy)
@@ -1,5 +1,3 @@ 
-! { dg-do run { xfail spu-*-* } }
-! FAILs on SPU because of wrong compile-time rounding mode
 ! { dg-options "" }
 ! { dg-options "-ffloat-store" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } 
 !
Index: gcc/testsuite/gfortran.dg/integer_exponentiation_5.F90
===================================================================
--- gcc/testsuite/gfortran.dg/integer_exponentiation_5.F90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/integer_exponentiation_5.F90	(working copy)
@@ -1,5 +1,3 @@ 
-! { dg-do run { xfail spu-*-* } }
-! FAILs on SPU because of invalid result of 1.0/0.0 inline code
 ! { dg-options "-fno-range-check" }
 ! { dg-add-options ieee }
 module mod_check
Index: gcc/testsuite/gfortran.dg/isnan_1.f90
===================================================================
--- gcc/testsuite/gfortran.dg/isnan_1.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/isnan_1.f90	(working copy)
@@ -2,7 +2,6 @@ 
 !
 ! { dg-do run }
 ! { dg-add-options ieee }
-! { dg-skip-if "NaN not supported" { spu-*-* } }
 !
   implicit none
   real :: x
Index: gcc/testsuite/gfortran.dg/isnan_2.f90
===================================================================
--- gcc/testsuite/gfortran.dg/isnan_2.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/isnan_2.f90	(working copy)
@@ -3,7 +3,6 @@ 
 ! { dg-do run }
 ! { dg-options "-fno-range-check" }
 ! { dg-add-options ieee }
-! { dg-skip-if "NaN not supported" { spu-*-* } }
 !
   implicit none
   character(len=1) :: s
Index: gcc/testsuite/gfortran.dg/maxloc_2.f90
===================================================================
--- gcc/testsuite/gfortran.dg/maxloc_2.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/maxloc_2.f90	(working copy)
@@ -1,6 +1,5 @@ 
 ! { dg-do run }
 ! { dg-add-options ieee }
-! { dg-skip-if "NaN not supported" { spu-*-* } }
   real :: a(3), nan, minf, pinf
   real, allocatable :: c(:)
   integer :: ia(1)
Index: gcc/testsuite/gfortran.dg/maxlocval_2.f90
===================================================================
--- gcc/testsuite/gfortran.dg/maxlocval_2.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/maxlocval_2.f90	(working copy)
@@ -1,6 +1,5 @@ 
 ! { dg-do run }
 ! { dg-add-options ieee }
-! { dg-skip-if "NaN not supported" { spu-*-* } }
   real :: a(3), nan, minf, pinf
   real, allocatable :: c(:)
   logical :: l
Index: gcc/testsuite/gfortran.dg/maxlocval_4.f90
===================================================================
--- gcc/testsuite/gfortran.dg/maxlocval_4.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/maxlocval_4.f90	(working copy)
@@ -1,6 +1,5 @@ 
 ! { dg-do run }
 ! { dg-add-options ieee }
-! { dg-skip-if "NaN not supported" { spu-*-* } }
   real :: a(3,3), b(3), nan, minf, pinf, h
   logical :: l, l2
   logical :: l3(3,3), l4(3,3), l5(3,3)
Index: gcc/testsuite/gfortran.dg/minloc_1.f90
===================================================================
--- gcc/testsuite/gfortran.dg/minloc_1.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/minloc_1.f90	(working copy)
@@ -1,6 +1,5 @@ 
 ! { dg-do run }
 ! { dg-add-options ieee }
-! { dg-skip-if "NaN not supported" { spu-*-* } }
   real :: a(3), nan, minf, pinf
   integer :: ia(1)
   real, allocatable :: c(:)
Index: gcc/testsuite/gfortran.dg/minlocval_1.f90
===================================================================
--- gcc/testsuite/gfortran.dg/minlocval_1.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/minlocval_1.f90	(working copy)
@@ -1,6 +1,5 @@ 
 ! { dg-do run }
 ! { dg-add-options ieee }
-! { dg-skip-if "NaN not supported" { spu-*-* } }
   real :: a(3), nan, minf, pinf
   real, allocatable :: c(:)
   logical :: l
Index: gcc/testsuite/gfortran.dg/minlocval_4.f90
===================================================================
--- gcc/testsuite/gfortran.dg/minlocval_4.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/minlocval_4.f90	(working copy)
@@ -1,6 +1,5 @@ 
 ! { dg-do run }
 ! { dg-add-options ieee }
-! { dg-skip-if "NaN not supported" { spu-*-* } }
   real :: a(3,3), b(3), nan, minf, pinf, h
   logical :: l, l2
   logical :: l3(3,3), l4(3,3), l5(3,3)
Index: gcc/testsuite/gfortran.dg/module_nan.f90
===================================================================
--- gcc/testsuite/gfortran.dg/module_nan.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/module_nan.f90	(working copy)
@@ -1,7 +1,6 @@ 
 ! { dg-do run }
 ! { dg-options "-fno-range-check" }
 ! { dg-add-options ieee }
-! { dg-skip-if "NaN not supported" { spu-*-* } }
 !
 ! PR fortran/34318
 !
Index: gcc/testsuite/gfortran.dg/namelist_42.f90
===================================================================
--- gcc/testsuite/gfortran.dg/namelist_42.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/namelist_42.f90	(working copy)
@@ -1,6 +1,5 @@ 
 ! { dg-do run { target fd_truncate } }
 ! { dg-add-options ieee }
-! { dg-skip-if "NaN not supported" { spu-*-* } }
 !
 ! PR fortran/34427
 !
Index: gcc/testsuite/gfortran.dg/namelist_43.f90
===================================================================
--- gcc/testsuite/gfortran.dg/namelist_43.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/namelist_43.f90	(working copy)
@@ -1,6 +1,5 @@ 
 ! { dg-do run }
 ! { dg-add-options ieee }
-! { dg-skip-if "NaN not supported" { spu-*-* } }
 !
 ! PR fortran/34427
 !
Index: gcc/testsuite/gfortran.dg/nan_1.f90
===================================================================
--- gcc/testsuite/gfortran.dg/nan_1.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/nan_1.f90	(working copy)
@@ -3,7 +3,6 @@ 
 !
 ! { dg-do run }
 ! { dg-add-options ieee }
-! { dg-skip-if "NaN not supported" { spu-*-* } }
 !
 module aux2
   interface isnan
Index: gcc/testsuite/gfortran.dg/nan_2.f90
===================================================================
--- gcc/testsuite/gfortran.dg/nan_2.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/nan_2.f90	(working copy)
@@ -1,7 +1,6 @@ 
 ! { dg-do run }
 ! { dg-options "-fno-range-check -pedantic" }
 ! { dg-add-options ieee }
-! { dg-skip-if "NaN not supported" { spu-*-* } }
 !
 ! PR fortran/34333
 !
Index: gcc/testsuite/gfortran.dg/nan_3.f90
===================================================================
--- gcc/testsuite/gfortran.dg/nan_3.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/nan_3.f90	(working copy)
@@ -1,7 +1,6 @@ 
 ! { dg-do run }
 ! { dg-options "-fno-range-check" }
 ! { dg-add-options ieee }
-! { dg-skip-if "NaN not supported" { spu-*-* } }
 !
 ! PR fortran/34319
 !
Index: gcc/testsuite/gfortran.dg/nan_4.f90
===================================================================
--- gcc/testsuite/gfortran.dg/nan_4.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/nan_4.f90	(working copy)
@@ -1,7 +1,6 @@ 
 ! { dg-do compile }
 ! { dg-options "-std=gnu -fallow-invalid-boz" } 
 ! { dg-add-options ieee }
-! { dg-skip-if "NaN not supported" { spu-*-* } }
 !
 ! PR fortran/34398.
 !
Index: gcc/testsuite/gfortran.dg/nan_5.f90
===================================================================
--- gcc/testsuite/gfortran.dg/nan_5.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/nan_5.f90	(working copy)
@@ -4,7 +4,6 @@ 
 !
 ! { dg-options "-fno-range-check" }
 ! { dg-add-options ieee }
-! { dg-skip-if "NaN not supported" { spu-*-* } }
 
   implicit none
   real, parameter :: inf = 2 * huge(inf)
Index: gcc/testsuite/gfortran.dg/nan_6.f90
===================================================================
--- gcc/testsuite/gfortran.dg/nan_6.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/nan_6.f90	(working copy)
@@ -1,6 +1,5 @@ 
 ! { dg-do run }
 ! { dg-add-options ieee }
-! { dg-skip-if "NaN not supported" { spu-*-* } }
 !
 ! List-directed part of PR fortran/43298
 ! and follow up to PR fortran/34319.
Index: gcc/testsuite/gfortran.dg/nearest_1.f90
===================================================================
--- gcc/testsuite/gfortran.dg/nearest_1.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/nearest_1.f90	(working copy)
@@ -1,7 +1,6 @@ 
 ! { dg-do run }
 ! { dg-options "-O0 -ffloat-store" }
 ! { dg-add-options ieee }
-! { dg-skip-if "Denormals not supported" { spu-*-* } }
 ! PR fortran/27021
 ! Original code submitted by Dominique d'Humieres
 ! Converted to Dejagnu for the testsuite by Steven G. Kargl
Index: gcc/testsuite/gfortran.dg/nearest_3.f90
===================================================================
--- gcc/testsuite/gfortran.dg/nearest_3.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/nearest_3.f90	(working copy)
@@ -1,6 +1,5 @@ 
 ! { dg-do run }
 ! { dg-add-options ieee }
-! { dg-skip-if "NaN not supported" { spu-*-* } }
 !
 ! PR fortran/34209
 !
Index: gcc/testsuite/gfortran.dg/open_errors.f90
===================================================================
--- gcc/testsuite/gfortran.dg/open_errors.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/open_errors.f90	(working copy)
@@ -1,4 +1,4 @@ 
-! { dg-do run { target { ! { *-*-mingw* *-*-cygwin* spu-*-* } } } }
+! { dg-do run { target { ! { *-*-mingw* *-*-cygwin* } } } }
 ! PR30005 Enhanced error messages for OPEN
 ! Submitted by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 ! See PR38956.  Test fails on cygwin when user has Administrator rights
Index: gcc/testsuite/gfortran.dg/pr20257.f90
===================================================================
--- gcc/testsuite/gfortran.dg/pr20257.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/pr20257.f90	(working copy)
@@ -1,5 +1,4 @@ 
 ! { dg-do run }
-! { dg-skip-if "Too big for local store" { spu-*-* } }
   integer,parameter :: n = 10000
   real(8) array(10000)
 
Index: gcc/testsuite/gfortran.dg/read_infnan_1.f90
===================================================================
--- gcc/testsuite/gfortran.dg/read_infnan_1.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/read_infnan_1.f90	(working copy)
@@ -1,6 +1,5 @@ 
 ! { dg-do run }
 ! { dg-add-options ieee }
-! { dg-skip-if "NaN not supported" { spu-*-* } }
 
 ! PR43298  Fortran library does not read in NaN, NaN(), -Inf, or Inf
 
Index: gcc/testsuite/gfortran.dg/real_const_3.f90
===================================================================
--- gcc/testsuite/gfortran.dg/real_const_3.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/real_const_3.f90	(working copy)
@@ -1,7 +1,6 @@ 
 !{ dg-do run }
 !{ dg-options "-fno-range-check" }
 !{ dg-add-options ieee }
-!{ dg-skip-if "NaN not supported" { spu-*-* } }
 ! PR19310 and PR19904, allow disabling range check during compile.
 ! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 program main
Index: gcc/testsuite/gfortran.dg/realloc_on_assign_2.f03
===================================================================
--- gcc/testsuite/gfortran.dg/realloc_on_assign_2.f03	(revision 275321)
+++ gcc/testsuite/gfortran.dg/realloc_on_assign_2.f03	(working copy)
@@ -1,5 +1,4 @@ 
 ! { dg-do run }
-! { dg-skip-if "Too big for local store" { spu-*-* } }
 ! Tests the patch that implements F2003 automatic allocation and
 ! reallocation of allocatable arrays on assignment.  The tests
 ! below were generated in the final stages of the development of
Index: gcc/testsuite/gfortran.dg/reassoc_4.f
===================================================================
--- gcc/testsuite/gfortran.dg/reassoc_4.f	(revision 275321)
+++ gcc/testsuite/gfortran.dg/reassoc_4.f	(working copy)
@@ -1,6 +1,5 @@ 
 ! { dg-do compile }
 ! { dg-options "-O3 -ffast-math -fdump-tree-reassoc1 --param max-completely-peeled-insns=200" }
-! { dg-additional-options "--param max-completely-peel-times=16" { target spu-*-* } }
       subroutine anisonl(w,vo,anisox,s,ii1,jj1,weight)
       integer ii1,jj1,i1,iii1,j1,jjj1,k1,l1,m1,n1
       real*8 w(3,3),vo(3,3),anisox(3,3,3,3),s(60,60),weight
Index: gcc/testsuite/gfortran.dg/scalar_mask_2.f90
===================================================================
--- gcc/testsuite/gfortran.dg/scalar_mask_2.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/scalar_mask_2.f90	(working copy)
@@ -1,5 +1,4 @@ 
-! { dg-do run { xfail spu-*-* } }
-! FAILs on SPU because of rounding error reading kinds.h
+! { dg-do run }
 program main
   ! Test scalar masks for different intrinsics.
   real, dimension(2,2) :: a
Index: gcc/testsuite/gfortran.dg/scratch_1.f90
===================================================================
--- gcc/testsuite/gfortran.dg/scratch_1.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/scratch_1.f90	(working copy)
@@ -1,5 +1,4 @@ 
 ! { dg-do run }
-! { dg-skip-if "Too big for local store" { spu-*-* } }
 ! Check that we can open more than 26 scratch files concurrently
   integer :: i
   do i = 1, 30
Index: gcc/testsuite/gfortran.dg/stat_1.f90
===================================================================
--- gcc/testsuite/gfortran.dg/stat_1.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/stat_1.f90	(working copy)
@@ -1,5 +1,5 @@ 
 ! { dg-do run }
-! { dg-skip-if "" { *-*-mingw* spu-*-* } }
+! { dg-skip-if "" { *-*-mingw* } }
 ! { dg-options "-std=gnu" }
   character(len=*), parameter :: f = "testfile_stat_1"
   integer :: s1(13), r1, s2(13), r2, s3(13), r3, d(13), rd
Index: gcc/testsuite/gfortran.dg/stat_2.f90
===================================================================
--- gcc/testsuite/gfortran.dg/stat_2.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/stat_2.f90	(working copy)
@@ -1,5 +1,5 @@ 
 ! { dg-do run }
-! { dg-skip-if "" { *-*-mingw* spu-*-* } }
+! { dg-skip-if "" { *-*-mingw* } }
 ! { dg-options "-std=gnu" }
   character(len=*), parameter :: f = "testfile_stat_2"
   integer :: s1(13), r1, s2(13), r2, s3(13), r3, d(13), rd
Index: gcc/testsuite/gfortran.dg/transfer_simplify_1.f90
===================================================================
--- gcc/testsuite/gfortran.dg/transfer_simplify_1.f90	(revision 275321)
+++ gcc/testsuite/gfortran.dg/transfer_simplify_1.f90	(working copy)
@@ -1,6 +1,5 @@ 
 ! { dg-do run }
 ! { dg-options "-O2" }
-! { dg-skip-if "NaN not supported" { spu-*-* } }
 ! Tests that the PRs caused by the lack of gfc_simplify_transfer are
 ! now fixed. These were brought together in the meta-bug PR31237
 ! (TRANSFER intrinsic).
Index: gcc/testsuite/gfortran.dg/typebound_operator_9.f03
===================================================================
--- gcc/testsuite/gfortran.dg/typebound_operator_9.f03	(revision 275321)
+++ gcc/testsuite/gfortran.dg/typebound_operator_9.f03	(working copy)
@@ -1,6 +1,5 @@ 
 ! { dg-do run }
 ! { dg-add-options ieee }
-! { dg-skip-if "Too big for local store" { spu-*-* } }
 !
 !     Solve a diffusion problem using an object-oriented approach
 !
Index: gcc/testsuite/gfortran.fortran-torture/execute/getarg_1.x
===================================================================
--- gcc/testsuite/gfortran.fortran-torture/execute/getarg_1.x	(revision 275321)
+++ gcc/testsuite/gfortran.fortran-torture/execute/getarg_1.x	(nonexistent)
@@ -1,5 +0,0 @@ 
-if [istarget "spu-*-*"] {
-    # We need -mstdmain to enable argument processing on SPU.
-    lappend additional_flags "-mstdmain"
-}
-return 0
Index: gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_nearest.x
===================================================================
--- gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_nearest.x	(revision 275321)
+++ gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_nearest.x	(working copy)
@@ -1,7 +1,3 @@ 
-if [istarget "spu-*-*"] {
-    # No Inf/NaN support on SPU.
-    return 1
-}
 if [istarget "powerpc-ibm-aix*"] {
     # z'7f7fffff' value not preserved by lfs instruction.
     return 1
Index: gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_set_exponent.x
===================================================================
--- gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_set_exponent.x	(revision 275321)
+++ gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_set_exponent.x	(working copy)
@@ -1,6 +1,2 @@ 
-if [istarget "spu-*-*"] {
-    # No denormal support on SPU.
-    return 1
-}
 add-ieee-options
 return 0
Index: gcc/testsuite/gfortran.fortran-torture/execute/nan_inf_fmt.x
===================================================================
--- gcc/testsuite/gfortran.fortran-torture/execute/nan_inf_fmt.x	(revision 275321)
+++ gcc/testsuite/gfortran.fortran-torture/execute/nan_inf_fmt.x	(working copy)
@@ -1,6 +1,2 @@ 
-if [istarget "spu-*-*"] {
-    # No Inf/NaN support on SPU.
-    return 1
-}
 add-ieee-options
 return 0
Index: gcc/testsuite/lib/compat.exp
===================================================================
--- gcc/testsuite/lib/compat.exp	(revision 275321)
+++ gcc/testsuite/lib/compat.exp	(working copy)
@@ -277,16 +277,6 @@ 
     set extra_flags_3 [compat-get-options $src3]
     set compile_xfail_3 $compiler_conditional_xfail_data
 
-    # On the SPU, most of the compat test cases exceed local store size.
-    # Use automatic overlay support to make them fit.
-    if { [check_effective_target_spu_auto_overlay] } {
-	set extra_flags_1 "$extra_flags_1 -Wl,--auto-overlay"
-	set extra_flags_1 "$extra_flags_1 -Wl,--extra-stack-space=8192"
-	set extra_flags_1 "$extra_flags_1 -ffunction-sections"
-	set extra_flags_2 "$extra_flags_2 -ffunction-sections"
-	set extra_flags_3 "$extra_flags_3 -ffunction-sections"
-    }
-
     # Define the names of the object files.
     regsub "sid" "sid_main_tst.o" $sid obj1
     regsub "sid" "sid_x_tst.o" $sid obj2_tst
Index: gcc/testsuite/lib/fortran-torture.exp
===================================================================
--- gcc/testsuite/lib/fortran-torture.exp	(revision 275321)
+++ gcc/testsuite/lib/fortran-torture.exp	(working copy)
@@ -44,8 +44,6 @@ 
 	 && [check_vmx_hw_available] } {
 	lappend vectorizer_options "-maltivec"
 	set test_tree_vectorize 1
-    } elseif { [istarget spu-*-*] } {
-	set test_tree_vectorize 1
     } elseif { ( [istarget i?86-*-*] || [istarget x86_64-*-*] )
 	       && [check_effective_target_sse2]
 	       && [check_sse2_hw_available]
Index: gcc/testsuite/lib/gcc-dg.exp
===================================================================
--- gcc/testsuite/lib/gcc-dg.exp	(revision 275321)
+++ gcc/testsuite/lib/gcc-dg.exp	(working copy)
@@ -414,14 +414,6 @@ 
 	return "::unsupported::memory full"
     }
 
-    # Likewise, if we see ".text exceeds local store range" or
-    # similar.
-    if {[string match "spu-*" $system] && \
-	    [string match "*exceeds local store*" $text]} {
-	# The format here is important.  See dg.exp.
-	return "::unsupported::memory full"
-    }
-
     if { [string match "*error: function pointers not supported*" $text]
 	  && ![check_effective_target_function_pointers] } {
 	# The format here is important.  See dg.exp.
Index: gcc/testsuite/lib/gfortran.exp
===================================================================
--- gcc/testsuite/lib/gfortran.exp	(revision 275321)
+++ gcc/testsuite/lib/gfortran.exp	(working copy)
@@ -220,13 +220,6 @@ 
 	lappend ALWAYS_GFORTRANFLAGS "additional_flags=$TOOL_OPTIONS"
     }
 
-    # On the SPU, most of the fortran test cases exceed local store size.
-    # Use automatic overlay support to make them fit.
-    if { [check_effective_target_spu_auto_overlay] } {
-	lappend ALWAYS_GFORTRANFLAGS "ldflags=-Wl,--auto-overlay"
-	lappend ALWAYS_GFORTRANFLAGS "ldflags=-Wl,--reserved-space=131072"
-    }
-
     verbose -log "ALWAYS_GFORTRANFLAGS set to $ALWAYS_GFORTRANFLAGS"
 
     verbose "gfortran is initialized" 3
Index: gcc/testsuite/lib/target-supports.exp
===================================================================
--- gcc/testsuite/lib/target-supports.exp	(revision 275321)
+++ gcc/testsuite/lib/target-supports.exp	(working copy)
@@ -3173,7 +3173,6 @@ 
 		 && ([check_effective_target_powerpc_spe]
 		     || [check_effective_target_powerpc_altivec]))
 	     || ([istarget sparc*-*-*] && [check_effective_target_sparc_vis])
-             || [istarget spu-*-*]
 	     || ([istarget arm*-*-*] && [check_effective_target_arm_neon])
 	     || [istarget aarch64*-*-*] } {
 	    return 0
@@ -3193,7 +3192,6 @@ 
          || ([istarget powerpc*-*-*]
 	     && ![istarget powerpc-*-linux*paired*])
 	 || [istarget amdgcn-*-*]
-	 || [istarget spu-*-*]
 	 || [istarget sparc*-*-*]
 	 || [istarget alpha*-*-*]
 	 || [istarget ia64-*-*]
@@ -3233,7 +3231,6 @@ 
 		   #endif
 	      }])
 	    || [istarget aarch64*-*-*]
-	    || [istarget spu-*-*]
 	    || ([istarget powerpc*-*-*] && [check_vsx_hw_available])
 	    || ([istarget mips*-*-*]
 		 && [et-is-effective-target mips_msa]) }}]
@@ -3251,7 +3248,6 @@ 
 		  #endif
 	      }])
 	     || [istarget aarch64*-*-*]
-	     || [istarget spu-*-*]
 	     || ([istarget powerpc*-*-*] && [check_vsx_hw_available])
 	     || ([istarget mips*-*-*]
 		 && [et-is-effective-target mips_msa]) }}]
@@ -5519,19 +5515,6 @@ 
     }
 }
 
-# Return 1 if this is a SPU target with a toolchain that
-# supports automatic overlay generation.
-
-proc check_effective_target_spu_auto_overlay { } {
-    if { [istarget spu*-*-elf*] } {
-	return [check_no_compiler_messages spu_auto_overlay executable {
-		int main (void) { }
-		} "-Wl,--auto-overlay" ]
-    } else {
-	return 0
-    }
-}
-
 # The VxWorks SPARC simulator accepts only EM_SPARC executables and
 # chokes on EM_SPARC32PLUS or EM_SPARCV9 executables.  Return 1 if the
 # test environment appears to run executables on such a simulator.
@@ -5697,7 +5680,6 @@ 
     return [check_cached_effective_target_indexed vect_float {
       expr { [istarget i?86-*-*] || [istarget x86_64-*-*]
 	     || [istarget powerpc*-*-*]
-	     || [istarget spu-*-*]
 	     || [istarget mips-sde-elf]
 	     || [istarget mipsisa64*-*-*]
 	     || [istarget ia64-*-*]
@@ -5731,7 +5713,6 @@ 
 		  #endif
 		}])
 	     || [istarget aarch64*-*-*]
-	     || [istarget spu-*-*]
 	     || ([istarget powerpc*-*-*] && [check_vsx_hw_available])
 	     || ([istarget mips*-*-*]
 		 && [et-is-effective-target mips_msa])
@@ -5770,7 +5751,6 @@ 
 proc check_effective_target_vect_no_int_min_max { } {
     return [check_cached_effective_target_indexed vect_no_int_min_max {
       expr { [istarget sparc*-*-*]
-	     || [istarget spu-*-*]
 	     || [istarget alpha*-*-*]
 	     || ([istarget mips*-*-*]
 		 && [et-is-effective-target mips_loongson_mmi]) }}]
@@ -5806,7 +5786,6 @@ 
       expr { [is-effective-target arm_neon]
 	     || [istarget aarch64*-*-*]
 	     || [istarget powerpc*-*-*]
-             || [istarget spu-*-*]
 	     || [istarget i?86-*-*] || [istarget x86_64-*-*]
 	     || ([istarget mips*-*-*]
 		 && ([et-is-effective-target mpaired_single]
@@ -5902,7 +5881,6 @@ 
 	     || ([istarget aarch64*-*-*]
 		 && [is-effective-target aarch64_little_endian])
 	     || [istarget powerpc*-*-*]
-	     || [istarget spu-*-*]
 	     || ([istarget mips-*.*]
 		 && [et-is-effective-target mips_msa])
 	     || ([istarget s390*-*-*]
@@ -5930,7 +5908,6 @@ 
 	     || ([istarget aarch64*-*-*]
 		 && [is-effective-target aarch64_little_endian])
 	     || [istarget powerpc*-*-*]
-	     || [istarget spu-*-*]
 	     || (([istarget i?86-*-*] || [istarget x86_64-*-*])
 	         && [check_ssse3_available])
 	     || ([istarget mips*-*-*]
@@ -6047,7 +6024,6 @@ 
       expr { ([check_effective_target_vect_unpack]
               && [check_effective_target_vect_int_mult])
 	     || ([istarget powerpc*-*-*]
-		 || [istarget spu-*-*]
 		 || [istarget ia64-*-*]
 		 || ([istarget aarch64*-*-*]
 		     && ![check_effective_target_aarch64_sve])
@@ -6081,7 +6057,6 @@ 
 proc check_effective_target_vect_widen_mult_hi_to_si_pattern { } {
     return [check_cached_effective_target_indexed vect_widen_mult_hi_to_si_pattern {
       expr { [istarget powerpc*-*-*]
-	     || [istarget spu-*-*]
 	     || [istarget ia64-*-*]
 	     || [istarget i?86-*-*] || [istarget x86_64-*-*]
 	     || ([is-effective-target arm_neon]
@@ -6203,7 +6178,6 @@ 
       expr { ([istarget powerpc*-*-*] && ![istarget powerpc-*-linux*paired*])
              || [istarget i?86-*-*] || [istarget x86_64-*-*]
              || [istarget aarch64*-*-*]
-             || [istarget spu-*-*]
              || ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok]
 		 && [check_effective_target_arm_little_endian])
 	     || ([istarget mips*-*-*]
@@ -6221,7 +6195,6 @@ 
     return [check_cached_effective_target_indexed vect_unpack {
       expr { ([istarget powerpc*-*-*] && ![istarget powerpc-*paired*])
              || [istarget i?86-*-*] || [istarget x86_64-*-*]
-             || [istarget spu-*-*]
              || [istarget ia64-*-*]
              || [istarget aarch64*-*-*]
 	     || ([istarget mips*-*-*]
@@ -6288,8 +6261,7 @@ 
     set et_vect_aligned_arrays 0
     if { (([istarget i?86-*-*] || [istarget x86_64-*-*])
 	  && !([is-effective-target ia32]
-	       || ([check_avx_available] && ![check_prefer_avx128])))
-	 || [istarget spu-*-*] } {
+	       || ([check_avx_available] && ![check_prefer_avx128]))) } {
 	set et_vect_aligned_arrays 1
     }
 
@@ -6332,8 +6304,7 @@ 
 proc check_effective_target_natural_alignment_64 { } {
     return [check_cached_effective_target_indexed natural_alignment_64 {
       expr { [is-effective-target natural_alignment_32]
-             && (([is-effective-target lp64] && ![istarget *-*-darwin*])
-		 || [istarget spu-*-*]) }
+             && [is-effective-target lp64] && ![istarget *-*-darwin*] }
     }]
 }
 
@@ -6454,7 +6425,6 @@ 
 	     || [istarget powerpc*-*-*]
 	     || [istarget ia64-*-*]
 	     || [istarget i?86-*-*] || [istarget x86_64-*-*]
-	     || [istarget spu-*-*]
 	     || ([istarget mips*-*-*]
 		 && [et-is-effective-target mips_msa])
 	     || ([istarget arm*-*-*]
@@ -6500,7 +6470,6 @@ 
 proc check_effective_target_vect_short_mult { } {
     return [check_cached_effective_target_indexed vect_short_mult {
       expr { [istarget ia64-*-*]
-	     || [istarget spu-*-*]
 	     || [istarget i?86-*-*] || [istarget x86_64-*-*]
 	     || [istarget powerpc*-*-*]
 	     || [istarget aarch64*-*-*]
@@ -6518,7 +6487,6 @@ 
 proc check_effective_target_vect_int_mult { } {
     return [check_cached_effective_target_indexed vect_int_mult {
       expr { ([istarget powerpc*-*-*] && ![istarget powerpc-*-linux*paired*])
-	     || [istarget spu-*-*]
 	     || [istarget i?86-*-*] || [istarget x86_64-*-*]
 	     || [istarget ia64-*-*]
 	     || [istarget aarch64*-*-*]
@@ -6563,7 +6531,6 @@ 
 	     || [is-effective-target arm_neon]
              || [istarget i?86-*-*] || [istarget x86_64-*-*]
              || [istarget ia64-*-*]
-             || [istarget spu-*-*]
 	     || ([istarget mips*-*-*]
 		 && ([et-is-effective-target mips_msa]
 		     || [et-is-effective-target mpaired_single]))
@@ -6580,7 +6547,6 @@ 
 	     || [is-effective-target arm_neon]
              || [istarget i?86-*-*] || [istarget x86_64-*-*]
              || [istarget ia64-*-*]
-             || [istarget spu-*-*]
 	     || ([istarget mips*-*-*]
 		 && ([et-is-effective-target mpaired_single]
 		     || [et-is-effective-target mips_msa]))
@@ -6827,11 +6793,7 @@ 
 # Return 1 if the target supports atomic operations on "int_128" values.
 
 proc check_effective_target_sync_int_128 { } {
-    if { [istarget spu-*-*] } {
-	return 1
-    } else {
-	return 0
-    }
+    return 0
 }
 
 # Return 1 if the target supports atomic operations on "int_128" values
@@ -6839,11 +6801,7 @@ 
 # This requires support for both compare-and-swap and true atomic loads.
 
 proc check_effective_target_sync_int_128_runtime { } {
-    if { [istarget spu-*-*] } {
-	return 1
-    } else {
-	return 0
-    }
+    return 0
 }
 
 # Return 1 if the target supports atomic operations on "long long".
@@ -6857,8 +6815,7 @@ 
 	 || [istarget arm*-*-*]
 	 || [istarget alpha*-*-*]
 	 || ([istarget sparc*-*-*] && [check_effective_target_lp64])
-	 || [istarget s390*-*-*]
-	 || [istarget spu-*-*] } {
+	 || [istarget s390*-*-*] } {
 	return 1
     } else {
 	return 0
@@ -6917,7 +6874,6 @@ 
 	 || ([istarget sparc*-*-*]
 	     && [check_effective_target_lp64]
 	     && [check_effective_target_ultrasparc_hw])
-	 || [istarget spu-*-*]
 	 || ([istarget powerpc*-*-*] && [check_effective_target_lp64]) } {
 	return 1
     } else {
@@ -6964,7 +6920,6 @@ 
 	     || [istarget powerpc*-*-*]
 	     || [istarget crisv32-*-*] || [istarget cris-*-*]
 	     || ([istarget sparc*-*-*] && [check_effective_target_sparc_v9])
-	     || [istarget spu-*-*]
 	     || ([istarget arc*-*-*] && [check_effective_target_arc_atomic])
 	     || [check_effective_target_mips_llsc] }}]
 }
@@ -6987,7 +6942,6 @@ 
 	     || [istarget powerpc*-*-*]
 	     || [istarget crisv32-*-*] || [istarget cris-*-*]
 	     || ([istarget sparc*-*-*] && [check_effective_target_sparc_v9])
-	     || [istarget spu-*-*]
 	     || ([istarget arc*-*-*] && [check_effective_target_arc_atomic])
 	     || [check_effective_target_mips_llsc] }}]
 }
@@ -8575,8 +8529,6 @@ 
             }
             set dg-do-what-default compile
         }
-    } elseif { [istarget spu-*-*] } {
-        set dg-do-what-default run
     } elseif { [istarget i?86-*-*] || [istarget x86_64-*-*] } {
         lappend DEFAULT_VECTCFLAGS "-msse2"
         if { [check_effective_target_sse2_runtime] } {
@@ -8861,8 +8813,7 @@ 
 	 || [istarget mips*-*-*]
 	 || [istarget s390*-*-*]
 	 || [istarget riscv*-*-*]
-	 || [istarget sh*-*-*]
-	 || [istarget spu*-*-*] } {
+	 || [istarget sh*-*-*] } {
 	return 1
     }
     return 0
Index: gcc/testsuite/lib/target-utils.exp
===================================================================
--- gcc/testsuite/lib/target-utils.exp	(revision 275321)
+++ gcc/testsuite/lib/target-utils.exp	(working copy)
@@ -40,10 +40,6 @@ 
 	return "memory full"
     }
 
-    if { [istarget spu-*-*] && \
-	     [string match "*exceeds local store*" $output] } {
-	return "memory full"
-    }
     if { [string match "*error: function pointers not supported*" $output]
 	  && ![check_effective_target_function_pointers] } {
 	return "function pointers not supported"