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 8static void 9compute_vrsqrt14ss (float *s1, float *s2, float *r) 10{ 11 r[0] = 1.0 / sqrt (s2[0]); 12 r[1] = s1[1]; 13 r[2] = s1[2]; 14 r[3] = s1[3]; 15} 16 17static void 18avx512f_test (void) 19{ 20 union128 s1, s2, res1; 21 float res_ref[4]; 22 23 s1.x = _mm_set_ps (-24.43, 68.346, -43.35, 546.46); 24 s2.x = _mm_set_ps (222.222, 333.333, 444.444, 4.0); 25 26 res1.x = _mm_rsqrt14_ss (s1.x, s2.x); 27 28 compute_vrsqrt14ss (s1.a, s2.a, res_ref); 29 30 if (check_fp_union128 (res1, res_ref)) 31 abort (); 32} 33