adding __packed_store_active2 to generic targets
This commit is contained in:
@@ -1523,31 +1523,38 @@ static FORCEINLINE int32_t __packed_store_active(int32_t *ptr, __vec32_i32 val,
|
||||
return count;
|
||||
}
|
||||
|
||||
|
||||
static FORCEINLINE int32_t __packed_store_active2(int32_t *ptr, __vec32_i32 val,
|
||||
__vec32_i1 mask) {
|
||||
int count = 0;
|
||||
int32_t *ptr_ = ptr;
|
||||
for (int i = 0; i < 32; ++i) {
|
||||
*ptr = val.v[i];
|
||||
ptr += mask.v & 1;
|
||||
mask.v = mask.v >> 1;
|
||||
}
|
||||
return ptr - ptr_;
|
||||
}
|
||||
|
||||
|
||||
static FORCEINLINE int32_t __packed_load_active(uint32_t *ptr,
|
||||
__vec32_i32 *val,
|
||||
__vec32_i1 mask) {
|
||||
int count = 0;
|
||||
for (int i = 0; i < 32; ++i) {
|
||||
if ((mask.v & (1 << i)) != 0) {
|
||||
val->v[i] = *ptr++;
|
||||
++count;
|
||||
}
|
||||
}
|
||||
return count;
|
||||
return __packed_load_active((int32_t *)ptr, val, mask);
|
||||
}
|
||||
|
||||
|
||||
static FORCEINLINE int32_t __packed_store_active(uint32_t *ptr,
|
||||
__vec32_i32 val,
|
||||
__vec32_i1 mask) {
|
||||
int count = 0;
|
||||
for (int i = 0; i < 32; ++i) {
|
||||
if ((mask.v & (1 << i)) != 0) {
|
||||
*ptr++ = val.v[i];
|
||||
++count;
|
||||
}
|
||||
}
|
||||
return count;
|
||||
return __packed_store_active((int32_t *)ptr, val, mask);
|
||||
}
|
||||
|
||||
|
||||
static FORCEINLINE int32_t __packed_store_active2(uint32_t *ptr,
|
||||
__vec32_i32 val,
|
||||
__vec32_i1 mask) {
|
||||
return __packed_store_active2((int32_t *)ptr, val, mask);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user