From 9372374f0de1d4b2767bd8c9dbaa868a9975dfaa Mon Sep 17 00:00:00 2001 From: Damjan Marion Date: Wed, 12 Feb 2020 20:27:46 +0100 Subject: vppinfra: add ARM NEON implementation of u8x16_word_shift_{left,right} Type: improvement Change-Id: I310e421513e9d3f96ad7debc72c9407e231962b8 Signed-off-by: Damjan Marion --- src/vppinfra/vector_neon.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src') 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 -- cgit 1.2.3-korg