1 /* { dg-do run } */
2 /* { dg-options "-mavx512f -O2" } */
3 /* { dg-require-effective-target avx512f } */
4
5 #include <math.h>
6 #include "avx512f-check.h"
7
8 static void
compute_vrsqrt14sd(double * s1,double * s2,double * r)9 compute_vrsqrt14sd (double *s1, double *s2, double *r)
10 {
11 r[0] = 1.0 / sqrt (s2[0]);
12 r[1] = s1[1];
13 }
14
15 static void
avx512f_test(void)16 avx512f_test (void)
17 {
18 union128d s1, s2, res1;
19 double res_ref[2];
20
21 s1.x = _mm_set_pd (-3.0, 111.111);
22 s2.x = _mm_set_pd (222.222, 4.0);
23
24 res1.x = _mm_rsqrt14_sd (s1.x, s2.x);
25
26 compute_vrsqrt14sd (s1.a, s2.a, res_ref);
27
28 if (check_fp_union128d (res1, res_ref))
29 abort ();
30 }
31