aboutsummaryrefslogtreecommitdiff
path: root/tests/validation/reference/ElementwiseOperations.cpp
diff options
context:
space:
mode:
authorGeorgios Pinitas <georgios.pinitas@arm.com>2020-09-03 21:00:23 +0100
committerGeorgios Pinitas <georgios.pinitas@arm.com>2020-09-10 09:57:52 +0000
commit1813422f5095983fa802e96cb8e9e0d980de82c7 (patch)
treea58e9d9f0fc8a2eb98a055f28ff700eb7e0bdd5e /tests/validation/reference/ElementwiseOperations.cpp
parent5489394cdfe10afb469171cf521f26f923eeb2e2 (diff)
downloadComputeLibrary-1813422f5095983fa802e96cb8e9e0d980de82c7.tar.gz
COMPMID-3583: Add S32 support to NEElementwiseDivision
Division follows the flooring division approach where for example 5/2=2 while -5/2=-3 Signed-off-by: Georgios Pinitas <georgios.pinitas@arm.com> Change-Id: I65756e0b31fe8d97f743a4c13dc5f96304722f75 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/3929 Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'tests/validation/reference/ElementwiseOperations.cpp')
-rw-r--r--tests/validation/reference/ElementwiseOperations.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/tests/validation/reference/ElementwiseOperations.cpp b/tests/validation/reference/ElementwiseOperations.cpp
index aab9d9d00c..f22c84e153 100644
--- a/tests/validation/reference/ElementwiseOperations.cpp
+++ b/tests/validation/reference/ElementwiseOperations.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2018-2019 Arm Limited.
+ * Copyright (c) 2018-2020 Arm Limited.
*
* SPDX-License-Identifier: MIT
*
@@ -74,6 +74,15 @@ T arithm_op(ArithmeticOperation op, T src1, T src2, ConvertPolicy convert_policy
case ArithmeticOperation::DIV:
{
val = (static_cast<intermediate_type>(src1) / static_cast<intermediate_type>(src2));
+ if(std::is_integral<T>::value)
+ {
+ // Implement flooring division
+ val = (src2 == 0) ? 0 : val;
+ if(static_cast<int32_t>(src1) % static_cast<int32_t>(src2) != 0 && ((src1 < 0) != (src2 < 0)))
+ {
+ --val;
+ }
+ }
break;
}
case ArithmeticOperation::POWER: