aboutsummaryrefslogtreecommitdiff
path: root/src/core/NEON/kernels/NEPoolingLayerKernel.cpp
diff options
context:
space:
mode:
authorGeorgios Pinitas <georgios.pinitas@arm.com>2018-11-08 18:55:36 +0000
committerAnthony Barbier <Anthony.barbier@arm.com>2018-11-09 09:14:18 +0000
commit027ce5b7234f694cb9047ac970aa1457d683c471 (patch)
tree58b3a90bf8f4cfcfa8c71f49901f65e8d6735d32 /src/core/NEON/kernels/NEPoolingLayerKernel.cpp
parent1e9289654dffaecd8e7c7300c83a2487494ee268 (diff)
downloadComputeLibrary-027ce5b7234f694cb9047ac970aa1457d683c471.tar.gz
COMPMID-1451: Perform two steps in calculating sqrt in NEPoolingLayer
Increases the steps for calculating invsqrt used in L2 pool by 1 to increase accuracy. Change-Id: Ib938a963809b07c30d47ec0675abae75bc086986
Diffstat (limited to 'src/core/NEON/kernels/NEPoolingLayerKernel.cpp')
-rw-r--r--src/core/NEON/kernels/NEPoolingLayerKernel.cpp3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/core/NEON/kernels/NEPoolingLayerKernel.cpp b/src/core/NEON/kernels/NEPoolingLayerKernel.cpp
index fdd3410b40..f5d5281884 100644
--- a/src/core/NEON/kernels/NEPoolingLayerKernel.cpp
+++ b/src/core/NEON/kernels/NEPoolingLayerKernel.cpp
@@ -1828,8 +1828,7 @@ void NEPoolingLayerKernel::poolingMxN_f32_nhwc(const Window &window_input, const
// Calculate square-root in case of l2 pooling
if(pooling_type == PoolingType::L2)
{
- float32x4_t sqrt_reciprocal = vrsqrteq_f32(vres);
- vres = vmulq_f32(vres, vmulq_f32(vrsqrtsq_f32(vmulq_f32(vres, sqrt_reciprocal), sqrt_reciprocal), sqrt_reciprocal));
+ vres = vmulq_f32(vres, vinvsqrtq_f32(vres));
}
// Store result