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