Merge pull request #313 from jackoalan/neon-setinterpolate3-fix

Fixed self-referencial bug in btVector3's setInterpolate3 (NEON)
This commit is contained in:
erwincoumans
2015-02-10 18:10:26 -08:00
2 changed files with 8 additions and 8 deletions

View File

@@ -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];

View File

@@ -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];