@@ -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 ();
@@ -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>
@@ -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 ();
@@ -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 ();
@@ -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. */
@@ -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
@@ -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
@@ -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
@@ -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 ();
@@ -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 ();
@@ -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>
@@ -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" } } */
@@ -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" } */
/*
@@ -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
@@ -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>
@@ -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
@@ -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. */
@@ -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.
@@ -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.
@@ -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
@@ -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 } */
@@ -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 } */
@@ -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
}