1 /* { dg-do run } */
2 /* { dg-options "-O2 -fdump-tree-vect-details -ftree-vectorize -ffast-math -mavx512bw -save-temps" } */
3 /* { dg-require-effective-target avx512bw } */
4
5 #include "avx512bw-check.h"
6
7 #define N 120
8 signed int yy[10000];
9
10 void
foo(signed char s)11 __attribute__ ((noinline)) foo (signed char s)
12 {
13 signed char i;
14 for (i = 0; i < s; i++)
15 yy[i] = (signed int) i;
16 }
17
18 void
avx512bw_test()19 avx512bw_test ()
20 {
21 signed char i;
22 foo (N);
23 for (i = 0; i < N; i++)
24 if ( (signed int)i != yy [i] )
25 abort ();
26 }
27
28 /* { dg-final { scan-tree-dump "LOOP VECTORIZED" "vect" } } */
29 /* { dg-final { scan-assembler-not "vpmovsxbw\[ \\t\]+\[^\n\]*%zmm" } } */
30