aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/lib
diff options
context:
space:
mode:
authorRobert Suchanek <robert.suchanek@imgtec.com>2016-08-24 07:53:07 +0000
committerRobert Suchanek <rts@gcc.gnu.org>2016-08-24 07:53:07 +0000
commit0b6b8f85a3c39fd9a5673be73ae6c5dde1850306 (patch)
treea2e4b10937d9c5d73c56e50ed21c39d89e0760e6 /gcc/testsuite/lib
parenta4892ab4f832c4981631fb71d8623868d3ecdf36 (diff)
downloadgcc-0b6b8f85a3c39fd9a5673be73ae6c5dde1850306.zip
gcc-0b6b8f85a3c39fd9a5673be73ae6c5dde1850306.tar.gz
gcc-0b6b8f85a3c39fd9a5673be73ae6c5dde1850306.tar.bz2
re PR testsuite/77317 (x86_64 --target_board=''unix/ unix/-m32'' parallel testrun gives inconsistent results in gcc.dg/vect)
Fix PR testsuite/77317 gcc/testsuite/ * lib/target-supports.exp (check_effective_target_vect_aligned_arrays): Don't cache the result. (check_effective_target_vect_natural_alignment): Ditto. (check_effective_target_vector_alignment_reachable): Ditto. (check_effective_target_vector_alignment_reachable_for_64bit): Ditto. From-SVN: r239730
Diffstat (limited to 'gcc/testsuite/lib')
-rw-r--r--gcc/testsuite/lib/target-supports.exp101
1 files changed, 30 insertions, 71 deletions
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 533d3a6..0dabea0 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -5309,32 +5309,22 @@ proc check_effective_target_vect_hw_misalign { } {
# Return 1 if arrays are aligned to the vector alignment
# boundary, 0 otherwise.
-#
-# This won't change for different subtargets so cache the result.
proc check_effective_target_vect_aligned_arrays { } {
- global et_vect_aligned_arrays_saved
- global et_index
-
- if [info exists et_vect_aligned_arrays_saved($et_index)] {
- verbose "check_effective_target_vect_aligned_arrays:\
- using cached result" 2
- } else {
- set et_vect_aligned_arrays_saved($et_index) 0
- if { ([istarget x86_64-*-*] || [istarget i?86-*-*]) } {
- if { ([is-effective-target lp64]
- && ( ![check_avx_available]
- || [check_prefer_avx128])) } {
- set et_vect_aligned_arrays_saved($et_index) 1
- }
- }
- if [istarget spu-*-*] {
- set et_vect_aligned_arrays_saved($et_index) 1
+ set et_vect_aligned_arrays 0
+ if { ([istarget x86_64-*-*] || [istarget i?86-*-*]) } {
+ if { ([is-effective-target lp64]
+ && ( ![check_avx_available]
+ || [check_prefer_avx128])) } {
+ set et_vect_aligned_arrays 1
}
}
+ if [istarget spu-*-*] {
+ set et_vect_aligned_arrays 1
+ }
verbose "check_effective_target_vect_aligned_arrays:\
- returning $et_vect_aligned_arrays_saved($et_index)" 2
- return $et_vect_aligned_arrays_saved($et_index)
+ returning $et_vect_aligned_arrays" 2
+ return $et_vect_aligned_arrays
}
# Return 1 if types of size 32 bit or less are naturally aligned
@@ -5382,74 +5372,43 @@ proc check_effective_target_natural_alignment_64 { } {
# Return 1 if all vector types are naturally aligned (aligned to their
# type-size), 0 otherwise.
-#
-# This won't change for different subtargets so cache the result.
proc check_effective_target_vect_natural_alignment { } {
- global et_vect_natural_alignment_saved
- global et_index
-
- if [info exists et_vect_natural_alignment_saved($et_index)] {
- verbose "check_effective_target_vect_natural_alignment: using cached result" 2
- } else {
- set et_vect_natural_alignment_saved($et_index) 1
- if { [check_effective_target_arm_eabi]
- || [istarget nvptx-*-*]
- || [istarget s390*-*-*] } {
- set et_vect_natural_alignment_saved($et_index) 0
- }
+ set et_vect_natural_alignment 1
+ if { [check_effective_target_arm_eabi]
+ || [istarget nvptx-*-*]
+ || [istarget s390*-*-*] } {
+ set et_vect_natural_alignment 0
}
verbose "check_effective_target_vect_natural_alignment:\
- returning $et_vect_natural_alignment_saved($et_index)" 2
- return $et_vect_natural_alignment_saved($et_index)
+ returning $et_vect_natural_alignment" 2
+ return $et_vect_natural_alignment
}
# Return 1 if vector alignment (for types of size 32 bit or less) is reachable, 0 otherwise.
-#
-# This won't change for different subtargets so cache the result.
proc check_effective_target_vector_alignment_reachable { } {
- global et_vector_alignment_reachable_saved
- global et_index
-
- if [info exists et_vector_alignment_reachable_saved($et_index)] {
- verbose "check_effective_target_vector_alignment_reachable:\
- using cached result" 2
- } else {
- if { [check_effective_target_vect_aligned_arrays]
- || [check_effective_target_natural_alignment_32] } {
- set et_vector_alignment_reachable_saved($et_index) 1
- } else {
- set et_vector_alignment_reachable_saved($et_index) 0
- }
+ set et_vector_alignment_reachable 0
+ if { [check_effective_target_vect_aligned_arrays]
+ || [check_effective_target_natural_alignment_32] } {
+ set et_vector_alignment_reachable 1
}
verbose "check_effective_target_vector_alignment_reachable:\
- returning $et_vector_alignment_reachable_saved($et_index)" 2
- return $et_vector_alignment_reachable_saved($et_index)
+ returning $et_vector_alignment_reachable" 2
+ return $et_vector_alignment_reachable
}
# Return 1 if vector alignment for 64 bit is reachable, 0 otherwise.
-#
-# This won't change for different subtargets so cache the result.
proc check_effective_target_vector_alignment_reachable_for_64bit { } {
- global et_vector_alignment_reachable_for_64bit_saved
- global et_index
-
- if [info exists et_vector_alignment_reachable_for_64bit_saved($et_index)] {
- verbose "check_effective_target_vector_alignment_reachable_for_64bit:\
- using cached result" 2
- } else {
- if { [check_effective_target_vect_aligned_arrays]
- || [check_effective_target_natural_alignment_64] } {
- set et_vector_alignment_reachable_for_64bit_saved($et_index) 1
- } else {
- set et_vector_alignment_reachable_for_64bit_saved($et_index) 0
- }
+ set et_vector_alignment_reachable_for_64bit 0
+ if { [check_effective_target_vect_aligned_arrays]
+ || [check_effective_target_natural_alignment_64] } {
+ set et_vector_alignment_reachable_for_64bit 1
}
verbose "check_effective_target_vector_alignment_reachable_for_64bit:\
- returning $et_vector_alignment_reachable_for_64bit_saved($et_index)" 2
- return $et_vector_alignment_reachable_for_64bit_saved($et_index)
+ returning $et_vector_alignment_reachable_for_64bit" 2
+ return $et_vector_alignment_reachable_for_64bit
}
# Return 1 if the target only requires element alignment for vector accesses