Fix test for APX ZU. Add attribute for no-inline and target APX, and
target-support check.
Bootstrapped and regtested on x86_64-pc-linux-gnu{-m32,}.
Committed as an obvious patch.
gcc/testsuite/ChangeLog:
* gcc.target/i386/apx-zu-1.c: Add attribute for noinline,
and target apx.
* gcc.target/i386/apx-zu-2.c: Add target-support check.
---
gcc/testsuite/gcc.target/i386/apx-zu-1.c | 6 ++++++
gcc/testsuite/gcc.target/i386/apx-zu-2.c | 3 +++
2 files changed, 9 insertions(+)
diff --git a/gcc/testsuite/gcc.target/i386/apx-zu-1.c
b/gcc/testsuite/gcc.target/i386/apx-zu-1.c
index 927a87673a7..bc0e7fbb4dd 100644
--- a/gcc/testsuite/gcc.target/i386/apx-zu-1.c
+++ b/gcc/testsuite/gcc.target/i386/apx-zu-1.c
@@ -9,26 +9,32 @@
/* { dg-final { scan-assembler-times "setzue" 1} } */
/* { dg-final { scan-assembler-times "setzuge" 1} } */
/* { dg-final { scan-assembler "imulzu"} } */
+
+__attribute__((noinline, noclone, target("apxf")))
long long foo0 (int a)
{
return a == 0 ? 0 : 1;
}
+__attribute__((noinline, noclone, target("apxf")))
long foo1 (int a, int b)
{
return a > b ? 0 : 1;
}
+__attribute__((noinline, noclone, target("apxf")))
int foo2 (int a, int b)
{
return a != b ? 0 : 1;
}
+__attribute__((noinline, noclone, target("apxf")))
short foo3 (int a, int b)
{
return a < b ? 0 : 1;
}
+__attribute__((noinline, noclone, target("apxf")))
unsigned long
f1(unsigned short x)
{
diff --git a/gcc/testsuite/gcc.target/i386/apx-zu-2.c
b/gcc/testsuite/gcc.target/i386/apx-zu-2.c
index 3ee04495d98..7585492bd7c 100644
--- a/gcc/testsuite/gcc.target/i386/apx-zu-2.c
+++ b/gcc/testsuite/gcc.target/i386/apx-zu-2.c
@@ -5,6 +5,9 @@
int main(void)
{
+ if (!__builtin_cpu_supports ("apxf"))
+ return 0;
+
if (foo0 (0))
__builtin_abort ();
if (foo1 (3, 2))
--
2.31.1