diff --git a/src/Bullet3Common/b3Vector3.h b/src/Bullet3Common/b3Vector3.h index ed45ffaa9..9bd10a5cc 100644 --- a/src/Bullet3Common/b3Vector3.h +++ b/src/Bullet3Common/b3Vector3.h @@ -467,10 +467,10 @@ public: __m128 tmp3 = _mm_add_ps(r0,r1); mVec128 = tmp3; #elif defined(B3_USE_NEON) - mVec128 = vsubq_f32(v1.mVec128, v0.mVec128); - mVec128 = vmulq_n_f32(mVec128, rt); - mVec128 = vaddq_f32(mVec128, v0.mVec128); -#else + float32x4_t vl = vsubq_f32(v1.mVec128, v0.mVec128); + vl = vmulq_n_f32(vl, rt); + mVec128 = vaddq_f32(vl, v0.mVec128); +#else b3Scalar s = b3Scalar(1.0) - rt; m_floats[0] = s * v0.m_floats[0] + rt * v1.m_floats[0]; m_floats[1] = s * v0.m_floats[1] + rt * v1.m_floats[1]; diff --git a/src/LinearMath/btVector3.h b/src/LinearMath/btVector3.h index 112b70dd6..839b19c14 100644 --- a/src/LinearMath/btVector3.h +++ b/src/LinearMath/btVector3.h @@ -501,10 +501,10 @@ public: __m128 tmp3 = _mm_add_ps(r0,r1); mVec128 = tmp3; #elif defined(BT_USE_NEON) - mVec128 = vsubq_f32(v1.mVec128, v0.mVec128); - mVec128 = vmulq_n_f32(mVec128, rt); - mVec128 = vaddq_f32(mVec128, v0.mVec128); -#else + float32x4_t vl = vsubq_f32(v1.mVec128, v0.mVec128); + vl = vmulq_n_f32(vl, rt); + mVec128 = vaddq_f32(vl, v0.mVec128); +#else btScalar s = btScalar(1.0) - rt; m_floats[0] = s * v0.m_floats[0] + rt * v1.m_floats[0]; m_floats[1] = s * v0.m_floats[1] + rt * v1.m_floats[1];