#include <string.h> // for memcpy
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecate-lax-vec-conv-all"
+
typedef __vector unsigned long long int uint64x2_t;
typedef __vector signed long long int int64x2_t;
typedef __vector unsigned int uint32x4_t;
m128 rshift_m128(m128 a, unsigned b) {
if (b == 0) return a;
m128 sl = (m128) vec_splats((uint8_t) b << 3);
- m128 result = (m128) vec_sro((uint8x16_t) a, (uint8x16_t) sl);
- return result;
+ uint8x16_t result = vec_sro((uint8x16_t) a, (uint8x16_t) sl);
+ return (m128) result;
}
static really_really_inline
return (m128) v;
}
+#pragma clang diagnostic pop
+
#endif // ARCH_PPC64EL_SIMD_UTILS_H
u.u32x4[0] = vec_splats(static_cast<uint32_t>(other));
}
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecate-lax-vec-conv-all"
template<>
template<>
really_inline SuperVector<16>::SuperVector(int64_t const other)
{
- u.s64x2[0] = (int64x2_t) vec_splats(static_cast<ulong64_t>(other));
+ u.s64x2[0] = static_cast<int64x2_t>(vec_splats(static_cast<ulong64_t>(other)));
}
+#pragma clang diagnostic pop
template<>
template<>
really_inline SuperVector<16>::SuperVector(uint64_t const other)
{
- u.u64x2[0] = (uint64x2_t) vec_splats(static_cast<ulong64_t>(other));
+ u.u64x2[0] = static_cast<uint64x2_t>(vec_splats(static_cast<ulong64_t>(other)));
}
// Constants
return (*this == b);
}
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecate-lax-vec-conv-all"
+
template <>
really_inline typename SuperVector<16>::comparemask_type
SuperVector<16>::comparemask(void) const {
uint8x16_t bitmask = vec_gb(u.u8x16[0]);
bitmask = (uint8x16_t) vec_perm(vec_splat_u8(0), bitmask, perm);
u32 ALIGN_ATTR(16) movemask;
- vec_ste((uint32x4_t) bitmask, 0, &movemask);
+ vec_ste(static_cast<uint32x4_t>(bitmask), 0, &movemask);
return movemask;
}
+#pragma clang diagnostic pop
template <>
really_inline typename SuperVector<16>::comparemask_type
int64x2_t a = { 0x123456789abcdefLL, ~0LL };
simd = vreinterpretq_s32_s64(a);
#elif defined(ARCH_PPC64EL)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecate-lax-vec-conv-all"
int64x2_t a = {0x123456789abcdefLL, ~0LL };
- simd = (m128) a;
+ simd = static_cast<m128>(a);
+#pragma clang diagnostic pop
#endif
#endif
r = movq(simd);