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