diff --git a/arm_compute/core/KernelDescriptors.h b/arm_compute/core/KernelDescriptors.h
index d9d3e1a..6b4691b 100644
--- a/arm_compute/core/KernelDescriptors.h
+++ b/arm_compute/core/KernelDescriptors.h
@@ -54,6 +54,28 @@
 /** Descriptor used by the GEMM kernels */
 struct GEMMKernelInfo
 {
+    GEMMKernelInfo() = default;
+    GEMMKernelInfo(
+        unsigned int        im,
+        unsigned int        in,
+        unsigned int        ik,
+        unsigned int        idepth_output_gemm3d,
+        bool                ireinterpret_input_as_3d,
+        bool                ibroadcast_bias,
+        bool                ifp_mixed_precision,
+        ActivationLayerInfo iactivation_info,
+        int                 inmult_transpose1xW_width,
+        int                 imult_interleave4x4_height,
+        GEMMLHSMatrixInfo   ilhs_info,
+        GEMMRHSMatrixInfo   irhs_info,
+        int32_t             ina_offset,
+        int32_t             inb_offset)
+        : m(im), n(in), k(ik), depth_output_gemm3d(idepth_output_gemm3d), reinterpret_input_as_3d(ireinterpret_input_as_3d), broadcast_bias(ibroadcast_bias), fp_mixed_precision(ifp_mixed_precision),
+          activation_info(iactivation_info), mult_transpose1xW_width(inmult_transpose1xW_width), mult_interleave4x4_height(imult_interleave4x4_height), lhs_info(ilhs_info), rhs_info(irhs_info),
+          a_offset(ina_offset), b_offset(inb_offset)
+    {
+    }
+
     unsigned int            m{ 0 };                           /**< Number of LHS rows*/
     unsigned int            n{ 0 };                           /**< Number of RHS columns*/
     unsigned int            k{ 0 };                           /**< Number of LHS columns or RHS rows */
diff --git a/arm_compute/core/Types.h b/arm_compute/core/Types.h
index 37a9679..d59bba6 100644
--- a/arm_compute/core/Types.h
+++ b/arm_compute/core/Types.h
@@ -1964,6 +1964,11 @@
 /** GEMM LHS (Left Hand Side) matrix information */
 struct GEMMLHSMatrixInfo
 {
+    GEMMLHSMatrixInfo() = default;
+    GEMMLHSMatrixInfo(unsigned int m, unsigned int k, unsigned int v, bool trans, bool inter)
+        : m0(m), k0(k), v0(v), transpose(trans), interleave(inter)
+    {
+    }
     unsigned int m0{ 1 };            /**< Number of rows processed by the matrix multiplication */
     unsigned int k0{ 1 };            /**< Number of partial accumulations performed by the matrix multiplication */
     unsigned int v0{ 1 };            /**< Number of vertical blocks of size (m0xk0) stored on the same output row */
@@ -1974,6 +1979,11 @@
 /** GEMM RHS (Right Hand Side) matrix information */
 struct GEMMRHSMatrixInfo
 {
+    GEMMRHSMatrixInfo() = default;
+    GEMMRHSMatrixInfo(unsigned int n, unsigned int k, unsigned int h, bool trans, bool inter)
+        : n0(n), k0(k), h0(h), transpose(trans), interleave(inter)
+    {
+    }
     unsigned int n0{ 1 };            /**< Number of columns processed by the matrix multiplication */
     unsigned int k0{ 1 };            /**< Number of partial accumulations performed by the matrix multiplication */
     unsigned int h0{ 1 };            /**< Number of horizontal blocks of size (k0xn0) stored on the same output row */
