From 0d008f77b0085619c446d0ab5dc1228a80776706 Mon Sep 17 00:00:00 2001 From: Sang-Hoon Park Date: Fri, 13 Mar 2020 14:56:05 +0000 Subject: COMPMID-3281: Implement QSYMM16 Layer Normalization for NEON QLSTM - Reference kernel is modified to use the same algorithm as NEON kernel. - NEON kernel is implemented. - Tests for validation and run are added. Change-Id: I3533bc2bd12c6e9cc75d837ecf193f74ceddf796 Signed-off-by: Sang-Hoon Park Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/2948 Comments-Addressed: Arm Jenkins Tested-by: Arm Jenkins Reviewed-by: Michele Di Giorgio --- arm_compute/core/NEON/wrapper/intrinsics/getlane.h | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'arm_compute/core/NEON/wrapper/intrinsics/getlane.h') diff --git a/arm_compute/core/NEON/wrapper/intrinsics/getlane.h b/arm_compute/core/NEON/wrapper/intrinsics/getlane.h index 5cd390fee4..533bf63603 100644 --- a/arm_compute/core/NEON/wrapper/intrinsics/getlane.h +++ b/arm_compute/core/NEON/wrapper/intrinsics/getlane.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2019 ARM Limited. + * Copyright (c) 2018-2020 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -185,6 +185,20 @@ VGETLANE_IMPL_4(float16_t, float16x4_t, f16) } \ } +#define VGETQLANE_IMPL_2(stype, vtype, postfix) \ + inline stype vgetlane(const vtype vector, const unsigned int lane) \ + { \ + switch(lane) \ + { \ + case 0: \ + return vgetq_lane_##postfix(vector, 0); \ + case 1: \ + return vgetq_lane_##postfix(vector, 1); \ + default: \ + ARM_COMPUTE_ERROR("Invalid lane"); \ + } \ + } + VGETQLANE_IMPL_16(uint8_t, uint8x16_t, u8) VGETQLANE_IMPL_16(int8_t, int8x16_t, s8) VGETQLANE_IMPL_8(uint16_t, uint16x8_t, u16) @@ -192,6 +206,7 @@ VGETQLANE_IMPL_8(int16_t, int16x8_t, s16) VGETQLANE_IMPL_4(uint32_t, uint32x4_t, u32) VGETQLANE_IMPL_4(int32_t, int32x4_t, s32) VGETQLANE_IMPL_4(float, float32x4_t, f32) +VGETQLANE_IMPL_2(int64_t, int64x2_t, s64) #ifdef __ARM_FEATURE_FP16_VECTOR_ARITHMETIC VGETQLANE_IMPL_8(float16_t, float16x8_t, f16) #endif // __ARM_FEATURE_FP16_VECTOR_ARITHMETIC -- cgit v1.2.1