aboutsummaryrefslogtreecommitdiff
path: root/base
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2024-08-05 13:46:24 +0100
committergingerBill <bill@gingerbill.org>2024-08-05 13:46:24 +0100
commit7e701d1677fbe594e0970824062d8b3564d33d26 (patch)
tree27c2370d163b96f00021d35be1395af7a579cb29 /base
parentb67ed78afdbe9a9b3330f07d4d55ca7604ec930e (diff)
Add `intrinsics.simd_gather` and ``intrinsics.simd_scatter`
Diffstat (limited to 'base')
-rw-r--r--base/intrinsics/intrinsics.odin4
1 files changed, 4 insertions, 0 deletions
diff --git a/base/intrinsics/intrinsics.odin b/base/intrinsics/intrinsics.odin
index fadbda3fb..5566c8c6c 100644
--- a/base/intrinsics/intrinsics.odin
+++ b/base/intrinsics/intrinsics.odin
@@ -283,6 +283,10 @@ simd_reduce_any :: proc(a: #simd[N]T) -> T where type_is_boolean(T) ---
simd_reduce_all :: proc(a: #simd[N]T) -> T where type_is_boolean(T) ---
+simd_gather :: proc(ptr: #simd[N]rawptr, val: #simd[N]T, mask: #simd[N]U) -> #simd[N]T where type_is_integer(U) || type_is_boolean(U) ---
+simd_scatter :: proc(ptr: #simd[N]rawptr, val: #simd[N]T, mask: #simd[N]U) where type_is_integer(U) || type_is_boolean(U) ---
+
+
simd_shuffle :: proc(a, b: #simd[N]T, indices: ..int) -> #simd[len(indices)]T ---
simd_select :: proc(cond: #simd[N]boolean_or_integer, true, false: #simd[N]T) -> #simd[N]T ---