Add Signed32 to debug layer

Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
Change-Id: Iedfc196bfd18e8280e99a06db68df9c15c8ea835
diff --git a/src/backends/reference/RefLayerSupport.cpp b/src/backends/reference/RefLayerSupport.cpp
index 4767aa0..26a61d4 100644
--- a/src/backends/reference/RefLayerSupport.cpp
+++ b/src/backends/reference/RefLayerSupport.cpp
@@ -496,12 +496,13 @@
 {
     bool supported = true;
 
-    std::array<DataType, 4> supportedTypes =
+    std::array<DataType, 5> supportedTypes =
     {
         DataType::Float16,
         DataType::Float32,
         DataType::QAsymmU8,
-        DataType::QSymmS16
+        DataType::QSymmS16,
+        DataType::Signed32
     };
 
     supported &= CheckSupportRule(TypeAnyOf(input, supportedTypes), reasonIfUnsupported,
diff --git a/src/backends/reference/RefWorkloadFactory.cpp b/src/backends/reference/RefWorkloadFactory.cpp
index b3a0c85..2db47d3 100644
--- a/src/backends/reference/RefWorkloadFactory.cpp
+++ b/src/backends/reference/RefWorkloadFactory.cpp
@@ -181,6 +181,10 @@
     {
         return std::make_unique<RefDebugQSymm16Workload>(descriptor, info);
     }
+    if (IsDataType<DataType::Signed32>(info))
+    {
+        return std::make_unique<RefDebugSigned32Workload>(descriptor, info);
+    }
 
     return MakeWorkload<RefDebugFloat32Workload, RefDebugQAsymm8Workload>(descriptor, info);
 }
diff --git a/src/backends/reference/workloads/Debug.cpp b/src/backends/reference/workloads/Debug.cpp
index b7d0911..0f192f3 100644
--- a/src/backends/reference/workloads/Debug.cpp
+++ b/src/backends/reference/workloads/Debug.cpp
@@ -112,4 +112,10 @@
                              const std::string& layerName,
                              unsigned int slotIndex);
 
+template void Debug<int32_t>(const TensorInfo& inputInfo,
+                             const int32_t* inputData,
+                             LayerGuid guid,
+                             const std::string& layerName,
+                             unsigned int slotIndex);
+
 } // namespace armnn
diff --git a/src/backends/reference/workloads/RefDebugWorkload.cpp b/src/backends/reference/workloads/RefDebugWorkload.cpp
index 9572f9a..59b836d 100644
--- a/src/backends/reference/workloads/RefDebugWorkload.cpp
+++ b/src/backends/reference/workloads/RefDebugWorkload.cpp
@@ -48,5 +48,6 @@
 template class RefDebugWorkload<DataType::Float32>;
 template class RefDebugWorkload<DataType::QAsymmU8>;
 template class RefDebugWorkload<DataType::QSymmS16>;
+template class RefDebugWorkload<DataType::Signed32>;
 
 } // namespace armnn
diff --git a/src/backends/reference/workloads/RefDebugWorkload.hpp b/src/backends/reference/workloads/RefDebugWorkload.hpp
index fc154e9..58e4464 100644
--- a/src/backends/reference/workloads/RefDebugWorkload.hpp
+++ b/src/backends/reference/workloads/RefDebugWorkload.hpp
@@ -41,5 +41,6 @@
 using RefDebugFloat32Workload = RefDebugWorkload<DataType::Float32>;
 using RefDebugQAsymm8Workload = RefDebugWorkload<DataType::QAsymmU8>;
 using RefDebugQSymm16Workload = RefDebugWorkload<DataType::QSymmS16>;
+using RefDebugSigned32Workload = RefDebugWorkload<DataType::Signed32>;
 
 } // namespace armnn