diff --git a/modules/hal/include/opencv2/hal/intrin.hpp b/modules/hal/include/opencv2/hal/intrin.hpp index e959a49cff..b067301d82 100644 --- a/modules/hal/include/opencv2/hal/intrin.hpp +++ b/modules/hal/include/opencv2/hal/intrin.hpp @@ -2287,16 +2287,16 @@ inline v_float32x4 operator ~ (const v_float32x4& a) inline v_float32x4 v_sqrt(const v_float32x4& x) { float32x4_t e = vrsqrteq_f32(x.val); - e = vmulq_f32(vrsqrtsq_f32(vmulq_f32(e, e), x.val), e); - e = vmulq_f32(vrsqrtsq_f32(vmulq_f32(e, e), x.val), e); - return v_float32x4(vmulq_f32(e, x.val)); + e = vmulq_f32(vrsqrtsq_f32(vmulq_f32(x.val, e), e), e); + e = vmulq_f32(vrsqrtsq_f32(vmulq_f32(x.val, e), e), e); + return v_float32x4(vmulq_f32(x.val, e)); } inline v_float32x4 v_invsqrt(const v_float32x4& x) { float32x4_t e = vrsqrteq_f32(x.val); - e = vmulq_f32(vrsqrtsq_f32(vmulq_f32(e, e), x.val), e); - e = vmulq_f32(vrsqrtsq_f32(vmulq_f32(e, e), x.val), e); + e = vmulq_f32(vrsqrtsq_f32(vmulq_f32(x.val, e), e), e); + e = vmulq_f32(vrsqrtsq_f32(vmulq_f32(x.val, e), e), e); return v_float32x4(e); }