diff mbox

testsuite checks for arm vectorization support on non-arm targets

Message ID 55133F00.7040104@redhat.com
State New
Headers show

Commit Message

Martin Sebor March 25, 2015, 11:04 p.m. UTC
The attached patch adds tests to lib/target-supports.exp
to avoid unnecessarily invoking the compiler on non-ARM
targets to check for the support for a number of ARM
vectorization features.

Okay to commit to trunk?

Martin

Comments

Jakub Jelinek March 25, 2015, 11:07 p.m. UTC | #1
On Wed, Mar 25, 2015 at 05:04:32PM -0600, Martin Sebor wrote:
> The attached patch adds tests to lib/target-supports.exp
> to avoid unnecessarily invoking the compiler on non-ARM
> targets to check for the support for a number of ARM
> vectorization features.
> 
> Okay to commit to trunk?
> 
> Martin

> 2015-03-23  Martin Sebor  <msebor@redhat.com>

Use current date ;)

> 	* lib/target-supports.exp (check_effective_target_arm32): Fail early
> 	when target isn't arm*-*-*-*.
> 	(check_effective_target_arm_nothumb): Likewise.
> 	(check_effective_target_arm_little_endian): Likewise.
> 	(check_effective_target_arm_vect_no_misalign): Likewise.
> 	(check_effective_target_aarch64_little_endian): Fail early if target
> 	isn't aarch64*-*-*.

Ok, thanks.

	Jakub
diff mbox

Patch

2015-03-23  Martin Sebor  <msebor@redhat.com>

	* lib/target-supports.exp (check_effective_target_arm32): Fail early
	when target isn't arm*-*-*-*.
	(check_effective_target_arm_nothumb): Likewise.
	(check_effective_target_arm_little_endian): Likewise.
	(check_effective_target_arm_vect_no_misalign): Likewise.
	(check_effective_target_aarch64_little_endian): Fail early if target
	isn't aarch64*-*-*.

diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 6b957de..25786df 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -2373,6 +2373,10 @@  proc check_effective_target_aarch64_big_endian { } {
 
 # Return 1 if this is a AArch64 target supporting little endian
 proc check_effective_target_aarch64_little_endian { } {
+    if { ![istarget aarch64*-*-*] } {
+	return 0
+    }
+
     return [check_no_compiler_messages aarch64_little_endian assembly {
         #if !defined(__aarch64__) || defined(__AARCH64EB__)
         #error FOO
@@ -2382,6 +2386,10 @@  proc check_effective_target_aarch64_little_endian { } {
 
 # Return 1 if this is an arm target using 32-bit instructions
 proc check_effective_target_arm32 { } {
+    if { ![istarget arm*-*-*] } {
+	return 0
+    }
+
     return [check_no_compiler_messages arm32 assembly {
 	#if !defined(__arm__) || (defined(__thumb__) && !defined(__thumb2__))
 	#error !__arm || __thumb__ && !__thumb2__
@@ -2391,6 +2399,10 @@  proc check_effective_target_arm32 { } {
 
 # Return 1 if this is an arm target not using Thumb
 proc check_effective_target_arm_nothumb { } {
+    if { ![istarget arm*-*-*] } {
+	return 0
+    }
+
     return [check_no_compiler_messages arm_nothumb assembly {
 	#if !defined(__arm__) || (defined(__thumb__) || defined(__thumb2__))
 	#error !__arm__ || __thumb || __thumb2__
@@ -2400,6 +2412,10 @@  proc check_effective_target_arm_nothumb { } {
 
 # Return 1 if this is a little-endian ARM target
 proc check_effective_target_arm_little_endian { } {
+    if { ![istarget arm*-*-*] } {
+	return 0
+    }
+
     return [check_no_compiler_messages arm_little_endian assembly {
 	#if !defined(__arm__) || !defined(__ARMEL__)
 	#error !__arm__ || !__ARMEL__
@@ -2409,6 +2425,10 @@  proc check_effective_target_arm_little_endian { } {
 
 # Return 1 if this is an ARM target that only supports aligned vector accesses
 proc check_effective_target_arm_vect_no_misalign { } {
+    if { ![istarget arm*-*-*] } {
+	return 0
+    }
+
     return [check_no_compiler_messages arm_vect_no_misalign assembly {
 	#if !defined(__arm__) \
 	    || (defined(__ARM_FEATURE_UNALIGNED) \