MLCE-510 Add CpuRef Shape Operator to ArmNN

 * Add front end
 * Add reference workload
 * Serialization/Deserialization
 * Add unit tests
 * Update ArmNN Versioning

Signed-off-by: Keith Davis <keith.davis@arm.com>
Change-Id: I6fcb1fa341d6f08dea4003b13544e6e9f53fefd3
diff --git a/src/backends/reference/RefLayerSupport.cpp b/src/backends/reference/RefLayerSupport.cpp
index 14a40f9..1b05c4e 100644
--- a/src/backends/reference/RefLayerSupport.cpp
+++ b/src/backends/reference/RefLayerSupport.cpp
@@ -1859,6 +1859,24 @@
                                        reasonIfUnsupported);
 }
 
+bool RefLayerSupport::IsShapeSupported(const TensorInfo& input,
+                                       const TensorInfo& output,
+                                       Optional<std::string&> reasonIfUnsupported) const
+{
+    IgnoreUnused(input);
+    bool supported = true;
+
+    std::array<DataType, 1> supportedTypes =
+    {
+        DataType::Signed32
+    };
+
+    supported &= CheckSupportRule(TypeAnyOf(output, supportedTypes), reasonIfUnsupported,
+                                  "Reference Shape: output type not supported");
+
+    return supported;
+}
+
 bool RefLayerSupport::IsSliceSupported(const TensorInfo& input,
                                        const TensorInfo& output,
                                        const SliceDescriptor& descriptor,