@@ -599,8 +599,10 @@ template <> static FORCEINLINE void __store<64>(__vec16_i32 *p, __vec16_i32 v) {
|
|||||||
// int64
|
// int64
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
static FORCEINLINE int64_t __extract_element(__vec16_i64 v, uint32_t index) {
|
static FORCEINLINE int64_t __extract_element(const __vec16_i64 &v, uint32_t index)
|
||||||
return (uint64_t(((int32_t *)&v.v_hi)[index])<<32) | (uint64_t(((int32_t *)&v.v_lo)[index]));
|
{
|
||||||
|
uint *src = (uint *)&v;
|
||||||
|
return src[index+16] | (int64_t(src[index]) << 32);
|
||||||
}
|
}
|
||||||
|
|
||||||
static FORCEINLINE void __insert_element(__vec16_i64 *v, uint32_t index, int64_t val) {
|
static FORCEINLINE void __insert_element(__vec16_i64 *v, uint32_t index, int64_t val) {
|
||||||
@@ -751,12 +753,6 @@ static FORCEINLINE __vec16_i64 __select(__vec16_i1 mask,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static FORCEINLINE int64_t __extract_element(const __vec16_i64 &v, uint32_t index)
|
|
||||||
{
|
|
||||||
uint *src = (uint *)&v;
|
|
||||||
return src[index+16] | (int64_t(src[index]) << 32);
|
|
||||||
}
|
|
||||||
|
|
||||||
template <class RetVecType> RetVecType __smear_i64(const int64_t &l);
|
template <class RetVecType> RetVecType __smear_i64(const int64_t &l);
|
||||||
template <> FORCEINLINE __vec16_i64 __smear_i64<__vec16_i64>(const int64_t &l) {
|
template <> FORCEINLINE __vec16_i64 __smear_i64<__vec16_i64>(const int64_t &l) {
|
||||||
const int *i = (const int*)&l;
|
const int *i = (const int*)&l;
|
||||||
|
|||||||
Reference in New Issue
Block a user