The rs6000.md copysign<mode>3 expander requires the mode to satisfy
FLOAT128_IEEE_P, so requiring float128 on ppc for ifn_copysign
effective target is hopefully a close-enough approximation.

gcc.dg/fold-copysign-1.c and gcc.dg/pr55152-2.c fail on ppc-elf
without this.

Regstrapped on powerpc64le-linux-gnu.  Also tested with gcc-14 on
x86_64-linux-x-powerpc-elf.  Ok to install?


for  gcc/testsuite/ChangeLog

        * lib/target-supports.exp (check_effective_target_ifn_copysign):
        Require float128 on ppc.
---
 gcc/testsuite/lib/target-supports.exp |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gcc/testsuite/lib/target-supports.exp 
b/gcc/testsuite/lib/target-supports.exp
index ee4138aa69714..1c64472bbc241 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -8379,7 +8379,8 @@ proc check_effective_target_ifn_copysign { } {
          && [is-effective-target sse])
         || ([istarget loongarch*-*-*]
             && [check_effective_target_hard_float])
-        || [istarget powerpc*-*-*]
+        || ([istarget powerpc*-*-*]
+            && [check_ppc_float128_sw_available])
         || [istarget alpha*-*-*]
         || [istarget aarch64*-*-*]
         || [is-effective-target arm_neon]

-- 
Alexandre Oliva, happy hacker            https://blog.lx.oliva.nom.br/
Free Software Activist     FSFLA co-founder     GNU Toolchain Engineer
More tolerance and less prejudice are key for inclusion and diversity.
Excluding neuro-others for not behaving ""normal"" is *not* inclusive!

Reply via email to