diff --git a/src/core/CL/kernels/CLActivationLayerKernel.cpp b/src/core/CL/kernels/CLActivationLayerKernel.cpp
index 0f7003a..8172aaf 100644
--- a/src/core/CL/kernels/CLActivationLayerKernel.cpp
+++ b/src/core/CL/kernels/CLActivationLayerKernel.cpp
@@ -131,8 +131,8 @@
         }
         else
         {
-            a_const_int = input->info()->quantization_info().quantize(a_const);
-            b_const_int = input->info()->quantization_info().quantize(b_const);
+            a_const_int = input->info()->quantization_info().quantize(a_const, RoundingPolicy::TO_NEAREST_UP);
+            b_const_int = input->info()->quantization_info().quantize(b_const, RoundingPolicy::TO_NEAREST_UP);
         }
     }
 
diff --git a/src/core/Utils.cpp b/src/core/Utils.cpp
index af864f5..af50bbb 100644
--- a/src/core/Utils.cpp
+++ b/src/core/Utils.cpp
@@ -21,10 +21,13 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
+
 #include "arm_compute/core/Utils.h"
 
 #include "arm_compute/core/FixedPoint.h"
 
+#include "support/ToolchainSupport.h"
+
 #include <algorithm>
 #include <cmath>
 #include <cstdint>
@@ -387,3 +390,34 @@
     }
     return 0;
 }
+
+int arm_compute::round(float x, RoundingPolicy rounding_policy)
+{
+    using namespace std;
+    int rounded = 0;
+    switch(rounding_policy)
+    {
+        case RoundingPolicy::TO_ZERO:
+        {
+            rounded = static_cast<int>(x);
+            break;
+        }
+        case RoundingPolicy::TO_NEAREST_UP:
+        {
+            rounded = static_cast<int>(support::cpp11::round(x));
+            break;
+        }
+        case RoundingPolicy::TO_NEAREST_EVEN:
+        {
+            ARM_COMPUTE_ERROR("TO_NEAREST_EVEN rounding policy is not supported.");
+            break;
+        }
+        default:
+        {
+            ARM_COMPUTE_ERROR("Unsupported rounding policy.");
+            break;
+        }
+    }
+
+    return rounded;
+}
