2 /* { dg-options "-mavx512f -O2" } */
3 /* { dg-require-effective-target avx512f } */
5 #define SIZE (128 / 32)
8 #include "avx512f-check.h"
11 compute_rndscaless (float *s1
, float *s2
, float *r
, int imm
)
19 case _MM_FROUND_FLOOR
:
20 r
[0] = __builtin_floorf (s2
[0] * pow (2, m
)) / pow (2, m
);
23 r
[0] = __builtin_ceilf (s2
[0] * pow (2, m
)) / pow (2, m
);
38 int imm
= _MM_FROUND_FLOOR
| (7 << 4);
39 union128 s1
, s2
, res1
;
42 s1
.x
= _mm_set_ps (4.05084, -1.23162, 2.00231, -6.22103);
43 s2
.x
= _mm_set_ps (-4.19319, -3.53222, 7.33527, 5.57655);
45 res1
.x
= _mm_roundscale_ss (s1
.x
, s2
.x
, imm
);
47 compute_rndscaless (s1
.a
, s2
.a
, res_ref
, imm
);
49 if (check_union128 (res1
, res_ref
))