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
foo(__m256i a,__m256i b)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
avx512f_test(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 }
34