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_vrsqrtef32 (void) { float32x2_t out_float32x2_t; float32x2_t arg0_float32x2_t; out_float32x2_t = vrsqrte_f32 (arg0_float32x2_t); }
float32x2_t test_vrsqrte_f32(float32x2_t in) { // CHECK-LABEL: @test_vrsqrte_f32 // CHECK: call <2 x float> @llvm.arm64.neon.frsqrte.v2f32(<2 x float> %in) return vrsqrte_f32(in); }