/* { 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) \
} \
while (0)
-int
-main (void)
+void
+test_512 (void)
{
RUNTIME_TEST (v64qi, 64);
RUNTIME_TEST (v32hi, 32);
RUNTIME_TEST (v8di, 8);
RUNTIME_TEST (v16sf, 16);
RUNTIME_TEST (v8df, 8);
- return 0;
}
--- /dev/null
+#include "../../gcc.target/i386/avx512f-helper.h"
/* { 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);
}
/* 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 } } */
/* { 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)));
/* 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)));