Adjust testcase.
authorliuhongt <hongtao.liu@intel.com>
Mon, 31 Aug 2020 02:54:13 +0000 (10:54 +0800)
committerliuhongt <hongtao.liu@intel.com>
Thu, 3 Sep 2020 02:25:50 +0000 (10:25 +0800)
gcc/testsuite/ChangeLog:
PR target/96246
PR target/96855
PR target/96856
PR target/96857
* g++.target/i386/avx512bw-pr96246-2.C: Add runtime check for
AVX512BW.
* g++.target/i386/avx512vl-pr96246-2.C: Add runtime check for
AVX512BW and AVX512VL
* g++.target/i386/avx512f-helper.h: New header.
* gcc.target/i386/pr92658-avx512f.c: Add
-mprefer-vector-width=512 to avoid impact of different default
mtune which gcc is built with.
* gcc.target/i386/avx512bw-pr95488-1.c: Ditto.
* gcc.target/i386/pr92645-4.c: Add -mno-avx512f to avoid
impact of different default march which gcc is built with.

gcc/testsuite/g++.target/i386/avx512bw-pr96246-2.C
gcc/testsuite/g++.target/i386/avx512f-helper.h [new file with mode: 0644]
gcc/testsuite/g++.target/i386/avx512vl-pr96246-2.C
gcc/testsuite/gcc.target/i386/avx512bw-pr95488-1.c
gcc/testsuite/gcc.target/i386/pr92645-4.c
gcc/testsuite/gcc.target/i386/pr92658-avx512f.c

index b96b7c7c9322143e56d279c7cce1cd0acf30e978..30a1b95957309f339217ff49a7535c876bfdad1d 100644 (file)
@@ -3,6 +3,10 @@
 /* { dg-require-effective-target avx512bw } */
 /* { dg-options "-O2 -std=c++14 -mavx512bw" } */
 
+#define AVX512BW
+
+#include "avx512f-helper.h"
+
 #include "avx512bw-pr96246-1.C"
 
 #define RUNTIME_TEST(vtype, num)                       \
@@ -24,8 +28,8 @@
     }                                                  \
   while (0)
 
-int
-main (void)
+void
+test_512 (void)
 {
   RUNTIME_TEST (v64qi, 64);
   RUNTIME_TEST (v32hi, 32);
@@ -33,5 +37,4 @@ main (void)
   RUNTIME_TEST (v8di, 8);
   RUNTIME_TEST (v16sf, 16);
   RUNTIME_TEST (v8df, 8);
-  return 0;
 }
diff --git a/gcc/testsuite/g++.target/i386/avx512f-helper.h b/gcc/testsuite/g++.target/i386/avx512f-helper.h
new file mode 100644 (file)
index 0000000..09b6bcb
--- /dev/null
@@ -0,0 +1 @@
+#include "../../gcc.target/i386/avx512f-helper.h"
index 9a16f0d2c9e86f622b50863a936a5bf96257df76..db9dce2caefba57af0f936519fa104f14e8ba64b 100644 (file)
@@ -4,6 +4,11 @@
 /* { dg-require-effective-target avx512vl } */
 /* { dg-options "-O2 -std=c++14 -mavx512bw -mavx512vl" } */
 
+#define AVX512VL
+#define AVX512BW
+
+#include "avx512f-helper.h"
+
 #include "avx512vl-pr96246-1.C"
 
 #define RUNTIME_TEST(vtype, num)                       \
     }                                                  \
   while (0)
 
-int
-main (void)
+void
+test_256 (void)
 {
-  RUNTIME_TEST (v16qi, 16);
   RUNTIME_TEST (v32qi, 32);
   RUNTIME_TEST (v16hi, 16);
-  RUNTIME_TEST (v4si, 4);
   RUNTIME_TEST (v8si, 8);
-  RUNTIME_TEST (v4sf, 4);
   RUNTIME_TEST (v8sf, 8);
   RUNTIME_TEST (v4di, 4);
   RUNTIME_TEST (v4df, 4);
-  return 0;
+}
+
+void
+test_128 (void)
+{
+  RUNTIME_TEST (v16qi, 16);
+  RUNTIME_TEST (v4si, 4);
+  RUNTIME_TEST (v4sf, 4);
 }
index 594e511868d72b6b8be55e6e4278e421e1d7a524..e6e0ac2fd82a034eb9fdd7aa7f90c1ff7980d9c6 100644 (file)
@@ -1,6 +1,6 @@
 /* PR target/95488  */
 /* { dg-do compile } */
-/* { dg-options "-O2 -mavx512bw" }  */
+/* { dg-options "-O2 -mavx512bw -mprefer-vector-width=512" }  */
 /* { dg-final { scan-assembler-times "vpmovzxbw" 4 } } */
 /* { dg-final { scan-assembler-times "vpmullw\[^\n\]*zmm" 2 } } */
 /* { dg-final { scan-assembler-times "vpmovwb" 2 } } */
index 5d4590408465669f93eca4ce7969e6169033bf06..28a3f9a352737ad2c878591f8a1d49e7caf251c7 100644 (file)
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-O2 -mavx2 -fdump-tree-optimized -Wno-psabi" } */
+/* { dg-options "-O2 -mavx2 -fdump-tree-optimized -Wno-psabi -mno-avx512f" } */
 
 typedef unsigned int u32v4 __attribute__((vector_size(16)));
 typedef unsigned short u16v16 __attribute__((vector_size(32)));
index 2ba29074a8169df46d67cf1072555b227992d4b0..e9ee3d242325c90e61839bf9cd7575ec5dd24a10 100644 (file)
@@ -1,6 +1,6 @@
 /* PR target/92658 */
 /* { dg-do compile } */
-/* { dg-options "-O2 -ftree-vectorize -mavx512f" } */
+/* { dg-options "-O2 -ftree-vectorize -mavx512f -mprefer-vector-width=512" } */
 
 typedef unsigned char v8qi __attribute__((vector_size (8)));
 typedef unsigned char v16qi __attribute__((vector_size (16)));