From patchwork Mon Sep 2 20:16:52 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulrich Weigand X-Patchwork-Id: 1156715 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-508184-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=de.ibm.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="u1nXSqXF"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 46MhFq1WG7z9sDB for ; Tue, 3 Sep 2019 06:17:16 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :subject:to:date:from:cc:mime-version:content-type :content-transfer-encoding:message-id; q=dns; s=default; b=HJ7k8 3qLDroihmmBQix7b6k0z6vSoX26yAbaxa2WGhyCn4J2KIUt+ZZjLGtyjuv1jvmbj mrZbH93W9/aCSANMU243zZ28HcImhwsE66yFsMo8QfuCd9wylrVsPMgT7C1F/pIj WOnnLtEp1z7+qB8Pglpd6uSuwiceXfKMzuTnAw= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :subject:to:date:from:cc:mime-version:content-type :content-transfer-encoding:message-id; s=default; bh=5iyum2vlXLo O2jpX6rtyq37sho8=; b=u1nXSqXF8I8360OTuTZKIy3yV6uSMG78tML9a8n4VbJ ucqfei9iueOPt5/ykH/5/zCXCpkD/IpM13nk/C9L9HKk0hgFbg5EV9q7guJr042K xa+b2/tA0AVjmKDOYXsF01pduoSY6jPYsT1uIaZPiRJd0+9QU0YUFL3fgqSv8p7o = Received: (qmail 4129 invoked by alias); 2 Sep 2019 20:17:08 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 4119 invoked by uid 89); 2 Sep 2019 20:17:07 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-9.2 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_ASCII_DIVIDERS, KAM_SHORT, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.1 spammy=nick, IEC, iec, Cell X-HELO: mx0a-001b2d01.pphosted.com Received: from mx0b-001b2d01.pphosted.com (HELO mx0a-001b2d01.pphosted.com) (148.163.158.5) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 02 Sep 2019 20:17:02 +0000 Received: from pps.filterd (m0098414.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x82KGaEb019239 for ; Mon, 2 Sep 2019 16:16:58 -0400 Received: from e06smtp03.uk.ibm.com (e06smtp03.uk.ibm.com [195.75.94.99]) by mx0b-001b2d01.pphosted.com with ESMTP id 2us9xsr1hq-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 02 Sep 2019 16:16:58 -0400 Received: from localhost by e06smtp03.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 2 Sep 2019 21:16:56 +0100 Received: from b06cxnps4074.portsmouth.uk.ibm.com (9.149.109.196) by e06smtp03.uk.ibm.com (192.168.101.133) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Mon, 2 Sep 2019 21:16:54 +0100 Received: from d06av23.portsmouth.uk.ibm.com (d06av23.portsmouth.uk.ibm.com [9.149.105.59]) by b06cxnps4074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id x82KGrgX38666352 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 2 Sep 2019 20:16:53 GMT Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id BC695A4055; Mon, 2 Sep 2019 20:16:53 +0000 (GMT) Received: from d06av23.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 96265A4040; Mon, 2 Sep 2019 20:16:53 +0000 (GMT) Received: from oc3748833570.ibm.com (unknown [9.145.82.107]) by d06av23.portsmouth.uk.ibm.com (Postfix) with ESMTP; Mon, 2 Sep 2019 20:16:53 +0000 (GMT) Received: by oc3748833570.ibm.com (Postfix, from userid 1000) id 10222D802F0; Mon, 2 Sep 2019 22:16:53 +0200 (CEST) Subject: [RFA][1/3] Remove Cell Broadband Engine SPU targets To: gcc-patches@gcc.gnu.org Date: Mon, 2 Sep 2019 22:16:52 +0200 (CEST) From: "Ulrich Weigand" Cc: dje.gcc@gmail.com MIME-Version: 1.0 x-cbid: 19090220-0012-0000-0000-00000345D13C X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 19090220-0013-0000-0000-000021801CF3 Message-Id: <20190902201653.10222D802F0@oc3748833570.ibm.com> Hello, as announced here: https://gcc.gnu.org/ml/gcc/2019-04/msg00023.html we have declared the spu-elf target obsolete in GCC 9 with the goal of removing support in GCC 10. Nobody has stepped up to take over maintainership of the target. This patch set therefore removes this target and all references to it from the GCC source tree. (libstdc++ and testsuite are done as separate patches, this patch handles everything else.) Tested on s390x-ibm-linux. OK for mainline? (Deleted directories omitted from patch.) Bye, Ulrich ChangeLog: * MAINTAINERS: Remove spu port maintainers. contrib/ChangeLog: * compare-all-tests (all_targets): Remove references to spu. * config-list.mk (LIST): Likewise. contrib/header-tools/ChangeLog: * README: Remove references to spu. * reduce-headers: Likewise. libbacktrace/ChangeLog: * configure.ac: Remove references to spu. * configure: Regenerate. libcpp/ChangeLog: * directives.c: Remove references to spu from comments. * expr.c: Likewise. libgcc/ChangeLog: * config.host: Remove references to spu. * config/spu/: Remove directory. gcc/ChangeLog: * config.gcc: Obsolete spu target. Remove references to spu. * configure.ac: Remove references to spu. * configure: Regenerate. * config/spu/: Remove directory. * common/config/spu/: Remove directory. * doc/extend.texi: Remove references to spu. * doc/invoke.texi: Likewise. * doc/md.texi: Likewise. * doc/sourcebuild.texi: Likewise. Index: MAINTAINERS =================================================================== --- MAINTAINERS (revision 275321) +++ MAINTAINERS (working copy) @@ -109,9 +109,6 @@ sh port Oleg Endo sparc port David S. Miller sparc port Eric Botcazou -spu port Trevor Smigiel -spu port David Edelsohn -spu port Ulrich Weigand tilegx port Walter Lee tilepro port Walter Lee v850 port Nick Clifton Index: contrib/compare-all-tests =================================================================== --- contrib/compare-all-tests (revision 275321) +++ contrib/compare-all-tests (working copy) @@ -34,7 +34,7 @@ sh_opts='-m3 -m3e -m4 -m4a -m4al -m4/-mieee -m1 -m1/-mno-cbranchdi -m2a -m2a/-mieee -m2e -m2e/-mieee' sparc_opts='-mcpu=v8/-m32 -mcpu=v9/-m32 -m64' -all_targets='alpha arm avr bfin cris fr30 frv h8300 ia64 iq2000 m32c m32r m68k mcore mips mmix mn10300 pa pdp11 ppc sh sparc spu v850 vax xstormy16 xtensa' # e500 +all_targets='alpha arm avr bfin cris fr30 frv h8300 ia64 iq2000 m32c m32r m68k mcore mips mmix mn10300 pa pdp11 ppc sh sparc v850 vax xstormy16 xtensa' # e500 test_one_file () { Index: contrib/config-list.mk =================================================================== --- contrib/config-list.mk (revision 275321) +++ contrib/config-list.mk (working copy) @@ -90,7 +90,7 @@ sparc-leon3-linux-gnuOPT-enable-target=all sparc-netbsdelf \ sparc64-sun-solaris2.11OPT-with-gnu-ldOPT-with-gnu-asOPT-enable-threads=posix \ sparc-wrs-vxworks sparc64-elf sparc64-rtems sparc64-linux sparc64-freebsd6 \ - sparc64-netbsd sparc64-openbsd spu-elf \ + sparc64-netbsd sparc64-openbsd \ tilegx-linux-gnu tilegxbe-linux-gnu tilepro-linux-gnu \ v850e-elf v850-elf v850-rtems vax-linux-gnu \ vax-netbsdelf vax-openbsd visium-elf x86_64-apple-darwin \ Index: contrib/header-tools/README =================================================================== --- contrib/header-tools/README (revision 275321) +++ contrib/header-tools/README (working copy) @@ -203,7 +203,7 @@ these targets. They are also known to the tool. When building targets it will check those targets before the rest. This coverage can be achieved by building config-list.mk with : - LIST="aarch64-linux-gnu arm-netbsdelf c6x-elf epiphany-elf hppa2.0-hpux10.1 i686-mingw32crt i686-pc-msdosdjgpp mipsel-elf powerpc-eabisimaltivec rs6000-ibm-aix5.1.0 sh-superh-elf sparc64-elf spu-elf" + LIST="aarch64-linux-gnu arm-netbsdelf c6x-elf epiphany-elf hppa2.0-hpux10.1 i686-mingw32crt i686-pc-msdosdjgpp mipsel-elf powerpc-eabisimaltivec rs6000-ibm-aix5.1.0 sh-superh-elf sparc64-elf" -b specifies the native bootstrapped build root directory -t specifies a target build root directory that config-list.mk was run from Index: contrib/header-tools/reduce-headers =================================================================== --- contrib/header-tools/reduce-headers (revision 275321) +++ contrib/header-tools/reduce-headers (working copy) @@ -32,8 +32,7 @@ "powerpc-eabisimaltivec", "rs6000-ibm-aix5.1.0", "sh-superh-elf", - "sparc64-elf", - "spu-elf" + "sparc64-elf" ] Index: libbacktrace/configure =================================================================== --- libbacktrace/configure (revision 275321) +++ libbacktrace/configure (working copy) @@ -12971,10 +12971,8 @@ # simply assume that if we have mman.h, we have mmap. have_mmap=yes case "${host}" in - spu-*-*|*-*-msdosdjgpp) - # The SPU does not have mmap, but it has a sys/mman.h header file - # containing "mmap_eaddr" and the mmap flags, confusing the test. - # DJGPP also has sys/man.h, but no mmap + *-*-msdosdjgpp) + # DJGPP has sys/man.h, but no mmap have_mmap=no ;; esac else @@ -13115,7 +13113,6 @@ if test -n "${with_target_subdir}"; then case "${host}" in *-*-mingw*) have_fcntl=no ;; - spu-*-*) have_fcntl=no ;; *) have_fcntl=yes ;; esac else Index: libbacktrace/configure.ac =================================================================== --- libbacktrace/configure.ac (revision 275321) +++ libbacktrace/configure.ac (working copy) @@ -293,10 +293,8 @@ # simply assume that if we have mman.h, we have mmap. have_mmap=yes case "${host}" in - spu-*-*|*-*-msdosdjgpp) - # The SPU does not have mmap, but it has a sys/mman.h header file - # containing "mmap_eaddr" and the mmap flags, confusing the test. - # DJGPP also has sys/man.h, but no mmap + *-*-msdosdjgpp) + # DJGPP has sys/man.h, but no mmap have_mmap=no ;; esac else @@ -364,7 +362,6 @@ if test -n "${with_target_subdir}"; then case "${host}" in *-*-mingw*) have_fcntl=no ;; - spu-*-*) have_fcntl=no ;; *) have_fcntl=yes ;; esac else Index: libcpp/directives.c =================================================================== --- libcpp/directives.c (revision 275321) +++ libcpp/directives.c (working copy) @@ -1952,9 +1952,9 @@ if (node) { /* Do not treat conditional macros as being defined. This is due to - the powerpc and spu ports using conditional macros for 'vector', - 'bool', and 'pixel' to act as conditional keywords. This messes - up tests like #ifndef bool. */ + the powerpc port using conditional macros for 'vector', 'bool', + and 'pixel' to act as conditional keywords. This messes up tests + like #ifndef bool. */ skip = !cpp_macro_p (node) || (node->flags & NODE_CONDITIONAL); _cpp_mark_macro_used (node); _cpp_maybe_notify_macro_use (pfile, node); @@ -1981,9 +1981,9 @@ if (node) { /* Do not treat conditional macros as being defined. This is due to - the powerpc and spu ports using conditional macros for 'vector', - 'bool', and 'pixel' to act as conditional keywords. This messes - up tests like #ifndef bool. */ + the powerpc port using conditional macros for 'vector', 'bool', + and 'pixel' to act as conditional keywords. This messes up tests + like #ifndef bool. */ skip = (cpp_macro_p (node) && !(node->flags & NODE_CONDITIONAL)); _cpp_mark_macro_used (node); Index: libcpp/expr.c =================================================================== --- libcpp/expr.c (revision 275321) +++ libcpp/expr.c (working copy) @@ -1075,8 +1075,8 @@ pfile->state.prevent_expansion--; /* Do not treat conditional macros as being defined. This is due to the - powerpc and spu ports using conditional macros for 'vector', 'bool', and - 'pixel' to act as conditional keywords. This messes up tests like #ifndef + powerpc port using conditional macros for 'vector', 'bool', and 'pixel' + to act as conditional keywords. This messes up tests like #ifndef bool. */ result.unsignedp = false; result.high = 0; Index: libgcc/config.host =================================================================== --- libgcc/config.host (revision 275321) +++ libgcc/config.host (working copy) @@ -189,9 +189,6 @@ sparc*-*-*) cpu_type=sparc ;; -spu*-*-*) - cpu_type=spu - ;; s390*-*-*) cpu_type=s390 ;; @@ -1369,13 +1366,6 @@ ;; sparc64-*-netbsd*) ;; -spu-*-elf*) - tmake_file="$tmake_file spu/t-elf t-libgcc-pic t-fdpbit" - extra_parts="$extra_parts \ - libgcc_cachemgr.a libgcc_cachemgr_nonatomic.a \ - libgcc_cache8k.a libgcc_cache16k.a libgcc_cache32k.a \ - libgcc_cache64k.a libgcc_cache128k.a" - ;; tic6x-*-uclinux) tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl t-softfp \ c6x/t-elf c6x/t-uclinux t-crtstuff-pic t-libgcc-pic \ Index: gcc/config.gcc =================================================================== --- gcc/config.gcc (revision 275321) +++ gcc/config.gcc (working copy) @@ -247,8 +247,7 @@ # Obsolete configurations. case ${target} in - spu*-*-* \ - | tile*-*-* \ + tile*-*-* \ ) if test "x$enable_obsolete" != xyes; then echo "*** Configuration ${target} is obsolete." >&2 @@ -280,6 +279,7 @@ | powerpc*-*-linux*paired* \ | powerpc*-*-*spe* \ | sparc-hal-solaris2* \ + | spu*-*-* \ | thumb-*-* \ | *-*-freebsd[12] | *-*-freebsd[1234].* \ | *-*-freebsd*aout* \ @@ -535,9 +535,6 @@ d_target_objs="sparc-d.o" extra_headers="visintrin.h" ;; -spu*-*-*) - cpu_type=spu - ;; s390*-*-*) cpu_type=s390 d_target_objs="s390-d.o" @@ -3171,15 +3168,6 @@ with_cpu=ultrasparc tmake_file="${tmake_file} sparc/t-sparc" ;; -spu-*-elf*) - tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h" - tmake_file="spu/t-spu-elf" - native_system_header_dir=/include - extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h" - extra_modes=spu/spu-modes.def - c_target_objs="${c_target_objs} spu-c.o" - cxx_target_objs="${cxx_target_objs} spu-c.o" - ;; tic6x-*-elf) tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h" tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h" @@ -4890,23 +4878,6 @@ esac ;; - spu-*-*) - supported_defaults="arch tune" - - for which in arch tune; do - eval "val=\$with_$which" - case ${val} in - "" | cell | celledp) - # OK - ;; - *) - echo "Unknown cpu used in --with-$which=$val." 1>&2 - exit 1 - ;; - esac - done - ;; - tic6x-*-*) supported_defaults="arch" Index: gcc/configure =================================================================== --- gcc/configure (revision 275321) +++ gcc/configure (working copy) @@ -27962,7 +27962,7 @@ # version to the per-target configury. case "$cpu_type" in aarch64 | alpha | arc | arm | avr | bfin | cris | csky | i386 | m32c | m68k \ - | microblaze | mips | nds32 | nios2 | pa | riscv | rs6000 | score | sparc | spu \ + | microblaze | mips | nds32 | nios2 | pa | riscv | rs6000 | score | sparc \ | tilegx | tilepro | visium | xstormy16 | xtensa) insn="nop" ;; Index: gcc/configure.ac =================================================================== --- gcc/configure.ac (revision 275321) +++ gcc/configure.ac (working copy) @@ -4999,7 +4999,7 @@ # version to the per-target configury. case "$cpu_type" in aarch64 | alpha | arc | arm | avr | bfin | cris | csky | i386 | m32c | m68k \ - | microblaze | mips | nds32 | nios2 | pa | riscv | rs6000 | score | sparc | spu \ + | microblaze | mips | nds32 | nios2 | pa | riscv | rs6000 | score | sparc \ | tilegx | tilepro | visium | xstormy16 | xtensa) insn="nop" ;; Index: gcc/doc/extend.texi =================================================================== --- gcc/doc/extend.texi (revision 275321) +++ gcc/doc/extend.texi (working copy) @@ -1385,7 +1385,7 @@ defined in the N1275 draft of ISO/IEC DTR 18037. Support for named address spaces in GCC will evolve as the draft technical report changes. Calling conventions for any target might also change. At -present, only the AVR, SPU, M32C, RL78, and x86 targets support +present, only the AVR, M32C, RL78, and x86 targets support address spaces other than the generic address space. Address space identifiers may be used exactly like any other C type @@ -1573,23 +1573,6 @@ addresses. Non-far variables are assumed to appear in the topmost 64@tie{}KiB of the address space. -@subsection SPU Named Address Spaces -@cindex @code{__ea} SPU Named Address Spaces - -On the SPU target variables may be declared as -belonging to another address space by qualifying the type with the -@code{__ea} address space identifier: - -@smallexample -extern int __ea i; -@end smallexample - -@noindent -The compiler generates special code to access the variable @code{i}. -It may use runtime library -support, or generate special machine instructions to access that address -space. - @subsection x86 Named Address Spaces @cindex x86 named address spaces @@ -2486,7 +2469,6 @@ * RX Function Attributes:: * S/390 Function Attributes:: * SH Function Attributes:: -* SPU Function Attributes:: * Symbian OS Function Attributes:: * V850 Function Attributes:: * Visium Function Attributes:: @@ -5839,24 +5821,6 @@ but it does not save and restore all registers. @end table -@node SPU Function Attributes -@subsection SPU Function Attributes - -These function attributes are supported by the SPU back end: - -@table @code -@item naked -@cindex @code{naked} function attribute, SPU -This attribute allows the compiler to construct the -requisite function declaration, while allowing the body of the -function to be assembly code. The specified function will not have -prologue/epilogue sequences generated by the compiler. Only basic -@code{asm} statements can safely be included in naked functions -(@pxref{Basic Asm}). While using extended @code{asm} or a mixture of -basic @code{asm} and C code may appear to work, they cannot be -depended upon to work reliably and are not supported. -@end table - @node Symbian OS Function Attributes @subsection Symbian OS Function Attributes @@ -6707,7 +6671,6 @@ * Nvidia PTX Variable Attributes:: * PowerPC Variable Attributes:: * RL78 Variable Attributes:: -* SPU Variable Attributes:: * V850 Variable Attributes:: * x86 Variable Attributes:: * Xstormy16 Variable Attributes:: @@ -7622,14 +7585,6 @@ specifies placement of the corresponding variable in the SADDR area, which can be accessed more efficiently than the default memory region. -@node SPU Variable Attributes -@subsection SPU Variable Attributes - -@cindex @code{spu_vector} variable attribute, SPU -The SPU supports the @code{spu_vector} attribute for variables. For -documentation of this attribute please see the documentation in -@ref{SPU Type Attributes}. - @node V850 Variable Attributes @subsection V850 Variable Attributes @@ -7737,7 +7692,6 @@ * ARM Type Attributes:: * MeP Type Attributes:: * PowerPC Type Attributes:: -* SPU Type Attributes:: * x86 Type Attributes:: @end menu @@ -8328,15 +8282,6 @@ These attributes mainly are intended to support the @code{__vector}, @code{__pixel}, and @code{__bool} AltiVec keywords. -@node SPU Type Attributes -@subsection SPU Type Attributes - -@cindex @code{spu_vector} type attribute, SPU -The SPU supports the @code{spu_vector} attribute for types. This attribute -allows one to declare vector data types supported by the Sony/Toshiba/IBM SPU -Language Extensions Specification. It is intended to support the -@code{__vector} keyword. - @node x86 Type Attributes @subsection x86 Type Attributes @@ -13621,7 +13566,6 @@ * S/390 System z Built-in Functions:: * SH Built-in Functions:: * SPARC VIS Built-in Functions:: -* SPU Built-in Functions:: * TI C6X Built-in Functions:: * TILE-Gx Built-in Functions:: * TILEPro Built-in Functions:: @@ -21160,61 +21104,6 @@ long __builtin_vis_fpcmpur32shl (v2si, v2si, int); @end smallexample -@node SPU Built-in Functions -@subsection SPU Built-in Functions - -GCC provides extensions for the SPU processor as described in the -Sony/Toshiba/IBM SPU Language Extensions Specification. GCC's -implementation differs in several ways. - -@itemize @bullet - -@item -The optional extension of specifying vector constants in parentheses is -not supported. - -@item -A vector initializer requires no cast if the vector constant is of the -same type as the variable it is initializing. - -@item -If @code{signed} or @code{unsigned} is omitted, the signedness of the -vector type is the default signedness of the base type. The default -varies depending on the operating system, so a portable program should -always specify the signedness. - -@item -By default, the keyword @code{__vector} is added. The macro -@code{vector} is defined in @code{} and can be -undefined. - -@item -GCC allows using a @code{typedef} name as the type specifier for a -vector type. - -@item -For C, overloaded functions are implemented with macros so the following -does not work: - -@smallexample - spu_add ((vector signed int)@{1, 2, 3, 4@}, foo); -@end smallexample - -@noindent -Since @code{spu_add} is a macro, the vector constant in the example -is treated as four separate arguments. Wrap the entire argument in -parentheses for this to work. - -@item -The extended version of @code{__builtin_expect} is not supported. - -@end itemize - -@emph{Note:} Only the interface described in the aforementioned -specification is supported. Internally, GCC uses built-in functions to -implement the required functionality, but these are not supported and -are subject to change without notice. - @node TI C6X Built-in Functions @subsection TI C6X Built-in Functions Index: gcc/doc/invoke.texi =================================================================== --- gcc/doc/invoke.texi (revision 275321) +++ gcc/doc/invoke.texi (working copy) @@ -1214,17 +1214,6 @@ -mfix-at697f -mfix-ut699 -mfix-ut700 -mfix-gr712rc @gol -mlra -mno-lra} -@emph{SPU Options} -@gccoptlist{-mwarn-reloc -merror-reloc @gol --msafe-dma -munsafe-dma @gol --mbranch-hints @gol --msmall-mem -mlarge-mem -mstdmain @gol --mfixed-range=@var{register-range} @gol --mea32 -mea64 @gol --maddress-space-conversion -mno-address-space-conversion @gol --mcache-size=@var{cache-size} @gol --matomic-updates -mno-atomic-updates} - @emph{System V Options} @gccoptlist{-Qy -Qn -YP,@var{paths} -Ym,@var{dir}} @@ -15717,7 +15706,6 @@ * SH Options:: * Solaris 2 Options:: * SPARC Options:: -* SPU Options:: * System V Options:: * TILE-Gx Options:: * TILEPro Options:: @@ -26770,141 +26758,6 @@ Otherwise, assume no such offset is present. @end table -@node SPU Options -@subsection SPU Options -@cindex SPU options - -These @samp{-m} options are supported on the SPU: - -@table @gcctabopt -@item -mwarn-reloc -@itemx -merror-reloc -@opindex mwarn-reloc -@opindex merror-reloc - -The loader for SPU does not handle dynamic relocations. By default, GCC -gives an error when it generates code that requires a dynamic -relocation. @option{-mno-error-reloc} disables the error, -@option{-mwarn-reloc} generates a warning instead. - -@item -msafe-dma -@itemx -munsafe-dma -@opindex msafe-dma -@opindex munsafe-dma - -Instructions that initiate or test completion of DMA must not be -reordered with respect to loads and stores of the memory that is being -accessed. -With @option{-munsafe-dma} you must use the @code{volatile} keyword to protect -memory accesses, but that can lead to inefficient code in places where the -memory is known to not change. Rather than mark the memory as volatile, -you can use @option{-msafe-dma} to tell the compiler to treat -the DMA instructions as potentially affecting all memory. - -@item -mbranch-hints -@opindex mbranch-hints - -By default, GCC generates a branch hint instruction to avoid -pipeline stalls for always-taken or probably-taken branches. A hint -is not generated closer than 8 instructions away from its branch. -There is little reason to disable them, except for debugging purposes, -or to make an object a little bit smaller. - -@item -msmall-mem -@itemx -mlarge-mem -@opindex msmall-mem -@opindex mlarge-mem - -By default, GCC generates code assuming that addresses are never larger -than 18 bits. With @option{-mlarge-mem} code is generated that assumes -a full 32-bit address. - -@item -mstdmain -@opindex mstdmain - -By default, GCC links against startup code that assumes the SPU-style -main function interface (which has an unconventional parameter list). -With @option{-mstdmain}, GCC links your program against startup -code that assumes a C99-style interface to @code{main}, including a -local copy of @code{argv} strings. - -@item -mfixed-range=@var{register-range} -@opindex mfixed-range -Generate code treating the given register range as fixed registers. -A fixed register is one that the register allocator cannot use. This is -useful when compiling kernel code. A register range is specified as -two registers separated by a dash. Multiple register ranges can be -specified separated by a comma. - -@item -mea32 -@itemx -mea64 -@opindex mea32 -@opindex mea64 -Compile code assuming that pointers to the PPU address space accessed -via the @code{__ea} named address space qualifier are either 32 or 64 -bits wide. The default is 32 bits. As this is an ABI-changing option, -all object code in an executable must be compiled with the same setting. - -@item -maddress-space-conversion -@itemx -mno-address-space-conversion -@opindex maddress-space-conversion -@opindex mno-address-space-conversion -Allow/disallow treating the @code{__ea} address space as superset -of the generic address space. This enables explicit type casts -between @code{__ea} and generic pointer as well as implicit -conversions of generic pointers to @code{__ea} pointers. The -default is to allow address space pointer conversions. - -@item -mcache-size=@var{cache-size} -@opindex mcache-size -This option controls the version of libgcc that the compiler links to an -executable and selects a software-managed cache for accessing variables -in the @code{__ea} address space with a particular cache size. Possible -options for @var{cache-size} are @samp{8}, @samp{16}, @samp{32}, @samp{64} -and @samp{128}. The default cache size is 64KB. - -@item -matomic-updates -@itemx -mno-atomic-updates -@opindex matomic-updates -@opindex mno-atomic-updates -This option controls the version of libgcc that the compiler links to an -executable and selects whether atomic updates to the software-managed -cache of PPU-side variables are used. If you use atomic updates, changes -to a PPU variable from SPU code using the @code{__ea} named address space -qualifier do not interfere with changes to other PPU variables residing -in the same cache line from PPU code. If you do not use atomic updates, -such interference may occur; however, writing back cache lines is -more efficient. The default behavior is to use atomic updates. - -@item -mdual-nops -@itemx -mdual-nops=@var{n} -@opindex mdual-nops -By default, GCC inserts NOPs to increase dual issue when it expects -it to increase performance. @var{n} can be a value from 0 to 10. A -smaller @var{n} inserts fewer NOPs. 10 is the default, 0 is the -same as @option{-mno-dual-nops}. Disabled with @option{-Os}. - -@item -mhint-max-nops=@var{n} -@opindex mhint-max-nops -Maximum number of NOPs to insert for a branch hint. A branch hint must -be at least 8 instructions away from the branch it is affecting. GCC -inserts up to @var{n} NOPs to enforce this, otherwise it does not -generate the branch hint. - -@item -mhint-max-distance=@var{n} -@opindex mhint-max-distance -The encoding of the branch hint instruction limits the hint to be within -256 instructions of the branch it is affecting. By default, GCC makes -sure it is within 125. - -@item -msafe-hints -@opindex msafe-hints -Work around a hardware bug that causes the SPU to stall indefinitely. -By default, GCC inserts the @code{hbrp} instruction to make sure -this stall won't happen. - -@end table - @node System V Options @subsection Options for System V Index: gcc/doc/md.texi =================================================================== --- gcc/doc/md.texi (revision 275321) +++ gcc/doc/md.texi (working copy) @@ -3736,76 +3736,6 @@ @end table -@item SPU---@file{config/spu/spu.h} -@table @code -@item a -An immediate which can be loaded with the il/ila/ilh/ilhu instructions. const_int is treated as a 64 bit value. - -@item c -An immediate for and/xor/or instructions. const_int is treated as a 64 bit value. - -@item d -An immediate for the @code{iohl} instruction. const_int is treated as a 64 bit value. - -@item f -An immediate which can be loaded with @code{fsmbi}. - -@item A -An immediate which can be loaded with the il/ila/ilh/ilhu instructions. const_int is treated as a 32 bit value. - -@item B -An immediate for most arithmetic instructions. const_int is treated as a 32 bit value. - -@item C -An immediate for and/xor/or instructions. const_int is treated as a 32 bit value. - -@item D -An immediate for the @code{iohl} instruction. const_int is treated as a 32 bit value. - -@item I -A constant in the range [@minus{}64, 63] for shift/rotate instructions. - -@item J -An unsigned 7-bit constant for conversion/nop/channel instructions. - -@item K -A signed 10-bit constant for most arithmetic instructions. - -@item M -A signed 16 bit immediate for @code{stop}. - -@item N -An unsigned 16-bit constant for @code{iohl} and @code{fsmbi}. - -@item O -An unsigned 7-bit constant whose 3 least significant bits are 0. - -@item P -An unsigned 3-bit constant for 16-byte rotates and shifts - -@item R -Call operand, reg, for indirect calls - -@item S -Call operand, symbol, for relative calls. - -@item T -Call operand, const_int, for absolute calls. - -@item U -An immediate which can be loaded with the il/ila/ilh/ilhu instructions. const_int is sign extended to 128 bit. - -@item W -An immediate for shift and rotate instructions. const_int is treated as a 32 bit value. - -@item Y -An immediate for and/xor/or instructions. const_int is sign extended as a 128 bit. - -@item Z -An immediate for the @code{iohl} instruction. const_int is sign extended to 128 bit. - -@end table - @item TI C6X family---@file{config/c6x/constraints.md} @table @code @item a Index: gcc/doc/sourcebuild.texi =================================================================== --- gcc/doc/sourcebuild.texi (revision 275321) +++ gcc/doc/sourcebuild.texi (working copy) @@ -2011,9 +2011,6 @@ @item ppc_recip_hw PowerPC target supports executing reciprocal estimate instructions. -@item spu_auto_overlay -SPU target has toolchain that supports automatic overlay generation. - @item vmx_hw PowerPC target supports executing AltiVec instructions. @@ -2423,13 +2420,6 @@ Target supports compiling @code{xop} instructions. @end table -@subsubsection Local to tests in @code{gcc.target/spu/ea} - -@table @code -@item ealib -Target @code{__ea} library functions are available. -@end table - @subsubsection Local to tests in @code{gcc.test-framework} @table @code From patchwork Mon Sep 2 20:17:38 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulrich Weigand X-Patchwork-Id: 1156716 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-508185-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=de.ibm.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="ecAjd794"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 46MhGs73BYz9sDB for ; Tue, 3 Sep 2019 06:18:13 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :subject:to:date:from:cc:mime-version:content-type :content-transfer-encoding:message-id; q=dns; s=default; b=Wfus1 PPlp2KTzfzj9RUJhn854CbJ9BCJOA/dfp43GGIbY2M81wqJQ2cgSG91tEJ86qzhB 4uSOCrTzgXc76pwK4PGbB2a7RGxSn2nugvj6xmPwEDHOO8Zc65AwgE2sREvwvIk3 zRCh7erpcMoFGNJ/svZo2wFmNXUGbqDxnYE64k= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :subject:to:date:from:cc:mime-version:content-type :content-transfer-encoding:message-id; s=default; bh=ZBO+LWIprYC UsVNqi/ZlZay6qcc=; b=ecAjd794m7X9NK0RPoeGQPsKWE3mW0y/ZIRPiptTysJ w1EBJCnB2wgokNTa6N9Z1Ukr2600LKvaPTmkGxUWN5ifbf4QwAMNw+2w1Vmftzyr CUlqoSD8HQfZ/H2ekIWTdHSL2K++9mDeNfixVqdutdhp8ZkksjlWUCZiKiV84RwU = Received: (qmail 7177 invoked by alias); 2 Sep 2019 20:18:02 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 7139 invoked by uid 89); 2 Sep 2019 20:18:01 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-7.9 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_2, GIT_PATCH_3, KAM_ASCII_DIVIDERS, KAM_SHORT, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.1 spammy=sid, 1.99, distribute, bl X-HELO: mx0a-001b2d01.pphosted.com Received: from mx0a-001b2d01.pphosted.com (HELO mx0a-001b2d01.pphosted.com) (148.163.156.1) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 02 Sep 2019 20:17:48 +0000 Received: from pps.filterd (m0187473.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x82KGWR6176146 for ; Mon, 2 Sep 2019 16:17:46 -0400 Received: from e06smtp05.uk.ibm.com (e06smtp05.uk.ibm.com [195.75.94.101]) by mx0a-001b2d01.pphosted.com with ESMTP id 2uqmhtdfrp-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 02 Sep 2019 16:17:45 -0400 Received: from localhost by e06smtp05.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 2 Sep 2019 21:17:42 +0100 Received: from b06cxnps3075.portsmouth.uk.ibm.com (9.149.109.195) by e06smtp05.uk.ibm.com (192.168.101.135) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Mon, 2 Sep 2019 21:17:40 +0100 Received: from d06av24.portsmouth.uk.ibm.com (mk.ibm.com [9.149.105.60]) by b06cxnps3075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id x82KHdRm58589422 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 2 Sep 2019 20:17:39 GMT Received: from d06av24.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B818B4203F; Mon, 2 Sep 2019 20:17:39 +0000 (GMT) Received: from d06av24.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8096C4204F; Mon, 2 Sep 2019 20:17:39 +0000 (GMT) Received: from oc3748833570.ibm.com (unknown [9.145.82.107]) by d06av24.portsmouth.uk.ibm.com (Postfix) with ESMTP; Mon, 2 Sep 2019 20:17:39 +0000 (GMT) Received: by oc3748833570.ibm.com (Postfix, from userid 1000) id 02A83D802F0; Mon, 2 Sep 2019 22:17:39 +0200 (CEST) Subject: [RFA][2/3] Remove Cell Broadband Engine SPU targets: testsuite To: gcc-patches@gcc.gnu.org Date: Mon, 2 Sep 2019 22:17:38 +0200 (CEST) From: "Ulrich Weigand" Cc: dje.gcc@gmail.com MIME-Version: 1.0 x-cbid: 19090220-0020-0000-0000-00000366D37C X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 19090220-0021-0000-0000-000021BC398B Message-Id: <20190902201739.02A83D802F0@oc3748833570.ibm.com> [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. 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 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 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 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 */ /* { 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 #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 #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 #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 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 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 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 ! 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 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" From patchwork Mon Sep 2 20:19:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Ulrich Weigand X-Patchwork-Id: 1156717 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-508186-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=de.ibm.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="ZY+NZlyj"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 46MhJF3gp8z9sDB for ; Tue, 3 Sep 2019 06:19:25 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :subject:to:date:from:cc:mime-version:content-type :content-transfer-encoding:message-id; q=dns; s=default; b=l9Oac JB01vUynnB2IeF5yJE7x3mnPJVsL1ngDDAdo1g0Hd0cRKVFhvq3KDidAVS3E1B7u I4dpacKFFCVka9BEvIH9BhIOb1UL66/j/z2c5EsDLnqr+wWtuCMbgs5mID6xRfZF lB9oWtSxX0Q+CW0RfixF44ywyfIR1Pmbs4hI08= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender :subject:to:date:from:cc:mime-version:content-type :content-transfer-encoding:message-id; s=default; bh=LSCnFWBRZMs V7tz6VMdJG5G5FMU=; b=ZY+NZlyjnnpKTjrQXqcV4NM+1R7BqvzWwVdJXKJEmGX 6n79JtPLOMPcuFuwjQ7NvBk3B4TtHfCIXlnOYhpqaO0q3YAA2MIp3GPistWfI2Nl HbuI/OlRTAhXPVtfpCrJ0oOvvPKCI/R5xLxYpjpYtJr2ojxZrO5unOLxWddEzexA = Received: (qmail 9524 invoked by alias); 2 Sep 2019 20:19:12 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 9481 invoked by uid 89); 2 Sep 2019 20:19:11 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-8.9 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_2, GIT_PATCH_3, KAM_ASCII_DIVIDERS, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=unavailable version=3.3.1 spammy=of, this, the, is X-HELO: mx0a-001b2d01.pphosted.com Received: from mx0a-001b2d01.pphosted.com (HELO mx0a-001b2d01.pphosted.com) (148.163.156.1) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 02 Sep 2019 20:19:10 +0000 Received: from pps.filterd (m0187473.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x82KGX8P176194 for ; Mon, 2 Sep 2019 16:19:08 -0400 Received: from e06smtp04.uk.ibm.com (e06smtp04.uk.ibm.com [195.75.94.100]) by mx0a-001b2d01.pphosted.com with ESMTP id 2uqmhtdgwg-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 02 Sep 2019 16:19:08 -0400 Received: from localhost by e06smtp04.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 2 Sep 2019 21:19:05 +0100 Received: from b06cxnps4076.portsmouth.uk.ibm.com (9.149.109.198) by e06smtp04.uk.ibm.com (192.168.101.134) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Mon, 2 Sep 2019 21:19:02 +0100 Received: from d06av21.portsmouth.uk.ibm.com (d06av21.portsmouth.uk.ibm.com [9.149.105.232]) by b06cxnps4076.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id x82KJ11b50462864 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 2 Sep 2019 20:19:01 GMT Received: from d06av21.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 506B65204E; Mon, 2 Sep 2019 20:19:01 +0000 (GMT) Received: from oc3748833570.ibm.com (unknown [9.145.82.107]) by d06av21.portsmouth.uk.ibm.com (Postfix) with ESMTP id 366EC5204F; Mon, 2 Sep 2019 20:19:01 +0000 (GMT) Received: by oc3748833570.ibm.com (Postfix, from userid 1000) id B9177D802F0; Mon, 2 Sep 2019 22:19:00 +0200 (CEST) Subject: [RFA][3/3] Remove Cell Broadband Engine SPU targets: libstdc++ To: gcc-patches@gcc.gnu.org, libstdc++@gcc.gnu.org Date: Mon, 2 Sep 2019 22:19:00 +0200 (CEST) From: "Ulrich Weigand" Cc: dje.gcc@gmail.com MIME-Version: 1.0 x-cbid: 19090220-0016-0000-0000-000002A5D3F6 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 19090220-0017-0000-0000-0000330637F7 Message-Id: <20190902201900.B9177D802F0@oc3748833570.ibm.com> [RFA][3/3] Remove Cell Broadband Engine SPU targets: libstdc++ Remove all references to spu from the libstdc++ directory. Note that libstdc++ currently consideres "__ea" a reserved word (because it was for the SPU target), and therefore specifically avoids using it in include/tr1/ell_integral.tcc. This patch removes this workaround (which is not strictly necessary, but seems the way to go ...). Tested on s390x-ibm-linux. OK for mainline? Bye, Ulrich libstdc++-v3/ChangeLog: * crossconfig.m4: Remove references to spu. * configure: Regenerate. * doc/xml/manual/appendix_contributing.xml: Remove references to __ea as "badword" for spu. * doc/html/manual/source_code_style.html: Regenerate. * include/tr1/ell_integral.tcc (__ellint_rd): Do not attempt to avoid __ea (as "badword" for spu). (__ellint_rj): Likewise. Index: libstdc++-v3/crossconfig.m4 =================================================================== --- libstdc++-v3/crossconfig.m4 (revision 275321) +++ libstdc++-v3/crossconfig.m4 (working copy) @@ -54,14 +54,6 @@ AC_DEFINE(HAVE_SQRTF) ;; - spu-*-elf*) - GLIBCXX_CHECK_COMPILER_FEATURES - GLIBCXX_CHECK_LINKER_FEATURES - GLIBCXX_CHECK_MATH_SUPPORT - GLIBCXX_CHECK_STDLIB_SUPPORT - AM_ICONV - ;; - *-aix*) GLIBCXX_CHECK_LINKER_FEATURES GLIBCXX_CHECK_MATH_SUPPORT Index: libstdc++-v3/doc/html/manual/source_code_style.html =================================================================== --- libstdc++-v3/doc/html/manual/source_code_style.html (revision 275321) +++ libstdc++-v3/doc/html/manual/source_code_style.html (working copy) @@ -48,9 +48,6 @@       _res_ext
      __tg_*

-      SPU adds:
-      __ea
-
      For GCC:

      [Note that this list is out of date. It applies to the old
Index: libstdc++-v3/doc/xml/manual/appendix_contributing.xml =================================================================== --- libstdc++-v3/doc/xml/manual/appendix_contributing.xml (revision 275321) +++ libstdc++-v3/doc/xml/manual/appendix_contributing.xml (working copy) @@ -463,9 +463,6 @@ _res_ext __tg_* - SPU adds: - __ea - For GCC: [Note that this list is out of date. It applies to the old Index: libstdc++-v3/include/tr1/ell_integral.tcc =================================================================== --- libstdc++-v3/include/tr1/ell_integral.tcc (revision 275321) +++ libstdc++-v3/include/tr1/ell_integral.tcc (working copy) @@ -370,11 +370,10 @@ __zn = __c0 * (__zn + __lambda); } - // Note: __ea is an SPU badname. - _Tp __eaa = __xndev * __yndev; + _Tp __ea = __xndev * __yndev; _Tp __eb = __zndev * __zndev; - _Tp __ec = __eaa - __eb; - _Tp __ed = __eaa - _Tp(6) * __eb; + _Tp __ec = __ea - __eb; + _Tp __ed = __ea - _Tp(6) * __eb; _Tp __ef = __ed + __ec + __ec; _Tp __s1 = __ed * (-__c1 + __c3 * __ed / _Tp(3) - _Tp(3) * __c4 * __zndev * __ef @@ -381,7 +380,7 @@ / _Tp(2)); _Tp __s2 = __zndev * (__c2 * __ef - + __zndev * (-__c3 * __ec - __zndev * __c4 - __eaa)); + + __zndev * (-__c3 * __ec - __zndev * __c4 - __ea)); return _Tp(3) * __sigma + __power4 * (_Tp(1) + __s1 + __s2) / (__mu * std::sqrt(__mu)); @@ -634,17 +633,16 @@ __pn = __c0 * (__pn + __lambda); } - // Note: __ea is an SPU badname. - _Tp __eaa = __xndev * (__yndev + __zndev) + __yndev * __zndev; + _Tp __ea = __xndev * (__yndev + __zndev) + __yndev * __zndev; _Tp __eb = __xndev * __yndev * __zndev; _Tp __ec = __pndev * __pndev; - _Tp __e2 = __eaa - _Tp(3) * __ec; - _Tp __e3 = __eb + _Tp(2) * __pndev * (__eaa - __ec); + _Tp __e2 = __ea - _Tp(3) * __ec; + _Tp __e3 = __eb + _Tp(2) * __pndev * (__ea - __ec); _Tp __s1 = _Tp(1) + __e2 * (-__c1 + _Tp(3) * __c3 * __e2 / _Tp(4) - _Tp(3) * __c4 * __e3 / _Tp(2)); _Tp __s2 = __eb * (__c2 / _Tp(2) + __pndev * (-__c3 - __c3 + __pndev * __c4)); - _Tp __s3 = __pndev * __eaa * (__c2 - __pndev * __c3) + _Tp __s3 = __pndev * __ea * (__c2 - __pndev * __c3) - __c2 * __pndev * __ec; return _Tp(3) * __sigma + __power4 * (__s1 + __s2 + __s3)