From: Damjan Marion Date: Wed, 12 Feb 2020 19:27:46 +0000 (+0100) Subject: vppinfra: add ARM NEON implementation of u8x16_word_shift_{left,right} X-Git-Tag: v20.09-rc0~605 X-Git-Url: https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commitdiff_plain;h=9372374f0de1d4b2767bd8c9dbaa868a9975dfaa vppinfra: add ARM NEON implementation of u8x16_word_shift_{left,right} Type: improvement Change-Id: I310e421513e9d3f96ad7debc72c9407e231962b8 Signed-off-by: Damjan Marion --- 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