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

Reply via email to