IVGCVSW-7570 GpuFsa Op: Add ElemenWiseBinary Operators available

* Refactor to generalize
* Add MUL

Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com>
Change-Id: I2ee273d50d3a8b114b5a41abc8ee7585b15e3308
diff --git a/src/backends/gpuFsa/GpuFsaLayerSupport.cpp b/src/backends/gpuFsa/GpuFsaLayerSupport.cpp
index 56af9c4..1ee80c9 100644
--- a/src/backends/gpuFsa/GpuFsaLayerSupport.cpp
+++ b/src/backends/gpuFsa/GpuFsaLayerSupport.cpp
@@ -13,8 +13,7 @@
 #include "layers/GpuFsaCast.hpp"
 #include "layers/GpuFsaConvolution2d.hpp"
 #include "layers/GpuFsaDepthwiseConvolution2d.hpp"
-#include "layers/GpuFsaElementwiseBinaryAdd.hpp"
-#include "layers/GpuFsaElementwiseBinarySub.hpp"
+#include "layers/GpuFsaElementwiseBinary.hpp"
 #include "layers/GpuFsaPooling2d.hpp"
 #include "layers/GpuFsaResize.hpp"
 #endif
@@ -150,28 +149,15 @@
             if (infos.size() != 3)
             {
                 throw InvalidArgumentException("Invalid number of ElementwiseBinary TensorInfos. "
-                                               "TensorInfos should be of format: {input0, input1, output0}.");
+                                               "TensorInfos should be of format: {input0, input1, output}.");
             }
 
             auto desc = PolymorphicDowncast<const ElementwiseBinaryDescriptor*>(&descriptor);
-            if (desc->m_Operation == BinaryOperation::Add)
-            {
-                FORWARD_LAYER_VALIDATE_FUNC(GpuFsaElementwiseBinaryAddValidate,
-                                            reasonIfUnsupported,
-                                            infos[0],
-                                            infos[1]);
-            }
-            else if (desc->m_Operation == BinaryOperation::Sub)
-            {
-                FORWARD_LAYER_VALIDATE_FUNC(GpuFsaElementwiseBinarySubValidate,
-                                            reasonIfUnsupported,
-                                            infos[0],
-                                            infos[1]);
-            }
-            else
-            {
-                throw InvalidArgumentException("Invalid ElementwiseBinary BinaryOperation operation.");
-            }
+            FORWARD_LAYER_VALIDATE_FUNC(GpuFsaElementwiseBinaryValidate,
+                                        reasonIfUnsupported,
+                                        infos[0],
+                                        infos[1],
+                                        *desc);
         }
         case LayerType::Pooling2d:
         {