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