IVGCVSW-4259 Add frontend and reference workload for UnaryOperationLayer

* Added new layer named ElementwiseUnary
* Deprecated existing Abs/Rsqrt layer functions
* Updated existing Abs/Rsqrt test infrastructure to use new layer
* Added boilerplate for new Exp,Neg,Sqrt elemwise op layers
* AbsQuantize test removed pending future commit
* Serialization support added

!android-nn-driver:2550

Change-Id: Ic595c645925e17b45db568187fd05646daf2e87f
Signed-off-by: josh minor <josh.minor@arm.com>
diff --git a/src/backends/backendsCommon/LayerSupportBase.cpp b/src/backends/backendsCommon/LayerSupportBase.cpp
index 8332774..b19356f 100644
--- a/src/backends/backendsCommon/LayerSupportBase.cpp
+++ b/src/backends/backendsCommon/LayerSupportBase.cpp
@@ -3,7 +3,10 @@
 // SPDX-License-Identifier: MIT
 //
 
+#include <armnn/Deprecated.hpp>
+#include <armnn/Descriptors.hpp>
 #include <armnn/Exceptions.hpp>
+#include <armnn/Types.hpp>
 
 #include <backendsCommon/LayerSupportBase.hpp>
 
@@ -195,6 +198,26 @@
     return DefaultLayerSupport(__func__, __FILE__, __LINE__, reasonIfUnsupported);
 }
 
+bool LayerSupportBase::IsElementwiseUnarySupported(const TensorInfo& input,
+                                                   const TensorInfo& output,
+                                                   const ElementwiseUnaryDescriptor& descriptor,
+                                                   Optional<std::string&> reasonIfUnsupported) const
+{
+    if (descriptor.m_Operation == UnaryOperation::Abs)
+    {
+        ARMNN_NO_DEPRECATE_WARN_BEGIN
+        return IsAbsSupported(input, output, reasonIfUnsupported);
+        ARMNN_NO_DEPRECATE_WARN_END
+    }
+    else if (descriptor.m_Operation == UnaryOperation::Rsqrt)
+    {
+        ARMNN_NO_DEPRECATE_WARN_BEGIN
+        return IsRsqrtSupported(input, output, reasonIfUnsupported);
+        ARMNN_NO_DEPRECATE_WARN_END
+    }
+    return false;
+}
+
 bool LayerSupportBase::IsEqualSupported(const armnn::TensorInfo& /*input0*/,
                                         const armnn::TensorInfo& /*input1*/,
                                         const armnn::TensorInfo& /*output*/,