From 759226e6687a2c20321aa842c60c7ec6ee5cb2ed Mon Sep 17 00:00:00 2001 From: Sirshak Das Date: Wed, 22 Aug 2018 08:46:52 +0800 Subject: Add and enable u32x4_extend_to_u64x2_high for aarch64 NEON intrinsics. This is the high version of extendto. This function accomplishes the same task as both shuffling and extending done by SSE intrinsics. This enables the NEON version for buffer indexes to buffer pointer translation. Change-Id: I52d7bbf3d76ba69c9acb0e518ff4bc6abf3bbbd4 Signed-off-by: Sirshak Das Reviewed-by: Steve Capper Reviewed-by: Yi He Verified-by: Lijian Zhang --- src/vppinfra/vector_neon.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/vppinfra/vector_neon.h') diff --git a/src/vppinfra/vector_neon.h b/src/vppinfra/vector_neon.h index 40e062eb94b..7570dddf1ab 100644 --- a/src/vppinfra/vector_neon.h +++ b/src/vppinfra/vector_neon.h @@ -142,6 +142,12 @@ u32x4_extend_to_u64x2 (u32x4 v) return vmovl_u32 (vget_low_u32 (v)); } +static_always_inline u64x2 +u32x4_extend_to_u64x2_high (u32x4 v) +{ + return vmovl_high_u32 (vrev64q_u32 (v)); +} + #define CLIB_HAVE_VEC128_UNALIGNED_LOAD_STORE #define CLIB_VEC128_SPLAT_DEFINED #endif /* included_vector_neon_h */ -- cgit 1.2.3-korg