(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
pr87317-12.c
       1  /* { dg-do compile { target { ! ia32 } } } */
       2  /* { dg-options "-O3 -march=haswell" } */
       3  /* { dg-final { scan-assembler-times "vpmovsxwq" 1 } } */
       4  
       5  #include <immintrin.h>
       6  
       7  #define MAX 4
       8  
       9  long long int dst[MAX];
      10  short src[MAX];
      11  
      12  void
      13  foo (void)
      14  {
      15    int i;
      16    for (i = 0; i < MAX; i += 4)
      17      {
      18        __m128i data = _mm_cvtsi64_si128(*(long long int*)(src + i));
      19        __m256i x = _mm256_cvtepi16_epi64(data);
      20        _mm256_storeu_si256((__m256i*)(dst + i), x);
      21      }
      22  }