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
      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
      20  avx512bw_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 } } */