1  /* { dg-do run } */
       2  /* { dg-options "-O2 -ftree-vectorize -mavx512bw" } */
       3  /* { dg-require-effective-target avx512bw } */
       4  
       5  #define AVX512BW
       6  #include "avx512f-helper.h"
       7  
       8  extern void abort (void);
       9  
      10  void __attribute__((noinline,noclone))
      11  test1 (int *a, int *b, int *c)
      12  {
      13    int i;
      14    for (i = 0; i < 16; i++)
      15      {
      16        if ((i == 0) || (i == 3))
      17  	a[i] = b[i];
      18        else
      19  	a[i] = c[i];
      20      }
      21  }
      22  
      23  void
      24  TEST ()
      25  {
      26    int a[16], b[16], c[16], i;
      27  
      28    for (i = 0; i < 16; i++)
      29      {
      30        a[i] = i;
      31        b[i] = -i;
      32      }
      33  
      34    test1 (a, b, c);
      35  
      36    for (i = 0; i < 16; i++)
      37      {
      38        if ((i == 0) || (i == 3))
      39  	{
      40  	  if (a[i] != b[i])
      41  	    abort ();
      42  	}
      43        else
      44  	{
      45  	  if (a[i] != c[i])
      46  	    abort ();
      47  	}
      48      }
      49  }