gcc.target/powerpc/pr67808.c in some cases expects both 128-bit long double types to be defined, but -mlong-double-128 doesn't guarantee that without -mfloat128 on targets that would get the IEEE128 type as long double. Add -mfloat128 to ensure the desired IBM 128-bit floating-point type is available as expected.
Regstrapped on powerpc64le-linux-gnu. Also tested with gcc-14 on x86_64-linux-x-powerpc-elf. Ok to install? for gcc/testsuite/ChangeLog * gcc.target/powerpc/pr67808.c: Add -mfloat128, and tolerate its warning. --- gcc/testsuite/gcc.target/powerpc/pr67808.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gcc/testsuite/gcc.target/powerpc/pr67808.c b/gcc/testsuite/gcc.target/powerpc/pr67808.c index 4ddadb7194611..a86574141d0c9 100644 --- a/gcc/testsuite/gcc.target/powerpc/pr67808.c +++ b/gcc/testsuite/gcc.target/powerpc/pr67808.c @@ -1,7 +1,8 @@ /* { dg-do compile { target { powerpc*-*-* } } } */ /* { dg-skip-if "" { powerpc*-*-darwin* } } */ -/* { dg-options "-O1 -mvsx -mdejagnu-cpu=power7 -mlong-double-128" } */ +/* { dg-options "-O1 -mvsx -mdejagnu-cpu=power7 -mfloat128 -mlong-double-128" } */ /* { dg-require-effective-target powerpc_vsx } */ +/* { dg-prune-output ".-mfloat128. option may not be fully supported" } */ /* PR 67808: LRA ICEs on simple double to long double conversion test case */ @@ -9,7 +10,7 @@ /* If long double is IEEE 128-bit, we need to use the __ibm128 type instead of long double. We can't use __ibm128 on systems that don't support IEEE 128-bit floating point, because the type is not enabled on those - systems. */ + systems. Without -mfloat128, the __ibm128 type may be undefined. */ #define LDOUBLE __ibm128 #elif defined(__LONG_DOUBLE_IBM128__) -- 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!