https://gcc.gnu.org/g:5c2cb471b6848d9ce36cb8200bfe5768c323068c

commit 5c2cb471b6848d9ce36cb8200bfe5768c323068c
Author: Michael Meissner <meiss...@linux.ibm.com>
Date:   Wed Jul 17 02:43:37 2024 -0400

    Do not add -mvsx when testing the float128 support.
    
    In the past, we would add -mvsx when building the float128 support in 
libgcc.
    This allowed us to build the float128 support on a big endian system where 
the
    default cpu is power4.  While the libgcc support can be built, given there 
is no
    glibc support for float128 available.
    
    However, adding -mvsx and building the libgcc float128 support causes 
problems
    if you set the default cpu to something like a 7540, which does not have VSX
    support.  The assembler complains that when the code does a ".machine 
7450", you
    cannot use VSX instructions.
    
    After patching libgcc to not build the float128 support unless the host can
    support float128 normally, this patch changes the GCC tests so that it will 
only
    do the IEEE 128-bit tests if the default compiler enables the VSX 
instruction
    set by default.  Otherwise all of the float128 tests will fail because the
    libgcc support is not available.
    
    In addition to not doing the float128 tests when the compiler does not 
natively
    support float128, this patch also removes adding -mvsx, -mfloat128, and
    -mfloat128-hardware enable the support if the compiler did not natively 
enable
    it.
    
    2024-07-17 Michael Meissner  <meiss...@linux.ibm.com>
    
    gcc/testsuite/
    
            PR target/115800
            PR target/113652
            * gcc.target/powerpc/abs128-1.c: Remove adding -mvsx, -mfloat128, 
and
            -mfloat128-hardware options to float128 test.  Add explicit checks 
for
            the float128 support, rather than just using VSX as a stand in, or
            assuming we can silently enable VSX if the default is power4.  For
            pr99708.c, also use the correct spelling to disable the float128 
tests.
            * gcc.target/powerpc/bfp/scalar-insert-exp-16.c: Likewise.
            * gcc.target/powerpc/copysign128-1.c: Likewise.
            * gcc.target/powerpc/divkc3-1.c: Likewise.
            * gcc.target/powerpc/float128-3.c: Likewise.
            * gcc.target/powerpc/float128-5.c: Likewise.
            * gcc.target/powerpc/float128-complex-2.: Likewise.
            * gcc.target/powerpc/float128-math.: Likewise.
            * gcc.target/powerpc/inf128-1.: Likewise.
            * gcc.target/powerpc/mulkc3-1.c: Likewise.
            * gcc.target/powerpc/nan128-1.c: Likewise.
            * gcc.target/powerpc/p9-lxvx-stxvx-3.: Likewise.
            * gcc.target/powerpc/pr104253.: Likewise.
            * gcc.target/powerpc/pr70669.c: Likewise.
            * gcc.target/powerpc/pr79004.c: Likewise.
            * gcc.target/powerpc/pr79038-1.c: Likewise.
            * gcc.target/powerpc/pr81959.c: Likewise.
            * gcc.target/powerpc/pr85657-1.: Likewise.
            * gcc.target/powerpc/pr85657-2.c: Likewise.
            * gcc.target/powerpc/pr99708.: Likewise.
            * gcc.target/powerpc/signbit-1.c: Likewise.
            * gcc.target/powerpc/signbit-2.c: Likewise.
            * lib/target-supports.exp (check_ppc_float128_sw_available): 
Likewise.
            (check_ppc_float128_hw_available): Likewise.
            (check_effective_target_ppc_ieee128_ok): Likewise.
            (add_options_for___float128): Likewise.
            (check_effective_target___float128): Likewise.
            (check_effective_target_base_quadfloat_support): Likewise.
            (check_effective_target_powerpc_float128_sw_ok): Likewise.
            (check_effective_target_powerpc_float128_hw_ok): Likewise.

Diff:
---
 gcc/testsuite/gcc.target/powerpc/abs128-1.c        |  3 ++-
 .../gcc.target/powerpc/bfp/scalar-insert-exp-16.c  |  1 +
 gcc/testsuite/gcc.target/powerpc/copysign128-1.c   |  3 ++-
 gcc/testsuite/gcc.target/powerpc/divkc3-1.c        |  3 ++-
 gcc/testsuite/gcc.target/powerpc/float128-3.c      |  3 ++-
 gcc/testsuite/gcc.target/powerpc/float128-5.c      |  3 ++-
 .../gcc.target/powerpc/float128-complex-2.c        |  2 +-
 gcc/testsuite/gcc.target/powerpc/float128-math.c   |  2 +-
 gcc/testsuite/gcc.target/powerpc/inf128-1.c        |  3 ++-
 gcc/testsuite/gcc.target/powerpc/mulkc3-1.c        |  3 ++-
 gcc/testsuite/gcc.target/powerpc/nan128-1.c        |  3 ++-
 gcc/testsuite/gcc.target/powerpc/p9-lxvx-stxvx-3.c |  2 +-
 gcc/testsuite/gcc.target/powerpc/pr104253.c        |  2 +-
 gcc/testsuite/gcc.target/powerpc/pr70669.c         |  3 ++-
 gcc/testsuite/gcc.target/powerpc/pr79004.c         |  4 ++--
 gcc/testsuite/gcc.target/powerpc/pr79038-1.c       |  4 ++--
 gcc/testsuite/gcc.target/powerpc/pr81959.c         |  3 ++-
 gcc/testsuite/gcc.target/powerpc/pr85657-1.c       |  2 +-
 gcc/testsuite/gcc.target/powerpc/pr85657-2.c       |  2 +-
 gcc/testsuite/gcc.target/powerpc/pr99708.c         |  4 ++--
 gcc/testsuite/gcc.target/powerpc/signbit-1.c       |  2 +-
 gcc/testsuite/gcc.target/powerpc/signbit-2.c       |  2 +-
 gcc/testsuite/lib/target-supports.exp              | 27 +++++++++-------------
 23 files changed, 46 insertions(+), 40 deletions(-)

diff --git a/gcc/testsuite/gcc.target/powerpc/abs128-1.c 
b/gcc/testsuite/gcc.target/powerpc/abs128-1.c
index fe5206daff8c..ee4c1aa24747 100644
--- a/gcc/testsuite/gcc.target/powerpc/abs128-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/abs128-1.c
@@ -1,5 +1,6 @@
 /* { dg-do run { target { powerpc64*-*-* && vsx_hw } } } */
-/* { dg-options "-mfloat128 -mvsx" } */
+/* { dg-options "-mfloat128" } */
+/* { dg-require-effective-target ppc_float128_sw } */
 
 void abort ();
 
diff --git a/gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-16.c 
b/gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-16.c
index f0e03c5173d2..081fb2e2995f 100644
--- a/gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-16.c
+++ b/gcc/testsuite/gcc.target/powerpc/bfp/scalar-insert-exp-16.c
@@ -2,6 +2,7 @@
 /* { dg-require-effective-target lp64 } */
 /* { dg-require-effective-target p9vector_hw } */
 /* { dg-options "-mdejagnu-cpu=power9 -save-temps" } */
+/* { dg-require-effective-target ppc_float128_sw } */
 
 #include <altivec.h>
 #include <stdlib.h>
diff --git a/gcc/testsuite/gcc.target/powerpc/copysign128-1.c 
b/gcc/testsuite/gcc.target/powerpc/copysign128-1.c
index 429dfc072e3b..d07c5ae0a6c3 100644
--- a/gcc/testsuite/gcc.target/powerpc/copysign128-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/copysign128-1.c
@@ -1,5 +1,6 @@
 /* { dg-do run { target { powerpc64*-*-* && vsx_hw } } } */
-/* { dg-options "-mfloat128 -mvsx" } */
+/* { dg-options "-mfloat128" } */
+/* { dg-require-effective-target ppc_float128_sw } */
 
 void abort ();
 
diff --git a/gcc/testsuite/gcc.target/powerpc/divkc3-1.c 
b/gcc/testsuite/gcc.target/powerpc/divkc3-1.c
index 89bf04f12a97..cb79261f4014 100644
--- a/gcc/testsuite/gcc.target/powerpc/divkc3-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/divkc3-1.c
@@ -1,5 +1,6 @@
 /* { dg-do run { target { powerpc64*-*-* && p8vector_hw } } } */
-/* { dg-options "-mfloat128 -mvsx" } */
+/* { dg-options "-mfloat128" } */
+/* { dg-require-effective-target ppc_float128_sw } */
 
 void abort ();
 
diff --git a/gcc/testsuite/gcc.target/powerpc/float128-3.c 
b/gcc/testsuite/gcc.target/powerpc/float128-3.c
index e62ad5f5247f..d429684f50c2 100644
--- a/gcc/testsuite/gcc.target/powerpc/float128-3.c
+++ b/gcc/testsuite/gcc.target/powerpc/float128-3.c
@@ -1,6 +1,7 @@
 /* { dg-do compile { target { powerpc*-*-linux* } } } */
-/* { dg-options "-O2 -mvsx -mno-float128" } */
+/* { dg-options "-O2 -mno-float128" } */
 /* { dg-require-effective-target powerpc_vsx } */
+/* { dg-require-effective-target ppc_float128_sw } */
 
 /* Test that we can use #pragma GCC target to enable -mfloat128.  */
 
diff --git a/gcc/testsuite/gcc.target/powerpc/float128-5.c 
b/gcc/testsuite/gcc.target/powerpc/float128-5.c
index 8a9eee971fbc..0b17aed6b8e1 100644
--- a/gcc/testsuite/gcc.target/powerpc/float128-5.c
+++ b/gcc/testsuite/gcc.target/powerpc/float128-5.c
@@ -1,7 +1,8 @@
 /* { dg-do compile { target { powerpc*-*-linux* && lp64 } } } */
-/* { dg-options "-O2 -mvsx -mno-float128" } */
+/* { dg-options "-O2 -mno-float128" } */
 /* { dg-additional-options "-mdejagnu-cpu=power9" { target { ! has_arch_pwr9 } 
} } */
 /* { dg-require-effective-target powerpc_vsx } */
+/* { dg-require-effective-target ppc_float128_sw } */
 
 /* Test that we can use #pragma GCC target to enable -mfloat128 and generate
    code on ISA 3.0 for the float128 built-in functions.  Lp64 is required
diff --git a/gcc/testsuite/gcc.target/powerpc/float128-complex-2.c 
b/gcc/testsuite/gcc.target/powerpc/float128-complex-2.c
index 339af47f39e6..8aaec3343e47 100644
--- a/gcc/testsuite/gcc.target/powerpc/float128-complex-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/float128-complex-2.c
@@ -1,6 +1,6 @@
 /* { dg-do compile { target { powerpc*-*-linux* } } } */
 /* { dg-require-effective-target powerpc_float128_hw_ok } */
-/* { dg-options "-O2 -mvsx -mfloat128-hardware" } */
+/* { dg-options "-O2 -mfloat128-hardware" } */
 /* { dg-additional-options "-mdejagnu-cpu=power9" { target { ! has_arch_pwr9 } 
} } */
 
 #ifndef NO_FLOAT
diff --git a/gcc/testsuite/gcc.target/powerpc/float128-math.c 
b/gcc/testsuite/gcc.target/powerpc/float128-math.c
index d1e222397187..eb5f0a838616 100644
--- a/gcc/testsuite/gcc.target/powerpc/float128-math.c
+++ b/gcc/testsuite/gcc.target/powerpc/float128-math.c
@@ -1,6 +1,6 @@
 /* { dg-require-effective-target ppc_float128_sw } */
 /* { dg-require-effective-target vsx_hw } */
-/* { dg-options "-mvsx -O2 -mfloat128 -mlong-double-128 -mabi=ieeelongdouble 
-Wno-psabi" } */
+/* { dg-options "-O2 -mfloat128 -mlong-double-128 -mabi=ieeelongdouble 
-Wno-psabi" } */
 
 /* Test whether we convert __builtin_<math>l to __builtin_<math>f128 if the
    default long double type is IEEE 128-bit.  We leave off the \M in matching
diff --git a/gcc/testsuite/gcc.target/powerpc/inf128-1.c 
b/gcc/testsuite/gcc.target/powerpc/inf128-1.c
index df797e332208..f3ebfe17be0a 100644
--- a/gcc/testsuite/gcc.target/powerpc/inf128-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/inf128-1.c
@@ -1,5 +1,6 @@
 /* { dg-do run { target { powerpc64*-*-* && vsx_hw } } } */
-/* { dg-options "-mfloat128 -mvsx" } */
+/* { dg-options "-mfloat128" } */
+/* { dg-require-effective-target ppc_float128_sw } */
 
 void abort ();
 
diff --git a/gcc/testsuite/gcc.target/powerpc/mulkc3-1.c 
b/gcc/testsuite/gcc.target/powerpc/mulkc3-1.c
index b975a91dbd7a..e707d1057fad 100644
--- a/gcc/testsuite/gcc.target/powerpc/mulkc3-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/mulkc3-1.c
@@ -1,5 +1,6 @@
 /* { dg-do run { target { powerpc64*-*-* && p8vector_hw } } } */
-/* { dg-options "-mfloat128 -mvsx" } */
+/* { dg-options "-mfloat128" } */
+/* { dg-require-effective-target ppc_float128_sw } */
 
 void abort ();
 
diff --git a/gcc/testsuite/gcc.target/powerpc/nan128-1.c 
b/gcc/testsuite/gcc.target/powerpc/nan128-1.c
index e327f40f837c..631acfd15b01 100644
--- a/gcc/testsuite/gcc.target/powerpc/nan128-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/nan128-1.c
@@ -1,5 +1,6 @@
 /* { dg-do run { target { powerpc64*-*-* && vsx_hw } } } */
-/* { dg-options "-mfloat128 -mvsx" } */
+/* { dg-options "-mfloat128" } */
+/* { dg-require-effective-target ppc_float128_sw } */
 
 #include <stdio.h>
 
diff --git a/gcc/testsuite/gcc.target/powerpc/p9-lxvx-stxvx-3.c 
b/gcc/testsuite/gcc.target/powerpc/p9-lxvx-stxvx-3.c
index 0994e6a8da86..a4f9312be825 100644
--- a/gcc/testsuite/gcc.target/powerpc/p9-lxvx-stxvx-3.c
+++ b/gcc/testsuite/gcc.target/powerpc/p9-lxvx-stxvx-3.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-mdejagnu-cpu=power9 -mvsx -O3 -mfloat128" } */
+/* { dg-options "-mdejagnu-cpu=power9 -O3 -mfloat128" } */
 /* { dg-require-effective-target ppc_float128_sw } */
 /* { dg-require-effective-target powerpc_vsx } */
 /* { dg-final { scan-assembler "lxvx" } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/pr104253.c 
b/gcc/testsuite/gcc.target/powerpc/pr104253.c
index e5f9499b7c88..ae059b3911f1 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr104253.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr104253.c
@@ -7,7 +7,7 @@
 
 /* { dg-do run } */
 /* { dg-require-effective-target ppc_float128_sw } */
-/* { dg-options "-O2 -mvsx -mfloat128" } */
+/* { dg-options "-O2 -mfloat128" } */
 /* { dg-prune-output ".-mfloat128. option may not be fully supported" } */
 
 /*
diff --git a/gcc/testsuite/gcc.target/powerpc/pr70669.c 
b/gcc/testsuite/gcc.target/powerpc/pr70669.c
index 96dc13db38cc..7e2d7462a82f 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr70669.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr70669.c
@@ -1,6 +1,7 @@
 /* { dg-do compile { target { powerpc*-*-linux* && lp64 } } } */
-/* { dg-options "-O2 -mdejagnu-cpu=power8 -mvsx -mfloat128" } */
+/* { dg-options "-O2 -mdejagnu-cpu=power8 -mfloat128" } */
 /* { dg-require-effective-target powerpc_vsx } */
+/* { dg-require-effective-target ppc_float128_sw } */
 
 #ifndef TYPE
 #define TYPE __float128
diff --git a/gcc/testsuite/gcc.target/powerpc/pr79004.c 
b/gcc/testsuite/gcc.target/powerpc/pr79004.c
index 60c576cd36b6..b6c82f51fa58 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr79004.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr79004.c
@@ -1,6 +1,6 @@
 /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
-/* { dg-options "-mdejagnu-cpu=power9 -mvsx -O2 -mfloat128" } */
-/* { dg-require-effective-target powerpc_vsx } */
+/* { dg-options "-mdejagnu-cpu=power9 -O2 -mfloat128" } */
+/* { dg-require-effective-target ppc_float128_sw } */
 
 #include <math.h>
 
diff --git a/gcc/testsuite/gcc.target/powerpc/pr79038-1.c 
b/gcc/testsuite/gcc.target/powerpc/pr79038-1.c
index 7c5500716b78..223a74826c27 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr79038-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr79038-1.c
@@ -1,6 +1,6 @@
 /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
-/* { dg-options "-mdejagnu-cpu=power9 -mvsx -O2 -mfloat128" } */
-/* { dg-require-effective-target powerpc_vsx } */
+/* { dg-options "-mdejagnu-cpu=power9 -O2 -mfloat128" } */
+/* { dg-require-effective-target ppc_float128_sw } */
 
 #ifndef TYPE
 #define TYPE _Float128
diff --git a/gcc/testsuite/gcc.target/powerpc/pr81959.c 
b/gcc/testsuite/gcc.target/powerpc/pr81959.c
index 0ad637eb3c96..8008db1d9c28 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr81959.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr81959.c
@@ -1,7 +1,8 @@
 /* { dg-do compile { target { powerpc64*-*-* && lp64 } } } */
-/* { dg-options "-mvsx -O2 -mfloat128" } */
+/* { dg-options "-O2 -mfloat128" } */
 /* { dg-additional-options "-mdejagnu-cpu=power9" { target { ! has_arch_pwr9 } 
} } */
 /* { dg-require-effective-target powerpc_vsx } */
+/* { dg-require-effective-target ppc_float128_sw } */
 
 /* PR 81959, the compiler raised on unrecognizable insn message in converting
    int to __float128, where the int had a PRE_INC in the address.  */
diff --git a/gcc/testsuite/gcc.target/powerpc/pr85657-1.c 
b/gcc/testsuite/gcc.target/powerpc/pr85657-1.c
index 3337d06332d6..bafca6e772fc 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr85657-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr85657-1.c
@@ -1,6 +1,6 @@
 /* { dg-do compile { target { powerpc*-*-linux* } } } */
 /* { dg-require-effective-target ppc_float128_sw } */
-/* { dg-options "-mvsx -mfloat128 -O2 -mabi=ibmlongdouble -Wno-psabi" } */
+/* { dg-options "-mfloat128 -O2 -mabi=ibmlongdouble -Wno-psabi" } */
 
 // PR 85657 -- make sure conversions work between each of the 128-bit floating
 // point types.
diff --git a/gcc/testsuite/gcc.target/powerpc/pr85657-2.c 
b/gcc/testsuite/gcc.target/powerpc/pr85657-2.c
index 33113da8f858..633d5c66b36a 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr85657-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr85657-2.c
@@ -1,6 +1,6 @@
 /* { dg-do compile { target { powerpc*-*-linux* } } } */
 /* { dg-require-effective-target ppc_float128_sw } */
-/* { dg-options "-mvsx -mfloat128 -O2 -mabi=ieeelongdouble -Wno-psabi" } */
+/* { dg-options "-mfloat128 -O2 -mabi=ieeelongdouble -Wno-psabi" } */
 
 // PR 85657 -- make sure conversions work between each of the 128-bit floating
 // point types.
diff --git a/gcc/testsuite/gcc.target/powerpc/pr99708.c 
b/gcc/testsuite/gcc.target/powerpc/pr99708.c
index c6aa0511b892..6232ff009494 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr99708.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr99708.c
@@ -1,7 +1,7 @@
 /* { dg-do run } */
 /* { dg-skip-if "" { powerpc*-*-darwin* powerpc-ibm-aix* } } */
-/* { require-effective-target ppc_float128_sw } */
-/* { dg-options "-O2 -mvsx -mfloat128" } */
+/* { dg-require-effective-target ppc_float128_sw } */
+/* { dg-options "-O2" } */
 
 /*
  * PR target/99708
diff --git a/gcc/testsuite/gcc.target/powerpc/signbit-1.c 
b/gcc/testsuite/gcc.target/powerpc/signbit-1.c
index a29ae0fd98b6..b9411170e511 100644
--- a/gcc/testsuite/gcc.target/powerpc/signbit-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/signbit-1.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-mdejagnu-cpu=power8 -mvsx -O2 -mfloat128" } */
+/* { dg-options "-mdejagnu-cpu=power8 -O2 -mfloat128" } */
 /* { dg-require-effective-target lp64 } */
 /* { dg-require-effective-target ppc_float128_sw } */
 /* { dg-require-effective-target powerpc_vsx } */
diff --git a/gcc/testsuite/gcc.target/powerpc/signbit-2.c 
b/gcc/testsuite/gcc.target/powerpc/signbit-2.c
index a6d83458f9d2..4715b0866d5f 100644
--- a/gcc/testsuite/gcc.target/powerpc/signbit-2.c
+++ b/gcc/testsuite/gcc.target/powerpc/signbit-2.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-mdejagnu-cpu=power9 -mvsx -O2 -mfloat128" } */
+/* { dg-options "-mdejagnu-cpu=power9 -O2 -mfloat128" } */
 /* { dg-require-effective-target powerpc_vsx } */
 /* { dg-require-effective-target ppc_float128_sw } */
 
diff --git a/gcc/testsuite/lib/target-supports.exp 
b/gcc/testsuite/lib/target-supports.exp
index b7df6150bcbd..beb8e2877e57 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -2979,7 +2979,6 @@ proc check_ppc_float128_sw_available { } {
             || [istarget *-*-darwin*]} {
            expr 0
        } else {
-           set options "-mfloat128 -mvsx"
            check_runtime_nocache ppc_float128_sw_available {
                volatile __float128 x = 1.0q;
                volatile __float128 y = 2.0q;
@@ -2988,7 +2987,7 @@ proc check_ppc_float128_sw_available { } {
                    __float128 z = x + y;
                    return (z != 3.0q);
                }
-           } $options
+           } ""
        }
     }]
 }
@@ -3005,7 +3004,6 @@ proc check_ppc_float128_hw_available { } {
             || [istarget *-*-darwin*]} {
            expr 0
        } else {
-           set options "-mfloat128 -mvsx -mfloat128-hardware -mcpu=power9"
            check_runtime_nocache ppc_float128_hw_available {
                volatile __float128 x = 1.0q;
                volatile __float128 y = 2.0q;
@@ -3017,7 +3015,7 @@ proc check_ppc_float128_hw_available { } {
                    __asm__ ("xsaddqp %0,%1,%2" : "+v" (w) : "v" (x), "v" (y));
                    return ((z != 3.0q) || (z != w));
                }
-           } $options
+           } ""
        }
     }]
 }
@@ -3030,14 +3028,13 @@ proc check_effective_target_ppc_ieee128_ok { } {
             || [istarget *-*-vxworks*]} {
            expr 0
        } else {
-           set options "-mfloat128"
            check_runtime_nocache ppc_ieee128_ok {
                int main()
                {
                  __ieee128 a;
                  return 0;
                }
-           } $options
+           } ""
        }
     }]
 }
@@ -3946,9 +3943,6 @@ proc check_effective_target___float128 { } {
 }
 
 proc add_options_for___float128 { flags } {
-    if { [istarget powerpc*-*-linux*] } {
-       return "$flags -mfloat128 -mvsx"
-    }
     return "$flags"
 }
 
@@ -3958,7 +3952,7 @@ proc add_options_for___float128 { flags } {
 
 proc check_effective_target_base_quadfloat_support { } {
     if { [istarget powerpc*-*-*] } {
-       return [check_vsx_hw_available]
+       return [check_ppc_float128_sw_available]
     }
     return 1
 }
@@ -7217,8 +7211,9 @@ proc check_effective_target_power10_ok { } {
     }
 }
 
-# Return 1 if this is a PowerPC target supporting -mfloat128 via either
-# software emulation on power7/power8 systems or hardware support on power9.
+# Return 1 if this is a PowerPC target supporting IEEE 128-bit floating point
+# via either software emulation on power7/power8 systems or hardware support on
+# power9.
 
 proc check_effective_target_powerpc_float128_sw_ok { } {
     if { [istarget powerpc*-*-*]
@@ -7234,14 +7229,14 @@ proc check_effective_target_powerpc_float128_sw_ok { } {
                    __float128 z = x + y;
                    return (z == 3.0q);
                }
-           } "-mfloat128 -mvsx"]
+           } ""]
     } else {
        return 0
     }
 }
 
-# Return 1 if this is a PowerPC target supporting -mfloat128 via hardware
-# support on power9.
+# Return 1 if this is a PowerPC target supporting IEEE 128-bit floating point
+# via hardware support on power9 and later systems.
 
 proc check_effective_target_powerpc_float128_hw_ok { } {
     if { [istarget powerpc*-*-*]
@@ -7258,7 +7253,7 @@ proc check_effective_target_powerpc_float128_hw_ok { } {
                    __asm__ ("xsaddqp %0,%1,%2" : "=v" (z) : "v" (x), "v" (y));
                    return (z == 3.0q);
                }
-       } "-mfloat128-hardware"]
+       } ""]
     } else {
        return 0
     }

Reply via email to