From 0f986a34882a58d050e9e9c30b9c9cba529de923 Mon Sep 17 00:00:00 2001 From: Ryan Oldenburg Date: Sat, 23 Jul 2022 00:11:40 -0500 Subject: [PATCH] 1.1.8 more neon --- nimsimd.nimble | 2 +- src/nimsimd/neon.nim | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/nimsimd.nimble b/nimsimd.nimble index 5c028e3..028ee95 100644 --- a/nimsimd.nimble +++ b/nimsimd.nimble @@ -1,4 +1,4 @@ -version = "1.1.7" +version = "1.1.8" author = "Ryan Oldenburg" description = "Pleasant Nim bindings for SIMD instruction sets." license = "MIT" diff --git a/src/nimsimd/neon.nim b/src/nimsimd/neon.nim index 07cb4f3..35f5ea3 100644 --- a/src/nimsimd/neon.nim +++ b/src/nimsimd/neon.nim @@ -35,11 +35,21 @@ func vmovq_n_u16*(a: uint16): uint16x8 func vmovq_n_u32*(a: uint32): uint32x4 func vmovq_n_u64*(a: uint64): uint64x2 +func vmov_n_u8*(a: uint8): uint8x8 +func vmov_n_u16*(a: uint16): uint16x4 +func vmov_n_u32*(a: uint32): uint32x2 +func vmov_n_u64*(a: uint64): uint64x1 + func vld1q_u8*(p: pointer): uint8x16 func vld1q_u16*(p: pointer): uint16x8 func vld1q_u32*(p: pointer): uint32x4 func vld1q_u64*(p: pointer): uint64x2 +func vld1_u8*(p: pointer): uint8x8 +func vld1_u16*(p: pointer): uint16x4 +func vld1_u32*(p: pointer): uint32x2 +func vld1_u64*(p: pointer): uint64x1 + func vceqq_u8*(a, b: uint8x16): uint8x16 func vceqq_u16*(a, b: uint16x8): uint16x8 func vceqq_u32*(a, b: uint32x4): uint32x4 @@ -64,6 +74,11 @@ func vst1q_u16*(p: pointer, v: uint16x8) func vst1q_u32*(p: pointer, v: uint32x4) func vst1q_u64*(p: pointer, v: uint64x2) +func vst1_u8*(p: pointer, v: uint8x8) +func vst1_u16*(p: pointer, v: uint16x4) +func vst1_u32*(p: pointer, v: uint32x2) +func vst1_u64*(p: pointer, v: uint64x1) + func vandq_u8*(a, b: uint8x16): uint8x16 func vandq_u16*(a, b: uint16x8): uint16x8 func vandq_u32*(a, b: uint32x4): uint32x4 @@ -151,4 +166,14 @@ func vcombine_u16*(a, b: uint16x4): uint16x8 func vcombine_u32*(a, b: uint32x2): uint32x4 func vcombine_u64*(a, b: uint64x1): uint64x2 +func vbicq_u8*(a, b: uint8x16): uint8x16 +func vbicq_u16*(a, b: uint16x8): uint16x8 +func vbicq_u32*(a, b: uint32x4): uint32x4 +func vbicq_u64*(a, b: uint64x2): uint64x2 + +func vsubq_u8*(a, b: uint8x16): uint8x16 +func vsubq_u16*(a, b: uint16x8): uint16x8 +func vsubq_u32*(a, b: uint32x4): uint32x4 +func vsubq_u64*(a, b: uint64x2): uint64x2 + {.pop.}