blob: 380ce4a3f513c9d216aff5e80f39bbe88bc9a41e [file] [log] [blame]
Narumol Prangnawaratb8d771a2020-08-14 11:51:12 +01001//
2// Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5#pragma once
6
7#include <armnn/utility/IgnoreUnused.hpp>
8
9#include <backendsCommon/LayerSupportBase.hpp>
10
11namespace armnn
12{
13
14class MockImportLayerSupport : public LayerSupportBase
15{
16public:
Cathal Corbett34b429c2021-12-24 12:24:40 +000017 bool IsLayerSupported(const LayerType& type,
18 const std::vector<TensorInfo>& infos,
19 const BaseDescriptor& /*descriptor*/,
20 const Optional<LstmInputParamsInfo>& /*lstmParamsInfo*/,
21 const Optional<QuantizedLstmInputParamsInfo>& /*quantizedLstmParamsInfo*/,
22 Optional<std::string&> reasonIfUnsupported) const override
23 {
24 switch(type)
25 {
26 case LayerType::Addition:
27 return IsAdditionSupported(infos[0], infos[1], infos[2], reasonIfUnsupported);
28 case LayerType::Input:
29 return IsInputSupported(infos[0], reasonIfUnsupported);
30 case LayerType::Output:
31 return IsOutputSupported(infos[0], reasonIfUnsupported);
32 case LayerType::MemCopy:
33 return LayerSupportBase::IsMemCopySupported(infos[0], infos[1], reasonIfUnsupported);
34 case LayerType::MemImport:
35 return LayerSupportBase::IsMemImportSupported(infos[0], infos[1], reasonIfUnsupported);
36 default:
37 return false;
38 }
39 }
40
Narumol Prangnawaratb8d771a2020-08-14 11:51:12 +010041 bool IsAdditionSupported(const TensorInfo& input0,
42 const TensorInfo& input1,
43 const TensorInfo& output,
44 Optional<std::string&> reasonIfUnsupported = EmptyOptional()) const override
45 {
46 IgnoreUnused(input0);
47 IgnoreUnused(input1);
48 IgnoreUnused(output);
49 IgnoreUnused(reasonIfUnsupported);
50 return true;
51 }
52
53 bool IsInputSupported(const TensorInfo& input,
54 Optional<std::string&> reasonIfUnsupported) const override
55 {
56 IgnoreUnused(input);
57 IgnoreUnused(reasonIfUnsupported);
58 return true;
59 }
60
61 bool IsOutputSupported(const TensorInfo& output,
62 Optional<std::string&> reasonIfUnsupported) const override
63 {
64 IgnoreUnused(output);
65 IgnoreUnused(reasonIfUnsupported);
66 return true;
67 }
68};
69
70} // namespace armnn