Improve start-up timer for GeMM (floating-point):

 - Pass M,N,K at runtime as kernel parameters
 - Add a guard macro to compile only kernel of interest
 - Move reshpaing kernels to gemm_utils.cl
 - Remove the fallback reshaping kernel with Y-Padding support

Resolves: COMPMID-4888
Signed-off-by: Ramy Elgammal <ramy.elgammal@arm.com>
Change-Id: Ida3851326f0b77e410633271de9ecca106e37931
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/6662
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
diff --git a/src/core/Utils.cpp b/src/core/Utils.cpp
index b81b498..930e4c7 100644
--- a/src/core/Utils.cpp
+++ b/src/core/Utils.cpp
@@ -330,6 +330,13 @@
     return res;
 }
 
+std::string upper_string(const std::string &val)
+{
+    std::string res = val;
+    std::transform(res.begin(), res.end(), res.begin(), ::toupper);
+    return res;
+}
+
 PadStrideInfo calculate_same_pad(TensorShape input_shape, TensorShape weights_shape, PadStrideInfo conv_info, DataLayout data_layout, const Size2D &dilation,
                                  const DimensionRoundingType &rounding_type)
 {