2 /* { dg-options "-O2 -mavx512f" } */
3 /* { dg-require-effective-target avx512f } */
5 #include "avx512f-check.h"
8 __attribute__ ((noinline
))
9 foo (float x1
, float x2
, float x3
, float x4
,
10 float x5
, float x6
, float x7
, float x8
,
11 float x9
, float x10
, float x11
, float x12
,
12 float x13
, float x14
, float x15
, float x16
)
14 return _mm512_set_ps (x1
, x2
, x3
, x4
, x5
, x6
, x7
, x8
,
15 x9
, x10
, x11
, x12
, x13
, x14
, x15
, x16
);
19 __attribute__ ((noinline
))
20 foo_r (float x1
, float x2
, float x3
, float x4
,
21 float x5
, float x6
, float x7
, float x8
,
22 float x9
, float x10
, float x11
, float x12
,
23 float x13
, float x14
, float x15
, float x16
)
25 return _mm512_setr_ps (x16
, x15
, x14
, x13
, x12
, x11
, x10
, x9
,
26 x8
, x7
, x6
, x5
, x4
, x3
, x2
, x1
);
32 float v
[16] = { -3.3, 2.6, 1.48, 9.104, -23.9, 17, -13.48, 4,
33 69.78, 0.33, 81, 0.4, -8.9, -173.37, 0.8, 68 };
36 res
.x
= foo (v
[15], v
[14], v
[13], v
[12], v
[11], v
[10], v
[9], v
[8],
37 v
[7], v
[6], v
[5], v
[4], v
[3], v
[2], v
[1], v
[0]);
39 if (check_union512 (res
, v
))
42 res
.x
= _mm512_setzero_ps ();
44 res
.x
= foo_r (v
[15], v
[14], v
[13], v
[12], v
[11], v
[10], v
[9], v
[8],
45 v
[7], v
[6], v
[5], v
[4], v
[3], v
[2], v
[1], v
[0]);
47 if (check_union512 (res
, v
))