fix iOS compilation when the C++ Language Dialect is set to GNU++11
This commit is contained in:
@@ -367,7 +367,7 @@ public:
|
||||
vm[2] = v2;
|
||||
#elif defined(BT_USE_NEON)
|
||||
// note: zeros the w channel. We can preserve it at the cost of two more vtrn instructions.
|
||||
static const uint32x2_t zMask = (const uint32x2_t) {-1, 0 };
|
||||
static const uint32x2_t zMask = (const uint32x2_t) {static_cast<uint32_t>(-1), 0 };
|
||||
float32x4_t *vm = (float32x4_t *)m;
|
||||
float32x4x2_t top = vtrnq_f32( m_el[0].mVec128, m_el[1].mVec128 ); // {x0 x1 z0 z1}, {y0 y1 w0 w1}
|
||||
float32x2x2_t bl = vtrn_f32( vget_low_f32(m_el[2].mVec128), vdup_n_f32(0.0f) ); // {x2 0 }, {y2 0}
|
||||
@@ -998,7 +998,7 @@ btMatrix3x3::transpose() const
|
||||
return btMatrix3x3( v0, v1, v2 );
|
||||
#elif defined(BT_USE_NEON)
|
||||
// note: zeros the w channel. We can preserve it at the cost of two more vtrn instructions.
|
||||
static const uint32x2_t zMask = (const uint32x2_t) {-1, 0 };
|
||||
static const uint32x2_t zMask = (const uint32x2_t) {static_cast<uint32_t>(-1), 0 };
|
||||
float32x4x2_t top = vtrnq_f32( m_el[0].mVec128, m_el[1].mVec128 ); // {x0 x1 z0 z1}, {y0 y1 w0 w1}
|
||||
float32x2x2_t bl = vtrn_f32( vget_low_f32(m_el[2].mVec128), vdup_n_f32(0.0f) ); // {x2 0 }, {y2 0}
|
||||
float32x4_t v0 = vcombine_f32( vget_low_f32(top.val[0]), bl.val[0] );
|
||||
@@ -1058,7 +1058,7 @@ btMatrix3x3::transposeTimes(const btMatrix3x3& m) const
|
||||
|
||||
#elif defined BT_USE_NEON
|
||||
// zeros w
|
||||
static const uint32x4_t xyzMask = (const uint32x4_t){ -1, -1, -1, 0 };
|
||||
static const uint32x4_t xyzMask = (const uint32x4_t){ static_cast<uint32_t>(-1), static_cast<uint32_t>(-1), static_cast<uint32_t>(-1), 0 };
|
||||
float32x4_t m0 = (float32x4_t) vandq_u32( (uint32x4_t) m.getRow(0).mVec128, xyzMask );
|
||||
float32x4_t m1 = (float32x4_t) vandq_u32( (uint32x4_t) m.getRow(1).mVec128, xyzMask );
|
||||
float32x4_t m2 = (float32x4_t) vandq_u32( (uint32x4_t) m.getRow(2).mVec128, xyzMask );
|
||||
|
||||
@@ -897,8 +897,8 @@ long _maxdot_large_v0( const float *vv, const float *vec, unsigned long count, f
|
||||
float32x2_t dotMaxHi = (float32x2_t) { -BT_INFINITY, -BT_INFINITY };
|
||||
uint32x2_t indexLo = (uint32x2_t) {0, 1};
|
||||
uint32x2_t indexHi = (uint32x2_t) {2, 3};
|
||||
uint32x2_t iLo = (uint32x2_t) {-1, -1};
|
||||
uint32x2_t iHi = (uint32x2_t) {-1, -1};
|
||||
uint32x2_t iLo = (uint32x2_t) {static_cast<uint32_t>(-1), static_cast<uint32_t>(-1)};
|
||||
uint32x2_t iHi = (uint32x2_t) {static_cast<uint32_t>(-1), static_cast<uint32_t>(-1)};
|
||||
const uint32x2_t four = (uint32x2_t) {4,4};
|
||||
|
||||
for( ; i+8 <= count; i+= 8 )
|
||||
@@ -1084,7 +1084,7 @@ long _maxdot_large_v1( const float *vv, const float *vec, unsigned long count, f
|
||||
float32x4_t vHi = vdupq_lane_f32(vget_high_f32(vvec), 0);
|
||||
const uint32x4_t four = (uint32x4_t){ 4, 4, 4, 4 };
|
||||
uint32x4_t local_index = (uint32x4_t) {0, 1, 2, 3};
|
||||
uint32x4_t index = (uint32x4_t) { -1, -1, -1, -1 };
|
||||
uint32x4_t index = (uint32x4_t) { static_cast<uint32_t>(-1), static_cast<uint32_t>(-1), static_cast<uint32_t>(-1), static_cast<uint32_t>(-1) };
|
||||
float32x4_t maxDot = (float32x4_t) { -BT_INFINITY, -BT_INFINITY, -BT_INFINITY, -BT_INFINITY };
|
||||
|
||||
unsigned long i = 0;
|
||||
@@ -1282,8 +1282,8 @@ long _mindot_large_v0( const float *vv, const float *vec, unsigned long count, f
|
||||
float32x2_t dotMinHi = (float32x2_t) { BT_INFINITY, BT_INFINITY };
|
||||
uint32x2_t indexLo = (uint32x2_t) {0, 1};
|
||||
uint32x2_t indexHi = (uint32x2_t) {2, 3};
|
||||
uint32x2_t iLo = (uint32x2_t) {-1, -1};
|
||||
uint32x2_t iHi = (uint32x2_t) {-1, -1};
|
||||
uint32x2_t iLo = (uint32x2_t) {static_cast<uint32_t>(-1), static_cast<uint32_t>(-1)};
|
||||
uint32x2_t iHi = (uint32x2_t) {static_cast<uint32_t>(-1), static_cast<uint32_t>(-1)};
|
||||
const uint32x2_t four = (uint32x2_t) {4,4};
|
||||
|
||||
for( ; i+8 <= count; i+= 8 )
|
||||
@@ -1467,7 +1467,7 @@ long _mindot_large_v1( const float *vv, const float *vec, unsigned long count, f
|
||||
float32x4_t vHi = vdupq_lane_f32(vget_high_f32(vvec), 0);
|
||||
const uint32x4_t four = (uint32x4_t){ 4, 4, 4, 4 };
|
||||
uint32x4_t local_index = (uint32x4_t) {0, 1, 2, 3};
|
||||
uint32x4_t index = (uint32x4_t) { -1, -1, -1, -1 };
|
||||
uint32x4_t index = (uint32x4_t) { static_cast<uint32_t>(-1), static_cast<uint32_t>(-1), static_cast<uint32_t>(-1), static_cast<uint32_t>(-1) };
|
||||
float32x4_t minDot = (float32x4_t) { BT_INFINITY, BT_INFINITY, BT_INFINITY, BT_INFINITY };
|
||||
|
||||
unsigned long i = 0;
|
||||
|
||||
@@ -69,7 +69,8 @@ subject to the following restrictions:
|
||||
#ifdef BT_USE_NEON
|
||||
|
||||
const float32x4_t ATTRIBUTE_ALIGNED16(btvMzeroMask) = (float32x4_t){-0.0f, -0.0f, -0.0f, -0.0f};
|
||||
const int32x4_t ATTRIBUTE_ALIGNED16(btvFFF0Mask) = (int32x4_t){0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x0};
|
||||
const int32x4_t ATTRIBUTE_ALIGNED16(btvFFF0Mask) = (int32x4_t){static_cast<int32_t>(0xFFFFFFFF),
|
||||
static_cast<int32_t>(0xFFFFFFFF), static_cast<int32_t>(0xFFFFFFFF), 0x0};
|
||||
const int32x4_t ATTRIBUTE_ALIGNED16(btvAbsMask) = (int32x4_t){0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF};
|
||||
const int32x4_t ATTRIBUTE_ALIGNED16(btv3AbsMask) = (int32x4_t){0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF, 0x0};
|
||||
|
||||
@@ -731,7 +732,7 @@ public:
|
||||
return btVector3(r);
|
||||
|
||||
#elif defined(BT_USE_NEON)
|
||||
static const uint32x4_t xyzMask = (const uint32x4_t){ -1, -1, -1, 0 };
|
||||
static const uint32x4_t xyzMask = (const uint32x4_t){ static_cast<uint32_t>(-1), static_cast<uint32_t>(-1), static_cast<uint32_t>(-1), 0 };
|
||||
float32x4_t a0 = vmulq_f32( v0.mVec128, this->mVec128);
|
||||
float32x4_t a1 = vmulq_f32( v1.mVec128, this->mVec128);
|
||||
float32x4_t a2 = vmulq_f32( v2.mVec128, this->mVec128);
|
||||
|
||||
Reference in New Issue
Block a user