(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
avx512vl-pack-1.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -mavx512vl -mno-avx512bw" } */
       3  
       4  #include <x86intrin.h>
       5  
       6  __m128i
       7  f1 (__m128i a, __m128i b)
       8  {
       9    return _mm_packs_epi16 (a, b);
      10  }
      11  
      12  /* { dg-final { scan-assembler-times "vpacksswb\[^\n\r\]*xmm\[0-9\]" 1 } } */
      13  
      14  __m128i
      15  f2 (__m128i a, __m128i b)
      16  {
      17    return _mm_packs_epi32 (a, b);
      18  }
      19  
      20  /* { dg-final { scan-assembler-times "vpackssdw\[^\n\r\]*xmm\[0-9\]" 1 } } */
      21  
      22  __m128i
      23  f3 (__m128i a, __m128i b)
      24  {
      25    return _mm_packus_epi16 (a, b);
      26  }
      27  
      28  /* { dg-final { scan-assembler-times "vpackuswb\[^\n\r\]*xmm\[0-9\]" 1 } } */
      29  
      30  __m128i
      31  f4 (__m128i a, __m128i b)
      32  {
      33    return _mm_packus_epi32 (a, b);
      34  }
      35  
      36  /* { dg-final { scan-assembler-times "vpackusdw\[^\n\r\]*xmm\[0-9\]" 1 } } */
      37  
      38  __m256i
      39  f5 (__m256i a, __m256i b)
      40  {
      41    return _mm256_packs_epi16 (a, b);
      42  }
      43  
      44  /* { dg-final { scan-assembler-times "vpacksswb\[^\n\r\]*ymm\[0-9\]" 1 } } */
      45  
      46  __m256i
      47  f6 (__m256i a, __m256i b)
      48  {
      49    return _mm256_packs_epi32 (a, b);
      50  }
      51  
      52  /* { dg-final { scan-assembler-times "vpackssdw\[^\n\r\]*ymm\[0-9\]" 1 } } */
      53  
      54  __m256i
      55  f7 (__m256i a, __m256i b)
      56  {
      57    return _mm256_packus_epi16 (a, b);
      58  }
      59  
      60  /* { dg-final { scan-assembler-times "vpackuswb\[^\n\r\]*ymm\[0-9\]" 1 } } */
      61  
      62  __m256i
      63  f8 (__m256i a, __m256i b)
      64  {
      65    return _mm256_packus_epi32 (a, b);
      66  }
      67  
      68  /* { dg-final { scan-assembler-times "vpackusdw\[^\n\r\]*ymm\[0-9\]" 1 } } */