COMPMID-2974: VTS Test failure in CLConvolutionLayer quantized per-channel with multiplier == 1
Change-Id: I568aa17390af6eeef115171b6103703644b42762
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-on: https://review.mlplatform.org/c/2410
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
diff --git a/src/core/utils/quantization/AsymmHelpers.cpp b/src/core/utils/quantization/AsymmHelpers.cpp
index 0551874..6196662 100644
--- a/src/core/utils/quantization/AsymmHelpers.cpp
+++ b/src/core/utils/quantization/AsymmHelpers.cpp
@@ -37,7 +37,7 @@
Status calculate_quantized_multiplier(float multiplier, int *quant_multiplier, int *shift)
{
- if(multiplier > 1.f)
+ if(multiplier >= 1.f)
{
Status status = calculate_quantized_multiplier_greater_than_one(multiplier, quant_multiplier, shift);
*shift *= -1;
@@ -57,13 +57,6 @@
ARM_COMPUTE_RETURN_ERROR_ON(right_shift == nullptr);
ARM_COMPUTE_RETURN_ERROR_ON(multiplier < -epsilon);
ARM_COMPUTE_RETURN_ERROR_ON(multiplier > 1.0f + epsilon);
- if(std::fabs(1.0f - multiplier) < epsilon)
- {
- *quant_multiplier = 1;
- *right_shift = 0;
- return Status{};
- }
-
if(std::fabs(0.0f - multiplier) < epsilon)
{
*quant_multiplier = 0;