1/* { dg-do run } */
2/* { dg-options "-O2 -mavx512f" } */
3/* { dg-require-effective-target avx512f } */
4
5#include "avx512f-check.h"
6
7static __m512i
8__attribute__ ((noinline))
9foo (int x)
10{
11  return _mm512_set_epi32 (x, x, x, x, x, x, x, x,
12			   x, x, x, x, x, x, x, x);
13}
14
15static __m512i
16__attribute__ ((noinline))
17foo_r (int x)
18{
19  return _mm512_setr_epi32 (x, x, x, x, x, x, x, x,
20			    x, x, x, x, x, x, x, x);
21}
22
23static void
24avx512f_test (void)
25{
26  int i;
27  int e = 0xabadbeef;
28  int v[16];
29  union512i_d res;
30
31  for (i = 0; i < 16; i++)
32    v[i] = e;
33
34  res.x = foo (e);
35
36  if (check_union512i_d (res, v))
37    abort ();
38
39  res.x = _mm512_setzero_si512 ();
40
41  res.x = foo_r (e);
42
43  if (check_union512i_d (res, v))
44    abort ();
45}
46