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>
diff --git a/src/core/NEON/kernels/arm_conv/depthwise/depthwise_depthfirst.hpp b/src/core/NEON/kernels/arm_conv/depthwise/depthwise_depthfirst.hpp
index 8d1a869..57fa111 100644
--- a/src/core/NEON/kernels/arm_conv/depthwise/depthwise_depthfirst.hpp
+++ b/src/core/NEON/kernels/arm_conv/depthwise/depthwise_depthfirst.hpp
@@ -275,11 +275,11 @@
         for (int start_out_j = 0; start_out_j < static_cast<int>(output_width);)
         {
           const int start_in_j = start_out_j * m_strat->get_stride_cols() - this->m_args.padding.left;
-          const int pad_left = -std::min(0, start_in_j);
+          int pad_left = std::min(0, start_in_j);
 
           // Compute how many output tiles we can compute with the direct kernel.
           int n_direct_tiles = 0;
-          if (!pad_top && !pad_bottom && !pad_left)
+          if (!pad_top  && !pad_bottom && !pad_left)
           {
             // Determine the maximum number of tiles we could handle.
             n_direct_tiles = (output_width - start_out_j) / m_strat->get_output_cols();
@@ -323,7 +323,7 @@
             end_out_j - start_out_j,
             static_cast<int>(output_width) - start_out_j
           );
-
+          pad_left *= -1;
           // Construct the input pointer array - fill the array with pointers to
           // the input buffer and then fill in the required values.
           for (auto i = pad_top; i < m_strat->get_input_rows() - pad_bottom; i++)
diff --git a/src/core/NEON/kernels/arm_conv/pooling/kernels/a64_s8q_nhwc_avg_generic_depthfirst/generic.cpp b/src/core/NEON/kernels/arm_conv/pooling/kernels/a64_s8q_nhwc_avg_generic_depthfirst/generic.cpp
index f288a41..530ee06 100644
--- a/src/core/NEON/kernels/arm_conv/pooling/kernels/a64_s8q_nhwc_avg_generic_depthfirst/generic.cpp
+++ b/src/core/NEON/kernels/arm_conv/pooling/kernels/a64_s8q_nhwc_avg_generic_depthfirst/generic.cpp
@@ -86,12 +86,13 @@
       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);
   }
 
   // Combine together the rescale value for the requantization and the scaling
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 2c8a292..baf23b4 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 @@
       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__(
diff --git a/src/core/NEON/kernels/arm_conv/pooling/kernels/a64_u8q_nhwc_avg_generic_depthfirst/generic.cpp b/src/core/NEON/kernels/arm_conv/pooling/kernels/a64_u8q_nhwc_avg_generic_depthfirst/generic.cpp
index a57fe6d..11376e0 100644
--- a/src/core/NEON/kernels/arm_conv/pooling/kernels/a64_u8q_nhwc_avg_generic_depthfirst/generic.cpp
+++ b/src/core/NEON/kernels/arm_conv/pooling/kernels/a64_u8q_nhwc_avg_generic_depthfirst/generic.cpp
@@ -87,12 +87,13 @@
       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);
   }