arch/arm: add vcopyq_laneq_u32 for old gcc
authorJianbo Liu <jianbo.liu@linaro.org>
Tue, 4 Jul 2017 10:24:02 +0000 (18:24 +0800)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 4 Jul 2017 15:41:53 +0000 (17:41 +0200)
Implement vcopyq_laneq_u32 if gcc version is lower than 7.

Signed-off-by: Jianbo Liu <jianbo.liu@linaro.org>
lib/librte_eal/common/include/arch/arm/rte_vect.h

index 55e228a..0670ca2 100644 (file)
@@ -79,6 +79,15 @@ vqtbl1q_u8(uint8x16_t a, uint8x16_t b)
 }
 #endif
 
+#if defined(RTE_TOOLCHAIN_GCC) && (GCC_VERSION < 70000)
+static inline uint32x4_t
+vcopyq_laneq_u32(uint32x4_t a, const int lane_a,
+                uint32x4_t b, const int lane_b)
+{
+       return vsetq_lane_u32(vgetq_lane_u32(b, lane_b), a, lane_a);
+}
+#endif
+
 #if defined(RTE_ARCH_ARM64)
 #if defined(RTE_TOOLCHAIN_GCC) && (GCC_VERSION < 70000)
 /* NEON intrinsic vreinterpretq_u64_p128() is supported since GCC version 7 */