diff options
| author | gingerBill <bill@gingerbill.org> | 2022-05-26 20:40:48 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2022-05-26 20:40:48 +0100 |
| commit | 70451f9335b819a056a06536016cdad7784cb8ea (patch) | |
| tree | fe840464b5f09f72ba4fd10df92a7d70ce8f6330 | |
| parent | 1f438d4e6c0a979b249683cb2da048a0ff36dcce (diff) | |
Support reverse_bits for #simd
| -rw-r--r-- | core/intrinsics/intrinsics.odin | 2 | ||||
| -rw-r--r-- | core/simd/simd.odin | 3 | ||||
| -rw-r--r-- | src/check_builtin.cpp | 2 |
3 files changed, 4 insertions, 3 deletions
diff --git a/core/intrinsics/intrinsics.odin b/core/intrinsics/intrinsics.odin index 4f10c5a32..fa9b0ecec 100644 --- a/core/intrinsics/intrinsics.odin +++ b/core/intrinsics/intrinsics.odin @@ -26,7 +26,7 @@ count_ones :: proc(x: $T) -> T where type_is_integer(T) || type_is_sim count_zeros :: proc(x: $T) -> T where type_is_integer(T) || type_is_simd_vector(T) --- count_trailing_zeros :: proc(x: $T) -> T where type_is_integer(T) || type_is_simd_vector(T) --- count_leading_zeros :: proc(x: $T) -> T where type_is_integer(T) || type_is_simd_vector(T) --- -reverse_bits :: proc(x: $T) -> T where type_is_integer(T) --- +reverse_bits :: proc(x: $T) -> T where type_is_integer(T) || type_is_simd_vector(T) --- byte_swap :: proc(x: $T) -> T where type_is_integer(T) || type_is_float(T) --- overflow_add :: proc(lhs, rhs: $T) -> (T, bool) #optional_ok --- diff --git a/core/simd/simd.odin b/core/simd/simd.odin index 263402c43..fc3c95e82 100644 --- a/core/simd/simd.odin +++ b/core/simd/simd.odin @@ -99,7 +99,7 @@ nearest :: intrinsics.simd_nearest to_bits :: intrinsics.simd_to_bits -reverse :: intrinsics.simd_reverse +lanes_reverse :: intrinsics.simd_reverse rotate_left :: intrinsics.simd_rotate_left rotate_right :: intrinsics.simd_rotate_right @@ -108,6 +108,7 @@ count_ones :: intrinsics.count_ones count_zeros :: intrinsics.count_zeros count_trailing_zeros :: intrinsics.count_trailing_zeros count_leading_zeros :: intrinsics.count_leading_zeros +reverse_bits :: intrinsics.reverse_bits fused_mul_add :: intrinsics.fused_mul_add fma :: intrinsics.fused_mul_add diff --git a/src/check_builtin.cpp b/src/check_builtin.cpp index 87f7358f0..ecaba8b49 100644 --- a/src/check_builtin.cpp +++ b/src/check_builtin.cpp @@ -3558,7 +3558,7 @@ bool check_builtin_procedure(CheckerContext *c, Operand *operand, Ast *call, i32 return false; } - if (is_type_simd_vector(x.type) && id != BuiltinProc_reverse_bits) { + if (is_type_simd_vector(x.type)) { Type *elem = base_array_type(x.type); if (!is_type_integer_like(elem)) { gbString xts = type_to_string(x.type); |