1/* { dg-do run } */ 2/* { dg-require-effective-target avx512er } */ 3/* { dg-options "-O2 -mavx512er" } */ 4 5#include "avx512er-check.h" 6#include "avx512f-mask-type.h" 7#include "avx512f-helper.h" 8#include <math.h> 9 10void static 11avx512er_test (void) 12{ 13 union128d src1, src2, res; 14 double res_ref[2]; 15 int i; 16 17 for (i = 0; i < 2; i++) 18 { 19 src1.a[i] = 179.345 - 6.5645 * i; 20 src2.a[i] = 45 - 6.5645 * i; 21 res_ref[i] = src1.a[i]; 22 } 23 24 res_ref[0] = 1.0 / sqrt (src2.a[0]); 25 26 res.x = _mm_rsqrt28_round_sd (src1.x, src2.x, _MM_FROUND_NO_EXC); 27 28 if (checkVd (res.a, res_ref, 2)) 29 abort (); 30} 31