PR inline-asm/84742
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / avx512dq-pr70059.c
blob932ff6a6f6af22fef25d19bda073eecfb3611c44
1 /* PR target/70059 */
2 /* { dg-do run } */
3 /* { dg-require-effective-target avx512dq } */
4 /* { dg-options "-O2 -mavx512dq" } */
6 #include "avx512dq-check.h"
8 __attribute__((noinline, noclone)) __m512i
9 foo (__m256i a, __m256i b)
11 __m512i r = _mm512_undefined_si512 ();
12 r = _mm512_inserti32x8 (r, a, 0);
13 r = _mm512_inserti32x8 (r, b, 1);
14 return r;
17 static void
18 avx512dq_test (void)
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++)
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];
31 r.x = foo (a.x, b.x);
32 check_union512i_q (r, r_ref);