On some targets (ia32 for an example), sizeof long double
is not a power of 2, this means you can't create a vector
of it. So let's disable this testcase for non power of 2
sizeof long double. This needs to be done via a preprocessor
macro as vector_size would cause an error otherwise.
Committed as obvious after a test on x86_64 with -m32.
gcc/testsuite/ChangeLog:
* c-c++-common/torture/pr124086-1.c: Only enable
for power of 2 long double.
---
gcc/testsuite/c-c++-common/torture/pr124086-1.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/gcc/testsuite/c-c++-common/torture/pr124086-1.c
b/gcc/testsuite/c-c++-common/torture/pr124086-1.c
index 6bca0431e4c..b52d8e03f46 100644
--- a/gcc/testsuite/c-c++-common/torture/pr124086-1.c
+++ b/gcc/testsuite/c-c++-common/torture/pr124086-1.c
@@ -2,6 +2,8 @@
/* { dg-options "" } */
/* PR tree-optimization/124086 */
+/* Disable for non power of 2 long double as a vector of that is not
supported. */
+#if (__SIZEOF_LONG_DOUBLE__ & -__SIZEOF_LONG_DOUBLE__) ==
__SIZEOF_LONG_DOUBLE__
typedef __attribute__((__vector_size__(2*sizeof(long double)))) int V;
int j;
@@ -13,3 +15,5 @@ foo()
_Complex long double t = *(_Complex long double *)&v;
j = __real__ t;
}
+
+#endif
--
2.43.0