MLCE-115 Remove redundant error checking in CL backend

This stuff is handled in CLPerumuteLayer::validate now

Change-Id: I552e7c0bbd1557d6b5e217c1e96aaeb2377accbd
Signed-off-by: Matthew Bentham <Matthew.Bentham@arm.com>
diff --git a/src/backends/cl/ClLayerSupport.cpp b/src/backends/cl/ClLayerSupport.cpp
index 49312d6..6e1e9d9 100644
--- a/src/backends/cl/ClLayerSupport.cpp
+++ b/src/backends/cl/ClLayerSupport.cpp
@@ -599,9 +599,7 @@
                                         const PermuteDescriptor& descriptor,
                                         Optional<std::string&> reasonIfUnsupported) const
 {
-    ignore_unused(input);
-    ignore_unused(output);
-    FORWARD_WORKLOAD_VALIDATE_FUNC(ClPermuteWorkloadValidate, reasonIfUnsupported, descriptor);
+    FORWARD_WORKLOAD_VALIDATE_FUNC(ClPermuteWorkloadValidate, reasonIfUnsupported, input, output, descriptor);
 }
 
 bool ClLayerSupport::IsPooling2dSupported(const TensorInfo& input,
diff --git a/src/backends/cl/workloads/ClPermuteWorkload.cpp b/src/backends/cl/workloads/ClPermuteWorkload.cpp
index bec80e5..dd495c8 100644
--- a/src/backends/cl/workloads/ClPermuteWorkload.cpp
+++ b/src/backends/cl/workloads/ClPermuteWorkload.cpp
@@ -14,16 +14,16 @@
 namespace armnn
 {
 
-arm_compute::Status ClPermuteWorkloadValidate(const PermuteDescriptor& descriptor)
+arm_compute::Status ClPermuteWorkloadValidate(const TensorInfo& input,
+                                              const TensorInfo& output,
+                                              const PermuteDescriptor& descriptor)
 {
-    const armnn::PermutationVector& perm = descriptor.m_DimMappings;
+    const arm_compute::TensorInfo aclInputInfo = armcomputetensorutils::BuildArmComputeTensorInfo(input);
+    const arm_compute::TensorInfo aclOutputInfo = armcomputetensorutils::BuildArmComputeTensorInfo(output);
+    const armnn::PermutationVector& mappings = descriptor.m_DimMappings;
 
-    ARM_COMPUTE_RETURN_ERROR_ON_MSG(!perm.IsEqual({ 0U, 3U, 1U, 2U })
-                                    && !perm.IsEqual({ 0U, 2U, 3U, 1U })
-                                    && !perm.IsEqual({ 3U, 2U, 0U, 1U }),
-    "Only [0, 3, 1, 2], [0, 2, 3, 1] and [3, 2, 0, 1] permutations are supported");
-
-    return arm_compute::Status{};
+    return arm_compute::CLPermute::validate(&aclInputInfo, &aclOutputInfo,
+                                      armcomputetensorutils::BuildArmComputePermutationVector(mappings));
 }
 
 ClPermuteWorkload::ClPermuteWorkload(const PermuteQueueDescriptor& descriptor,
diff --git a/src/backends/cl/workloads/ClPermuteWorkload.hpp b/src/backends/cl/workloads/ClPermuteWorkload.hpp
index 58aa7ea..8b5f4c6 100644
--- a/src/backends/cl/workloads/ClPermuteWorkload.hpp
+++ b/src/backends/cl/workloads/ClPermuteWorkload.hpp
@@ -16,7 +16,9 @@
 namespace armnn
 {
 
-arm_compute::Status ClPermuteWorkloadValidate(const PermuteDescriptor& descriptor);
+arm_compute::Status ClPermuteWorkloadValidate(const TensorInfo& input,
+                                              const TensorInfo& output,
+                                              const PermuteDescriptor& descriptor);
 
 class ClPermuteWorkload : public BaseWorkload<PermuteQueueDescriptor>
 {