aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorChristophe Lyon <christophe.lyon@linaro.org>2015-12-10 13:11:27 +0000
committerChristophe Lyon <clyon@gcc.gnu.org>2015-12-10 14:11:27 +0100
commita868fff102f5a15b6870b67a4776fb2dd149c867 (patch)
tree906f24ab115c0a3b2657688205a006d026165361 /gcc
parente2f4c6385e223c2a328639b2b935153107002bde (diff)
downloadgcc-a868fff102f5a15b6870b67a4776fb2dd149c867.zip
gcc-a868fff102f5a15b6870b67a4776fb2dd149c867.tar.gz
gcc-a868fff102f5a15b6870b67a4776fb2dd149c867.tar.bz2
Revert [testsuite][ARM target attributes] Fix effective_target tests
From-SVN: r231507
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog28
-rw-r--r--gcc/testsuite/gcc.target/arm/attr-crypto.c8
-rw-r--r--gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c7
-rw-r--r--gcc/testsuite/gcc.target/arm/attr-neon-fp16.c5
-rw-r--r--gcc/testsuite/gcc.target/arm/attr-neon2.c4
-rw-r--r--gcc/testsuite/gcc.target/arm/attr-neon3.c4
-rw-r--r--gcc/testsuite/lib/target-supports.exp128
7 files changed, 48 insertions, 136 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 131596c..499ec0d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,31 @@
+2015-12-10 Christophe Lyon <christophe.lyon@linaro.org>
+
+ Revert [testsuite][ARM target attributes] Fix effective_target tests
+ 2015-12-08 Christophe Lyon <christophe.lyon@linaro.org>
+
+ * lib/target-supports.exp
+ (check_effective_target_arm_vfp_ok_nocache): New.
+ (check_effective_target_arm_vfp_ok): Call the new
+ check_effective_target_arm_vfp_ok_nocache function.
+ (check_effective_target_arm_fp_ok_nocache): New.
+ (check_effective_target_arm_fp_ok): New.
+ (add_options_for_arm_fp): New.
+ (check_effective_target_arm_crypto_ok_nocache): Require
+ target_arm_v8_neon_ok instead of arm32.
+ (check_effective_target_arm_crypto_pragma_ok_nocache): New.
+ (check_effective_target_arm_crypto_pragma_ok): New.
+ (add_options_for_arm_vfp): New.
+ * gcc.target/arm/attr-crypto.c: Use arm_crypto_pragma_ok effective
+ target. Do not force -mfloat-abi=softfp, use arm_vfp effective
+ target instead.
+ * gcc.target/arm/attr-neon-builtin-fail.c: Do not force
+ -mfloat-abi=softfp, use arm_fp effective target instead.
+ * gcc.target/arm/attr-neon-fp16.c: Likewise. Remove arm_neon_ok
+ dependency.
+ * gcc.target/arm/attr-neon2.c: Do not force -mfloat-abi=softfp,
+ use arm_vfp effective target instead.
+ * gcc.target/arm/attr-neon3.c: Likewise.
+
2015-12-10 Eric Botcazou <ebotcazou@adacore.com>
* gnat.dg/specs/access1.ads: New test.
diff --git a/gcc/testsuite/gcc.target/arm/attr-crypto.c b/gcc/testsuite/gcc.target/arm/attr-crypto.c
index b703fbc..1db5984 100644
--- a/gcc/testsuite/gcc.target/arm/attr-crypto.c
+++ b/gcc/testsuite/gcc.target/arm/attr-crypto.c
@@ -1,10 +1,6 @@
/* { dg-do compile } */
-/* Make sure we can force fpu=vfp before switching using the
- pragma. */
-/* { dg-require-effective-target arm_vfp_ok } */
-/* { dg-require-effective-target arm_crypto_pragma_ok } */
-/* { dg-options "-O2 -march=armv8-a" } */
-/* { dg-add-options arm_vfp } */
+/* { dg-require-effective-target arm_crypto_ok } */
+/* { dg-options "-O2 -mfloat-abi=softfp" } */
#pragma GCC target ("fpu=crypto-neon-fp-armv8")
diff --git a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
index 05dc579..6ac32fc 100644
--- a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
+++ b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
@@ -1,9 +1,7 @@
/* Check that calling a neon builtin from a function compiled with vfp fails. */
/* { dg-do compile } */
-/* { dg-require-effective-target arm_fp_ok } */
/* { dg-require-effective-target arm_neon_ok } */
-/* { dg-options "-O2" } */
-/* { dg-add-options arm_fp } */
+/* { dg-options "-O2 -mfloat-abi=softfp" } */
#include <arm_neon.h>
@@ -14,5 +12,6 @@ foo (uint8x16_t *p)
*p = vmovq_n_u8 (3); /* { dg-message "called from here" } */
}
-/* { dg-error "inlining failed in call to always_inline" "" { target *-*-* } 0 } */
+/* { dg-error "inlining failed in call to always_inline" "" { target *-*-* } 0 }
+ */
diff --git a/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c b/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
index 984992f..3cf8918 100644
--- a/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
+++ b/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
@@ -1,7 +1,6 @@
/* { dg-do compile } */
-/* { dg-require-effective-target arm_fp_ok } */
-/* { dg-options "-mfp16-format=ieee" } */
-/* { dg-add-options arm_fp } */
+/* { dg-require-effective-target arm_neon_ok } */
+/* { dg-options "-mfp16-format=ieee -mfloat-abi=softfp" } */
#include "arm_neon.h"
diff --git a/gcc/testsuite/gcc.target/arm/attr-neon2.c b/gcc/testsuite/gcc.target/arm/attr-neon2.c
index 79133e5..819fad4 100644
--- a/gcc/testsuite/gcc.target/arm/attr-neon2.c
+++ b/gcc/testsuite/gcc.target/arm/attr-neon2.c
@@ -1,8 +1,6 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_neon_ok } */
-/* { dg-require-effective-target arm_vfp_ok } */
-/* { dg-options "-O2" } */
-/* { dg-add-options arm_vfp } */
+/* { dg-options "-O2 -mfloat-abi=softfp -mfpu=vfp" } */
#pragma GCC target ("fpu=neon")
#include <arm_neon.h>
diff --git a/gcc/testsuite/gcc.target/arm/attr-neon3.c b/gcc/testsuite/gcc.target/arm/attr-neon3.c
index 0d31fb5..30a1479 100644
--- a/gcc/testsuite/gcc.target/arm/attr-neon3.c
+++ b/gcc/testsuite/gcc.target/arm/attr-neon3.c
@@ -1,8 +1,6 @@
/* { dg-do compile } */
/* { dg-require-effective-target arm_crypto_ok } */
-/* { dg-require-effective-target arm_vfp_ok } */
-/* { dg-options "-O2" } */
-/* { dg-add-options arm_vfp } */
+/* { dg-options "-O2 -mfloat-abi=softfp -mfpu=vfp" } */
#include <arm_neon.h>
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 4f2a5bb..4e349e9 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -2664,34 +2664,17 @@ proc check_effective_target_arm_vect_no_misalign { } {
# Return 1 if this is an ARM target supporting -mfpu=vfp
-# -mfloat-abi=softfp or equivalent options. Some multilibs may be
-# incompatible with these options. Also set et_arm_vfp_flags to the
-# best options to add.
+# -mfloat-abi=softfp. Some multilibs may be incompatible with these
+# options.
-proc check_effective_target_arm_vfp_ok_nocache { } {
- global et_arm_vfp_flags
- set et_arm_vfp_flags ""
+proc check_effective_target_arm_vfp_ok { } {
if { [check_effective_target_arm32] } {
- foreach flags {"-mfpu=vfp" "-mfpu=vfp -mfloat-abi=softfp" "-mfpu=vfp -mfloat-abi=hard"} {
- if { [check_no_compiler_messages_nocache arm_vfp_ok object {
- #ifndef __ARM_FP
- #error __ARM_FP not defined
- #endif
- #ifdef __ARM_NEON_FP
- #error __ARM_NEON_FP defined
- #endif
- } "$flags" ] } {
- set et_arm_vfp_flags $flags
- return 1
- }
- }
+ return [check_no_compiler_messages arm_vfp_ok object {
+ int dummy;
+ } "-mfpu=vfp -mfloat-abi=softfp"]
+ } else {
+ return 0
}
- return 0
-}
-
-proc check_effective_target_arm_vfp_ok { } {
- return [check_cached_effective_target arm_vfp_ok \
- check_effective_target_arm_vfp_ok_nocache]
}
# Return 1 if this is an ARM target supporting -mfpu=vfp3
@@ -2738,47 +2721,6 @@ proc check_effective_target_arm_hard_vfp_ok { } {
}
}
-# Return 1 if this is an ARM target defining __ARM_FP. We may need
-# -mfloat-abi=softfp or equivalent options. Some multilibs may be
-# incompatible with these options. Also set et_arm_fp_flags to the
-# best options to add.
-
-proc check_effective_target_arm_fp_ok_nocache { } {
- global et_arm_fp_flags
- set et_arm_fp_flags ""
- if { [check_effective_target_arm32] } {
- foreach flags {"" "-mfloat-abi=softfp" "-mfloat-abi=hard"} {
- if { [check_no_compiler_messages_nocache arm_fp_ok object {
- #ifndef __ARM_FP
- #error __ARM_FP not defined
- #endif
- } "$flags"] } {
- set et_arm_fp_flags $flags
- return 1
- }
- }
- }
-
- return 0
-}
-
-proc check_effective_target_arm_fp_ok { } {
- return [check_cached_effective_target arm_fp_ok \
- check_effective_target_arm_fp_ok_nocache]
-}
-
-# Add the options needed to define __ARM_FP. We need either
-# -mfloat-abi=softfp or -mfloat-abi=hard, but if one is already
-# specified by the multilib, use it.
-
-proc add_options_for_arm_fp { flags } {
- if { ! [check_effective_target_arm_fp_ok] } {
- return "$flags"
- }
- global et_arm_fp_flags
- return "$flags $et_arm_fp_flags"
-}
-
# Return 1 if this is an ARM target that supports DSP multiply with
# current multilib flags.
@@ -2811,7 +2753,7 @@ proc check_effective_target_arm_unaligned { } {
proc check_effective_target_arm_crypto_ok_nocache { } {
global et_arm_crypto_flags
set et_arm_crypto_flags ""
- if { [check_effective_target_arm_v8_neon_ok] } {
+ if { [check_effective_target_arm32] } {
foreach flags {"" "-mfloat-abi=softfp" "-mfpu=crypto-neon-fp-armv8" "-mfpu=crypto-neon-fp-armv8 -mfloat-abi=softfp"} {
if { [check_no_compiler_messages_nocache arm_crypto_ok object {
#include "arm_neon.h"
@@ -2837,54 +2779,6 @@ proc check_effective_target_arm_crypto_ok { } {
check_effective_target_arm_crypto_ok_nocache]
}
-# Return 1 if this is an ARM target supporting pragma target
-# -mfpu=crypto-neon-fp-armv8 -mfloat-abi=softfp or equivalent options.
-# Some multilibs may be incompatible with these options. Also set
-# et_arm_crypto_pragma_flags to the best options to add.
-
-proc check_effective_target_arm_crypto_pragma_ok_nocache { } {
- global et_arm_crypto_pragma_flags
- set et_arm_crypto_pragma_flags ""
- if { [check_effective_target_arm_v8_neon_ok] } {
- foreach flags {"" "-mfloat-abi=softfp" "-mfpu=crypto-neon-fp-armv8" "-mfpu=crypto-neon-fp-armv8 -mfloat-abi=softfp"} {
- if { [check_no_compiler_messages_nocache arm_crypto_pragmaok object {
- #pragma GCC target ("fpu=crypto-neon-fp-armv8")
- #include "arm_neon.h"
- uint8x16_t
- foo (uint8x16_t a, uint8x16_t b)
- {
- return vaeseq_u8 (a, b);
- }
- } "[add_options_for_arm_v8_neon ""] $flags"] } {
- set et_arm_crypto_pragma_flags "[add_options_for_arm_v8_neon ""] $flags"
- return 1
- }
- }
- }
-
- return 0
-}
-
-# Return 1 if this is an ARM target supporting pragma target
-# -mfpu=crypto-neon-fp-armv8.
-
-proc check_effective_target_arm_crypto_pragma_ok { } {
- return [check_cached_effective_target arm_crypto_pragma_ok \
- check_effective_target_arm_crypto_pragma_ok_nocache]
-}
-
-# Add the options needed for VFP. We need either -mfloat-abi=softfp
-# or -mfloat-abi=hard, but if one is already specified by the
-# multilib, use it.
-
-proc add_options_for_arm_vfp { flags } {
- if { ! [check_effective_target_arm_vfp_ok] } {
- return "$flags"
- }
- global et_arm_vfp_flags
- return "$flags $et_arm_vfp_flags"
-}
-
# Add options for crypto extensions.
proc add_options_for_arm_crypto { flags } {
if { ! [check_effective_target_arm_crypto_ok] } {
@@ -3013,8 +2907,8 @@ proc check_effective_target_arm_crc_ok { } {
# Return 1 if this is an ARM target supporting -mfpu=neon-fp16
# -mfloat-abi=softfp or equivalent options. Some multilibs may be
-# incompatible with these options. Also set et_arm_neon_fp16_flags to
-# the best options to add.
+# incompatible with these options. Also set et_arm_neon_flags to the
+# best options to add.
proc check_effective_target_arm_neon_fp16_ok_nocache { } {
global et_arm_neon_fp16_flags