This commit enables to support LogicalNot op for ACL neon.
Signed-off-by: jiseob.jang <jiseob.jang@samsung.com>
ActivationBuilder{*_execution_builder}.append(activation, ofm_alloc->handle());
}
+void KernelGenerator::visit(const model::operation::LogicalNotNode &node)
+{
+ const auto output_index{node.getOutputs().at(0)};
+ const auto input_index{node.getInputs().at(model::operation::LogicalNotNode::Input::INPUT)};
+
+ auto output_alloc = _tensor_builder->at(output_index).get();
+ auto input_alloc = _tensor_builder->at(input_index).get();
+
+ std::unique_ptr<::arm_compute::IFunction> fn;
+
+ auto l = nnfw::cpp14::make_unique<::arm_compute::NEBitwiseNot>();
+
+ l->configure(input_alloc->handle(), output_alloc->handle());
+
+ fn = std::move(l);
+
+ auto acl_fn = asAclFunction(std::move(fn));
+
+ _execution_builder->append(std::move(acl_fn));
+}
+
void KernelGenerator::visit(const model::operation::LogisticNode &node)
{
const auto ofm_index{node.getOutputs().at(0)};
void visit(const model::operation::FullyConnectedNode &) override;
void visit(const model::operation::L2NormalizationNode &) override;
void visit(const model::operation::L2Pool2DNode &) override;
+ void visit(const model::operation::LogicalNotNode &) override;
void visit(const model::operation::LogisticNode &) override;
void visit(const model::operation::MulNode &) override;
void visit(const model::operation::ReLUNode &) override;
void ShapeFixer::visit(const model::operation::L2Pool2DNode &) { /* DO NOTHING */}
+void ShapeFixer::visit(const model::operation::LogicalNotNode &) { /* DO NOTHING */}
+
void ShapeFixer::visit(const model::operation::LogisticNode &) { /* DO NOTHING */}
void ShapeFixer::visit(const model::operation::MulNode &node)
void visit(const model::operation::FullyConnectedNode &) override;
void visit(const model::operation::L2NormalizationNode &) override;
void visit(const model::operation::L2Pool2DNode &) override;
+ void visit(const model::operation::LogicalNotNode &) override;
void visit(const model::operation::LogisticNode &) override;
void visit(const model::operation::MulNode &) override;
void visit(const model::operation::ReLUNode &) override;
# Unexpected result
GeneratedTests.split*
GeneratedTests.pack*
-generatedtests.logical_not_ex*
-# Need to be fixed
-GeneratedTests.logical_not_ex_1D
-GeneratedTests.logical_not_ex_4D
# Float error
GeneratedTests.exp_ex_1D_float
GeneratedTests.exp_ex_2D_float