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