Add support for 5D data layout indexing

Signed-off-by: Giorgio Arena <giorgio.arena@arm.com>
Change-Id: Ib346bb6b90d2220ec5934c83a9a1f0cd540b8731
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/6377
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Gunes Bayir <gunes.bayir@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
diff --git a/src/core/Helpers.cpp b/src/core/Helpers.cpp
index e692cc1..28e7f4c 100644
--- a/src/core/Helpers.cpp
+++ b/src/core/Helpers.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016-2020 Arm Limited.
+ * Copyright (c) 2016-2021 Arm Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -100,4 +100,23 @@
 
     return valid_region;
 }
+
+const std::map<DataLayout, std::vector<DataLayoutDimension>> &get_layout_map()
+{
+    constexpr DataLayoutDimension W = DataLayoutDimension::WIDTH;
+    constexpr DataLayoutDimension H = DataLayoutDimension::HEIGHT;
+    constexpr DataLayoutDimension C = DataLayoutDimension::CHANNEL;
+    constexpr DataLayoutDimension D = DataLayoutDimension::DEPTH;
+    constexpr DataLayoutDimension N = DataLayoutDimension::BATCHES;
+
+    static const std::map<DataLayout, std::vector<DataLayoutDimension>> layout_map =
+    {
+        { DataLayout::NDHWC, { C, W, H, D, N } },
+        { DataLayout::NCDHW, { W, H, D, C, N } },
+        { DataLayout::NHWC, { C, W, H, N } },
+        { DataLayout::NCHW, { W, H, C, N } }
+    };
+
+    return layout_map;
+}
 } // namespace arm_compute
\ No newline at end of file