IVGCVSW-1951 Remove type templating from NeonSplitterWorkload

Change-Id: Iace26e575d8eca50cc81a881b7bb5be46b00f1dc
diff --git a/src/backends/neon/NeonWorkloadFactory.cpp b/src/backends/neon/NeonWorkloadFactory.cpp
index 0568c81..0f386d1 100644
--- a/src/backends/neon/NeonWorkloadFactory.cpp
+++ b/src/backends/neon/NeonWorkloadFactory.cpp
@@ -104,7 +104,7 @@
 std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateSplitter(const SplitterQueueDescriptor& descriptor,
                                                                const WorkloadInfo&            info) const
 {
-    return MakeWorkload<NeonSplitterFloatWorkload, NeonSplitterUint8Workload>(descriptor, info);
+    return std::make_unique<NeonSplitterWorkload>(descriptor, info);
 }
 
 std::unique_ptr<armnn::IWorkload> NeonWorkloadFactory::CreateMerger(const MergerQueueDescriptor& descriptor,
diff --git a/src/backends/neon/backend.mk b/src/backends/neon/backend.mk
index 4350297..26bf33e 100644
--- a/src/backends/neon/backend.mk
+++ b/src/backends/neon/backend.mk
@@ -38,7 +38,5 @@
         workloads/NeonSoftmaxBaseWorkload.cpp \
         workloads/NeonSoftmaxFloatWorkload.cpp \
         workloads/NeonSoftmaxUint8Workload.cpp \
-        workloads/NeonSplitterFloatWorkload.cpp \
-        workloads/NeonSplitterUint8Workload.cpp \
         workloads/NeonSubtractionFloatWorkload.cpp \
         workloads/NeonWorkloadUtils.cpp
diff --git a/src/backends/neon/test/NeonCreateWorkloadTests.cpp b/src/backends/neon/test/NeonCreateWorkloadTests.cpp
index 3f07ef0..e8790c3 100644
--- a/src/backends/neon/test/NeonCreateWorkloadTests.cpp
+++ b/src/backends/neon/test/NeonCreateWorkloadTests.cpp
@@ -433,7 +433,7 @@
 {
     Graph graph;
     NeonWorkloadFactory factory;
-    auto workload = CreateSplitterWorkloadTest<NeonSplitterFloatWorkload, DataType::Float32>(factory, graph);
+    auto workload = CreateSplitterWorkloadTest<NeonSplitterWorkload, DataType::Float32>(factory, graph);
 
     // Checks that outputs are as we expect them (see definition of CreateSplitterWorkloadTest).
     SplitterQueueDescriptor queueDescriptor = workload->GetData();
@@ -462,7 +462,7 @@
     NeonWorkloadFactory factory;
 
     auto workloads =
-        CreateSplitterMergerWorkloadTest<NeonSplitterFloatWorkload, NeonMergerWorkload,
+        CreateSplitterMergerWorkloadTest<NeonSplitterWorkload, NeonMergerWorkload,
             DataType::Float32>(factory, graph);
 
     auto wlSplitter = std::move(workloads.first);
@@ -491,13 +491,13 @@
 
     Graph graph;
     NeonWorkloadFactory factory;
-    std::unique_ptr<NeonSplitterFloatWorkload> wlSplitter;
+    std::unique_ptr<NeonSplitterWorkload> wlSplitter;
     std::unique_ptr<NeonActivationWorkload> wlActiv0_0;
     std::unique_ptr<NeonActivationWorkload> wlActiv0_1;
     std::unique_ptr<NeonActivationWorkload> wlActiv1_0;
     std::unique_ptr<NeonActivationWorkload> wlActiv1_1;
 
-    CreateSplitterMultipleInputsOneOutputWorkloadTest<NeonSplitterFloatWorkload,
+    CreateSplitterMultipleInputsOneOutputWorkloadTest<NeonSplitterWorkload,
         NeonActivationWorkload, DataType::Float32>(factory, graph, wlSplitter, wlActiv0_0, wlActiv0_1,
                                                    wlActiv1_0, wlActiv1_1);
 
diff --git a/src/backends/neon/workloads/CMakeLists.txt b/src/backends/neon/workloads/CMakeLists.txt
index 7c22472..7f91261 100644
--- a/src/backends/neon/workloads/CMakeLists.txt
+++ b/src/backends/neon/workloads/CMakeLists.txt
@@ -9,7 +9,6 @@
     NeonAdditionFloatWorkload.cpp
     NeonAdditionFloatWorkload.hpp
     NeonBaseConstantWorkload.hpp
-    NeonBaseSplitterWorkload.hpp
     NeonBatchNormalizationFloatWorkload.cpp
     NeonBatchNormalizationFloatWorkload.hpp
     NeonConstantFloatWorkload.cpp
@@ -61,10 +60,7 @@
     NeonSoftmaxFloatWorkload.hpp
     NeonSoftmaxUint8Workload.cpp
     NeonSoftmaxUint8Workload.hpp
-    NeonSplitterFloatWorkload.cpp
-    NeonSplitterFloatWorkload.hpp
-    NeonSplitterUint8Workload.cpp
-    NeonSplitterUint8Workload.hpp
+    NeonSplitterWorkload.hpp
     NeonSubtractionFloatWorkload.cpp
     NeonSubtractionFloatWorkload.hpp
     NeonWorkloads.hpp
diff --git a/src/backends/neon/workloads/NeonBaseSplitterWorkload.hpp b/src/backends/neon/workloads/NeonBaseSplitterWorkload.hpp
deleted file mode 100644
index dcee933..0000000
--- a/src/backends/neon/workloads/NeonBaseSplitterWorkload.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include <backends/Workload.hpp>
-#include <backends/neon/workloads/NeonWorkloadUtils.hpp>
-
-namespace armnn
-{
-
-// Base class template providing an implementation of the Splitter layer common to all data types.
-template <armnn::DataType... DataTypes>
-class NeonBaseSplitterWorkload : public TypedWorkload<SplitterQueueDescriptor, DataTypes...>
-{
-public:
-    using TypedWorkload<SplitterQueueDescriptor, DataTypes...>::TypedWorkload;
-
-    virtual void Execute() const override
-    {
-        // With subtensors, splitter is a no-op.
-    }
-};
-
-} //namespace armnn
diff --git a/src/backends/neon/workloads/NeonSplitterFloatWorkload.cpp b/src/backends/neon/workloads/NeonSplitterFloatWorkload.cpp
deleted file mode 100644
index 39ed5b7..0000000
--- a/src/backends/neon/workloads/NeonSplitterFloatWorkload.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "NeonSplitterFloatWorkload.hpp"
-
-namespace armnn
-{
-
-void NeonSplitterFloatWorkload::Execute() const
-{
-    ARMNN_SCOPED_PROFILING_EVENT_NEON("NeonSplitterFloatWorkload_Execute");
-    NeonBaseSplitterWorkload::Execute();
-}
-
-} //namespace armnn
diff --git a/src/backends/neon/workloads/NeonSplitterFloatWorkload.hpp b/src/backends/neon/workloads/NeonSplitterFloatWorkload.hpp
deleted file mode 100644
index 744a4fe..0000000
--- a/src/backends/neon/workloads/NeonSplitterFloatWorkload.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "NeonBaseSplitterWorkload.hpp"
-
-namespace armnn
-{
-
-class NeonSplitterFloatWorkload : public NeonBaseSplitterWorkload<DataType::Float16, DataType::Float32>
-{
-public:
-    using NeonBaseSplitterWorkload<DataType::Float16, DataType::Float32>::NeonBaseSplitterWorkload;
-    virtual void Execute() const override;
-};
-
-} //namespace armnn
diff --git a/src/backends/neon/workloads/NeonSplitterUint8Workload.cpp b/src/backends/neon/workloads/NeonSplitterUint8Workload.cpp
deleted file mode 100644
index 4b2cf8f..0000000
--- a/src/backends/neon/workloads/NeonSplitterUint8Workload.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#include "NeonSplitterUint8Workload.hpp"
-
-namespace armnn
-{
-
-void NeonSplitterUint8Workload::Execute() const
-{
-    ARMNN_SCOPED_PROFILING_EVENT_NEON("NeonSplitterUint8Workload_Execute");
-    NeonBaseSplitterWorkload::Execute();
-}
-
-} //namespace armnn
diff --git a/src/backends/neon/workloads/NeonSplitterUint8Workload.hpp b/src/backends/neon/workloads/NeonSplitterUint8Workload.hpp
deleted file mode 100644
index f219cfa..0000000
--- a/src/backends/neon/workloads/NeonSplitterUint8Workload.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-//
-// Copyright © 2017 Arm Ltd. All rights reserved.
-// SPDX-License-Identifier: MIT
-//
-
-#pragma once
-
-#include "NeonBaseSplitterWorkload.hpp"
-
-namespace armnn
-{
-
-class NeonSplitterUint8Workload : public NeonBaseSplitterWorkload<DataType::QuantisedAsymm8>
-{
-public:
-    using NeonBaseSplitterWorkload<DataType::QuantisedAsymm8>::NeonBaseSplitterWorkload;
-    virtual void Execute() const override;
-};
-
-} //namespace armnn
diff --git a/src/backends/neon/workloads/NeonSplitterWorkload.hpp b/src/backends/neon/workloads/NeonSplitterWorkload.hpp
new file mode 100644
index 0000000..11c1767
--- /dev/null
+++ b/src/backends/neon/workloads/NeonSplitterWorkload.hpp
@@ -0,0 +1,24 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#pragma once
+
+#include <backends/Workload.hpp>
+
+namespace armnn
+{
+
+class NeonSplitterWorkload : public BaseWorkload<SplitterQueueDescriptor>
+{
+public:
+    using BaseWorkload<SplitterQueueDescriptor>::BaseWorkload;
+
+    virtual void Execute() const override
+    {
+        // With subtensors, splitter is a no-op.
+    }
+};
+
+} //namespace armnn
diff --git a/src/backends/neon/workloads/NeonWorkloads.hpp b/src/backends/neon/workloads/NeonWorkloads.hpp
index c877c94..917b1fe 100644
--- a/src/backends/neon/workloads/NeonWorkloads.hpp
+++ b/src/backends/neon/workloads/NeonWorkloads.hpp
@@ -7,7 +7,6 @@
 #include "NeonActivationWorkload.hpp"
 #include "NeonAdditionFloatWorkload.hpp"
 #include "NeonBaseConstantWorkload.hpp"
-#include "NeonBaseSplitterWorkload.hpp"
 #include "NeonBatchNormalizationFloatWorkload.hpp"
 #include "NeonConstantFloatWorkload.hpp"
 #include "NeonConstantUint8Workload.hpp"
@@ -32,6 +31,5 @@
 #include "NeonReshapeWorkload.hpp"
 #include "NeonSoftmaxFloatWorkload.hpp"
 #include "NeonSoftmaxUint8Workload.hpp"
-#include "NeonSplitterFloatWorkload.hpp"
-#include "NeonSplitterUint8Workload.hpp"
+#include "NeonSplitterWorkload.hpp"
 #include "NeonSubtractionFloatWorkload.hpp"