summaryrefslogtreecommitdiff
path: root/gcc/testsuite/lib/target-supports.exp
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/lib/target-supports.exp')
-rw-r--r--gcc/testsuite/lib/target-supports.exp74
1 files changed, 27 insertions, 47 deletions
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index b2096723426..fc656b96b6a 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -1175,8 +1175,8 @@ proc check_effective_target_pie { } {
return 1;
}
if { [istarget *-*-solaris2.1\[1-9\]*] } {
- # Full PIE support was added in Solaris 11.x and Solaris 12, but gcc
- # errors out if missing, so check for that.
+ # Full PIE support was added in Solaris 11.3, but gcc errors out
+ # if missing, so check for that.
return [check_no_compiler_messages pie executable {
int main (void) { return 0; }
} "-pie -fpie"]
@@ -3450,6 +3450,19 @@ proc check_effective_target_arm_vect_no_misalign { } {
}
+# Return 1 if this is an ARM target supporting -mfloat-abi=soft. Some
+# multilibs may be incompatible with this option.
+
+proc check_effective_target_arm_soft_ok { } {
+ if { [check_effective_target_arm32] } {
+ return [check_no_compiler_messages arm_soft_ok executable {
+ int main() { return 0;}
+ } "-mfloat-abi=soft"]
+ } else {
+ return 0
+ }
+}
+
# Return 1 if this is an ARM target supporting -mfpu=vfp
# -mfloat-abi=softfp. Some multilibs may be incompatible with these
# options.
@@ -5700,14 +5713,6 @@ proc check_effective_target_vect_perm3_int { } {
&& [vect_perm_supported 3 32] }]
}
-# Return 1 if the target supports SLP permutation of 5 vectors when each
-# element has 32 bits.
-
-proc check_effective_target_vect_perm5_int { } {
- return [expr { [check_effective_target_vect_perm]
- && [vect_perm_supported 5 32] }]
-}
-
# Return 1 if the target plus current options supports vector permutation
# on byte-sized elements, 0 otherwise.
#
@@ -6542,6 +6547,12 @@ proc check_effective_target_vect_masked_store { } {
return [check_effective_target_aarch64_sve]
}
+# Return 1 if the target supports vector scatter stores.
+
+proc check_effective_target_vect_scatter_store { } {
+ return [check_effective_target_aarch64_sve]
+}
+
# Return 1 if the target supports vector conditional operations, 0 otherwise.
proc check_effective_target_vect_condition { } {
@@ -6844,12 +6855,6 @@ proc check_effective_target_vect64 { } {
return [expr { [lsearch -exact [available_vector_sizes] 64] >= 0 }]
}
-# Return 1 if the target supports vectors of 256 bits.
-
-proc check_effective_target_vect256 { } {
- return [expr { [lsearch -exact [available_vector_sizes] 256] >= 0 }]
-}
-
# Return 1 if the target supports vector copysignf calls.
proc check_effective_target_vect_call_copysignf { } {
@@ -7176,42 +7181,21 @@ proc check_effective_target_vect_call_roundf { } {
return $et_vect_call_roundf_saved($et_index)
}
-# Return 1 if the target supports vector gather operations.
-
-proc check_effective_target_vect_gather { } {
- return [check_effective_target_aarch64_sve]
-}
-
-# Return 1 if the target supports vector scatter operations.
-
-proc check_effective_target_vect_scatter { } {
- return [check_effective_target_aarch64_sve]
-}
-
-# Return 1 if the target supports both vector gather and vector scatter
-# operations.
-
-proc check_effective_target_vect_gather_scatter { } {
- return [expr { [check_effective_target_vect_gather]
- && [check_effective_target_vect_scatter] }]
-}
-
-# Return 1 if the target supports a non-reassociating form of floating-point
-# addition reduction, i.e. one that is suitable for -fno-associative-math.
+# Return 1 if the target supports AND, OR and XOR reduction.
-proc check_effective_target_vect_ieee_add_reduc { } {
+proc check_effective_target_vect_logical_reduc { } {
return [check_effective_target_aarch64_sve]
}
-# Return 1 if the target supports AND, OR and XOR reduction.
+# Return 1 if the target supports the fold_extract_last optab.
-proc check_effective_target_vect_logical_reduc { } {
+proc check_effective_target_vect_fold_extract_last { } {
return [check_effective_target_aarch64_sve]
}
-# Return 1 if the target supports last-selected-element reduction.
+# Return 1 if the target supports the fold_left_plus optab.
-proc check_effective_target_vect_last_reduc { } {
+proc check_effective_target_vect_fold_left_plus { } {
return [check_effective_target_aarch64_sve]
}
@@ -9204,10 +9188,6 @@ proc check_effective_target_supports_stack_clash_protection { } {
# Return 1 if the target creates a frame pointer for non-leaf functions
# Note we ignore cases where we apply tail call optimization here.
proc check_effective_target_frame_pointer_for_non_leaf { } {
- if { [istarget aarch*-*-*] } {
- return 1
- }
-
# Solaris/x86 defaults to -fno-omit-frame-pointer.
if { [istarget i?86-*-solaris*] || [istarget x86_64-*-solaris*] } {
return 1