diff options
Diffstat (limited to 'gcc/testsuite/lib/target-supports.exp')
-rw-r--r-- | gcc/testsuite/lib/target-supports.exp | 74 |
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 |