diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 570d5d3de00c..52d3d036d3c5 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -5887,6 +5887,21 @@ proc check_effective_target_powerpc_hard_double { } { } } +# Return 1 if this is a PowerPC target with hardware floating point sqrt. + +proc check_effective_target_powerpc_sqrt { } { + # We need to be PowerPC, and we need to have hardware fp enabled. + if {![check_effective_target_powerpc_fprs]} { + return 0; + } + + return [check_no_compiler_messages powerpc_sqrt object { + #ifndef _ARCH_PPCSQ + #error _ARCH_PPCSQ is not defined + #endif + } {}] +} + # Return 1 if this is a PowerPC target supporting -maltivec. proc check_effective_target_powerpc_altivec_ok { } { @@ -7581,7 +7596,7 @@ proc check_effective_target_vect_call_copysignf { } { proc check_effective_target_sqrt_insn { } { return [check_cached_effective_target sqrt_insn { expr { [istarget i?86-*-*] || [istarget x86_64-*-*] - || [istarget powerpc*-*-*] + || [check_effective_target_powerpc_sqrt] || [istarget aarch64*-*-*] || ([istarget arm*-*-*] && [check_effective_target_arm_vfp_ok]) || ([istarget s390*-*-*]