IVGCVSW-3813 Add Unary Elementwise Operation 'NEG' support to the android-nn-driver
* Implemented ClNegWorkload
* Implemented NeonNegWorkload
* Enabled 'NEG' operator on CL and Neon as well as Ref
* Implemented unit tests for 'NEG' operator
Signed-off-by: Sadik Armagan <sadik.armagan@arm.com>
Change-Id: I3d7a892692716636cae6bdf8ddd238e3d1ea064f
diff --git a/src/backends/neon/NeonWorkloadFactory.cpp b/src/backends/neon/NeonWorkloadFactory.cpp
index cc7dca0..bf26d82 100644
--- a/src/backends/neon/NeonWorkloadFactory.cpp
+++ b/src/backends/neon/NeonWorkloadFactory.cpp
@@ -218,9 +218,8 @@
return std::make_unique<NeonDivisionWorkload>(descriptor, info);
}
-std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateElementwiseUnary(const ElementwiseUnaryQueueDescriptor&
- descriptor,
- const WorkloadInfo& info) const
+std::unique_ptr<IWorkload> NeonWorkloadFactory::CreateElementwiseUnary(
+ const ElementwiseUnaryQueueDescriptor& descriptor, const WorkloadInfo& info) const
{
if (descriptor.m_Parameters.m_Operation == UnaryOperation::Abs)
{
@@ -238,6 +237,10 @@
return std::make_unique<NeonRsqrtWorkload>(rsqrtQueueDescriptor, info);
}
+ else if (descriptor.m_Parameters.m_Operation == UnaryOperation::Neg)
+ {
+ return std::make_unique<NeonNegWorkload>(descriptor, info);
+ }
return MakeWorkloadHelper<NullWorkload, NullWorkload>(descriptor, info);
}