IVGCVSW-2511 Add end to end Gather layer test

 * Add end to end test for Gather operator
 * Add Support for int32 to Constant layer for Ref
 * Add Int32Workload
 * Add RefConstantWorkload as template for float, uint8, int32
 * Remove unused RefBaseConstantWorkload
 * Remove unused RefConstantFloat32Workload
 * Remove unused RefConstantUint8Workload
 * Add support check for int32 in LayerSupport functions

Change-Id: Ic970588a49ebe2aafb12be8adef52371feacaa7b
diff --git a/src/backends/reference/RefLayerSupport.cpp b/src/backends/reference/RefLayerSupport.cpp
index 25c2baf..45f108c 100644
--- a/src/backends/reference/RefLayerSupport.cpp
+++ b/src/backends/reference/RefLayerSupport.cpp
@@ -34,6 +34,7 @@
                                          &FalseFunc<Params...>,
                                          floatFuncPtr,
                                          uint8FuncPtr,
+                                         &FalseFunc<Params...>,
                                          std::forward<Params>(params)...);
 }
 
@@ -105,10 +106,12 @@
 bool RefLayerSupport::IsConstantSupported(const TensorInfo& output,
                                           Optional<std::string&> reasonIfUnsupported) const
 {
-    return IsSupportedForDataTypeRef(reasonIfUnsupported,
-                                     output.GetDataType(),
-                                     &TrueFunc<>,
-                                     &TrueFunc<>);
+    return IsSupportedForDataTypeGeneric(reasonIfUnsupported,
+                                         output.GetDataType(),
+                                         &FalseFunc<>,
+                                         &TrueFunc<>,
+                                         &TrueFunc<>,
+                                         &TrueFunc<>);
 }
 
 bool RefLayerSupport::IsConvertFp16ToFp32Supported(const TensorInfo& input,
@@ -119,12 +122,14 @@
                                           input.GetDataType(),
                                           &TrueFunc<>,
                                           &FalseInputFuncF32<>,
-                                          &FalseFuncU8<>) &&
+                                          &FalseFuncU8<>,
+                                          &FalseFuncI32<>) &&
             IsSupportedForDataTypeGeneric(reasonIfUnsupported,
                                           output.GetDataType(),
                                           &FalseOutputFuncF16<>,
                                           &TrueFunc<>,
-                                          &FalseFuncU8<>));
+                                          &FalseFuncU8<>,
+                                          &FalseFuncI32<>));
 }
 
 bool RefLayerSupport::IsConvertFp32ToFp16Supported(const TensorInfo& input,
@@ -135,12 +140,14 @@
                                           input.GetDataType(),
                                           &FalseInputFuncF16<>,
                                           &TrueFunc<>,
-                                          &FalseFuncU8<>) &&
+                                          &FalseFuncU8<>,
+                                          &FalseFuncI32<>) &&
             IsSupportedForDataTypeGeneric(reasonIfUnsupported,
                                           output.GetDataType(),
                                           &TrueFunc<>,
                                           &FalseOutputFuncF32<>,
-                                          &FalseFuncU8<>));
+                                          &FalseFuncU8<>,
+                                          &FalseFuncI32<>));
 }
 
 bool RefLayerSupport::IsConvolution2dSupported(const TensorInfo& input,