aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Earnshaw <rearnsha@arm.com>2023-11-03 14:03:50 +0000
committerRichard Earnshaw <rearnsha@arm.com>2023-11-13 14:15:54 +0000
commit04367b11ecad7aecd9dc94cd71671757c9be12c9 (patch)
treed09a4a6cd2fd22652f0bd020d229f7fc30c73069 /gcc
parent0f593c0521caab8cfac53514b1a5e7d0d0dd1932 (diff)
downloadgcc-04367b11ecad7aecd9dc94cd71671757c9be12c9.zip
gcc-04367b11ecad7aecd9dc94cd71671757c9be12c9.tar.gz
gcc-04367b11ecad7aecd9dc94cd71671757c9be12c9.tar.bz2
arm: testsuite: correctly detect armv6t2 hardware for acle execution tests
Some of the ACLE tests for Arm are executable, but we were only testing that the compiler could generate code for them, not that the hardware was capable of executing them. Fix this by adding an execution test for suitable hardware. gcc/testsuite: * lib/target-supports.exp (check_effective_target_arm_arch_v6t2_hw_ok): New function. * gcc.target/arm/acle/data-intrinsics-armv6.c: Use it. * gcc.target/arm/acle/data-intrinsics-rbit.c: Likewise.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/gcc.target/arm/acle/data-intrinsics-armv6.c2
-rw-r--r--gcc/testsuite/gcc.target/arm/acle/data-intrinsics-rbit.c2
-rw-r--r--gcc/testsuite/lib/target-supports.exp18
3 files changed, 20 insertions, 2 deletions
diff --git a/gcc/testsuite/gcc.target/arm/acle/data-intrinsics-armv6.c b/gcc/testsuite/gcc.target/arm/acle/data-intrinsics-armv6.c
index 988ecac..6dc8c55 100644
--- a/gcc/testsuite/gcc.target/arm/acle/data-intrinsics-armv6.c
+++ b/gcc/testsuite/gcc.target/arm/acle/data-intrinsics-armv6.c
@@ -1,5 +1,5 @@
/* { dg-do run } */
-/* { dg-require-effective-target arm_arch_v6t2_ok } */
+/* { dg-require-effective-target arm_arch_v6t2_hw_ok } */
/* { dg-add-options arm_arch_v6t2 } */
#include "arm_acle.h"
diff --git a/gcc/testsuite/gcc.target/arm/acle/data-intrinsics-rbit.c b/gcc/testsuite/gcc.target/arm/acle/data-intrinsics-rbit.c
index d1fe274..b01c421 100644
--- a/gcc/testsuite/gcc.target/arm/acle/data-intrinsics-rbit.c
+++ b/gcc/testsuite/gcc.target/arm/acle/data-intrinsics-rbit.c
@@ -1,6 +1,6 @@
/* Test the ACLE data intrinsics existence for specific instruction. */
/* { dg-do run } */
-/* { dg-require-effective-target arm_arch_v6t2_ok } */
+/* { dg-require-effective-target arm_arch_v6t2_hw_ok } */
/* { dg-additional-options "--save-temps -O1" } */
/* { dg-add-options arm_arch_v6t2 } */
/* { dg-final { check-function-bodies "**" "" "" } } */
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 1a7bea9..d414cdd 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -5590,6 +5590,24 @@ proc check_effective_target_arm_thumb1_cbz_ok {} {
}
}
+# Return 1 if this is an Arm target which supports the Armv6t2 extensions.
+# This can be either in Arm state or in Thumb state.
+
+proc check_effective_target_arm_arch_v6t2_hw_ok {} {
+ if [check_effective_target_arm_thumb1_ok] {
+ return [check_no_compiler_messages arm_movt object {
+ int
+ main (void)
+ {
+ asm ("bfc r0, #1, #2");
+ return 0;
+ }
+ } [add_options_for_arm_arch_v6t2 ""]]
+ } else {
+ return 0
+ }
+}
+
# Return 1 if this is an ARM target where ARMv8-M Security Extensions is
# available.