aboutsummaryrefslogtreecommitdiff
path: root/src/core/NEON/kernels/arm_conv/pooling/kernels/a64_u8_nhwc_avg_generic_depthfirst/generic.cpp
diff options
context:
space:
mode:
authorPablo Marquez Tello <pablo.tello@arm.com>2021-09-30 13:56:17 +0100
committerGiorgio Arena <giorgio.arena@arm.com>2021-10-05 10:46:45 +0000
commit41d886cecd6478725e9d0da93af7de5847efca1e (patch)
treefbaec1e2142da5d2e8ab0b1b9ab9c98afd3436f4 /src/core/NEON/kernels/arm_conv/pooling/kernels/a64_u8_nhwc_avg_generic_depthfirst/generic.cpp
parent2c5ae8604ca03f7eee3991f5f94afdf023e5c842 (diff)
downloadComputeLibrary-41d886cecd6478725e9d0da93af7de5847efca1e.tar.gz
Fixed the compiler warning -Werror=type-limits
* Comparison is always false due to limited range of data type. rescale_value is truncated to int32_t and then is compared agains (1ll <<31) which will be always false * Resolves MLCE-508 Change-Id: I252f64d4aec8f3e120d71fc5e40c7665816173ac Signed-off-by: Pablo Marquez Tello <pablo.tello@arm.com> Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/6342 Tested-by: Arm Jenkins <bsgcomp@arm.com> Reviewed-by: Giorgio Arena <giorgio.arena@arm.com> Reviewed-by: Gunes Bayir <gunes.bayir@arm.com> Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Diffstat (limited to 'src/core/NEON/kernels/arm_conv/pooling/kernels/a64_u8_nhwc_avg_generic_depthfirst/generic.cpp')
-rw-r--r--src/core/NEON/kernels/arm_conv/pooling/kernels/a64_u8_nhwc_avg_generic_depthfirst/generic.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/core/NEON/kernels/arm_conv/pooling/kernels/a64_u8_nhwc_avg_generic_depthfirst/generic.cpp b/src/core/NEON/kernels/arm_conv/pooling/kernels/a64_u8_nhwc_avg_generic_depthfirst/generic.cpp
index 2c8a29248d..baf23b4a4d 100644
--- a/src/core/NEON/kernels/arm_conv/pooling/kernels/a64_u8_nhwc_avg_generic_depthfirst/generic.cpp
+++ b/src/core/NEON/kernels/arm_conv/pooling/kernels/a64_u8_nhwc_avg_generic_depthfirst/generic.cpp
@@ -84,12 +84,13 @@ void a64_u8_nhwc_avg_generic_depthfirst_impl(
f_rescale_value *= 2.0f;
}
- rescale_value = static_cast<int32_t>(round(f_rescale_value * static_cast<float>(1ll << 31)));
- if (static_cast<int64_t>(rescale_value) == (1ll << 31))
+ int64_t large_rescale_value = round(f_rescale_value * static_cast<float>(1ll << 31));
+ if (large_rescale_value == (1ll << 31))
{
shift_value++;
- rescale_value >>= 1;
+ large_rescale_value >>= 1;
}
+ rescale_value = static_cast<int32_t>(large_rescale_value);
}
__asm__ __volatile__(