Merge pull request #313 from jackoalan/neon-setinterpolate3-fix
Fixed self-referencial bug in btVector3's setInterpolate3 (NEON)
This commit is contained in:
@@ -467,10 +467,10 @@ public:
|
|||||||
__m128 tmp3 = _mm_add_ps(r0,r1);
|
__m128 tmp3 = _mm_add_ps(r0,r1);
|
||||||
mVec128 = tmp3;
|
mVec128 = tmp3;
|
||||||
#elif defined(B3_USE_NEON)
|
#elif defined(B3_USE_NEON)
|
||||||
mVec128 = vsubq_f32(v1.mVec128, v0.mVec128);
|
float32x4_t vl = vsubq_f32(v1.mVec128, v0.mVec128);
|
||||||
mVec128 = vmulq_n_f32(mVec128, rt);
|
vl = vmulq_n_f32(vl, rt);
|
||||||
mVec128 = vaddq_f32(mVec128, v0.mVec128);
|
mVec128 = vaddq_f32(vl, v0.mVec128);
|
||||||
#else
|
#else
|
||||||
b3Scalar s = b3Scalar(1.0) - rt;
|
b3Scalar s = b3Scalar(1.0) - rt;
|
||||||
m_floats[0] = s * v0.m_floats[0] + rt * v1.m_floats[0];
|
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];
|
m_floats[1] = s * v0.m_floats[1] + rt * v1.m_floats[1];
|
||||||
|
|||||||
@@ -501,10 +501,10 @@ public:
|
|||||||
__m128 tmp3 = _mm_add_ps(r0,r1);
|
__m128 tmp3 = _mm_add_ps(r0,r1);
|
||||||
mVec128 = tmp3;
|
mVec128 = tmp3;
|
||||||
#elif defined(BT_USE_NEON)
|
#elif defined(BT_USE_NEON)
|
||||||
mVec128 = vsubq_f32(v1.mVec128, v0.mVec128);
|
float32x4_t vl = vsubq_f32(v1.mVec128, v0.mVec128);
|
||||||
mVec128 = vmulq_n_f32(mVec128, rt);
|
vl = vmulq_n_f32(vl, rt);
|
||||||
mVec128 = vaddq_f32(mVec128, v0.mVec128);
|
mVec128 = vaddq_f32(vl, v0.mVec128);
|
||||||
#else
|
#else
|
||||||
btScalar s = btScalar(1.0) - rt;
|
btScalar s = btScalar(1.0) - rt;
|
||||||
m_floats[0] = s * v0.m_floats[0] + rt * v1.m_floats[0];
|
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];
|
m_floats[1] = s * v0.m_floats[1] + rt * v1.m_floats[1];
|
||||||
|
|||||||
Reference in New Issue
Block a user