Use avx2-check mechanism to avoid illegal instrucion on non-avx2 target.
Tested by Rainer Orth on Solaris/x86. Pushed to trunk as obvious fix.
gcc/testsuite/ChangeLog:
PR target/104726
* gcc.target/i386/pr104551.c: Use avx2-check.h.
---
gcc/testsuite/gcc.target/i386/pr104551.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/gcc/testsuite/gcc.target/i386/pr104551.c
b/gcc/testsuite/gcc.target/i386/pr104551.c
index 6300f25c0d5..b839d5b2b0d 100644
--- a/gcc/testsuite/gcc.target/i386/pr104551.c
+++ b/gcc/testsuite/gcc.target/i386/pr104551.c
@@ -2,6 +2,8 @@
/* { dg-options "-O3 -mavx2" } */
/* { dg-require-effective-target avx2 } */
+#include "avx2-check.h"
+
unsigned int
__attribute__((noipa))
test(unsigned int a, unsigned char p[16]) {
@@ -11,7 +13,8 @@ test(unsigned int a, unsigned char p[16]) {
return res;
}
-int main ()
+static void
+avx2_test (void)
{
unsigned int a = 16U;
unsigned char p[16];
@@ -20,5 +23,4 @@ int main ()
unsigned int res = test (a, p);
if (res != 128)
__builtin_abort ();
- return 0;
}
--
2.18.1