Implement address precalculation for indirect conv2d - OpenCL

- Implement kernel (ClIndirectConv2dAddressPrecalculationKernel)
- Implement OpenCL kernel (indirect_convolution.cl)
- Add test

Resolves COMPMID-5708

Change-Id: If7408e37cbc6f9ad8506ff3334bc574e5d6763fb
Signed-off-by: Gian Marco Iodice <gianmarco.iodice@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/8661
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Viet-Hoa Do <viet-hoa.do@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Benchmark: Arm Jenkins <bsgcomp@arm.com>
diff --git a/Android.bp b/Android.bp
index 69a0aff..90d3417 100644
--- a/Android.bp
+++ b/Android.bp
@@ -108,6 +108,7 @@
         "src/core/CL/cl_kernels/nhwc/dwc_native_fp_nhwc.cl",
         "src/core/CL/cl_kernels/nhwc/dwc_native_quantized_nhwc.cl",
         "src/core/CL/cl_kernels/nhwc/im2col.cl",
+        "src/core/CL/cl_kernels/nhwc/indirect_convolution.cl",
         "src/core/CL/cl_kernels/nhwc/normalization_layer.cl",
         "src/core/CL/cl_kernels/nhwc/normalize_planar_yuv_layer.cl",
         "src/core/CL/cl_kernels/nhwc/normalize_planar_yuv_layer_quantized.cl",
@@ -637,6 +638,7 @@
         "src/gpu/cl/kernels/ClGemmReshapeRhsMatrixKernel.cpp",
         "src/gpu/cl/kernels/ClHeightConcatenateKernel.cpp",
         "src/gpu/cl/kernels/ClIm2ColKernel.cpp",
+        "src/gpu/cl/kernels/ClIndirectConv2dAddressPrecalculationKernel.cpp",
         "src/gpu/cl/kernels/ClMulKernel.cpp",
         "src/gpu/cl/kernels/ClPermuteKernel.cpp",
         "src/gpu/cl/kernels/ClPool2dKernel.cpp",