From 461a4009badb0afff795c5e693c0887d5c69b5c5 Mon Sep 17 00:00:00 2001 From: Wasin Thonkaew Date: Fri, 19 Apr 2019 02:07:57 +0800 Subject: [PATCH] refactor vec4 : glm_vec4_distance for SSE/SSE2 According to suggestion by recp at https://github.com/recp/cglm/issues/82#issuecomment-483051704. --- include/cglm/vec4.h | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/include/cglm/vec4.h b/include/cglm/vec4.h index 2b62c1b..d053ed5 100644 --- a/include/cglm/vec4.h +++ b/include/cglm/vec4.h @@ -690,12 +690,7 @@ CGLM_INLINE float glm_vec4_distance(vec4 a, vec4 b) { #if defined( __SSE__ ) || defined( __SSE2__ ) - __m128 x0; - x0 = _mm_sub_ps(glmm_load(b), glmm_load(a)); - x0 = _mm_mul_ps(x0, x0); - x0 = _mm_add_ps(x0, glmm_shuff1(x0, 1, 0, 3, 2)); - return _mm_cvtss_f32(_mm_sqrt_ss(_mm_add_ss(x0, - glmm_shuff1(x0, 0, 1, 0, 1)))); + return glmm_norm(_mm_sub_ps(glmm_load(b), glmm_load(a))); #elif defined(CGLM_NEON_FP) return glmm_norm(vsubq_f32(glmm_load(a), glmm_load(b))); #else