From 6da42decd4e0d1ef978af9ea8f3850da375a45b1 Mon Sep 17 00:00:00 2001 From: Sirshak Das Date: Wed, 22 Aug 2018 12:02:04 +0800 Subject: [PATCH] Replacing vtbl NEON intrinsic with rev NEON intrinsic for byte_swap. Using rev16 vector intrinsic to reverse byteorder in each word independently. Change-Id: I071c40780baffe0bda614ec5d9dd92858f574b0d Signed-off-by: Sirshak Das Reviewed-by: Steve Capper Reviewed-by: Brian Brooks Reviewed-by: Yi He Verified-by: Lijian Zhang --- src/vppinfra/vector_neon.h | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/vppinfra/vector_neon.h b/src/vppinfra/vector_neon.h index 2c3578c1f35..40e062eb94b 100644 --- a/src/vppinfra/vector_neon.h +++ b/src/vppinfra/vector_neon.h @@ -121,11 +121,7 @@ foreach_neon_vec128i foreach_neon_vec128u static_always_inline u16x8 u16x8_byte_swap (u16x8 v) { - const u8 swap_pattern[] = { - 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14, - }; - u8x16 swap = vld1q_u8 (swap_pattern); - return (u16x8) vqtbl1q_u8 ((u8x16) v, swap); + return (u16x8) vrev16q_u8 ((u8x16) v); } static_always_inline u8x16 -- 2.16.6