IVGCVSW-7568 Implement Sub ElementwiseBinary operator GpuFsa

* Added support for Gpu Sub operator
* Added unit tests

Signed-off-by: John Mcloughlin <john.mcloughlin@arm.com>
Change-Id: I1efaa485772a3716e3781566843bd50bd9bab811
diff --git a/src/backends/gpuFsa/GpuFsaBackend.cpp b/src/backends/gpuFsa/GpuFsaBackend.cpp
index 7951b17..8b62aec 100644
--- a/src/backends/gpuFsa/GpuFsaBackend.cpp
+++ b/src/backends/gpuFsa/GpuFsaBackend.cpp
@@ -23,6 +23,7 @@
 #include "layers/GpuFsaConvolution2d.hpp"
 #include "layers/GpuFsaDepthwiseConvolution2d.hpp"
 #include "layers/GpuFsaElementwiseBinaryAdd.hpp"
+#include "layers/GpuFsaElementwiseBinarySub.hpp"
 
 namespace armnn
 {
@@ -305,6 +306,13 @@
 
                     GpuFsaElementwiseBinaryAddCreateOp(preCompiledBlobPtr, input0, input1);
                 }
+                else if (desc->m_Operation == BinaryOperation::Sub)
+                {
+                    auto input0 = base.GetInputSlot(0).GetConnectedOutputSlot()->GetTensorInfo();
+                    auto input1 = base.GetInputSlot(1).GetConnectedOutputSlot()->GetTensorInfo();
+
+                    GpuFsaElementwiseBinarySubCreateOp(preCompiledBlobPtr, input0, input1);
+                }
                 break;
             }
             default: