1  /* { dg-do compile } */
       2  /* { dg-options "-mavx512vl -O2" } */
       3  /* { dg-final { scan-assembler-times "vpscatterdq\[ \\t\]+\[^\{\n\]*ymm\[0-9\]\[^\n\]*xmm\[0-9\]\[^\n\]*{%k\[1-7\]}(?:\n|\[ \\t\]+#)" 2 } } */
       4  /* { dg-final { scan-assembler-times "vpscatterdq\[ \\t\]+\[^\{\n\]*xmm\[0-9\]\[^\n\]*xmm\[0-9\]\[^\n\]*{%k\[1-7\]}(?:\n|\[ \\t\]+#)" 2 } } */
       5  
       6  #include <immintrin.h>
       7  
       8  volatile __m256i src1;
       9  volatile __m128i src2, idx;
      10  volatile __mmask8 m8;
      11  long long *addr;
      12  
      13  void extern
      14  avx512vl_test (void)
      15  {
      16    _mm256_i32scatter_epi64 (addr, idx, src1, 8);
      17    _mm256_mask_i32scatter_epi64 (addr, m8, idx, src1, 8);
      18  
      19    _mm_i32scatter_epi64 (addr, idx, src2, 8);
      20    _mm_mask_i32scatter_epi64 (addr, m8, idx, src2, 8);
      21  }