https://gcc.gnu.org/g:abb176b702aa3e67dad6d1d724194e144cd85d8e
commit abb176b702aa3e67dad6d1d724194e144cd85d8e Author: Michael Meissner <meiss...@linux.ibm.com> Date: Tue Jul 16 11:19:52 2024 -0400 Revert changes 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 | 1 - gcc/testsuite/gcc.target/powerpc/float128-5.c | 1 - gcc/testsuite/gcc.target/powerpc/float128-math.c | 3 +-- 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/pr70640.c | 2 +- gcc/testsuite/gcc.target/powerpc/pr70669.c | 3 +-- gcc/testsuite/gcc.target/powerpc/pr79004.c | 3 +-- gcc/testsuite/gcc.target/powerpc/pr79038-1.c | 3 +-- 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 | 2 +- gcc/testsuite/gcc.target/powerpc/signbit-1.c | 2 +- gcc/testsuite/gcc.target/powerpc/signbit-2.c | 2 +- gcc/testsuite/gcc.target/powerpc/signbit-3.c | 2 +- gcc/testsuite/lib/target-supports.exp | 24 +++++++++++++--------- libgcc/config.host | 12 +++++------ libgcc/config/rs6000/t-float128 | 8 +------- libgcc/config/rs6000/t-float128-hw | 3 ++- libgcc/config/rs6000/t-float128-p10-hw | 3 ++- libgcc/configure | 8 +------- libgcc/configure.ac | 8 +------- 30 files changed, 47 insertions(+), 73 deletions(-) diff --git a/gcc/testsuite/gcc.target/powerpc/abs128-1.c b/gcc/testsuite/gcc.target/powerpc/abs128-1.c index e8702ec3127a..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 "-mvsx" } */ -/* { 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 ac8528b53273..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 "-mvsx" } */ -/* { 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 cb7335f2a755..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 "-mvsx" } */ -/* { 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 e58bccdfa159..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 -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 8a5d8ceff216..8a9eee971fbc 100644 --- a/gcc/testsuite/gcc.target/powerpc/float128-5.c +++ b/gcc/testsuite/gcc.target/powerpc/float128-5.c @@ -1,7 +1,6 @@ /* { dg-do compile { target { powerpc*-*-linux* && lp64 } } } */ /* { dg-options "-O2 -mvsx -mno-float128" } */ /* { dg-additional-options "-mdejagnu-cpu=power9" { target { ! has_arch_pwr9 } } } */ -/* { dg-require-effective-target ppc_float128_sw } */ /* { dg-require-effective-target powerpc_vsx } */ /* Test that we can use #pragma GCC target to enable -mfloat128 and generate diff --git a/gcc/testsuite/gcc.target/powerpc/float128-math.c b/gcc/testsuite/gcc.target/powerpc/float128-math.c index 35b81c0a15a0..d1e222397187 100644 --- a/gcc/testsuite/gcc.target/powerpc/float128-math.c +++ b/gcc/testsuite/gcc.target/powerpc/float128-math.c @@ -1,7 +1,6 @@ /* { dg-require-effective-target ppc_float128_sw } */ /* { dg-require-effective-target vsx_hw } */ -/* { dg-require-effective-target ppc_float128_sw } */ -/* { dg-options "-mvsx -O2 -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 b20a2f21bcfc..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-require-effective-target ppc_float128_sw } */ -/* { dg-options "-mvsx" } */ +/* { 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 e86ef2f1950d..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-require-effective-target ppc_float128_sw } */ -/* { dg-options "-mvsx" } */ +/* { 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 b3c108e78440..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 "-mvsx" } */ -/* { 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 440c26e060e1..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 -mvsx -O3" } */ +/* { 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 6b2d6e010cc1..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 -mvsx" } */ +/* { dg-options "-O2 -mvsx -mfloat128" } */ /* { dg-prune-output ".-mfloat128. option may not be fully supported" } */ /* diff --git a/gcc/testsuite/gcc.target/powerpc/pr70640.c b/gcc/testsuite/gcc.target/powerpc/pr70640.c index 2517d127989a..6f8af97c0746 100644 --- a/gcc/testsuite/gcc.target/powerpc/pr70640.c +++ b/gcc/testsuite/gcc.target/powerpc/pr70640.c @@ -1,6 +1,6 @@ /* { dg-do compile { target { powerpc*-*-linux* } } } */ /* { dg-require-effective-target powerpc_float128_sw_ok } */ -/* { dg-options "-O2 -mdejagnu-cpu=power8" } */ +/* { dg-options "-O2 -mdejagnu-cpu=power8 -mfloat128" } */ __float128 foo (__float128 a) { return -a; } diff --git a/gcc/testsuite/gcc.target/powerpc/pr70669.c b/gcc/testsuite/gcc.target/powerpc/pr70669.c index 8f1393a63bbe..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 -mvsx" } */ +/* { 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 bb1208960371..60c576cd36b6 100644 --- a/gcc/testsuite/gcc.target/powerpc/pr79004.c +++ b/gcc/testsuite/gcc.target/powerpc/pr79004.c @@ -1,7 +1,6 @@ /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ -/* { dg-options "-mdejagnu-cpu=power9 -mvsx -O2" } */ +/* { dg-options "-mdejagnu-cpu=power9 -mvsx -O2 -mfloat128" } */ /* { dg-require-effective-target powerpc_vsx } */ -/* { 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 0c0568be7c65..7c5500716b78 100644 --- a/gcc/testsuite/gcc.target/powerpc/pr79038-1.c +++ b/gcc/testsuite/gcc.target/powerpc/pr79038-1.c @@ -1,7 +1,6 @@ /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ -/* { dg-options "-mdejagnu-cpu=power9 -mvsx -O2" } */ +/* { dg-options "-mdejagnu-cpu=power9 -mvsx -O2 -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/pr81959.c b/gcc/testsuite/gcc.target/powerpc/pr81959.c index c65b40d65063..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 "-mvsx -O2" } */ +/* { 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 85910db35d0d..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 "-mvsx -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 112171946535..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 "-mvsx -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 888719218377..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* } } */ /* { require-effective-target ppc_float128_sw } */ -/* { dg-options "-O2 -mvsx" } */ +/* { 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 bc9f113d4b6a..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 -mvsx -O2" } */ +/* { 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 df860dabb1bb..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 -mvsx -O2" } */ +/* { 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/gcc.target/powerpc/signbit-3.c b/gcc/testsuite/gcc.target/powerpc/signbit-3.c index 6b01e5ad7a3c..2d1ecb963517 100644 --- a/gcc/testsuite/gcc.target/powerpc/signbit-3.c +++ b/gcc/testsuite/gcc.target/powerpc/signbit-3.c @@ -1,6 +1,6 @@ /* { dg-do run } */ /* { dg-require-effective-target ppc_float128_sw } */ -/* { dg-options "-mdejagnu-cpu=power7 -O2 -lm" } */ +/* { dg-options "-mdejagnu-cpu=power7 -O2 -mfloat128 -lm" } */ #ifdef DEBUG #include <stdio.h> diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 9e94fd78d925..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,7 +3005,7 @@ proc check_ppc_float128_hw_available { } { || [istarget *-*-darwin*]} { expr 0 } else { - set options "-mfloat128-hardware -mcpu=power9" + 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; @@ -3029,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 } }] } @@ -3944,6 +3946,9 @@ proc check_effective_target___float128 { } { } proc add_options_for___float128 { flags } { + if { [istarget powerpc*-*-linux*] } { + return "$flags -mfloat128 -mvsx" + } return "$flags" } @@ -3953,7 +3958,7 @@ proc add_options_for___float128 { flags } { proc check_effective_target_base_quadfloat_support { } { if { [istarget powerpc*-*-*] } { - return [check_effective_target_powerpc_float128_sw_ok] + return [check_vsx_hw_available] } return 1 } @@ -7212,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*-*-*] @@ -7230,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. +# 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*-*-*] diff --git a/libgcc/config.host b/libgcc/config.host index 261b08859a4d..9fae51d4ce7d 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -1292,14 +1292,14 @@ powerpc*-*-linux*) if test $libgcc_cv_powerpc_float128 = yes; then tmake_file="${tmake_file} rs6000/t-float128" + fi - if test $libgcc_cv_powerpc_float128_hw = yes; then - tmake_file="${tmake_file} rs6000/t-float128-hw" + if test $libgcc_cv_powerpc_float128_hw = yes; then + tmake_file="${tmake_file} rs6000/t-float128-hw" + fi - if test $libgcc_cv_powerpc_3_1_float128_hw = yes; then - tmake_file="${tmake_file} rs6000/t-float128-p10-hw" - fi - fi + if test $libgcc_cv_powerpc_3_1_float128_hw = yes; then + tmake_file="${tmake_file} rs6000/t-float128-p10-hw" fi extra_parts="$extra_parts ecrti.o ecrtn.o ncrti.o ncrtn.o" diff --git a/libgcc/config/rs6000/t-float128 b/libgcc/config/rs6000/t-float128 index 93e78adcd624..b09b5664af0e 100644 --- a/libgcc/config/rs6000/t-float128 +++ b/libgcc/config/rs6000/t-float128 @@ -74,13 +74,7 @@ fp128_includes = $(srcdir)/soft-fp/double.h \ $(srcdir)/soft-fp/soft-fp.h # Build the emulator without ISA 3.0 hardware support. -# -# In the past we added -mvsx to build the float128 specific libraries with the -# VSX instruction set. This allowed the big endian GCC on server platforms to -# build the float128 support. However, is causes problems when other default -# cpu targets are used such as the 7450. - -FP128_CFLAGS_SW = -Wno-type-limits -mfloat128 \ +FP128_CFLAGS_SW = -Wno-type-limits -mvsx -mfloat128 \ -mno-float128-hardware -mno-gnu-attribute \ -I$(srcdir)/soft-fp \ -I$(srcdir)/config/rs6000 \ diff --git a/libgcc/config/rs6000/t-float128-hw b/libgcc/config/rs6000/t-float128-hw index 82726c98b983..ed67b572580f 100644 --- a/libgcc/config/rs6000/t-float128-hw +++ b/libgcc/config/rs6000/t-float128-hw @@ -23,7 +23,8 @@ fp128_ifunc_obj = $(fp128_ifunc_static_obj) $(fp128_ifunc_shared_obj) fp128_sed_hw = -hw # Build the hardware support functions with appropriate hardware support -FP128_CFLAGS_HW = -Wno-type-limits -mfloat128 -mcpu=power9 \ +FP128_CFLAGS_HW = -Wno-type-limits -mvsx -mfloat128 \ + -mcpu=power9 \ -mfloat128-hardware -mno-gnu-attribute \ -I$(srcdir)/soft-fp \ -I$(srcdir)/config/rs6000 \ diff --git a/libgcc/config/rs6000/t-float128-p10-hw b/libgcc/config/rs6000/t-float128-p10-hw index ee50d248ca12..edaaee0e478b 100644 --- a/libgcc/config/rs6000/t-float128-p10-hw +++ b/libgcc/config/rs6000/t-float128-p10-hw @@ -13,7 +13,8 @@ fp128_3_1_hw_shared_obj = $(addsuffix _s$(objext),$(fp128_3_1_hw_funcs)) fp128_3_1_hw_obj = $(fp128_3_1_hw_static_obj) $(fp128_3_1_hw_shared_obj) # Build the hardware support functions with appropriate hardware support -FP128_3_1_CFLAGS_HW = -Wno-type-limits -mfloat128 -mcpu=power10 \ +FP128_3_1_CFLAGS_HW = -Wno-type-limits -mvsx -mfloat128 \ + -mcpu=power10 \ -mfloat128-hardware -mno-gnu-attribute \ -I$(srcdir)/soft-fp \ -I$(srcdir)/config/rs6000 \ diff --git a/libgcc/configure b/libgcc/configure index 635237a06c82..a69d314374a3 100755 --- a/libgcc/configure +++ b/libgcc/configure @@ -5184,15 +5184,9 @@ case ${host} in # check if we have VSX (ISA 2.06) support to build the software libraries, and # whether the assembler can handle xsaddqp for hardware support. Also check if # a new glibc is being used so that __builtin_cpu_supports can be used. -# -# with the VSX instruction set. This allowed the big endian GCC on server -# platforms to build the float128 support. However, is causes problems when -# other default cpu targets are used such as the 7450. Now -# libgcc_cv_powerpc_float128 will fail if the default cpu cannot build the -# float128 support. powerpc*-*-linux*) saved_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -mfloat128" + CFLAGS="$CFLAGS -mabi=altivec -mvsx -mfloat128" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PowerPC ISA 2.06 to build __float128 libraries" >&5 $as_echo_n "checking for PowerPC ISA 2.06 to build __float128 libraries... " >&6; } if ${libgcc_cv_powerpc_float128+:} false; then : diff --git a/libgcc/configure.ac b/libgcc/configure.ac index 2a725a6f6620..c2749fe09584 100644 --- a/libgcc/configure.ac +++ b/libgcc/configure.ac @@ -407,15 +407,9 @@ case ${host} in # check if we have VSX (ISA 2.06) support to build the software libraries, and # whether the assembler can handle xsaddqp for hardware support. Also check if # a new glibc is being used so that __builtin_cpu_supports can be used. -# -# with the VSX instruction set. This allowed the big endian GCC on server -# platforms to build the float128 support. However, is causes problems when -# other default cpu targets are used such as the 7450. Now -# libgcc_cv_powerpc_float128 will fail if the default cpu cannot build the -# float128 support. powerpc*-*-linux*) saved_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -mfloat128" + CFLAGS="$CFLAGS -mabi=altivec -mvsx -mfloat128" AC_CACHE_CHECK([for PowerPC ISA 2.06 to build __float128 libraries], [libgcc_cv_powerpc_float128], [AC_COMPILE_IFELSE(