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