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 120 8 signed int yy[10000]; 9 signed char zz[10000]; 10 11 void foo(int s)12__attribute__ ((noinline,noclone)) foo (int s) 13 { 14 int i; 15 for (i = 0; i < s; i++) 16 yy[i] = zz[i]; 17 } 18 19 void avx512bw_test()20avx512bw_test () 21 { 22 signed char i; 23 for (i = 0; i < N; i++) 24 zz[i] = i; 25 foo (N); 26 for (i = 0; i < N; i++) 27 if ( (signed int)i != yy [i] ) 28 abort (); 29 } 30 31 /* { dg-final { scan-assembler-times "vpmovsxbw\[ \\t\]+\[^\n\]*%zmm" 2 } } */ 32