vppinfra: add ARM NEON implementation of u8x16_word_shift_{left,right} 52/25052/2
authorDamjan Marion <dmarion@me.com>
Wed, 12 Feb 2020 19:27:46 +0000 (20:27 +0100)
committerDamjan Marion <dmarion@me.com>
Wed, 12 Feb 2020 21:51:21 +0000 (21:51 +0000)
Type: improvement

Change-Id: I310e421513e9d3f96ad7debc72c9407e231962b8
Signed-off-by: Damjan Marion <dmarion@me.com>
src/vppinfra/vector_neon.h

index 5a7bbe3..307fbc5 100644 (file)
@@ -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