diff options
author | Damjan Marion <dmarion@me.com> | 2020-02-12 20:27:46 +0100 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2020-02-12 21:51:21 +0000 |
commit | 9372374f0de1d4b2767bd8c9dbaa868a9975dfaa (patch) | |
tree | ae63d70ae1698fed7bbe93ecff5ebcd4e6e5988a /src/vppinfra/vector_neon.h | |
parent | 4dc10a4d560363147e58953b0301888cc57b15ce (diff) |
vppinfra: add ARM NEON implementation of u8x16_word_shift_{left,right}
Type: improvement
Change-Id: I310e421513e9d3f96ad7debc72c9407e231962b8
Signed-off-by: Damjan Marion <dmarion@me.com>
Diffstat (limited to 'src/vppinfra/vector_neon.h')
-rw-r--r-- | src/vppinfra/vector_neon.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/vppinfra/vector_neon.h b/src/vppinfra/vector_neon.h index 5a7bbe36a4d..307fbc541b2 100644 --- a/src/vppinfra/vector_neon.h +++ b/src/vppinfra/vector_neon.h @@ -182,6 +182,18 @@ u32x4_min_scalar (u32x4 v) return vminvq_u32 (v); } +static_always_inline u8x16 +u8x16_word_shift_left (u8x16 x, const int n) +{ + return vextq_u8 (u8x16_splat (0), x, 16 - n); +} + +static_always_inline u8x16 +u8x16_word_shift_right (u8x16 x, const int n) +{ + return vextq_u8 (x, u8x16_splat (0), n); +} + #define CLIB_HAVE_VEC128_MSB_MASK #define CLIB_HAVE_VEC128_UNALIGNED_LOAD_STORE |