public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r11-7586] rs6000: Fix check_effective_target_sqrt_insn (PR99352)
@ 2021-03-09 17:10 Segher Boessenkool
  0 siblings, 0 replies; only message in thread
From: Segher Boessenkool @ 2021-03-09 17:10 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:c60ad1c5fe0249f48362be0f989184ca447f9d17

commit r11-7586-gc60ad1c5fe0249f48362be0f989184ca447f9d17
Author: Segher Boessenkool <segher@kernel.crashing.org>
Date:   Wed Mar 3 20:34:32 2021 +0000

    rs6000: Fix check_effective_target_sqrt_insn (PR99352)
    
    The previous version returned true for all PowerPC.  This is incorrect.
    We only support floating point square root instructions if a) we support
    floating point instructions at all, and b) we have _ARCH_PPCSQ defined.
    
    2020-03-09  Segher Boessenkool  <segher@kernel.crashing.org>
    
    gcc/testsuite/
            * lib/target-supports.exp (check_effective_target_powerpc_sqrt): New.
            (check_effective_target_sqrt_insn): Use it.

Diff:
---
 gcc/testsuite/lib/target-supports.exp | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 570d5d3de00..52d3d036d3c 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*-*-*]


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-03-09 17:10 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-09 17:10 [gcc r11-7586] rs6000: Fix check_effective_target_sqrt_insn (PR99352) Segher Boessenkool

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).