https://gcc.gnu.org/g:50e8cc25318493246e824f7acb6f112ddf55db66

commit 50e8cc25318493246e824f7acb6f112ddf55db66
Author: Michael Meissner <meiss...@linux.ibm.com>
Date:   Wed Jul 17 02:27:41 2024 -0400

    Revert changes

Diff:
---
 gcc/ChangeLog.bugs                                 | 99 +---------------------
 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 +++---
 24 files changed, 44 insertions(+), 141 deletions(-)

diff --git a/gcc/ChangeLog.bugs b/gcc/ChangeLog.bugs
index 2ef69cc3e3d9..8668084757cc 100644
--- a/gcc/ChangeLog.bugs
+++ b/gcc/ChangeLog.bugs
@@ -1,98 +1,7 @@
-==================== Branch work171-bugs, patch #334 ====================
-
-Fix typo.
-
-2024-07-17 Michael Meissner  <meiss...@linux.ibm.com>
-
-gcc/testsuite/
-
-       PR target/115800
-       PR target/113652
-       * gcc.target/powerpc/pr99708.c: Use dg-require-effective-target, not
-       require-effective-target.
-
-==================== Branch work171-bugs, patch #333 ====================
-
-Remove -mfloat128 on pr99708.c
-
-2024-07-16 Michael Meissner  <meiss...@linux.ibm.com>
-
-gcc/testsuite/
-
-       PR target/115800
-       PR target/113652
-       * gcc.target/powerpc/pr99708.c: Remove -mfloat128 option.
-
-==================== Branch work171-bugs, patch #332 ====================
-
-Do not add -mvsx or -mfloat128 when testing the float128 support.
-
-2024-07-16 Michael Meissner  <meiss...@linux.ibm.com>
-
-gcc/testsuite/
-
-       PR target/115800
-       PR target/113652
-       * lib/target-supports.exp (check_ppc_float128_sw_available): Do not add
-       -mfloat128 or -mfloat128-hardware.
-       (check_ppc_float128_hw_available): Likewise.
-       (check_effective_target_ppc_ieee128_ok): Likewise.
-       (add_options_for___float128): Likewise.
-       (check_effective_target_powerpc_float128_sw_ok): Likewise.
-       (check_effective_target_powerpc_float128_hw_ok): Likewise.
-
-==================== Branch work171-bugs, patch #331 ====================
-
-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.
-
-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.
-
-2024-07-16 Michael Meissner  <meiss...@linux.ibm.com>
-
-gcc/testsuite/
-
-       PR target/115800
-       PR target/113652
-       * gcc.target/powerpc/abs128-1.c: Remove -mvsx option.  Add explicit
-       check for the float128 support.
-       * 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.
-       (add_options_for___float128): Likewise.
-       (check_effective_target___float128): Likewise.
-       (check_effective_target_base_quadfloat_support): Likewise.
+==================== Branch work171-bugs, patch #334 was reverted 
====================
+==================== Branch work171-bugs, patch #333 was reverted 
====================
+==================== Branch work171-bugs, patch #332 was reverted 
====================
+==================== Branch work171-bugs, patch #331 was reverted 
====================
 
 ==================== Branch work171-bugs, patch #330 ====================
 
diff --git a/gcc/testsuite/gcc.target/powerpc/abs128-1.c 
b/gcc/testsuite/gcc.target/powerpc/abs128-1.c
index ee4c1aa24747..fe5206daff8c 100644
--- a/gcc/testsuite/gcc.target/powerpc/abs128-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/abs128-1.c
@@ -1,6 +1,5 @@
 /* { dg-do run { target { powerpc64*-*-* && vsx_hw } } } */
-/* { dg-options "-mfloat128" } */
-/* { dg-require-effective-target ppc_float128_sw } */
+/* { dg-options "-mfloat128 -mvsx" } */
 
 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 081fb2e2995f..f0e03c5173d2 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,7 +2,6 @@
 /* { 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 d07c5ae0a6c3..429dfc072e3b 100644
--- a/gcc/testsuite/gcc.target/powerpc/copysign128-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/copysign128-1.c
@@ -1,6 +1,5 @@
 /* { dg-do run { target { powerpc64*-*-* && vsx_hw } } } */
-/* { dg-options "-mfloat128" } */
-/* { dg-require-effective-target ppc_float128_sw } */
+/* { dg-options "-mfloat128 -mvsx" } */
 
 void abort ();
 
diff --git a/gcc/testsuite/gcc.target/powerpc/divkc3-1.c 
b/gcc/testsuite/gcc.target/powerpc/divkc3-1.c
index cb79261f4014..89bf04f12a97 100644
--- a/gcc/testsuite/gcc.target/powerpc/divkc3-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/divkc3-1.c
@@ -1,6 +1,5 @@
 /* { dg-do run { target { powerpc64*-*-* && p8vector_hw } } } */
-/* { dg-options "-mfloat128" } */
-/* { dg-require-effective-target ppc_float128_sw } */
+/* { dg-options "-mfloat128 -mvsx" } */
 
 void abort ();
 
diff --git a/gcc/testsuite/gcc.target/powerpc/float128-3.c 
b/gcc/testsuite/gcc.target/powerpc/float128-3.c
index d429684f50c2..e62ad5f5247f 100644
--- a/gcc/testsuite/gcc.target/powerpc/float128-3.c
+++ b/gcc/testsuite/gcc.target/powerpc/float128-3.c
@@ -1,7 +1,6 @@
 /* { dg-do compile { target { powerpc*-*-linux* } } } */
-/* { dg-options "-O2 -mno-float128" } */
+/* { dg-options "-O2 -mvsx -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 0b17aed6b8e1..8a9eee971fbc 100644
--- a/gcc/testsuite/gcc.target/powerpc/float128-5.c
+++ b/gcc/testsuite/gcc.target/powerpc/float128-5.c
@@ -1,8 +1,7 @@
 /* { dg-do compile { target { powerpc*-*-linux* && lp64 } } } */
-/* { dg-options "-O2 -mno-float128" } */
+/* { dg-options "-O2 -mvsx -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 8aaec3343e47..339af47f39e6 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 -mfloat128-hardware" } */
+/* { dg-options "-O2 -mvsx -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 eb5f0a838616..d1e222397187 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 "-O2 -mfloat128 -mlong-double-128 -mabi=ieeelongdouble 
-Wno-psabi" } */
+/* { dg-options "-mvsx -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 f3ebfe17be0a..df797e332208 100644
--- a/gcc/testsuite/gcc.target/powerpc/inf128-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/inf128-1.c
@@ -1,6 +1,5 @@
 /* { dg-do run { target { powerpc64*-*-* && vsx_hw } } } */
-/* { dg-options "-mfloat128" } */
-/* { dg-require-effective-target ppc_float128_sw } */
+/* { dg-options "-mfloat128 -mvsx" } */
 
 void abort ();
 
diff --git a/gcc/testsuite/gcc.target/powerpc/mulkc3-1.c 
b/gcc/testsuite/gcc.target/powerpc/mulkc3-1.c
index e707d1057fad..b975a91dbd7a 100644
--- a/gcc/testsuite/gcc.target/powerpc/mulkc3-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/mulkc3-1.c
@@ -1,6 +1,5 @@
 /* { dg-do run { target { powerpc64*-*-* && p8vector_hw } } } */
-/* { dg-options "-mfloat128" } */
-/* { dg-require-effective-target ppc_float128_sw } */
+/* { dg-options "-mfloat128 -mvsx" } */
 
 void abort ();
 
diff --git a/gcc/testsuite/gcc.target/powerpc/nan128-1.c 
b/gcc/testsuite/gcc.target/powerpc/nan128-1.c
index 631acfd15b01..e327f40f837c 100644
--- a/gcc/testsuite/gcc.target/powerpc/nan128-1.c
+++ b/gcc/testsuite/gcc.target/powerpc/nan128-1.c
@@ -1,6 +1,5 @@
 /* { dg-do run { target { powerpc64*-*-* && vsx_hw } } } */
-/* { dg-options "-mfloat128" } */
-/* { dg-require-effective-target ppc_float128_sw } */
+/* { dg-options "-mfloat128 -mvsx" } */
 
 #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 a4f9312be825..0994e6a8da86 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 -O3 -mfloat128" } */
+/* { dg-options "-mdejagnu-cpu=power9 -mvsx -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 ae059b3911f1..e5f9499b7c88 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 -mfloat128" } */
+/* { dg-options "-O2 -mvsx -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 7e2d7462a82f..96dc13db38cc 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr70669.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr70669.c
@@ -1,7 +1,6 @@
 /* { dg-do compile { target { powerpc*-*-linux* && lp64 } } } */
-/* { dg-options "-O2 -mdejagnu-cpu=power8 -mfloat128" } */
+/* { dg-options "-O2 -mdejagnu-cpu=power8 -mvsx -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 b6c82f51fa58..60c576cd36b6 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 -O2 -mfloat128" } */
-/* { dg-require-effective-target ppc_float128_sw } */
+/* { dg-options "-mdejagnu-cpu=power9 -mvsx -O2 -mfloat128" } */
+/* { dg-require-effective-target powerpc_vsx } */
 
 #include <math.h>
 
diff --git a/gcc/testsuite/gcc.target/powerpc/pr79038-1.c 
b/gcc/testsuite/gcc.target/powerpc/pr79038-1.c
index 223a74826c27..7c5500716b78 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 -O2 -mfloat128" } */
-/* { dg-require-effective-target ppc_float128_sw } */
+/* { dg-options "-mdejagnu-cpu=power9 -mvsx -O2 -mfloat128" } */
+/* { dg-require-effective-target powerpc_vsx } */
 
 #ifndef TYPE
 #define TYPE _Float128
diff --git a/gcc/testsuite/gcc.target/powerpc/pr81959.c 
b/gcc/testsuite/gcc.target/powerpc/pr81959.c
index 8008db1d9c28..0ad637eb3c96 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr81959.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr81959.c
@@ -1,8 +1,7 @@
 /* { dg-do compile { target { powerpc64*-*-* && lp64 } } } */
-/* { dg-options "-O2 -mfloat128" } */
+/* { dg-options "-mvsx -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 bafca6e772fc..3337d06332d6 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 "-mfloat128 -O2 -mabi=ibmlongdouble -Wno-psabi" } */
+/* { dg-options "-mvsx -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 633d5c66b36a..33113da8f858 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 "-mfloat128 -O2 -mabi=ieeelongdouble -Wno-psabi" } */
+/* { dg-options "-mvsx -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 6232ff009494..c6aa0511b892 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* } } */
-/* { dg-require-effective-target ppc_float128_sw } */
-/* { dg-options "-O2" } */
+/* { require-effective-target ppc_float128_sw } */
+/* { dg-options "-O2 -mvsx -mfloat128" } */
 
 /*
  * PR target/99708
diff --git a/gcc/testsuite/gcc.target/powerpc/signbit-1.c 
b/gcc/testsuite/gcc.target/powerpc/signbit-1.c
index b9411170e511..a29ae0fd98b6 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 -O2 -mfloat128" } */
+/* { dg-options "-mdejagnu-cpu=power8 -mvsx -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 4715b0866d5f..a6d83458f9d2 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 -O2 -mfloat128" } */
+/* { dg-options "-mdejagnu-cpu=power9 -mvsx -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 beb8e2877e57..b7df6150bcbd 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -2979,6 +2979,7 @@ 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;
@@ -2987,7 +2988,7 @@ proc check_ppc_float128_sw_available { } {
                    __float128 z = x + y;
                    return (z != 3.0q);
                }
-           } ""
+           } $options
        }
     }]
 }
@@ -3004,6 +3005,7 @@ 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;
@@ -3015,7 +3017,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
        }
     }]
 }
@@ -3028,13 +3030,14 @@ 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
        }
     }]
 }
@@ -3943,6 +3946,9 @@ proc check_effective_target___float128 { } {
 }
 
 proc add_options_for___float128 { flags } {
+    if { [istarget powerpc*-*-linux*] } {
+       return "$flags -mfloat128 -mvsx"
+    }
     return "$flags"
 }
 
@@ -3952,7 +3958,7 @@ proc add_options_for___float128 { flags } {
 
 proc check_effective_target_base_quadfloat_support { } {
     if { [istarget powerpc*-*-*] } {
-       return [check_ppc_float128_sw_available]
+       return [check_vsx_hw_available]
     }
     return 1
 }
@@ -7211,9 +7217,8 @@ proc check_effective_target_power10_ok { } {
     }
 }
 
-# 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.
+# Return 1 if this is a PowerPC target supporting -mfloat128 via either
+# software emulation on power7/power8 systems or hardware support on power9.
 
 proc check_effective_target_powerpc_float128_sw_ok { } {
     if { [istarget powerpc*-*-*]
@@ -7229,14 +7234,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 IEEE 128-bit floating point
-# via hardware support on power9 and later systems.
+# Return 1 if this is a PowerPC target supporting -mfloat128 via hardware
+# support on power9.
 
 proc check_effective_target_powerpc_float128_hw_ok { } {
     if { [istarget powerpc*-*-*]
@@ -7253,7 +7258,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