1  /* { dg-do compile } */
       2  /* { dg-options "-mavx512vl -O2" } */
       3  /* { dg-final { scan-assembler-times "vscatterdps\[ \\t\]+\[^\{\n\]*ymm\[0-9\]\[^\n\]*ymm\[0-9\]\[^\n\]*{%k\[1-7\]}(?:\n|\[ \\t\]+#)" 2 } } */
       4  /* { dg-final { scan-assembler-times "vscatterdps\[ \\t\]+\[^\{\n\]*xmm\[0-9\]\[^\n\]*xmm\[0-9\]\[^\n\]*{%k\[1-7\]}(?:\n|\[ \\t\]+#)" 2 } } */
       5  
       6  #include <immintrin.h>
       7  
       8  volatile __m256 src1;
       9  volatile __m128 src2;
      10  volatile __m256i idx1;
      11  volatile __m128i idx2;
      12  volatile __mmask8 m8;
      13  float *addr;
      14  
      15  void extern
      16  avx512vl_test (void)
      17  {
      18    _mm256_i32scatter_ps (addr, idx1, src1, 8);
      19    _mm256_mask_i32scatter_ps (addr, m8, idx1, src1, 8);
      20  
      21    _mm_i32scatter_ps (addr, idx2, src2, 8);
      22    _mm_mask_i32scatter_ps (addr, m8, idx2, src2, 8);
      23  }