aboutsummaryrefslogtreecommitdiff
path: root/src/cpu/kernels/elementwise_unary/generic/neon/impl.cpp
diff options
context:
space:
mode:
authorRamy Elgammal <ramy.elgammal@arm.com>2023-04-12 17:31:10 +0100
committerRamy Elgammal <ramy.elgammal@arm.com>2023-04-17 12:16:27 +0000
commitb84df20f17f1fe8d098fb8531543c263541355de (patch)
tree3752ffa3a693ad7b2c5497fbf37f55698b14e48b /src/cpu/kernels/elementwise_unary/generic/neon/impl.cpp
parent1ed6a144b1396297b813457016d545af1bb9d823 (diff)
downloadComputeLibrary-b84df20f17f1fe8d098fb8531543c263541355de.tar.gz
Fix unhandled case in ElementwiseUnary
- Case: when the dequantized float value < 0.f the unary op was not called if operator is not LOG or RSQRT Resolves: COMPMID-5994 Signed-off-by: Ramy Elgammal <ramy.elgammal@arm.com> Change-Id: I24d69db22042701f506188ace91ea4ab3dafeccf Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/9437 Benchmark: Arm Jenkins <bsgcomp@arm.com> Tested-by: Arm Jenkins <bsgcomp@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Viet-Hoa Do <viet-hoa.do@arm.com> Reviewed-by: Gunes Bayir <gunes.bayir@arm.com>
Diffstat (limited to 'src/cpu/kernels/elementwise_unary/generic/neon/impl.cpp')
-rw-r--r--src/cpu/kernels/elementwise_unary/generic/neon/impl.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/cpu/kernels/elementwise_unary/generic/neon/impl.cpp b/src/cpu/kernels/elementwise_unary/generic/neon/impl.cpp
index 2b23e46f40..1b449340ba 100644
--- a/src/cpu/kernels/elementwise_unary/generic/neon/impl.cpp
+++ b/src/cpu/kernels/elementwise_unary/generic/neon/impl.cpp
@@ -183,6 +183,10 @@ void elementwise_op<int8_t>(const ITensor *in, ITensor *out, const Window &windo
{
tmp_f = (127 - qi_out.offset) * qi_out.scale;
}
+ else
+ {
+ tmp_f = elementwise_op_scalar_imp<float>(op, tmp_f);
+ }
}
else
{
@@ -263,6 +267,10 @@ void elementwise_op<uint8_t>(const ITensor *in, ITensor *out, const Window &wind
{
tmp_f = (255 - qi_out.offset) * qi_out.scale;
}
+ else
+ {
+ tmp_f = elementwise_op_scalar_imp<float>(op, tmp_f);
+ }
}
else
{