aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/psimd.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/include/psimd.h b/include/psimd.h
index b08a2b6..6d67d83 100644
--- a/include/psimd.h
+++ b/include/psimd.h
@@ -323,20 +323,56 @@
return psimd_splat_f32(*((const float*) address));
}
+ PSIMD_INTRINSIC psimd_s32 psimd_load1_s32(const void* address) {
+ return (psimd_s32) { *((const int32_t*) address), 0, 0, 0 };
+ }
+
+ PSIMD_INTRINSIC psimd_u32 psimd_load1_u32(const void* address) {
+ return (psimd_u32) { *((const uint32_t*) address), 0, 0, 0 };
+ }
+
PSIMD_INTRINSIC psimd_f32 psimd_load1_f32(const void* address) {
return (psimd_f32) { *((const float*) address), 0.0f, 0.0f, 0.0f };
}
+ PSIMD_INTRINSIC psimd_s32 psimd_load2_s32(const void* address) {
+ const int32_t* address_s32 = (const int32_t*) address;
+ return (psimd_s32) { address_s32[0], address_s32[1], 0, 0 };
+ }
+
+ PSIMD_INTRINSIC psimd_u32 psimd_load2_u32(const void* address) {
+ const uint32_t* address_u32 = (const uint32_t*) address;
+ return (psimd_u32) { address_u32[0], address_u32[1], 0, 0 };
+ }
+
PSIMD_INTRINSIC psimd_f32 psimd_load2_f32(const void* address) {
const float* address_f32 = (const float*) address;
return (psimd_f32) { address_f32[0], address_f32[1], 0.0f, 0.0f };
}
+ PSIMD_INTRINSIC psimd_s32 psimd_load3_s32(const void* address) {
+ const int32_t* address_s32 = (const int32_t*) address;
+ return (psimd_s32) { address_s32[0], address_s32[1], address_s32[2], 0 };
+ }
+
+ PSIMD_INTRINSIC psimd_u32 psimd_load3_u32(const void* address) {
+ const uint32_t* address_u32 = (const uint32_t*) address;
+ return (psimd_u32) { address_u32[0], address_u32[1], address_u32[2], 0 };
+ }
+
PSIMD_INTRINSIC psimd_f32 psimd_load3_f32(const void* address) {
const float* address_f32 = (const float*) address;
return (psimd_f32) { address_f32[0], address_f32[1], address_f32[2], 0.0f };
}
+ PSIMD_INTRINSIC psimd_s32 psimd_load4_s32(const void* address) {
+ return psimd_load_s32(address);
+ }
+
+ PSIMD_INTRINSIC psimd_u32 psimd_load4_u32(const void* address) {
+ return psimd_load_u32(address);
+ }
+
PSIMD_INTRINSIC psimd_f32 psimd_load4_f32(const void* address) {
return psimd_load_f32(address);
}