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!