Commit ca69bb98 by Martin Sebor Committed by Martin Sebor

re PR testsuite/65526 (testsuite checks for arm vectorization support on non-arm targets)

PR testsuite/65526
* 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*-*-*.

From-SVN: r221677
parent 71e3f77e
2015-03-25 Martin Sebor <msebor@redhat.com>
PR testsuite/65526
* 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*-*-*.
2015-03-25 Sebastian Pop <s.pop@samsung.com> 2015-03-25 Sebastian Pop <s.pop@samsung.com>
PR tree-optimization/65177 PR tree-optimization/65177
......
...@@ -2373,6 +2373,10 @@ proc check_effective_target_aarch64_big_endian { } { ...@@ -2373,6 +2373,10 @@ proc check_effective_target_aarch64_big_endian { } {
# Return 1 if this is a AArch64 target supporting little endian # Return 1 if this is a AArch64 target supporting little endian
proc check_effective_target_aarch64_little_endian { } { proc check_effective_target_aarch64_little_endian { } {
if { ![istarget aarch64*-*-*] } {
return 0
}
return [check_no_compiler_messages aarch64_little_endian assembly { return [check_no_compiler_messages aarch64_little_endian assembly {
#if !defined(__aarch64__) || defined(__AARCH64EB__) #if !defined(__aarch64__) || defined(__AARCH64EB__)
#error FOO #error FOO
...@@ -2382,6 +2386,10 @@ proc check_effective_target_aarch64_little_endian { } { ...@@ -2382,6 +2386,10 @@ proc check_effective_target_aarch64_little_endian { } {
# Return 1 if this is an arm target using 32-bit instructions # Return 1 if this is an arm target using 32-bit instructions
proc check_effective_target_arm32 { } { proc check_effective_target_arm32 { } {
if { ![istarget arm*-*-*] } {
return 0
}
return [check_no_compiler_messages arm32 assembly { return [check_no_compiler_messages arm32 assembly {
#if !defined(__arm__) || (defined(__thumb__) && !defined(__thumb2__)) #if !defined(__arm__) || (defined(__thumb__) && !defined(__thumb2__))
#error !__arm || __thumb__ && !__thumb2__ #error !__arm || __thumb__ && !__thumb2__
...@@ -2391,6 +2399,10 @@ proc check_effective_target_arm32 { } { ...@@ -2391,6 +2399,10 @@ proc check_effective_target_arm32 { } {
# Return 1 if this is an arm target not using Thumb # Return 1 if this is an arm target not using Thumb
proc check_effective_target_arm_nothumb { } { proc check_effective_target_arm_nothumb { } {
if { ![istarget arm*-*-*] } {
return 0
}
return [check_no_compiler_messages arm_nothumb assembly { return [check_no_compiler_messages arm_nothumb assembly {
#if !defined(__arm__) || (defined(__thumb__) || defined(__thumb2__)) #if !defined(__arm__) || (defined(__thumb__) || defined(__thumb2__))
#error !__arm__ || __thumb || __thumb2__ #error !__arm__ || __thumb || __thumb2__
...@@ -2400,6 +2412,10 @@ proc check_effective_target_arm_nothumb { } { ...@@ -2400,6 +2412,10 @@ proc check_effective_target_arm_nothumb { } {
# Return 1 if this is a little-endian ARM target # Return 1 if this is a little-endian ARM target
proc check_effective_target_arm_little_endian { } { proc check_effective_target_arm_little_endian { } {
if { ![istarget arm*-*-*] } {
return 0
}
return [check_no_compiler_messages arm_little_endian assembly { return [check_no_compiler_messages arm_little_endian assembly {
#if !defined(__arm__) || !defined(__ARMEL__) #if !defined(__arm__) || !defined(__ARMEL__)
#error !__arm__ || !__ARMEL__ #error !__arm__ || !__ARMEL__
...@@ -2409,6 +2425,10 @@ proc check_effective_target_arm_little_endian { } { ...@@ -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 # Return 1 if this is an ARM target that only supports aligned vector accesses
proc check_effective_target_arm_vect_no_misalign { } { proc check_effective_target_arm_vect_no_misalign { } {
if { ![istarget arm*-*-*] } {
return 0
}
return [check_no_compiler_messages arm_vect_no_misalign assembly { return [check_no_compiler_messages arm_vect_no_misalign assembly {
#if !defined(__arm__) \ #if !defined(__arm__) \
|| (defined(__ARM_FEATURE_UNALIGNED) \ || (defined(__ARM_FEATURE_UNALIGNED) \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment