(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
avx512f-pr70059.c
       1  /* PR target/70059 */
       2  /* { dg-do run } */
       3  /* { dg-require-effective-target avx512f } */
       4  /* { dg-options "-O2 -mavx512f" } */
       5  
       6  #include "avx512f-check.h"
       7  
       8  __attribute__((noinline, noclone)) __m512i
       9  foo (__m256i a, __m256i b)
      10  {
      11    __m512i r = _mm512_undefined_si512 ();
      12    r = _mm512_inserti64x4 (r, a, 0);
      13    r = _mm512_inserti64x4 (r, b, 1);
      14    return r;
      15  }
      16  
      17  static void
      18  avx512f_test (void)
      19  {
      20    union256i_q a, b;
      21    union512i_q r;
      22    long long r_ref[8];
      23    int i;
      24    for (i = 0; i < 4; i++)
      25      {
      26        a.a[i] = 0x0101010101010101ULL * i;
      27        b.a[i] = 0x1010101010101010ULL * i;
      28        r_ref[i] = a.a[i];
      29        r_ref[i + 4] = b.a[i];
      30      }
      31    r.x = foo (a.x, b.x);
      32    check_union512i_q (r, r_ref);
      33  }