IVGCVSW-4620 Add Fill Reference Implementation

 * Add Fill Reference Implementation
 * Refactor FP converter to use static_cast

Signed-off-by: Ryan OShea <Ryan.OShea2@arm.com>
Signed-off-by: Keith Davis <keith.davis@arm.com>
Change-Id: I532e2f982981d047690755fac43a0e9cf8b17dcd
diff --git a/src/backends/reference/RefLayerSupport.cpp b/src/backends/reference/RefLayerSupport.cpp
index 2e404f9..52a7632 100644
--- a/src/backends/reference/RefLayerSupport.cpp
+++ b/src/backends/reference/RefLayerSupport.cpp
@@ -857,6 +857,28 @@
     return supported;
 }
 
+bool RefLayerSupport::IsFillSupported(const TensorInfo& input,
+                                      const TensorInfo& output,
+                                      const FillDescriptor& descriptor,
+                                      Optional<std::string&> reasonIfUnsupported) const
+{
+    IgnoreUnused(descriptor);
+    IgnoreUnused(output);
+
+    bool supported = true;
+
+    std::array<DataType,2> supportedTypes =
+    {
+        DataType::Float32,
+        DataType::Float16
+    };
+
+    supported &= CheckSupportRule(TypeAnyOf(input, supportedTypes), reasonIfUnsupported,
+                                  "Reference Fill: input type not supported.");
+
+    return supported;
+}
+
 bool RefLayerSupport::IsFloorSupported(const TensorInfo& input,
                                        const TensorInfo& output,
                                        Optional<std::string&> reasonIfUnsupported) const