xref: /aosp_15_r20/external/armnn/src/backends/backendsCommon/test/layerTests/PadTestImpl.hpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #pragma once
7 
8 #include <armnnTestUtils/LayerTestResult.hpp>
9 
10 #include <ResolveType.hpp>
11 
12 #include <armnn/Types.hpp>
13 
14 #include <armnn/backends/IBackendInternal.hpp>
15 #include <armnn/backends/WorkloadFactory.hpp>
16 
17 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
18 LayerTestResult<T, 2> Pad2dTestCommon(
19     armnn::IWorkloadFactory& workloadFactory,
20     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
21     const armnn::ITensorHandleFactory& tensorHandleFactory,
22     float qScale,
23     int32_t qOffset,
24     const float customPaddingValue = 0.0f);
25 
26 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
27 LayerTestResult<T, 3> Pad3dTestCommon(
28     armnn::IWorkloadFactory& workloadFactory,
29     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
30     const armnn::ITensorHandleFactory& tensorHandleFactory,
31     float qScale,
32     int32_t qOffset);
33 
34 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
35 LayerTestResult<T, 4> Pad4dTestCommon(
36     armnn::IWorkloadFactory& workloadFactory,
37     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
38     const armnn::ITensorHandleFactory& tensorHandleFactory,
39     float qScale,
40     int32_t qOffset);
41 
42 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
43 LayerTestResult<T, 2> PadQAsymmTestCommon(
44     armnn::IWorkloadFactory& workloadFactory,
45     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
46     const armnn::ITensorHandleFactory& tensorHandleFactory,
47     float qScale,
48     int32_t qOffset,
49     const float customPaddingValue = 0.0f);
50 
51 LayerTestResult<uint8_t, 2> PadUint82dTest(
52     armnn::IWorkloadFactory& workloadFactory,
53     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
54     const armnn::ITensorHandleFactory& tensorHandleFactory);
55 
56 LayerTestResult<uint8_t, 2> PadUint82dCustomPaddingTest(
57     armnn::IWorkloadFactory& workloadFactory,
58     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
59     const armnn::ITensorHandleFactory& tensorHandleFactory);
60 
61 LayerTestResult<uint8_t, 3> PadUint83dTest(
62     armnn::IWorkloadFactory& workloadFactory,
63     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
64     const armnn::ITensorHandleFactory& tensorHandleFactory);
65 
66 LayerTestResult<uint8_t, 4> PadUint84dTest(
67     armnn::IWorkloadFactory& workloadFactory,
68     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
69     const armnn::ITensorHandleFactory& tensorHandleFactory);
70 
71 LayerTestResult<float, 2> PadFloat322dTest(
72     armnn::IWorkloadFactory& workloadFactory,
73     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
74     const armnn::ITensorHandleFactory& tensorHandleFactory);
75 
76 LayerTestResult<float, 2> PadFloat322dCustomPaddingTest(
77     armnn::IWorkloadFactory& workloadFactory,
78     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
79     const armnn::ITensorHandleFactory& tensorHandleFactory);
80 
81 LayerTestResult<float, 3> PadFloat323dTest(
82     armnn::IWorkloadFactory& workloadFactory,
83     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
84     const armnn::ITensorHandleFactory& tensorHandleFactory);
85 
86 LayerTestResult<float, 4> PadFloat324dTest(
87     armnn::IWorkloadFactory& workloadFactory,
88     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
89     const armnn::ITensorHandleFactory& tensorHandleFactory);
90 
91 LayerTestResult<armnn::BFloat16, 2> PadBFloat162dTest(
92     armnn::IWorkloadFactory& workloadFactory,
93     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
94     const armnn::ITensorHandleFactory& tensorHandleFactory);
95 
96 LayerTestResult<armnn::BFloat16, 2> PadBFloat162dCustomPaddingTest(
97     armnn::IWorkloadFactory& workloadFactory,
98     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
99     const armnn::ITensorHandleFactory& tensorHandleFactory);
100 
101 LayerTestResult<armnn::BFloat16, 3> PadBFloat163dTest(
102     armnn::IWorkloadFactory& workloadFactory,
103     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
104     const armnn::ITensorHandleFactory& tensorHandleFactory);
105 
106 LayerTestResult<armnn::BFloat16, 4> PadBFloat164dTest(
107     armnn::IWorkloadFactory& workloadFactory,
108     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
109     const armnn::ITensorHandleFactory& tensorHandleFactory);
110 
111 LayerTestResult<int8_t, 2> PadInt82dTest(
112     armnn::IWorkloadFactory& workloadFactory,
113     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
114     const armnn::ITensorHandleFactory& tensorHandleFactory);
115 
116 LayerTestResult<int8_t, 2> PadInt82dCustomPaddingTest(
117     armnn::IWorkloadFactory& workloadFactory,
118     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
119     const armnn::ITensorHandleFactory& tensorHandleFactory);
120 
121 LayerTestResult<int8_t, 3> PadInt83dTest(
122     armnn::IWorkloadFactory& workloadFactory,
123     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
124     const armnn::ITensorHandleFactory& tensorHandleFactory);
125 
126 LayerTestResult<int8_t, 4> PadInt84dTest(
127     armnn::IWorkloadFactory& workloadFactory,
128     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
129     const armnn::ITensorHandleFactory& tensorHandleFactory);
130 
131 LayerTestResult<int8_t, 2> PadInt82dAsymmTest(
132     armnn::IWorkloadFactory& workloadFactory,
133     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
134     const armnn::ITensorHandleFactory& tensorHandleFactory);
135 
136 LayerTestResult<int8_t, 2> PadInt82dCustomPaddingAsymmTest(
137     armnn::IWorkloadFactory& workloadFactory,
138     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
139     const armnn::ITensorHandleFactory& tensorHandleFactory);