inline float32x2_t cv_vrsqrt_f32(float32x2_t val) { float32x2_t e = vrsqrte_f32(val); e = vmul_f32(vrsqrts_f32(vmul_f32(e, e), val), e); e = vmul_f32(vrsqrts_f32(vmul_f32(e, e), val), e); return e; }
void test_vrsqrtsf32 (void) { float32x2_t out_float32x2_t; float32x2_t arg0_float32x2_t; float32x2_t arg1_float32x2_t; out_float32x2_t = vrsqrts_f32 (arg0_float32x2_t, arg1_float32x2_t); }
float32x2_t test_vrsqrts_f32(float32x2_t est, float32x2_t val) { // CHECK-LABEL: @test_vrsqrts_f32 // CHECK: call <2 x float> @llvm.arm64.neon.frsqrts.v2f32(<2 x float> %est, <2 x float> %val) return vrsqrts_f32(est, val); }