(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
avx512vl-vpshrdv-1.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-mavx512vl -mavx512vbmi2 -mavx512bw -O2" } */
       3  /* { dg-final { scan-assembler-times "vpshrdvw\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
       4  /* { dg-final { scan-assembler-times "vpshrdvw\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\\n\\r]*%ymm\[0-9\]+\[^\\n\\r\]*%ymm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
       5  /* { dg-final { scan-assembler-times "vpshrdvw\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\\n\\r]*%ymm\[0-9\]+\[^\\n\\r\]*%ymm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
       6  /* { dg-final { scan-assembler-times "vpshrdvd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
       7  /* { dg-final { scan-assembler-times "vpshrdvd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\\n\\r]*%ymm\[0-9\]+\[^\\n\\r\]*%ymm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
       8  /* { dg-final { scan-assembler-times "vpshrdvd\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\\n\\r]*%ymm\[0-9\]+\[^\\n\\r\]*%ymm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
       9  /* { dg-final { scan-assembler-times "vpshrdvq\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+\[^\n\r]*%ymm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
      10  /* { dg-final { scan-assembler-times "vpshrdvq\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\\n\\r]*%ymm\[0-9\]+\[^\\n\\r\]*%ymm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
      11  /* { dg-final { scan-assembler-times "vpshrdvq\[ \\t\]+\[^\{\n\]*%ymm\[0-9\]+\[^\\n\\r]*%ymm\[0-9\]+\[^\\n\\r\]*%ymm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
      12  /* { dg-final { scan-assembler-times "vpshrdvw\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
      13  /* { dg-final { scan-assembler-times "vpshrdvw\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\\n\\r]*%xmm\[0-9\]+\[^\\n\\r\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
      14  /* { dg-final { scan-assembler-times "vpshrdvw\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\\n\\r]*%xmm\[0-9\]+\[^\\n\\r\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
      15  /* { dg-final { scan-assembler-times "vpshrdvd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
      16  /* { dg-final { scan-assembler-times "vpshrdvd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\\n\\r]*%xmm\[0-9\]+\[^\\n\\r\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
      17  /* { dg-final { scan-assembler-times "vpshrdvd\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\\n\\r]*%xmm\[0-9\]+\[^\\n\\r\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
      18  /* { dg-final { scan-assembler-times "vpshrdvq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+\[^\n\r]*%xmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
      19  /* { dg-final { scan-assembler-times "vpshrdvq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\\n\\r]*%xmm\[0-9\]+\[^\\n\\r\]*%xmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
      20  /* { dg-final { scan-assembler-times "vpshrdvq\[ \\t\]+\[^\{\n\]*%xmm\[0-9\]+\[^\\n\\r]*%xmm\[0-9\]+\[^\\n\\r\]*%xmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
      21  
      22  #include <immintrin.h>
      23  
      24  volatile __m256i x,y,z;
      25  volatile __m128i x_,y_,z_;
      26  volatile __mmask32 m;
      27  
      28  void extern
      29  avx512f_test (void)
      30  {
      31    x = _mm256_shrdv_epi16 (x, y, z);
      32    x = _mm256_mask_shrdv_epi16 (x, m, y, z);
      33    x = _mm256_maskz_shrdv_epi16 (m, x, y, z);
      34  
      35    x = _mm256_shrdv_epi32 (x, y, z);
      36    x = _mm256_mask_shrdv_epi32 (x, m, y, z);
      37    x = _mm256_maskz_shrdv_epi32 (m, x, y, z);
      38  
      39    x = _mm256_shrdv_epi64 (x, y, z);
      40    x = _mm256_mask_shrdv_epi64 (x, m, y, z);
      41    x = _mm256_maskz_shrdv_epi64 (m, x, y, z);
      42  
      43    x_ = _mm_shrdv_epi16 (x_, y_, z_);
      44    x_ = _mm_mask_shrdv_epi16 (x_, m, y_, z_);
      45    x_ = _mm_maskz_shrdv_epi16 (m, x_, y_, z_);
      46  
      47    x_ = _mm_shrdv_epi32 (x_, y_, z_);
      48    x_ = _mm_mask_shrdv_epi32 (x_, m, y_, z_);
      49    x_ = _mm_maskz_shrdv_epi32 (m, x_, y_, z_);
      50  
      51    x_ = _mm_shrdv_epi64 (x_, y_, z_);
      52    x_ = _mm_mask_shrdv_epi64 (x_, m, y_, z_);
      53    x_ = _mm_maskz_shrdv_epi64 (m, x_, y_, z_);
      54  }