From patchwork Fri Dec 21 19:02:55 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janis Johnson X-Patchwork-Id: 207871 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 2E57B2C0094 for ; Sat, 22 Dec 2012 06:03:38 +1100 (EST) Comment: DKIM? See http://www.dkim.org DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=gcc.gnu.org; s=default; x=1356721419; h=Comment: DomainKey-Signature:Received:Received:Received:Received:Received: Received:Message-ID:Date:From:Reply-To:User-Agent:MIME-Version: To:Subject:Content-Type:Mailing-List:Precedence:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:Sender: Delivered-To; bh=cF2GkrnBD2XHSpo6qIXvIb9P3q0=; b=DSnIRL7RvrJGwY7 4MkClaSVEmx4Xq6XYiJCpx6Jby1mahv8gW7W1t+A+neojQTnALnV0sP9x7iyAYsc jbGDiJiKsAfp4wEEbtGcJhUSXycMEAyS0P2prgLKvF5NF2TriYxPotcQndAVUUBW 1VQrYwg2Zthui8qcyQVK6tlvA/ZY= Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=gcc.gnu.org; h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:Received:Received:Received:Received:Message-ID:Date:From:Reply-To:User-Agent:MIME-Version:To:Subject:Content-Type:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=iXZh2ardnMohXxj4C4hWg00AmbeyVpZ/nGbcEL3BOBoZ+eGsgoZ0X55xd3ailR dZu4ZGuke6+O30sWyuwa+nzFkjEB1Jr2nCAxonOdE1k800JwD5aI62U8gURME3lF 7R9OWzGNA3fXidRtFzTri2i/DqK2FXkqlMiI1Or6lOHw0=; Received: (qmail 13255 invoked by alias); 21 Dec 2012 19:03:35 -0000 Received: (qmail 13246 invoked by uid 22791); 21 Dec 2012 19:03:33 -0000 X-SWARE-Spam-Status: No, hits=-3.8 required=5.0 tests=AWL, BAYES_00, KHOP_RCVD_UNTRUST, RCVD_IN_HOSTKARMA_W, RCVD_IN_HOSTKARMA_WL X-Spam-Check-By: sourceware.org Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 21 Dec 2012 19:03:19 +0000 Received: from svr-orw-fem-01.mgc.mentorg.com ([147.34.98.93]) by relay1.mentorg.com with esmtp id 1Tm7sM-0005kO-MN from Janis_Johnson@mentor.com for gcc-patches@gcc.gnu.org; Fri, 21 Dec 2012 11:03:18 -0800 Received: from SVR-ORW-FEM-04.mgc.mentorg.com ([147.34.97.41]) by svr-orw-fem-01.mgc.mentorg.com over TLS secured channel with Microsoft SMTPSVC(6.0.3790.4675); Fri, 21 Dec 2012 11:03:18 -0800 Received: from [127.0.0.1] (147.34.91.1) by svr-orw-fem-04.mgc.mentorg.com (147.34.97.41) with Microsoft SMTP Server id 14.1.289.1; Fri, 21 Dec 2012 11:03:17 -0800 Message-ID: <50D4B25F.9000207@mentor.com> Date: Fri, 21 Dec 2012 11:02:55 -0800 From: Janis Johnson Reply-To: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.28) Gecko/20120313 Thunderbird/3.1.20 MIME-Version: 1.0 To: "gcc-patches@gcc.gnu.org" Subject: [testsuite] replace gcc.target/arm/ftest-*.c with compile-only tests 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 The gcc.target/arm/ftest-*.c tests check various macros that are set for ARM targets by setting flags based on preprocessor directives that check those macros. The tests are skipped if the current test platform doesn't support executing programs for the architecture for which flags are being checked. There are several problems with these tests: o There are problems with the arm_arch_v*_multilib effective target checks as described in PR testsuite/55780. o Tests for arm mode are skipped if the currently multilib generates THUMB mode by default, but they only need to be skipped if the multilib flags include -mthumb that would override the -marm specified in test options. o The tests are not skipped if multilib flags use -march=* that would override the test options. When checking preprocessor builtins there is no need to execute a test; the checking can all be done during preprocessing. This patch replaces the gcc.target/arm/ftest-*.c tests with compile-only tests that fail to compile if macros are defined when they should not be, or have the wrong values. All tests can now be run without depending on the target hardware. Tested with several sets of multilib options for arm-none-eabi and arm-none-linux-gnueabi. OK? Janis P.S. I don't know why, but the original thumb tests require arm_eabi and the arm tests don't; I kept that restraint. 2012-12-21 Janis Johnson * gcc.target/arm/ftest-support.h: Replace for compile-only tests. * gcc.target/arm/ftest-support-arm.h: Delete. * gcc.target/arm/ftest-support-thumb.h: Delete. * gcc.target/arm/ftest-armv4-arm.c: Replace with compile-only test. * gcc.target/arm/ftest-armv4t-arm.c: Likewise. * gcc.target/arm/ftest-armv4t-thumb.c: Likewise. * gcc.target/arm/ftest-armv5t-arm.c: Likewise. * gcc.target/arm/ftest-armv5t-thumb.c: Likewise. * gcc.target/arm/ftest-armv5te-arm.c: Likewise. * gcc.target/arm/ftest-armv5te-thumb.c: Likewise. * gcc.target/arm/ftest-armv6-arm.c: Likewise. * gcc.target/arm/ftest-armv6-thumb.c: Likewise. * gcc.target/arm/ftest-armv6k-arm.c: Likewise. * gcc.target/arm/ftest-armv6k-thumb.c: Likewise. * gcc.target/arm/ftest-armv6m-thumb.c: Likewise. * gcc.target/arm/ftest-armv6t2-arm.c: Likewise. * gcc.target/arm/ftest-armv6t2-thumb.c: Likewise. * gcc.target/arm/ftest-armv6z-arm.c: Likewise. * gcc.target/arm/ftest-armv6z-thumb.c: Likewise. * gcc.target/arm/ftest-armv7a-arm.c: Likewise. * gcc.target/arm/ftest-armv7a-thumb.c: Likewise. * gcc.target/arm/ftest-armv7em-thumb.c: Likewise. * gcc.target/arm/ftest-armv7m-thumb.c: Likewise. * gcc.target/arm/ftest-armv7r-arm.c: Likewise. * gcc.target/arm/ftest-armv7r-thumb.c: Likewise. * gcc.target/arm/ftest-armv8a-arm.c: Likewise. * gcc.target/arm/ftest-armv8a-thumb.c: Likewise. Index: gcc.target/arm/ftest-support.h =================================================================== --- gcc.target/arm/ftest-support.h (revision 194619) +++ gcc.target/arm/ftest-support.h (working copy) @@ -1,84 +1,156 @@ -#if 0 -#define INTERNAL_DEBUG 1 +/* For each of several ARM architecture features, check that relevant + macros are defined or not, and that they have the expected values. */ + +#ifdef NEED_ARM_ARCH +# ifdef __ARM_ARCH +# if __ARM_ARCH != VALUE_ARM_ARCH +# error __ARM_ARCH has unexpected value +# endif +# else +# error __ARM_ARCH is not defined but should be +# endif +#else +# ifdef __ARM_ARCH +# error __ARM_ARCH is defined but should not be +# endif #endif -#ifdef INTERNAL_DEBUG -#include +#ifdef NEED_ARM_ARCH_ISA_ARM +# ifdef __ARM_ARCH_ISA_ARM +# if __ARM_ARCH_ISA_ARM != VALUE_ARM_ARCH_ISA_ARM +# error __ARM_ARCH_ISA_ARM has unexpected value +# endif +# else +# error __ARM_ARCH_ISA_ARM is not defined but should be +# endif +#else +# ifdef __ARM_ARCH_ISA_ARM +# error __ARM_ARCH_ISA_ARM is defined but should not be +# endif #endif -extern void abort (void); +#ifdef NEED_ARM_ARCH_ISA_THUMB +# ifdef __ARM_ARCH_ISA_THUMB +# if __ARM_ARCH_ISA_THUMB != VALUE_ARM_ARCH_ISA_THUMB +# error __ARM_ARCH_ISA_THUMB has unexpected value +# endif +# else +# error __ARM_ARCH_ISA_THUMB is not defined but should be +# endif +#else +# ifdef __ARM_ARCH_ISA_THUMB +# error __ARM_ARCH_ISA_THUMB is defined but should not be +# endif +#endif -enum architecture { - ARCH_V4 = 0, - ARCH_V4T, - ARCH_V5T, - ARCH_V5TE, - ARCH_V6, - ARCH_V6K, - ARCH_V6T2, - ARCH_V6Z, - ARCH_V6M, - ARCH_V7A, - ARCH_V7R, - ARCH_V7M, - ARCH_V7EM, - ARCH_V8A, - ARCH_COUNT -}; +#ifdef NEED_ARM_ARCH_PROFILE +# ifdef __ARM_ARCH_PROFILE +# if __ARM_ARCH_PROFILE != VALUE_ARM_ARCH_PROFILE +# error __ARM_ARCH_PROFILE has unexpected value +# endif +# else +# error __ARM_ARCH_PROFILE is not defined but should be +# endif +#else +# ifdef __ARM_ARCH_PROFILE +# error __ARM_ARCH_PROFILE is defined but should not be +# endif +#endif -#define NUM_FEATURES 11 -int feature_matrix[ARCH_COUNT][NUM_FEATURES]; +#ifdef NEED_ARM_FEATURE_UNALIGNED +# ifdef __ARM_FEATURE_UNALIGNED +# if __ARM_FEATURE_UNALIGNED != VALUE_ARM_FEATURE_UNALIGNED +# error __ARM_FEATURE_UNALIGNED has unexpected value +# endif +# else +# error __ARM_FEATURE_UNALIGNED is not defined but should be +# endif +#else +# ifdef __ARM_FEATURE_UNALIGNED +# error __ARM_FEATURE_UNALIGNED is defined but should not be +# endif +#endif -int -ftest (int arch) -{ - int features[NUM_FEATURES] = {0}; - int y; +#ifdef NEED_ARM_FEATURE_LDREX +# ifdef __ARM_FEATURE_LDREX +# if __ARM_FEATURE_LDREX != VALUE_ARM_FEATURE_LDREX +# error __ARM_FEATURE_LDREX has unexpected value +# endif +# else +# error __ARM_FEATURE_LDREX is not defined but should be +# endif +#else +# ifdef __ARM_FEATURE_LDREX +# error __ARM_FEATURE_LDREX is defined but should not be +# endif +#endif - for (y = 0; y < NUM_FEATURES; ++y) - features[y] = 0; +#ifdef NEED_ARM_FEATURE_CLZ +# ifdef __ARM_FEATURE_CLZ +# if __ARM_FEATURE_CLZ != VALUE_ARM_FEATURE_CLZ +# error __ARM_FEATURE_CLZ has unexpected value +# endif +# else +# error __ARM_FEATURE_CLZ is not defined but should be +# endif +#else +# ifdef __ARM_FEATURE_CLZ +# error __ARM_FEATURE_CLZ is defined but should not be +# endif +#endif -#ifdef __ARM_ARCH - features[0] = __ARM_ARCH; +#ifdef NEED_ARM_FEATURE_DSP +# ifdef __ARM_FEATURE_DSP +# if __ARM_FEATURE_DSP != VALUE_ARM_FEATURE_DSP +# error __ARM_FEATURE_DSP has unexpected value +# endif +# else +# error __ARM_FEATURE_DSP is not defined but should be +# endif +#else +# ifdef __ARM_FEATURE_DSP +# error __ARM_FEATURE_DSP is defined but should not be +# endif #endif -#ifdef __ARM_ARCH_ISA_ARM - features[1] = __ARM_ARCH_ISA_ARM; + +#ifdef NEED_ARM_FEATURE_SIMD32 +# ifdef __ARM_FEATURE_SIMD32 +# if __ARM_FEATURE_SIMD32 != VALUE_ARM_FEATURE_SIMD32 +# error __ARM_FEATURE_SIMD32 has unexpected value +# endif +# else +# error __ARM_FEATURE_SIMD32 is not defined but should be +# endif +#else +# ifdef __ARM_FEATURE_SIMD32 +# error __ARM_FEATURE_SIMD32 is defined but should not be +# endif #endif -#ifdef __ARM_ARCH_ISA_THUMB - features[2] = __ARM_ARCH_ISA_THUMB; + +#ifdef NEED_ARM_FEATURE_QBIT +# ifdef __ARM_FEATURE_QBIT +# if __ARM_FEATURE_QBIT != VALUE_ARM_FEATURE_QBIT +# error __ARM_FEATURE_QBIT has unexpected value +# endif +# else +# error __ARM_FEATURE_QBIT is not defined but should be +# endif +#else +# ifdef __ARM_FEATURE_QBIT +# error __ARM_FEATURE_QBIT is defined but should not be +# endif #endif -#ifdef __ARM_ARCH_PROFILE - features[3] = __ARM_ARCH_PROFILE; + +#ifdef NEED_ARM_FEATURE_SAT +# ifdef __ARM_FEATURE_SAT +# if __ARM_FEATURE_SAT != VALUE_ARM_FEATURE_SAT +# error __ARM_FEATURE_SAT has unexpected value +# endif +# else +# error __ARM_FEATURE_SAT is not defined but should be +# endif +#else +# ifdef __ARM_FEATURE_SAT +# error __ARM_FEATURE_SAT is defined but should not be +# endif #endif -#ifdef __ARM_FEATURE_UNALIGNED - features[4] = __ARM_FEATURE_UNALIGNED; -#endif -#ifdef __ARM_FEATURE_LDREX - features[5] = __ARM_FEATURE_LDREX; -#endif -#ifdef __ARM_FEATURE_CLZ - features[6] = __ARM_FEATURE_CLZ; -#endif -#ifdef __ARM_FEATURE_DSP - features[7] = __ARM_FEATURE_DSP; -#endif -#ifdef __ARM_FEATURE_SIMD32 - features[8] = __ARM_FEATURE_SIMD32; -#endif -#ifdef __ARM_FEATURE_QBIT - features[9] = __ARM_FEATURE_QBIT; -#endif -#ifdef __ARM_FEATURE_SAT - features[10] = __ARM_FEATURE_SAT; -#endif - for (y = 0; y < NUM_FEATURES; ++y) - if (feature_matrix[arch][y] != features[y]) - { -#ifdef INTERNAL_DEBUG - printf ("%d, %d, %d, %d\n", arch, y, feature_matrix[arch][y], features[y]); -#endif - abort (); - } - return 0; -} - Index: gcc.target/arm/ftest-armv4-arm.c =================================================================== --- gcc.target/arm/ftest-armv4-arm.c (revision 194619) +++ gcc.target/arm/ftest-armv4-arm.c (working copy) @@ -1,14 +1,14 @@ -/* { dg-do run } */ -/* { dg-require-effective-target arm_nothumb } */ -/* { dg-require-effective-target arm_arch_v4_multilib } */ +/* { dg-do compile } */ +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" "-mthumb" } { "" } } */ /* { dg-options "-marm" } */ /* { dg-add-options arm_arch_v4 } */ -#include "ftest-support-arm.h" +#define NEED_ARM_ARCH +#define VALUE_ARM_ARCH 4 -int -main (void) -{ - return ftest (ARCH_V4); -} +#define NEED_ARM_ARCH_ISA_ARM +#define VALUE_ARM_ARCH_ISA_ARM 1 +#include "ftest-support.h" + + Index: gcc.target/arm/ftest-armv4t-arm.c =================================================================== --- gcc.target/arm/ftest-armv4t-arm.c (revision 194619) +++ gcc.target/arm/ftest-armv4t-arm.c (working copy) @@ -1,14 +1,15 @@ -/* { dg-do run } */ -/* { dg-require-effective-target arm_nothumb } */ -/* { dg-require-effective-target arm_arch_v4t_multilib } */ +/* { dg-do compile } */ +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" "-mthumb" } { "" } } */ /* { dg-options "-marm" } */ /* { dg-add-options arm_arch_v4t } */ -#include "ftest-support-arm.h" +#define NEED_ARM_ARCH +#define VALUE_ARM_ARCH 4 -int -main (void) -{ - return ftest (ARCH_V4T); -} +#define NEED_ARM_ARCH_ISA_ARM +#define VALUE_ARM_ARCH_ISA_ARM 1 +#define NEED_ARM_ARCH_ISA_THUMB +#define VALUE_ARM_ARCH_ISA_THUMB 1 + +#include "ftest-support.h" Index: gcc.target/arm/ftest-armv4t-thumb.c =================================================================== --- gcc.target/arm/ftest-armv4t-thumb.c (revision 194619) +++ gcc.target/arm/ftest-armv4t-thumb.c (working copy) @@ -1,14 +1,16 @@ -/* { dg-do run } */ +/* { dg-do compile } */ /* { dg-require-effective-target arm_eabi } */ -/* { dg-require-effective-target arm_arch_v4t_multilib } */ +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" "-marm" } { "" } } */ /* { dg-options "-mthumb" } */ /* { dg-add-options arm_arch_v4t } */ -#include "ftest-support-thumb.h" +#define NEED_ARM_ARCH +#define VALUE_ARM_ARCH 4 -int -main (void) -{ - return ftest (ARCH_V4T); -} +#define NEED_ARM_ARCH_ISA_ARM +#define VALUE_ARM_ARCH_ISA_ARM 1 +#define NEED_ARM_ARCH_ISA_THUMB +#define VALUE_ARM_ARCH_ISA_THUMB 1 + +#include "ftest-support.h" Index: gcc.target/arm/ftest-armv5t-arm.c =================================================================== --- gcc.target/arm/ftest-armv5t-arm.c (revision 194619) +++ gcc.target/arm/ftest-armv5t-arm.c (working copy) @@ -1,14 +1,18 @@ -/* { dg-do run } */ -/* { dg-require-effective-target arm_nothumb } */ -/* { dg-require-effective-target arm_arch_v5t_multilib } */ +/* { dg-do compile } */ +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" "-mthumb" } { "" } } */ /* { dg-options "-marm" } */ /* { dg-add-options arm_arch_v5t } */ -#include "ftest-support-arm.h" +#define NEED_ARM_ARCH +#define VALUE_ARM_ARCH 5 -int -main (void) -{ - return ftest (ARCH_V5T); -} +#define NEED_ARM_ARCH_ISA_ARM +#define VALUE_ARM_ARCH_ISA_ARM 1 +#define NEED_ARM_ARCH_ISA_THUMB +#define VALUE_ARM_ARCH_ISA_THUMB 1 + +#define NEED_ARM_FEATURE_CLZ +#define VALUE_ARM_FEATURE_CLZ 1 + +#include "ftest-support.h" Index: gcc.target/arm/ftest-armv5t-thumb.c =================================================================== --- gcc.target/arm/ftest-armv5t-thumb.c (revision 194619) +++ gcc.target/arm/ftest-armv5t-thumb.c (working copy) @@ -1,14 +1,16 @@ -/* { dg-do run } */ +/* { dg-do compile } */ /* { dg-require-effective-target arm_eabi } */ -/* { dg-require-effective-target arm_arch_v5t_multilib } */ +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" "-marm" } { "" } } */ /* { dg-options "-mthumb" } */ /* { dg-add-options arm_arch_v5t } */ -#include "ftest-support-thumb.h" +#define NEED_ARM_ARCH +#define VALUE_ARM_ARCH 5 -int -main (void) -{ - return ftest (ARCH_V5T); -} +#define NEED_ARM_ARCH_ISA_ARM +#define VALUE_ARM_ARCH_ISA_ARM 1 +#define NEED_ARM_ARCH_ISA_THUMB +#define VALUE_ARM_ARCH_ISA_THUMB 1 + +#include "ftest-support.h" Index: gcc.target/arm/ftest-armv5te-arm.c =================================================================== --- gcc.target/arm/ftest-armv5te-arm.c (revision 194619) +++ gcc.target/arm/ftest-armv5te-arm.c (working copy) @@ -1,14 +1,24 @@ -/* { dg-do run } */ -/* { dg-require-effective-target arm_nothumb } */ -/* { dg-require-effective-target arm_arch_v5te_multilib } */ +/* { dg-do compile } */ +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" "-mthumb" } { "" } } */ /* { dg-options "-marm" } */ /* { dg-add-options arm_arch_v5te } */ -#include "ftest-support-arm.h" +#define NEED_ARM_ARCH +#define VALUE_ARM_ARCH 5 -int -main (void) -{ - return ftest (ARCH_V5TE); -} +#define NEED_ARM_ARCH_ISA_ARM +#define VALUE_ARM_ARCH_ISA_ARM 1 +#define NEED_ARM_ARCH_ISA_THUMB +#define VALUE_ARM_ARCH_ISA_THUMB 1 + +#define NEED_ARM_FEATURE_CLZ +#define VALUE_ARM_FEATURE_CLZ 1 + +#define NEED_ARM_FEATURE_DSP +#define VALUE_ARM_FEATURE_DSP 1 + +#define NEED_ARM_FEATURE_QBIT +#define VALUE_ARM_FEATURE_QBIT 1 + +#include "ftest-support.h" Index: gcc.target/arm/ftest-armv5te-thumb.c =================================================================== --- gcc.target/arm/ftest-armv5te-thumb.c (revision 194619) +++ gcc.target/arm/ftest-armv5te-thumb.c (working copy) @@ -1,14 +1,16 @@ -/* { dg-do run } */ +/* { dg-do compile } */ /* { dg-require-effective-target arm_eabi } */ -/* { dg-require-effective-target arm_arch_v5te_multilib } */ +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" "-marm" } { "" } } */ /* { dg-options "-mthumb" } */ /* { dg-add-options arm_arch_v5te } */ -#include "ftest-support-thumb.h" +#define NEED_ARM_ARCH +#define VALUE_ARM_ARCH 5 -int -main (void) -{ - return ftest (ARCH_V5TE); -} +#define NEED_ARM_ARCH_ISA_ARM +#define VALUE_ARM_ARCH_ISA_ARM 1 +#define NEED_ARM_ARCH_ISA_THUMB +#define VALUE_ARM_ARCH_ISA_THUMB 1 + +#include "ftest-support.h" Index: gcc.target/arm/ftest-armv6-arm.c =================================================================== --- gcc.target/arm/ftest-armv6-arm.c (revision 194619) +++ gcc.target/arm/ftest-armv6-arm.c (working copy) @@ -1,14 +1,36 @@ -/* { dg-do run } */ -/* { dg-require-effective-target arm_nothumb } */ -/* { dg-require-effective-target arm_arch_v6_multilib } */ +/* { dg-do compile } */ +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" "-mthumb" } { "" } } */ /* { dg-options "-marm" } */ /* { dg-add-options arm_arch_v6 } */ -#include "ftest-support-arm.h" +#define NEED_ARM_ARCH +#define VALUE_ARM_ARCH 6 -int -main (void) -{ - return ftest (ARCH_V6); -} +#define NEED_ARM_ARCH_ISA_ARM +#define VALUE_ARM_ARCH_ISA_ARM 1 +#define NEED_ARM_ARCH_ISA_THUMB +#define VALUE_ARM_ARCH_ISA_THUMB 1 + +#define NEED_ARM_FEATURE_UNALIGNED +#define VALUE_ARM_FEATURE_UNALIGNED 1 + +#define NEED_ARM_FEATURE_LDREX +#define VALUE_ARM_FEATURE_LDREX 4 + +#define NEED_ARM_FEATURE_CLZ +#define VALUE_ARM_FEATURE_CLZ 1 + +#define NEED_ARM_FEATURE_DSP +#define VALUE_ARM_FEATURE_DSP 1 + +#define NEED_ARM_FEATURE_SIMD32 +#define VALUE_ARM_FEATURE_SIMD32 1 + +#define NEED_ARM_FEATURE_QBIT +#define VALUE_ARM_FEATURE_QBIT 1 + +#define NEED_ARM_FEATURE_SAT +#define VALUE_ARM_FEATURE_SAT 1 + +#include "ftest-support.h" Index: gcc.target/arm/ftest-armv6-thumb.c =================================================================== --- gcc.target/arm/ftest-armv6-thumb.c (revision 194619) +++ gcc.target/arm/ftest-armv6-thumb.c (working copy) @@ -1,14 +1,19 @@ -/* { dg-do run } */ +/* { dg-do compile } */ /* { dg-require-effective-target arm_eabi } */ -/* { dg-require-effective-target arm_arch_v6_multilib } */ +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" "-marm" } { "" } } */ /* { dg-options "-mthumb" } */ /* { dg-add-options arm_arch_v6 } */ -#include "ftest-support-thumb.h" +#define NEED_ARM_ARCH +#define VALUE_ARM_ARCH 6 -int -main (void) -{ - return ftest (ARCH_V6); -} +#define NEED_ARM_ARCH_ISA_ARM +#define VALUE_ARM_ARCH_ISA_ARM 1 +#define NEED_ARM_ARCH_ISA_THUMB +#define VALUE_ARM_ARCH_ISA_THUMB 1 + +#define NEED_ARM_FEATURE_UNALIGNED +#define VALUE_ARM_FEATURE_UNALIGNED 1 + +#include "ftest-support.h" Index: gcc.target/arm/ftest-armv6k-arm.c =================================================================== --- gcc.target/arm/ftest-armv6k-arm.c (revision 194619) +++ gcc.target/arm/ftest-armv6k-arm.c (working copy) @@ -1,14 +1,36 @@ -/* { dg-do run } */ -/* { dg-require-effective-target arm_nothumb } */ -/* { dg-require-effective-target arm_arch_v6k_multilib } */ +/* { dg-do compile } */ +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" "-mthumb" } { "" } } */ /* { dg-options "-marm" } */ /* { dg-add-options arm_arch_v6k } */ -#include "ftest-support-arm.h" +#define NEED_ARM_ARCH +#define VALUE_ARM_ARCH 6 -int -main (void) -{ - return ftest (ARCH_V6K); -} +#define NEED_ARM_ARCH_ISA_ARM +#define VALUE_ARM_ARCH_ISA_ARM 1 +#define NEED_ARM_ARCH_ISA_THUMB +#define VALUE_ARM_ARCH_ISA_THUMB 1 + +#define NEED_ARM_FEATURE_UNALIGNED +#define VALUE_ARM_FEATURE_UNALIGNED 1 + +#define NEED_ARM_FEATURE_LDREX +#define VALUE_ARM_FEATURE_LDREX 15 + +#define NEED_ARM_FEATURE_CLZ +#define VALUE_ARM_FEATURE_CLZ 1 + +#define NEED_ARM_FEATURE_DSP +#define VALUE_ARM_FEATURE_DSP 1 + +#define NEED_ARM_FEATURE_SIMD32 +#define VALUE_ARM_FEATURE_SIMD32 1 + +#define NEED_ARM_FEATURE_QBIT +#define VALUE_ARM_FEATURE_QBIT 1 + +#define NEED_ARM_FEATURE_SAT +#define VALUE_ARM_FEATURE_SAT 1 + +#include "ftest-support.h" Index: gcc.target/arm/ftest-armv6k-thumb.c =================================================================== --- gcc.target/arm/ftest-armv6k-thumb.c (revision 194619) +++ gcc.target/arm/ftest-armv6k-thumb.c (working copy) @@ -1,14 +1,19 @@ -/* { dg-do run } */ +/* { dg-do compile } */ /* { dg-require-effective-target arm_eabi } */ -/* { dg-require-effective-target arm_arch_v6k_multilib } */ +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" "-marm" } { "" } } */ /* { dg-options "-mthumb" } */ /* { dg-add-options arm_arch_v6k } */ -#include "ftest-support-thumb.h" +#define NEED_ARM_ARCH +#define VALUE_ARM_ARCH 6 -int -main (void) -{ - return ftest (ARCH_V6K); -} +#define NEED_ARM_ARCH_ISA_ARM +#define VALUE_ARM_ARCH_ISA_ARM 1 +#define NEED_ARM_ARCH_ISA_THUMB +#define VALUE_ARM_ARCH_ISA_THUMB 1 + +#define NEED_ARM_FEATURE_UNALIGNED +#define VALUE_ARM_FEATURE_UNALIGNED 1 + +#include "ftest-support.h" Index: gcc.target/arm/ftest-armv6m-thumb.c =================================================================== --- gcc.target/arm/ftest-armv6m-thumb.c (revision 194619) +++ gcc.target/arm/ftest-armv6m-thumb.c (working copy) @@ -1,14 +1,16 @@ -/* { dg-do run } */ +/* { dg-do compile } */ /* { dg-require-effective-target arm_eabi } */ -/* { dg-require-effective-target arm_arch_v6m_multilib } */ +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" "-marm" } { "" } } */ /* { dg-options "-mthumb" } */ /* { dg-add-options arm_arch_v6m } */ -#include "ftest-support-thumb.h" +#define NEED_ARM_ARCH +#define VALUE_ARM_ARCH 6 -int -main (void) -{ - return ftest (ARCH_V6M); -} +#define NEED_ARM_ARCH_ISA_THUMB +#define VALUE_ARM_ARCH_ISA_THUMB 1 +#define NEED_ARM_ARCH_PROFILE +#define VALUE_ARM_ARCH_PROFILE 'M' + +#include "ftest-support.h" Index: gcc.target/arm/ftest-armv6t2-arm.c =================================================================== --- gcc.target/arm/ftest-armv6t2-arm.c (revision 194619) +++ gcc.target/arm/ftest-armv6t2-arm.c (working copy) @@ -1,14 +1,36 @@ -/* { dg-do run } */ -/* { dg-require-effective-target arm_nothumb } */ -/* { dg-require-effective-target arm_arch_v6t2_multilib } */ +/* { dg-do compile } */ +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" "-mthumb" } { "" } } */ /* { dg-options "-marm" } */ /* { dg-add-options arm_arch_v6t2 } */ -#include "ftest-support-arm.h" +#define NEED_ARM_ARCH +#define VALUE_ARM_ARCH 6 -int -main (void) -{ - return ftest (ARCH_V6T2); -} +#define NEED_ARM_ARCH_ISA_ARM +#define VALUE_ARM_ARCH_ISA_ARM 1 +#define NEED_ARM_ARCH_ISA_THUMB +#define VALUE_ARM_ARCH_ISA_THUMB 2 + +#define NEED_ARM_FEATURE_UNALIGNED +#define VALUE_ARM_FEATURE_UNALIGNED 1 + +#define NEED_ARM_FEATURE_LDREX +#define VALUE_ARM_FEATURE_LDREX 4 + +#define NEED_ARM_FEATURE_CLZ +#define VALUE_ARM_FEATURE_CLZ 1 + +#define NEED_ARM_FEATURE_DSP +#define VALUE_ARM_FEATURE_DSP 1 + +#define NEED_ARM_FEATURE_SIMD32 +#define VALUE_ARM_FEATURE_SIMD32 1 + +#define NEED_ARM_FEATURE_QBIT +#define VALUE_ARM_FEATURE_QBIT 1 + +#define NEED_ARM_FEATURE_SAT +#define VALUE_ARM_FEATURE_SAT 1 + +#include "ftest-support.h" Index: gcc.target/arm/ftest-armv6t2-thumb.c =================================================================== --- gcc.target/arm/ftest-armv6t2-thumb.c (revision 194619) +++ gcc.target/arm/ftest-armv6t2-thumb.c (working copy) @@ -1,14 +1,34 @@ -/* { dg-do run } */ +/* { dg-do compile } */ /* { dg-require-effective-target arm_eabi } */ -/* { dg-require-effective-target arm_arch_v6t2_multilib } */ +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" "-marm" } { "" } } */ /* { dg-options "-mthumb" } */ /* { dg-add-options arm_arch_v6t2 } */ -#include "ftest-support-thumb.h" +#define NEED_ARM_ARCH +#define VALUE_ARM_ARCH 6 -int -main (void) -{ - return ftest (ARCH_V6T2); -} +#define NEED_ARM_ARCH_ISA_ARM +#define VALUE_ARM_ARCH_ISA_ARM 1 +#define NEED_ARM_ARCH_ISA_THUMB +#define VALUE_ARM_ARCH_ISA_THUMB 2 + +#define NEED_ARM_FEATURE_UNALIGNED +#define VALUE_ARM_FEATURE_UNALIGNED 1 + +#define NEED_ARM_FEATURE_CLZ +#define VALUE_ARM_FEATURE_CLZ 1 + +#define NEED_ARM_FEATURE_DSP +#define VALUE_ARM_FEATURE_DSP 1 + +#define NEED_ARM_FEATURE_SIMD32 +#define VALUE_ARM_FEATURE_SIMD32 1 + +#define NEED_ARM_FEATURE_QBIT +#define VALUE_ARM_FEATURE_QBIT 1 + +#define NEED_ARM_FEATURE_SAT +#define VALUE_ARM_FEATURE_SAT 1 + +#include "ftest-support.h" Index: gcc.target/arm/ftest-armv6z-arm.c =================================================================== --- gcc.target/arm/ftest-armv6z-arm.c (revision 194619) +++ gcc.target/arm/ftest-armv6z-arm.c (working copy) @@ -1,14 +1,36 @@ -/* { dg-do run } */ -/* { dg-require-effective-target arm_nothumb } */ -/* { dg-require-effective-target arm_arch_v6z_multilib } */ +/* { dg-do compile } */ +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" "-mthumb" } { "" } } */ /* { dg-options "-marm" } */ /* { dg-add-options arm_arch_v6z } */ -#include "ftest-support-arm.h" +#define NEED_ARM_ARCH +#define VALUE_ARM_ARCH 6 -int -main (void) -{ - return ftest (ARCH_V6Z); -} +#define NEED_ARM_ARCH_ISA_ARM +#define VALUE_ARM_ARCH_ISA_ARM 1 +#define NEED_ARM_ARCH_ISA_THUMB +#define VALUE_ARM_ARCH_ISA_THUMB 1 + +#define NEED_ARM_FEATURE_UNALIGNED +#define VALUE_ARM_FEATURE_UNALIGNED 1 + +#define NEED_ARM_FEATURE_LDREX +#define VALUE_ARM_FEATURE_LDREX 4 + +#define NEED_ARM_FEATURE_CLZ +#define VALUE_ARM_FEATURE_CLZ 1 + +#define NEED_ARM_FEATURE_DSP +#define VALUE_ARM_FEATURE_DSP 1 + +#define NEED_ARM_FEATURE_SIMD32 +#define VALUE_ARM_FEATURE_SIMD32 1 + +#define NEED_ARM_FEATURE_QBIT +#define VALUE_ARM_FEATURE_QBIT 1 + +#define NEED_ARM_FEATURE_SAT +#define VALUE_ARM_FEATURE_SAT 1 + +#include "ftest-support.h" Index: gcc.target/arm/ftest-armv6z-thumb.c =================================================================== --- gcc.target/arm/ftest-armv6z-thumb.c (revision 194619) +++ gcc.target/arm/ftest-armv6z-thumb.c (working copy) @@ -1,14 +1,19 @@ -/* { dg-do run } */ +/* { dg-do compile } */ /* { dg-require-effective-target arm_eabi } */ -/* { dg-require-effective-target arm_arch_v6z_multilib } */ +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" "-marm" } { "" } } */ /* { dg-options "-mthumb" } */ /* { dg-add-options arm_arch_v6z } */ -#include "ftest-support-thumb.h" +#define NEED_ARM_ARCH +#define VALUE_ARM_ARCH 6 -int -main (void) -{ - return ftest (ARCH_V6Z); -} +#define NEED_ARM_ARCH_ISA_ARM +#define VALUE_ARM_ARCH_ISA_ARM 1 +#define NEED_ARM_ARCH_ISA_THUMB +#define VALUE_ARM_ARCH_ISA_THUMB 1 + +#define NEED_ARM_FEATURE_UNALIGNED +#define VALUE_ARM_FEATURE_UNALIGNED 1 + +#include "ftest-support.h" Index: gcc.target/arm/ftest-armv7a-arm.c =================================================================== --- gcc.target/arm/ftest-armv7a-arm.c (revision 194619) +++ gcc.target/arm/ftest-armv7a-arm.c (working copy) @@ -1,14 +1,39 @@ -/* { dg-do run } */ -/* { dg-require-effective-target arm_nothumb } */ -/* { dg-require-effective-target arm_arch_v7a_multilib } */ +/* { dg-do compile } */ +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" "-mthumb" } { "" } } */ /* { dg-options "-marm" } */ /* { dg-add-options arm_arch_v7a } */ -#include "ftest-support-arm.h" +#define NEED_ARM_ARCH +#define VALUE_ARM_ARCH 7 -int -main (void) -{ - return ftest (ARCH_V7A); -} +#define NEED_ARM_ARCH_ISA_ARM +#define VALUE_ARM_ARCH_ISA_ARM 1 +#define NEED_ARM_ARCH_ISA_THUMB +#define VALUE_ARM_ARCH_ISA_THUMB 2 + +#define NEED_ARM_ARCH_PROFILE +#define VALUE_ARM_ARCH_PROFILE 'A' + +#define NEED_ARM_FEATURE_UNALIGNED +#define VALUE_ARM_FEATURE_UNALIGNED 1 + +#define NEED_ARM_FEATURE_LDREX +#define VALUE_ARM_FEATURE_LDREX 15 + +#define NEED_ARM_FEATURE_CLZ +#define VALUE_ARM_FEATURE_CLZ 1 + +#define NEED_ARM_FEATURE_DSP +#define VALUE_ARM_FEATURE_DSP 1 + +#define NEED_ARM_FEATURE_SIMD32 +#define VALUE_ARM_FEATURE_SIMD32 1 + +#define NEED_ARM_FEATURE_QBIT +#define VALUE_ARM_FEATURE_QBIT 1 + +#define NEED_ARM_FEATURE_SAT +#define VALUE_ARM_FEATURE_SAT 1 + +#include "ftest-support.h" Index: gcc.target/arm/ftest-armv7a-thumb.c =================================================================== --- gcc.target/arm/ftest-armv7a-thumb.c (revision 194619) +++ gcc.target/arm/ftest-armv7a-thumb.c (working copy) @@ -1,14 +1,40 @@ -/* { dg-do run } */ +/* { dg-do compile } */ /* { dg-require-effective-target arm_eabi } */ -/* { dg-require-effective-target arm_arch_v7a_multilib } */ +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" "-marm" } { "" } } */ /* { dg-options "-mthumb" } */ /* { dg-add-options arm_arch_v7a } */ -#include "ftest-support-thumb.h" +#define NEED_ARM_ARCH +#define VALUE_ARM_ARCH 7 -int -main (void) -{ - return ftest (ARCH_V7A); -} +#define NEED_ARM_ARCH_ISA_ARM +#define VALUE_ARM_ARCH_ISA_ARM 1 +#define NEED_ARM_ARCH_ISA_THUMB +#define VALUE_ARM_ARCH_ISA_THUMB 2 + +#define NEED_ARM_ARCH_PROFILE +#define VALUE_ARM_ARCH_PROFILE 'A' + +#define NEED_ARM_FEATURE_UNALIGNED +#define VALUE_ARM_FEATURE_UNALIGNED 1 + +#define NEED_ARM_FEATURE_LDREX +#define VALUE_ARM_FEATURE_LDREX 15 + +#define NEED_ARM_FEATURE_CLZ +#define VALUE_ARM_FEATURE_CLZ 1 + +#define NEED_ARM_FEATURE_DSP +#define VALUE_ARM_FEATURE_DSP 1 + +#define NEED_ARM_FEATURE_SIMD32 +#define VALUE_ARM_FEATURE_SIMD32 1 + +#define NEED_ARM_FEATURE_QBIT +#define VALUE_ARM_FEATURE_QBIT 1 + +#define NEED_ARM_FEATURE_SAT +#define VALUE_ARM_FEATURE_SAT 1 + +#include "ftest-support.h" Index: gcc.target/arm/ftest-armv7em-thumb.c =================================================================== --- gcc.target/arm/ftest-armv7em-thumb.c (revision 194619) +++ gcc.target/arm/ftest-armv7em-thumb.c (working copy) @@ -1,14 +1,37 @@ -/* { dg-do run } */ +/* { dg-do compile } */ /* { dg-require-effective-target arm_eabi } */ -/* { dg-require-effective-target arm_arch_v7em_multilib } */ +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" "-marm" } { "" } } */ /* { dg-options "-mthumb" } */ /* { dg-add-options arm_arch_v7em } */ -#include "ftest-support-thumb.h" +#define NEED_ARM_ARCH +#define VALUE_ARM_ARCH 7 -int -main (void) -{ - return ftest (ARCH_V7EM); -} +#define NEED_ARM_ARCH_ISA_THUMB +#define VALUE_ARM_ARCH_ISA_THUMB 2 +#define NEED_ARM_ARCH_PROFILE +#define VALUE_ARM_ARCH_PROFILE 'M' + +#define NEED_ARM_FEATURE_UNALIGNED +#define VALUE_ARM_FEATURE_UNALIGNED 1 + +#define NEED_ARM_FEATURE_LDREX +#define VALUE_ARM_FEATURE_LDREX 7 + +#define NEED_ARM_FEATURE_CLZ +#define VALUE_ARM_FEATURE_CLZ 1 + +#define NEED_ARM_FEATURE_DSP +#define VALUE_ARM_FEATURE_DSP 1 + +#define NEED_ARM_FEATURE_SIMD32 +#define VALUE_ARM_FEATURE_SIMD32 1 + +#define NEED_ARM_FEATURE_QBIT +#define VALUE_ARM_FEATURE_QBIT 1 + +#define NEED_ARM_FEATURE_SAT +#define VALUE_ARM_FEATURE_SAT 1 + +#include "ftest-support.h" Index: gcc.target/arm/ftest-armv7m-thumb.c =================================================================== --- gcc.target/arm/ftest-armv7m-thumb.c (revision 194619) +++ gcc.target/arm/ftest-armv7m-thumb.c (working copy) @@ -1,14 +1,31 @@ -/* { dg-do run } */ +/* { dg-do compile } */ /* { dg-require-effective-target arm_eabi } */ -/* { dg-require-effective-target arm_arch_v7m_multilib } */ +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" "-marm" } { "" } } */ /* { dg-options "-mthumb" } */ /* { dg-add-options arm_arch_v7m } */ -#include "ftest-support-thumb.h" +#define NEED_ARM_ARCH +#define VALUE_ARM_ARCH 7 -int -main (void) -{ - return ftest (ARCH_V7M); -} +#define NEED_ARM_ARCH_ISA_THUMB +#define VALUE_ARM_ARCH_ISA_THUMB 2 +#define NEED_ARM_ARCH_PROFILE +#define VALUE_ARM_ARCH_PROFILE 'M' + +#define NEED_ARM_FEATURE_UNALIGNED +#define VALUE_ARM_FEATURE_UNALIGNED 1 + +#define NEED_ARM_FEATURE_LDREX +#define VALUE_ARM_FEATURE_LDREX 7 + +#define NEED_ARM_FEATURE_CLZ +#define VALUE_ARM_FEATURE_CLZ 1 + +#define NEED_ARM_FEATURE_QBIT +#define VALUE_ARM_FEATURE_QBIT 1 + +#define NEED_ARM_FEATURE_SAT +#define VALUE_ARM_FEATURE_SAT 1 + +#include "ftest-support.h" Index: gcc.target/arm/ftest-armv7r-arm.c =================================================================== --- gcc.target/arm/ftest-armv7r-arm.c (revision 194619) +++ gcc.target/arm/ftest-armv7r-arm.c (working copy) @@ -1,14 +1,39 @@ -/* { dg-do run } */ -/* { dg-require-effective-target arm_nothumb } */ -/* { dg-require-effective-target arm_arch_v7r_multilib } */ +/* { dg-do compile } */ +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" "-mthumb" } { "" } } */ /* { dg-options "-marm" } */ /* { dg-add-options arm_arch_v7r } */ -#include "ftest-support-arm.h" +#define NEED_ARM_ARCH +#define VALUE_ARM_ARCH 7 -int -main (void) -{ - return ftest (ARCH_V7R); -} +#define NEED_ARM_ARCH_ISA_ARM +#define VALUE_ARM_ARCH_ISA_ARM 1 +#define NEED_ARM_ARCH_ISA_THUMB +#define VALUE_ARM_ARCH_ISA_THUMB 2 + +#define NEED_ARM_ARCH_PROFILE +#define VALUE_ARM_ARCH_PROFILE 'R' + +#define NEED_ARM_FEATURE_UNALIGNED +#define VALUE_ARM_FEATURE_UNALIGNED 1 + +#define NEED_ARM_FEATURE_LDREX +#define VALUE_ARM_FEATURE_LDREX 15 + +#define NEED_ARM_FEATURE_CLZ +#define VALUE_ARM_FEATURE_CLZ 1 + +#define NEED_ARM_FEATURE_DSP +#define VALUE_ARM_FEATURE_DSP 1 + +#define NEED_ARM_FEATURE_SIMD32 +#define VALUE_ARM_FEATURE_SIMD32 1 + +#define NEED_ARM_FEATURE_QBIT +#define VALUE_ARM_FEATURE_QBIT 1 + +#define NEED_ARM_FEATURE_SAT +#define VALUE_ARM_FEATURE_SAT 1 + +#include "ftest-support.h" Index: gcc.target/arm/ftest-armv7r-thumb.c =================================================================== --- gcc.target/arm/ftest-armv7r-thumb.c (revision 194619) +++ gcc.target/arm/ftest-armv7r-thumb.c (working copy) @@ -1,14 +1,40 @@ -/* { dg-do run } */ +/* { dg-do compile } */ /* { dg-require-effective-target arm_eabi } */ -/* { dg-require-effective-target arm_arch_v7r_multilib } */ +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" "-marm" } { "" } } */ /* { dg-options "-mthumb" } */ /* { dg-add-options arm_arch_v7r } */ -#include "ftest-support-thumb.h" +#define NEED_ARM_ARCH +#define VALUE_ARM_ARCH 7 -int -main (void) -{ - return ftest (ARCH_V7R); -} +#define NEED_ARM_ARCH_ISA_ARM +#define VALUE_ARM_ARCH_ISA_ARM 1 +#define NEED_ARM_ARCH_ISA_THUMB +#define VALUE_ARM_ARCH_ISA_THUMB 2 + +#define NEED_ARM_ARCH_PROFILE +#define VALUE_ARM_ARCH_PROFILE 'R' + +#define NEED_ARM_FEATURE_UNALIGNED +#define VALUE_ARM_FEATURE_UNALIGNED 1 + +#define NEED_ARM_FEATURE_LDREX +#define VALUE_ARM_FEATURE_LDREX 15 + +#define NEED_ARM_FEATURE_CLZ +#define VALUE_ARM_FEATURE_CLZ 1 + +#define NEED_ARM_FEATURE_DSP +#define VALUE_ARM_FEATURE_DSP 1 + +#define NEED_ARM_FEATURE_SIMD32 +#define VALUE_ARM_FEATURE_SIMD32 1 + +#define NEED_ARM_FEATURE_QBIT +#define VALUE_ARM_FEATURE_QBIT 1 + +#define NEED_ARM_FEATURE_SAT +#define VALUE_ARM_FEATURE_SAT 1 + +#include "ftest-support.h" Index: gcc.target/arm/ftest-armv8a-arm.c =================================================================== --- gcc.target/arm/ftest-armv8a-arm.c (revision 194619) +++ gcc.target/arm/ftest-armv8a-arm.c (working copy) @@ -1,14 +1,39 @@ -/* { dg-do run } */ -/* { dg-require-effective-target arm_nothumb } */ -/* { dg-require-effective-target arm_arch_v8a_multilib } */ +/* { dg-do compile } */ +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" "-mthumb" } { "" } } */ /* { dg-options "-marm" } */ /* { dg-add-options arm_arch_v8a } */ -#include "ftest-support-arm.h" +#define NEED_ARM_ARCH +#define VALUE_ARM_ARCH 8 -int -main (void) -{ - return ftest (ARCH_V8A); -} +#define NEED_ARM_ARCH_ISA_ARM +#define VALUE_ARM_ARCH_ISA_ARM 1 +#define NEED_ARM_ARCH_ISA_THUMB +#define VALUE_ARM_ARCH_ISA_THUMB 2 + +#define NEED_ARM_ARCH_PROFILE +#define VALUE_ARM_ARCH_PROFILE 'A' + +#define NEED_ARM_FEATURE_UNALIGNED +#define VALUE_ARM_FEATURE_UNALIGNED 1 + +#define NEED_ARM_FEATURE_LDREX +#define VALUE_ARM_FEATURE_LDREX 15 + +#define NEED_ARM_FEATURE_CLZ +#define VALUE_ARM_FEATURE_CLZ 1 + +#define NEED_ARM_FEATURE_DSP +#define VALUE_ARM_FEATURE_DSP 1 + +#define NEED_ARM_FEATURE_SIMD32 +#define VALUE_ARM_FEATURE_SIMD32 1 + +#define NEED_ARM_FEATURE_QBIT +#define VALUE_ARM_FEATURE_QBIT 1 + +#define NEED_ARM_FEATURE_SAT +#define VALUE_ARM_FEATURE_SAT 1 + +#include "ftest-support.h" Index: gcc.target/arm/ftest-armv8a-thumb.c =================================================================== --- gcc.target/arm/ftest-armv8a-thumb.c (revision 194619) +++ gcc.target/arm/ftest-armv8a-thumb.c (working copy) @@ -1,14 +1,40 @@ -/* { dg-do run } */ +/* { dg-do compile } */ /* { dg-require-effective-target arm_eabi } */ -/* { dg-require-effective-target arm_arch_v8a_multilib } */ +/* { dg-skip-if "avoid conflicting multilib options" { *-*-* } { "-march=*" "-marm" } { "" } } */ /* { dg-options "-mthumb" } */ /* { dg-add-options arm_arch_v8a } */ -#include "ftest-support-thumb.h" +#define NEED_ARM_ARCH +#define VALUE_ARM_ARCH 8 -int -main (void) -{ - return ftest (ARCH_V8A); -} +#define NEED_ARM_ARCH_ISA_ARM +#define VALUE_ARM_ARCH_ISA_ARM 1 +#define NEED_ARM_ARCH_ISA_THUMB +#define VALUE_ARM_ARCH_ISA_THUMB 2 + +#define NEED_ARM_ARCH_PROFILE +#define VALUE_ARM_ARCH_PROFILE 'A' + +#define NEED_ARM_FEATURE_UNALIGNED +#define VALUE_ARM_FEATURE_UNALIGNED 1 + +#define NEED_ARM_FEATURE_LDREX +#define VALUE_ARM_FEATURE_LDREX 15 + +#define NEED_ARM_FEATURE_CLZ +#define VALUE_ARM_FEATURE_CLZ 1 + +#define NEED_ARM_FEATURE_DSP +#define VALUE_ARM_FEATURE_DSP 1 + +#define NEED_ARM_FEATURE_SIMD32 +#define VALUE_ARM_FEATURE_SIMD32 1 + +#define NEED_ARM_FEATURE_QBIT +#define VALUE_ARM_FEATURE_QBIT 1 + +#define NEED_ARM_FEATURE_SAT +#define VALUE_ARM_FEATURE_SAT 1 + +#include "ftest-support.h"