xref: /aosp_15_r20/external/armnn/src/backends/neon/test/NeonEndToEndTests.cpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1*89c4ff92SAndroid Build Coastguard Worker //
2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2017-2023 Arm Ltd and Contributors. All rights reserved.
3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT
4*89c4ff92SAndroid Build Coastguard Worker //
5*89c4ff92SAndroid Build Coastguard Worker 
6*89c4ff92SAndroid Build Coastguard Worker #include <backendsCommon/test/EndToEndTestImpl.hpp>
7*89c4ff92SAndroid Build Coastguard Worker 
8*89c4ff92SAndroid Build Coastguard Worker #include <backendsCommon/test/ActivationEndToEndTestImpl.hpp>
9*89c4ff92SAndroid Build Coastguard Worker #include <backendsCommon/test/AdditionEndToEndTestImpl.hpp>
10*89c4ff92SAndroid Build Coastguard Worker #include <backendsCommon/test/ArgMinMaxEndToEndTestImpl.hpp>
11*89c4ff92SAndroid Build Coastguard Worker #include <backendsCommon/test/BatchMatMulEndToEndTestImpl.hpp>
12*89c4ff92SAndroid Build Coastguard Worker #include <backendsCommon/test/ComparisonEndToEndTestImpl.hpp>
13*89c4ff92SAndroid Build Coastguard Worker #include <backendsCommon/test/ConcatEndToEndTestImpl.hpp>
14*89c4ff92SAndroid Build Coastguard Worker #include <backendsCommon/test/DepthToSpaceEndToEndTestImpl.hpp>
15*89c4ff92SAndroid Build Coastguard Worker #include <backendsCommon/test/DequantizeEndToEndTestImpl.hpp>
16*89c4ff92SAndroid Build Coastguard Worker #include <backendsCommon/test/DetectionPostProcessEndToEndTestImpl.hpp>
17*89c4ff92SAndroid Build Coastguard Worker #include <backendsCommon/test/ElementwiseUnaryEndToEndTestImpl.hpp>
18*89c4ff92SAndroid Build Coastguard Worker #include <backendsCommon/test/FillEndToEndTestImpl.hpp>
19*89c4ff92SAndroid Build Coastguard Worker #include <backendsCommon/test/InstanceNormalizationEndToEndTestImpl.hpp>
20*89c4ff92SAndroid Build Coastguard Worker #include <backendsCommon/test/PreluEndToEndTestImpl.hpp>
21*89c4ff92SAndroid Build Coastguard Worker #include <backendsCommon/test/QLstmEndToEndTestImpl.hpp>
22*89c4ff92SAndroid Build Coastguard Worker #include <backendsCommon/test/QuantizedLstmEndToEndTestImpl.hpp>
23*89c4ff92SAndroid Build Coastguard Worker #include <backendsCommon/test/ReduceEndToEndTestImpl.hpp>
24*89c4ff92SAndroid Build Coastguard Worker #include <backendsCommon/test/ReshapeEndToEndTestImpl.hpp>
25*89c4ff92SAndroid Build Coastguard Worker #include <backendsCommon/test/SpaceToDepthEndToEndTestImpl.hpp>
26*89c4ff92SAndroid Build Coastguard Worker #include <backendsCommon/test/SplitterEndToEndTestImpl.hpp>
27*89c4ff92SAndroid Build Coastguard Worker #include <backendsCommon/test/TransposeConvolution2dEndToEndTestImpl.hpp>
28*89c4ff92SAndroid Build Coastguard Worker #include <backendsCommon/test/TransposeEndToEndTestImpl.hpp>
29*89c4ff92SAndroid Build Coastguard Worker 
30*89c4ff92SAndroid Build Coastguard Worker #include <doctest/doctest.h>
31*89c4ff92SAndroid Build Coastguard Worker 
32*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE("NeonEndToEnd")
33*89c4ff92SAndroid Build Coastguard Worker {
34*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> neonDefaultBackends = {armnn::Compute::CpuAcc};
35*89c4ff92SAndroid Build Coastguard Worker 
36*89c4ff92SAndroid Build Coastguard Worker // ElementwiseUnary
37*89c4ff92SAndroid Build Coastguard Worker // Abs
38*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonAbsEndToEndTestFloat32")
39*89c4ff92SAndroid Build Coastguard Worker {
40*89c4ff92SAndroid Build Coastguard Worker     ElementwiseUnarySimpleEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
41*89c4ff92SAndroid Build Coastguard Worker                                                              UnaryOperation::Abs);
42*89c4ff92SAndroid Build Coastguard Worker }
43*89c4ff92SAndroid Build Coastguard Worker // Rsqrt
44*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonRsqrtEndToEndTestFloat32")
45*89c4ff92SAndroid Build Coastguard Worker {
46*89c4ff92SAndroid Build Coastguard Worker     ElementwiseUnarySimpleEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
47*89c4ff92SAndroid Build Coastguard Worker                                                              UnaryOperation::Rsqrt);
48*89c4ff92SAndroid Build Coastguard Worker }
49*89c4ff92SAndroid Build Coastguard Worker 
50*89c4ff92SAndroid Build Coastguard Worker // Constant
51*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("ConstantUsage_Neon_Float32")
52*89c4ff92SAndroid Build Coastguard Worker {
53*89c4ff92SAndroid Build Coastguard Worker     CHECK(ConstantUsageFloat32Test(neonDefaultBackends));
54*89c4ff92SAndroid Build Coastguard Worker }
55*89c4ff92SAndroid Build Coastguard Worker 
56*89c4ff92SAndroid Build Coastguard Worker #if defined(ARMNNREF_ENABLED)
57*89c4ff92SAndroid Build Coastguard Worker 
58*89c4ff92SAndroid Build Coastguard Worker // This test unit needs the reference backend, it's not available if the reference backend is not built
59*89c4ff92SAndroid Build Coastguard Worker 
60*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("FallbackToCpuRef")
61*89c4ff92SAndroid Build Coastguard Worker {
62*89c4ff92SAndroid Build Coastguard Worker     using namespace armnn;
63*89c4ff92SAndroid Build Coastguard Worker 
64*89c4ff92SAndroid Build Coastguard Worker     // Create runtime in which test will run and allow fallback to CpuRef.
65*89c4ff92SAndroid Build Coastguard Worker     IRuntime::CreationOptions options;
66*89c4ff92SAndroid Build Coastguard Worker     IRuntimePtr runtime(IRuntime::Create(options));
67*89c4ff92SAndroid Build Coastguard Worker 
68*89c4ff92SAndroid Build Coastguard Worker     // Builds up the structure of the network.
69*89c4ff92SAndroid Build Coastguard Worker     INetworkPtr net(INetwork::Create());
70*89c4ff92SAndroid Build Coastguard Worker 
71*89c4ff92SAndroid Build Coastguard Worker     IConnectableLayer* input = net->AddInputLayer(0);
72*89c4ff92SAndroid Build Coastguard Worker 
73*89c4ff92SAndroid Build Coastguard Worker     // This layer configuration isn't supported by CpuAcc but we allow fallback to CpuRef so it shoud pass.
74*89c4ff92SAndroid Build Coastguard Worker     NormalizationDescriptor descriptor;
75*89c4ff92SAndroid Build Coastguard Worker     IConnectableLayer* pooling = net->AddNormalizationLayer(descriptor);
76*89c4ff92SAndroid Build Coastguard Worker 
77*89c4ff92SAndroid Build Coastguard Worker     IConnectableLayer* output = net->AddOutputLayer(0);
78*89c4ff92SAndroid Build Coastguard Worker 
79*89c4ff92SAndroid Build Coastguard Worker     input->GetOutputSlot(0).Connect(pooling->GetInputSlot(0));
80*89c4ff92SAndroid Build Coastguard Worker     pooling->GetOutputSlot(0).Connect(output->GetInputSlot(0));
81*89c4ff92SAndroid Build Coastguard Worker 
82*89c4ff92SAndroid Build Coastguard Worker     input->GetOutputSlot(0).SetTensorInfo(TensorInfo({ 1, 1, 4, 4 }, DataType::Float32));
83*89c4ff92SAndroid Build Coastguard Worker     pooling->GetOutputSlot(0).SetTensorInfo(TensorInfo({ 1, 1, 4, 4 }, DataType::Float32));
84*89c4ff92SAndroid Build Coastguard Worker 
85*89c4ff92SAndroid Build Coastguard Worker     // optimize the network
86*89c4ff92SAndroid Build Coastguard Worker     std::vector<BackendId> backends = {Compute::CpuAcc, Compute::CpuRef};
87*89c4ff92SAndroid Build Coastguard Worker     IOptimizedNetworkPtr optNet = Optimize(*net, backends, runtime->GetDeviceSpec());
88*89c4ff92SAndroid Build Coastguard Worker 
89*89c4ff92SAndroid Build Coastguard Worker     // Load it into the runtime. It should pass.
90*89c4ff92SAndroid Build Coastguard Worker     NetworkId netId;
91*89c4ff92SAndroid Build Coastguard Worker     CHECK(runtime->LoadNetwork(netId, std::move(optNet)) == Status::Success);
92*89c4ff92SAndroid Build Coastguard Worker }
93*89c4ff92SAndroid Build Coastguard Worker 
94*89c4ff92SAndroid Build Coastguard Worker #endif
95*89c4ff92SAndroid Build Coastguard Worker 
96*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonGreaterSimpleEndToEndTest")
97*89c4ff92SAndroid Build Coastguard Worker {
98*89c4ff92SAndroid Build Coastguard Worker     const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0,  1, 1, 1, 1,
99*89c4ff92SAndroid Build Coastguard Worker                                                 0, 0, 0, 0,  0, 0, 0, 0 });
100*89c4ff92SAndroid Build Coastguard Worker 
101*89c4ff92SAndroid Build Coastguard Worker     ComparisonSimpleEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
102*89c4ff92SAndroid Build Coastguard Worker                                                        ComparisonOperation::Greater,
103*89c4ff92SAndroid Build Coastguard Worker                                                        expectedOutput);
104*89c4ff92SAndroid Build Coastguard Worker }
105*89c4ff92SAndroid Build Coastguard Worker 
106*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonGreaterSimpleEndToEndUint8Test")
107*89c4ff92SAndroid Build Coastguard Worker {
108*89c4ff92SAndroid Build Coastguard Worker     const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0,  1, 1, 1, 1,
109*89c4ff92SAndroid Build Coastguard Worker                                                 0, 0, 0, 0,  0, 0, 0, 0 });
110*89c4ff92SAndroid Build Coastguard Worker 
111*89c4ff92SAndroid Build Coastguard Worker     ComparisonSimpleEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends,
112*89c4ff92SAndroid Build Coastguard Worker                                                                ComparisonOperation::Greater,
113*89c4ff92SAndroid Build Coastguard Worker                                                                expectedOutput);
114*89c4ff92SAndroid Build Coastguard Worker }
115*89c4ff92SAndroid Build Coastguard Worker 
116*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonGreaterBroadcastEndToEndTest")
117*89c4ff92SAndroid Build Coastguard Worker {
118*89c4ff92SAndroid Build Coastguard Worker     const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
119*89c4ff92SAndroid Build Coastguard Worker                                                 1, 1, 1, 1, 1, 1 });
120*89c4ff92SAndroid Build Coastguard Worker 
121*89c4ff92SAndroid Build Coastguard Worker     ComparisonBroadcastEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
122*89c4ff92SAndroid Build Coastguard Worker                                                           ComparisonOperation::Greater,
123*89c4ff92SAndroid Build Coastguard Worker                                                           expectedOutput);
124*89c4ff92SAndroid Build Coastguard Worker }
125*89c4ff92SAndroid Build Coastguard Worker 
126*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonGreaterBroadcastEndToEndUint8Test")
127*89c4ff92SAndroid Build Coastguard Worker {
128*89c4ff92SAndroid Build Coastguard Worker     const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
129*89c4ff92SAndroid Build Coastguard Worker                                                 1, 1, 1, 1, 1, 1 });
130*89c4ff92SAndroid Build Coastguard Worker 
131*89c4ff92SAndroid Build Coastguard Worker     ComparisonBroadcastEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends,
132*89c4ff92SAndroid Build Coastguard Worker                                                                   ComparisonOperation::Greater,
133*89c4ff92SAndroid Build Coastguard Worker                                                                   expectedOutput);
134*89c4ff92SAndroid Build Coastguard Worker }
135*89c4ff92SAndroid Build Coastguard Worker 
136*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonAdditionEndToEndFloat32Test")
137*89c4ff92SAndroid Build Coastguard Worker {
138*89c4ff92SAndroid Build Coastguard Worker     AdditionEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
139*89c4ff92SAndroid Build Coastguard Worker }
140*89c4ff92SAndroid Build Coastguard Worker 
141*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonAdditionEndToEndUint8Test")
142*89c4ff92SAndroid Build Coastguard Worker {
143*89c4ff92SAndroid Build Coastguard Worker     AdditionEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
144*89c4ff92SAndroid Build Coastguard Worker }
145*89c4ff92SAndroid Build Coastguard Worker 
146*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonBatchMatMulEndToEndFloat32Test")
147*89c4ff92SAndroid Build Coastguard Worker {
148*89c4ff92SAndroid Build Coastguard Worker     BatchMatMulEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
149*89c4ff92SAndroid Build Coastguard Worker }
150*89c4ff92SAndroid Build Coastguard Worker 
151*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonConcatEndToEndDim0Test")
152*89c4ff92SAndroid Build Coastguard Worker {
153*89c4ff92SAndroid Build Coastguard Worker     ConcatDim0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
154*89c4ff92SAndroid Build Coastguard Worker }
155*89c4ff92SAndroid Build Coastguard Worker 
156*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonConcatEndToEndDim0Uint8Test")
157*89c4ff92SAndroid Build Coastguard Worker {
158*89c4ff92SAndroid Build Coastguard Worker     ConcatDim0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
159*89c4ff92SAndroid Build Coastguard Worker }
160*89c4ff92SAndroid Build Coastguard Worker 
161*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonConcatEndToEndDim1Test")
162*89c4ff92SAndroid Build Coastguard Worker {
163*89c4ff92SAndroid Build Coastguard Worker     ConcatDim1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
164*89c4ff92SAndroid Build Coastguard Worker }
165*89c4ff92SAndroid Build Coastguard Worker 
166*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonConcatEndToEndDim1Uint8Test")
167*89c4ff92SAndroid Build Coastguard Worker {
168*89c4ff92SAndroid Build Coastguard Worker     ConcatDim1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
169*89c4ff92SAndroid Build Coastguard Worker }
170*89c4ff92SAndroid Build Coastguard Worker 
171*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonConcatEndToEndDim3Test")
172*89c4ff92SAndroid Build Coastguard Worker {
173*89c4ff92SAndroid Build Coastguard Worker     ConcatDim3EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
174*89c4ff92SAndroid Build Coastguard Worker }
175*89c4ff92SAndroid Build Coastguard Worker 
176*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonConcatEndToEndDim3Uint8Test")
177*89c4ff92SAndroid Build Coastguard Worker {
178*89c4ff92SAndroid Build Coastguard Worker     ConcatDim3EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
179*89c4ff92SAndroid Build Coastguard Worker }
180*89c4ff92SAndroid Build Coastguard Worker 
181*89c4ff92SAndroid Build Coastguard Worker // DepthToSpace
182*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonDephtToSpaceEndToEndNchwFloat32")
183*89c4ff92SAndroid Build Coastguard Worker {
184*89c4ff92SAndroid Build Coastguard Worker     DepthToSpaceEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NCHW);
185*89c4ff92SAndroid Build Coastguard Worker }
186*89c4ff92SAndroid Build Coastguard Worker 
187*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonDephtToSpaceEndToEndNchwFloat16")
188*89c4ff92SAndroid Build Coastguard Worker {
189*89c4ff92SAndroid Build Coastguard Worker     DepthToSpaceEndToEnd<armnn::DataType::Float16>(neonDefaultBackends, armnn::DataLayout::NCHW);
190*89c4ff92SAndroid Build Coastguard Worker }
191*89c4ff92SAndroid Build Coastguard Worker 
192*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonDephtToSpaceEndToEndNchwUint8")
193*89c4ff92SAndroid Build Coastguard Worker {
194*89c4ff92SAndroid Build Coastguard Worker     DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, armnn::DataLayout::NCHW);
195*89c4ff92SAndroid Build Coastguard Worker }
196*89c4ff92SAndroid Build Coastguard Worker 
197*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonDephtToSpaceEndToEndNchwInt16")
198*89c4ff92SAndroid Build Coastguard Worker {
199*89c4ff92SAndroid Build Coastguard Worker     DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(neonDefaultBackends, armnn::DataLayout::NCHW);
200*89c4ff92SAndroid Build Coastguard Worker }
201*89c4ff92SAndroid Build Coastguard Worker 
202*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonDephtToSpaceEndToEndNhwcFloat32")
203*89c4ff92SAndroid Build Coastguard Worker {
204*89c4ff92SAndroid Build Coastguard Worker     DepthToSpaceEndToEnd<armnn::DataType::Float32>(neonDefaultBackends, armnn::DataLayout::NHWC);
205*89c4ff92SAndroid Build Coastguard Worker }
206*89c4ff92SAndroid Build Coastguard Worker 
207*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonDephtToSpaceEndToEndNhwcFloat16")
208*89c4ff92SAndroid Build Coastguard Worker {
209*89c4ff92SAndroid Build Coastguard Worker     DepthToSpaceEndToEnd<armnn::DataType::Float16>(neonDefaultBackends, armnn::DataLayout::NHWC);
210*89c4ff92SAndroid Build Coastguard Worker }
211*89c4ff92SAndroid Build Coastguard Worker 
212*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonDephtToSpaceEndToEndNhwcUint8")
213*89c4ff92SAndroid Build Coastguard Worker {
214*89c4ff92SAndroid Build Coastguard Worker     DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, armnn::DataLayout::NHWC);
215*89c4ff92SAndroid Build Coastguard Worker }
216*89c4ff92SAndroid Build Coastguard Worker 
217*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonDephtToSpaceEndToEndNhwcInt16")
218*89c4ff92SAndroid Build Coastguard Worker {
219*89c4ff92SAndroid Build Coastguard Worker     DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(neonDefaultBackends, armnn::DataLayout::NHWC);
220*89c4ff92SAndroid Build Coastguard Worker }
221*89c4ff92SAndroid Build Coastguard Worker 
222*89c4ff92SAndroid Build Coastguard Worker // Dequantize
223*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("DequantizeEndToEndSimpleTest")
224*89c4ff92SAndroid Build Coastguard Worker {
225*89c4ff92SAndroid Build Coastguard Worker     DequantizeEndToEndSimple<armnn::DataType::QAsymmU8>(neonDefaultBackends);
226*89c4ff92SAndroid Build Coastguard Worker }
227*89c4ff92SAndroid Build Coastguard Worker 
228*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("DequantizeEndToEndOffsetTest")
229*89c4ff92SAndroid Build Coastguard Worker {
230*89c4ff92SAndroid Build Coastguard Worker     DequantizeEndToEndOffset<armnn::DataType::QAsymmU8>(neonDefaultBackends);
231*89c4ff92SAndroid Build Coastguard Worker }
232*89c4ff92SAndroid Build Coastguard Worker 
233*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonEluEndToEndTestFloat32")
234*89c4ff92SAndroid Build Coastguard Worker {
235*89c4ff92SAndroid Build Coastguard Worker     EluEndToEndTest<armnn::DataType::Float32>(neonDefaultBackends);
236*89c4ff92SAndroid Build Coastguard Worker }
237*89c4ff92SAndroid Build Coastguard Worker 
238*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonEluEndToEndTestFloat16")
239*89c4ff92SAndroid Build Coastguard Worker {
240*89c4ff92SAndroid Build Coastguard Worker     EluEndToEndTest<armnn::DataType::Float16>(neonDefaultBackends);
241*89c4ff92SAndroid Build Coastguard Worker }
242*89c4ff92SAndroid Build Coastguard Worker 
243*89c4ff92SAndroid Build Coastguard Worker // HardSwish
244*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonHardSwishEndToEndTestFloat32")
245*89c4ff92SAndroid Build Coastguard Worker {
246*89c4ff92SAndroid Build Coastguard Worker     HardSwishEndToEndTest<armnn::DataType::Float32>(neonDefaultBackends);
247*89c4ff92SAndroid Build Coastguard Worker }
248*89c4ff92SAndroid Build Coastguard Worker 
249*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonHardSwishEndToEndTestFloat16")
250*89c4ff92SAndroid Build Coastguard Worker {
251*89c4ff92SAndroid Build Coastguard Worker     HardSwishEndToEndTest<armnn::DataType::Float16>(neonDefaultBackends);
252*89c4ff92SAndroid Build Coastguard Worker }
253*89c4ff92SAndroid Build Coastguard Worker 
254*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonHardSwishEndToEndTestQAsymmS8")
255*89c4ff92SAndroid Build Coastguard Worker {
256*89c4ff92SAndroid Build Coastguard Worker     HardSwishEndToEndTest<armnn::DataType::QAsymmS8>(neonDefaultBackends);
257*89c4ff92SAndroid Build Coastguard Worker }
258*89c4ff92SAndroid Build Coastguard Worker 
259*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonHardSwishEndToEndTestQAsymmU8")
260*89c4ff92SAndroid Build Coastguard Worker {
261*89c4ff92SAndroid Build Coastguard Worker     HardSwishEndToEndTest<armnn::DataType::QAsymmU8>(neonDefaultBackends);
262*89c4ff92SAndroid Build Coastguard Worker }
263*89c4ff92SAndroid Build Coastguard Worker 
264*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonPreluEndToEndFloat32Test")
265*89c4ff92SAndroid Build Coastguard Worker {
266*89c4ff92SAndroid Build Coastguard Worker     PreluEndToEndNegativeTest<armnn::DataType::Float32>(neonDefaultBackends);
267*89c4ff92SAndroid Build Coastguard Worker }
268*89c4ff92SAndroid Build Coastguard Worker 
269*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonPreluEndToEndTestUint8Test")
270*89c4ff92SAndroid Build Coastguard Worker {
271*89c4ff92SAndroid Build Coastguard Worker     PreluEndToEndPositiveTest<armnn::DataType::QAsymmU8>(neonDefaultBackends);
272*89c4ff92SAndroid Build Coastguard Worker }
273*89c4ff92SAndroid Build Coastguard Worker 
274*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonSpaceToDepthNhwcEndToEndTest1")
275*89c4ff92SAndroid Build Coastguard Worker {
276*89c4ff92SAndroid Build Coastguard Worker     SpaceToDepthNhwcEndToEndTest1(neonDefaultBackends);
277*89c4ff92SAndroid Build Coastguard Worker }
278*89c4ff92SAndroid Build Coastguard Worker 
279*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonSpaceToDepthNchwEndToEndTest1")
280*89c4ff92SAndroid Build Coastguard Worker {
281*89c4ff92SAndroid Build Coastguard Worker     SpaceToDepthNchwEndToEndTest1(neonDefaultBackends);
282*89c4ff92SAndroid Build Coastguard Worker }
283*89c4ff92SAndroid Build Coastguard Worker 
284*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonSpaceToDepthNhwcEndToEndTest2")
285*89c4ff92SAndroid Build Coastguard Worker {
286*89c4ff92SAndroid Build Coastguard Worker     SpaceToDepthNhwcEndToEndTest2(neonDefaultBackends);
287*89c4ff92SAndroid Build Coastguard Worker }
288*89c4ff92SAndroid Build Coastguard Worker 
289*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonSpaceToDepthNchwEndToEndTest2")
290*89c4ff92SAndroid Build Coastguard Worker {
291*89c4ff92SAndroid Build Coastguard Worker     SpaceToDepthNchwEndToEndTest2(neonDefaultBackends);
292*89c4ff92SAndroid Build Coastguard Worker }
293*89c4ff92SAndroid Build Coastguard Worker 
294*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonSplitter1dEndToEndTest")
295*89c4ff92SAndroid Build Coastguard Worker {
296*89c4ff92SAndroid Build Coastguard Worker     Splitter1dEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
297*89c4ff92SAndroid Build Coastguard Worker }
298*89c4ff92SAndroid Build Coastguard Worker 
299*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonSplitter1dEndToEndUint8Test")
300*89c4ff92SAndroid Build Coastguard Worker {
301*89c4ff92SAndroid Build Coastguard Worker     Splitter1dEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
302*89c4ff92SAndroid Build Coastguard Worker }
303*89c4ff92SAndroid Build Coastguard Worker 
304*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonSplitter2dDim0EndToEndTest")
305*89c4ff92SAndroid Build Coastguard Worker {
306*89c4ff92SAndroid Build Coastguard Worker     Splitter2dDim0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
307*89c4ff92SAndroid Build Coastguard Worker }
308*89c4ff92SAndroid Build Coastguard Worker 
309*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonSplitter2dDim1EndToEndTest")
310*89c4ff92SAndroid Build Coastguard Worker {
311*89c4ff92SAndroid Build Coastguard Worker     Splitter2dDim1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
312*89c4ff92SAndroid Build Coastguard Worker }
313*89c4ff92SAndroid Build Coastguard Worker 
314*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonSplitter2dDim0EndToEndUint8Test")
315*89c4ff92SAndroid Build Coastguard Worker {
316*89c4ff92SAndroid Build Coastguard Worker     Splitter2dDim0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
317*89c4ff92SAndroid Build Coastguard Worker }
318*89c4ff92SAndroid Build Coastguard Worker 
319*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonSplitter2dDim1EndToEndUint8Test")
320*89c4ff92SAndroid Build Coastguard Worker {
321*89c4ff92SAndroid Build Coastguard Worker     Splitter2dDim1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
322*89c4ff92SAndroid Build Coastguard Worker }
323*89c4ff92SAndroid Build Coastguard Worker 
324*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonSplitter3dDim0EndToEndTest")
325*89c4ff92SAndroid Build Coastguard Worker {
326*89c4ff92SAndroid Build Coastguard Worker     Splitter3dDim0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
327*89c4ff92SAndroid Build Coastguard Worker }
328*89c4ff92SAndroid Build Coastguard Worker 
329*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonSplitter3dDim1EndToEndTest")
330*89c4ff92SAndroid Build Coastguard Worker {
331*89c4ff92SAndroid Build Coastguard Worker     Splitter3dDim1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
332*89c4ff92SAndroid Build Coastguard Worker }
333*89c4ff92SAndroid Build Coastguard Worker 
334*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonSplitter3dDim2EndToEndTest")
335*89c4ff92SAndroid Build Coastguard Worker {
336*89c4ff92SAndroid Build Coastguard Worker     Splitter3dDim2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
337*89c4ff92SAndroid Build Coastguard Worker }
338*89c4ff92SAndroid Build Coastguard Worker 
339*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonSplitter3dDim0EndToEndUint8Test")
340*89c4ff92SAndroid Build Coastguard Worker {
341*89c4ff92SAndroid Build Coastguard Worker     Splitter3dDim0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
342*89c4ff92SAndroid Build Coastguard Worker }
343*89c4ff92SAndroid Build Coastguard Worker 
344*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonSplitter3dDim1EndToEndUint8Test")
345*89c4ff92SAndroid Build Coastguard Worker {
346*89c4ff92SAndroid Build Coastguard Worker     Splitter3dDim1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
347*89c4ff92SAndroid Build Coastguard Worker }
348*89c4ff92SAndroid Build Coastguard Worker 
349*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonSplitter3dDim2EndToEndUint8Test")
350*89c4ff92SAndroid Build Coastguard Worker {
351*89c4ff92SAndroid Build Coastguard Worker     Splitter3dDim2EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
352*89c4ff92SAndroid Build Coastguard Worker }
353*89c4ff92SAndroid Build Coastguard Worker 
354*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonSplitter4dDim0EndToEndTest")
355*89c4ff92SAndroid Build Coastguard Worker {
356*89c4ff92SAndroid Build Coastguard Worker     Splitter4dDim0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
357*89c4ff92SAndroid Build Coastguard Worker }
358*89c4ff92SAndroid Build Coastguard Worker 
359*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonSplitter4dDim1EndToEndTest")
360*89c4ff92SAndroid Build Coastguard Worker {
361*89c4ff92SAndroid Build Coastguard Worker     Splitter4dDim1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
362*89c4ff92SAndroid Build Coastguard Worker }
363*89c4ff92SAndroid Build Coastguard Worker 
364*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonSplitter4dDim2EndToEndTest")
365*89c4ff92SAndroid Build Coastguard Worker {
366*89c4ff92SAndroid Build Coastguard Worker     Splitter4dDim2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
367*89c4ff92SAndroid Build Coastguard Worker }
368*89c4ff92SAndroid Build Coastguard Worker 
369*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonSplitter4dDim3EndToEndTest")
370*89c4ff92SAndroid Build Coastguard Worker {
371*89c4ff92SAndroid Build Coastguard Worker     Splitter4dDim3EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
372*89c4ff92SAndroid Build Coastguard Worker }
373*89c4ff92SAndroid Build Coastguard Worker 
374*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonSplitter4dDim0EndToEndUint8Test")
375*89c4ff92SAndroid Build Coastguard Worker {
376*89c4ff92SAndroid Build Coastguard Worker     Splitter4dDim0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
377*89c4ff92SAndroid Build Coastguard Worker }
378*89c4ff92SAndroid Build Coastguard Worker 
379*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonSplitter4dDim1EndToEndUint8Test")
380*89c4ff92SAndroid Build Coastguard Worker {
381*89c4ff92SAndroid Build Coastguard Worker     Splitter4dDim1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
382*89c4ff92SAndroid Build Coastguard Worker }
383*89c4ff92SAndroid Build Coastguard Worker 
384*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonSplitter4dDim2EndToEndUint8Test")
385*89c4ff92SAndroid Build Coastguard Worker {
386*89c4ff92SAndroid Build Coastguard Worker     Splitter4dDim2EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
387*89c4ff92SAndroid Build Coastguard Worker }
388*89c4ff92SAndroid Build Coastguard Worker 
389*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonSplitter4dDim3EndToEndUint8Test")
390*89c4ff92SAndroid Build Coastguard Worker {
391*89c4ff92SAndroid Build Coastguard Worker     Splitter4dDim3EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
392*89c4ff92SAndroid Build Coastguard Worker }
393*89c4ff92SAndroid Build Coastguard Worker 
394*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonQuantizedLstmEndToEndTest")
395*89c4ff92SAndroid Build Coastguard Worker {
396*89c4ff92SAndroid Build Coastguard Worker     QuantizedLstmEndToEnd(neonDefaultBackends);
397*89c4ff92SAndroid Build Coastguard Worker }
398*89c4ff92SAndroid Build Coastguard Worker 
399*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonTransposeConvolution2dEndToEndFloatNchwTest")
400*89c4ff92SAndroid Build Coastguard Worker {
401*89c4ff92SAndroid Build Coastguard Worker     TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
402*89c4ff92SAndroid Build Coastguard Worker         neonDefaultBackends, armnn::DataLayout::NCHW);
403*89c4ff92SAndroid Build Coastguard Worker }
404*89c4ff92SAndroid Build Coastguard Worker 
405*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonTransposeConvolution2dEndToEndUint8NchwTest")
406*89c4ff92SAndroid Build Coastguard Worker {
407*89c4ff92SAndroid Build Coastguard Worker     TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
408*89c4ff92SAndroid Build Coastguard Worker         neonDefaultBackends, armnn::DataLayout::NCHW);
409*89c4ff92SAndroid Build Coastguard Worker }
410*89c4ff92SAndroid Build Coastguard Worker 
411*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonTransposeConvolution2dEndToEndFloatNhwcTest")
412*89c4ff92SAndroid Build Coastguard Worker {
413*89c4ff92SAndroid Build Coastguard Worker     TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
414*89c4ff92SAndroid Build Coastguard Worker         neonDefaultBackends, armnn::DataLayout::NHWC);
415*89c4ff92SAndroid Build Coastguard Worker }
416*89c4ff92SAndroid Build Coastguard Worker 
417*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonTransposeConvolution2dEndToEndUint8NhwcTest")
418*89c4ff92SAndroid Build Coastguard Worker {
419*89c4ff92SAndroid Build Coastguard Worker     TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
420*89c4ff92SAndroid Build Coastguard Worker         neonDefaultBackends, armnn::DataLayout::NHWC);
421*89c4ff92SAndroid Build Coastguard Worker }
422*89c4ff92SAndroid Build Coastguard Worker 
423*89c4ff92SAndroid Build Coastguard Worker // Transpose
424*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonTransposeEndToEndTest")
425*89c4ff92SAndroid Build Coastguard Worker {
426*89c4ff92SAndroid Build Coastguard Worker     TransposeEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
427*89c4ff92SAndroid Build Coastguard Worker }
428*89c4ff92SAndroid Build Coastguard Worker 
429*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonImportNonAlignedInputPointerTest")
430*89c4ff92SAndroid Build Coastguard Worker {
431*89c4ff92SAndroid Build Coastguard Worker     ImportNonAlignedInputPointerTest(neonDefaultBackends);
432*89c4ff92SAndroid Build Coastguard Worker }
433*89c4ff92SAndroid Build Coastguard Worker 
434*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonExportNonAlignedOutputPointerTest")
435*89c4ff92SAndroid Build Coastguard Worker {
436*89c4ff92SAndroid Build Coastguard Worker     ExportNonAlignedOutputPointerTest(neonDefaultBackends);
437*89c4ff92SAndroid Build Coastguard Worker }
438*89c4ff92SAndroid Build Coastguard Worker 
439*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonImportAlignedPointerTest")
440*89c4ff92SAndroid Build Coastguard Worker {
441*89c4ff92SAndroid Build Coastguard Worker     ImportAlignedPointerTest(neonDefaultBackends);
442*89c4ff92SAndroid Build Coastguard Worker }
443*89c4ff92SAndroid Build Coastguard Worker 
444*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonImportOnlyWorkload")
445*89c4ff92SAndroid Build Coastguard Worker {
446*89c4ff92SAndroid Build Coastguard Worker     ImportOnlyWorkload(neonDefaultBackends);
447*89c4ff92SAndroid Build Coastguard Worker }
448*89c4ff92SAndroid Build Coastguard Worker 
449*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonExportOnlyWorkload")
450*89c4ff92SAndroid Build Coastguard Worker {
451*89c4ff92SAndroid Build Coastguard Worker     ExportOnlyWorkload(neonDefaultBackends);
452*89c4ff92SAndroid Build Coastguard Worker }
453*89c4ff92SAndroid Build Coastguard Worker 
454*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonImportAndExportWorkload")
455*89c4ff92SAndroid Build Coastguard Worker {
456*89c4ff92SAndroid Build Coastguard Worker     ImportAndExportWorkload(neonDefaultBackends);
457*89c4ff92SAndroid Build Coastguard Worker }
458*89c4ff92SAndroid Build Coastguard Worker 
459*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonExportOutputWithSeveralOutputSlotConnectionsTest")
460*89c4ff92SAndroid Build Coastguard Worker {
461*89c4ff92SAndroid Build Coastguard Worker     ExportOutputWithSeveralOutputSlotConnectionsTest(neonDefaultBackends);
462*89c4ff92SAndroid Build Coastguard Worker }
463*89c4ff92SAndroid Build Coastguard Worker 
464*89c4ff92SAndroid Build Coastguard Worker // InstanceNormalization
465*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonInstanceNormalizationNchwEndToEndTest1")
466*89c4ff92SAndroid Build Coastguard Worker {
467*89c4ff92SAndroid Build Coastguard Worker     InstanceNormalizationNchwEndToEndTest1(neonDefaultBackends);
468*89c4ff92SAndroid Build Coastguard Worker }
469*89c4ff92SAndroid Build Coastguard Worker 
470*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonInstanceNormalizationNchwEndToEndTest2")
471*89c4ff92SAndroid Build Coastguard Worker {
472*89c4ff92SAndroid Build Coastguard Worker     InstanceNormalizationNchwEndToEndTest2(neonDefaultBackends);
473*89c4ff92SAndroid Build Coastguard Worker }
474*89c4ff92SAndroid Build Coastguard Worker 
475*89c4ff92SAndroid Build Coastguard Worker // Fill
476*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonFillEndToEndTest")
477*89c4ff92SAndroid Build Coastguard Worker {
478*89c4ff92SAndroid Build Coastguard Worker     FillEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
479*89c4ff92SAndroid Build Coastguard Worker }
480*89c4ff92SAndroid Build Coastguard Worker 
481*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonFillEndToEndTestFloat16")
482*89c4ff92SAndroid Build Coastguard Worker {
483*89c4ff92SAndroid Build Coastguard Worker     FillEndToEnd<armnn::DataType::Float16>(neonDefaultBackends);
484*89c4ff92SAndroid Build Coastguard Worker }
485*89c4ff92SAndroid Build Coastguard Worker 
486*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonFillEndToEndTestInt32")
487*89c4ff92SAndroid Build Coastguard Worker {
488*89c4ff92SAndroid Build Coastguard Worker     FillEndToEnd<armnn::DataType::Signed32>(neonDefaultBackends);
489*89c4ff92SAndroid Build Coastguard Worker }
490*89c4ff92SAndroid Build Coastguard Worker 
491*89c4ff92SAndroid Build Coastguard Worker // ArgMinMax
492*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonArgMaxSimpleTest")
493*89c4ff92SAndroid Build Coastguard Worker {
494*89c4ff92SAndroid Build Coastguard Worker     ArgMaxEndToEndSimple<armnn::DataType::Float32>(neonDefaultBackends);
495*89c4ff92SAndroid Build Coastguard Worker }
496*89c4ff92SAndroid Build Coastguard Worker 
497*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonArgMinSimpleTest")
498*89c4ff92SAndroid Build Coastguard Worker {
499*89c4ff92SAndroid Build Coastguard Worker     ArgMinEndToEndSimple<armnn::DataType::Float32>(neonDefaultBackends);
500*89c4ff92SAndroid Build Coastguard Worker }
501*89c4ff92SAndroid Build Coastguard Worker 
502*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonArgMaxAxis0Test")
503*89c4ff92SAndroid Build Coastguard Worker {
504*89c4ff92SAndroid Build Coastguard Worker     ArgMaxAxis0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
505*89c4ff92SAndroid Build Coastguard Worker }
506*89c4ff92SAndroid Build Coastguard Worker 
507*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonArgMinAxis0Test")
508*89c4ff92SAndroid Build Coastguard Worker {
509*89c4ff92SAndroid Build Coastguard Worker     ArgMinAxis0EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
510*89c4ff92SAndroid Build Coastguard Worker }
511*89c4ff92SAndroid Build Coastguard Worker 
512*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonArgMaxAxis1Test")
513*89c4ff92SAndroid Build Coastguard Worker {
514*89c4ff92SAndroid Build Coastguard Worker     ArgMaxAxis1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
515*89c4ff92SAndroid Build Coastguard Worker }
516*89c4ff92SAndroid Build Coastguard Worker 
517*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonArgMinAxis1Test")
518*89c4ff92SAndroid Build Coastguard Worker {
519*89c4ff92SAndroid Build Coastguard Worker     ArgMinAxis1EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
520*89c4ff92SAndroid Build Coastguard Worker }
521*89c4ff92SAndroid Build Coastguard Worker 
522*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonArgMaxAxis2Test")
523*89c4ff92SAndroid Build Coastguard Worker {
524*89c4ff92SAndroid Build Coastguard Worker     ArgMaxAxis2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
525*89c4ff92SAndroid Build Coastguard Worker }
526*89c4ff92SAndroid Build Coastguard Worker 
527*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonArgMinAxis2Test")
528*89c4ff92SAndroid Build Coastguard Worker {
529*89c4ff92SAndroid Build Coastguard Worker     ArgMinAxis2EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
530*89c4ff92SAndroid Build Coastguard Worker }
531*89c4ff92SAndroid Build Coastguard Worker 
532*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonArgMaxAxis3Test")
533*89c4ff92SAndroid Build Coastguard Worker {
534*89c4ff92SAndroid Build Coastguard Worker     ArgMaxAxis3EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
535*89c4ff92SAndroid Build Coastguard Worker }
536*89c4ff92SAndroid Build Coastguard Worker 
537*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonArgMinAxis3Test")
538*89c4ff92SAndroid Build Coastguard Worker {
539*89c4ff92SAndroid Build Coastguard Worker     ArgMinAxis3EndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
540*89c4ff92SAndroid Build Coastguard Worker }
541*89c4ff92SAndroid Build Coastguard Worker 
542*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonArgMaxSimpleTestQuantisedAsymm8")
543*89c4ff92SAndroid Build Coastguard Worker {
544*89c4ff92SAndroid Build Coastguard Worker     ArgMaxEndToEndSimple<armnn::DataType::QAsymmU8>(neonDefaultBackends);
545*89c4ff92SAndroid Build Coastguard Worker }
546*89c4ff92SAndroid Build Coastguard Worker 
547*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonArgMinSimpleTestQuantisedAsymm8")
548*89c4ff92SAndroid Build Coastguard Worker {
549*89c4ff92SAndroid Build Coastguard Worker     ArgMinEndToEndSimple<armnn::DataType::QAsymmU8>(neonDefaultBackends);
550*89c4ff92SAndroid Build Coastguard Worker }
551*89c4ff92SAndroid Build Coastguard Worker 
552*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonArgMaxAxis0TestQuantisedAsymm8")
553*89c4ff92SAndroid Build Coastguard Worker {
554*89c4ff92SAndroid Build Coastguard Worker     ArgMaxAxis0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
555*89c4ff92SAndroid Build Coastguard Worker }
556*89c4ff92SAndroid Build Coastguard Worker 
557*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonArgMinAxis0TestQuantisedAsymm8")
558*89c4ff92SAndroid Build Coastguard Worker {
559*89c4ff92SAndroid Build Coastguard Worker     ArgMinAxis0EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
560*89c4ff92SAndroid Build Coastguard Worker }
561*89c4ff92SAndroid Build Coastguard Worker 
562*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonArgMaxAxis1TestQuantisedAsymm8")
563*89c4ff92SAndroid Build Coastguard Worker {
564*89c4ff92SAndroid Build Coastguard Worker     ArgMaxAxis1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
565*89c4ff92SAndroid Build Coastguard Worker }
566*89c4ff92SAndroid Build Coastguard Worker 
567*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonArgMinAxis1TestQuantisedAsymm8")
568*89c4ff92SAndroid Build Coastguard Worker {
569*89c4ff92SAndroid Build Coastguard Worker     ArgMinAxis1EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
570*89c4ff92SAndroid Build Coastguard Worker }
571*89c4ff92SAndroid Build Coastguard Worker 
572*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonArgMaxAxis2TestQuantisedAsymm8")
573*89c4ff92SAndroid Build Coastguard Worker {
574*89c4ff92SAndroid Build Coastguard Worker     ArgMaxAxis2EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
575*89c4ff92SAndroid Build Coastguard Worker }
576*89c4ff92SAndroid Build Coastguard Worker 
577*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonArgMinAxis2TestQuantisedAsymm8")
578*89c4ff92SAndroid Build Coastguard Worker {
579*89c4ff92SAndroid Build Coastguard Worker     ArgMinAxis2EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
580*89c4ff92SAndroid Build Coastguard Worker }
581*89c4ff92SAndroid Build Coastguard Worker 
582*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonArgMaxAxis3TestQuantisedAsymm8")
583*89c4ff92SAndroid Build Coastguard Worker {
584*89c4ff92SAndroid Build Coastguard Worker     ArgMaxAxis3EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
585*89c4ff92SAndroid Build Coastguard Worker }
586*89c4ff92SAndroid Build Coastguard Worker 
587*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonArgMinAxis3TestQuantisedAsymm8")
588*89c4ff92SAndroid Build Coastguard Worker {
589*89c4ff92SAndroid Build Coastguard Worker     ArgMinAxis3EndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends);
590*89c4ff92SAndroid Build Coastguard Worker }
591*89c4ff92SAndroid Build Coastguard Worker 
592*89c4ff92SAndroid Build Coastguard Worker // Reduce
593*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonReduceEndToEndTest")
594*89c4ff92SAndroid Build Coastguard Worker {
595*89c4ff92SAndroid Build Coastguard Worker     ReduceEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
596*89c4ff92SAndroid Build Coastguard Worker }
597*89c4ff92SAndroid Build Coastguard Worker 
598*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonReduceEndToEndTestFloat16")
599*89c4ff92SAndroid Build Coastguard Worker {
600*89c4ff92SAndroid Build Coastguard Worker     ReduceEndToEnd<armnn::DataType::Float16>(neonDefaultBackends);
601*89c4ff92SAndroid Build Coastguard Worker }
602*89c4ff92SAndroid Build Coastguard Worker 
603*89c4ff92SAndroid Build Coastguard Worker // Reshape
604*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonReshapeEndToEndTest")
605*89c4ff92SAndroid Build Coastguard Worker {
606*89c4ff92SAndroid Build Coastguard Worker     ReshapeEndToEnd<armnn::DataType::Float32>(neonDefaultBackends);
607*89c4ff92SAndroid Build Coastguard Worker }
608*89c4ff92SAndroid Build Coastguard Worker 
609*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonReshapeEndToEndTestFloat16")
610*89c4ff92SAndroid Build Coastguard Worker {
611*89c4ff92SAndroid Build Coastguard Worker     ReshapeEndToEndFloat16<armnn::DataType::Float16>(neonDefaultBackends);
612*89c4ff92SAndroid Build Coastguard Worker }
613*89c4ff92SAndroid Build Coastguard Worker 
614*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonStridedSliceInvalidSliceEndToEndTest")
615*89c4ff92SAndroid Build Coastguard Worker {
616*89c4ff92SAndroid Build Coastguard Worker     StridedSliceInvalidSliceEndToEndTest(neonDefaultBackends);
617*89c4ff92SAndroid Build Coastguard Worker }
618*89c4ff92SAndroid Build Coastguard Worker 
619*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonForceImportWithAlignedBuffersEndToEndTest"
620*89c4ff92SAndroid Build Coastguard Worker           // Currently, the Neon workload for activation does not support tensor handle replacement so this test case
621*89c4ff92SAndroid Build Coastguard Worker           // will always fail.
skip(true)622*89c4ff92SAndroid Build Coastguard Worker           * doctest::skip(true))
623*89c4ff92SAndroid Build Coastguard Worker {
624*89c4ff92SAndroid Build Coastguard Worker     ForceImportWithAlignedBuffersEndToEndTest(neonDefaultBackends);
625*89c4ff92SAndroid Build Coastguard Worker }
626*89c4ff92SAndroid Build Coastguard Worker 
627*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonForceImportWithMisalignedInputBuffersEndToEndTest"
628*89c4ff92SAndroid Build Coastguard Worker           // Currently, the Neon workload for activation does not support tensor handle replacement so this test case
629*89c4ff92SAndroid Build Coastguard Worker           // will always fail.
skip(true)630*89c4ff92SAndroid Build Coastguard Worker           * doctest::skip(true))
631*89c4ff92SAndroid Build Coastguard Worker {
632*89c4ff92SAndroid Build Coastguard Worker     ForceImportWithMisalignedInputBuffersEndToEndTest(neonDefaultBackends);
633*89c4ff92SAndroid Build Coastguard Worker }
634*89c4ff92SAndroid Build Coastguard Worker 
635*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonForceImportWithMisalignedOutputBuffersEndToEndTest"
636*89c4ff92SAndroid Build Coastguard Worker           // Currently, the Neon workload for activation does not support tensor handle replacement so this test case
637*89c4ff92SAndroid Build Coastguard Worker           // will always fail.
skip(true)638*89c4ff92SAndroid Build Coastguard Worker           * doctest::skip(true))
639*89c4ff92SAndroid Build Coastguard Worker {
640*89c4ff92SAndroid Build Coastguard Worker     ForceImportWithMisalignedOutputBuffersEndToEndTest(neonDefaultBackends);
641*89c4ff92SAndroid Build Coastguard Worker }
642*89c4ff92SAndroid Build Coastguard Worker 
643*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonForceImportWithMisalignedInputAndOutputBuffersEndToEndTest")
644*89c4ff92SAndroid Build Coastguard Worker {
645*89c4ff92SAndroid Build Coastguard Worker     ForceImportWithMisalignedInputAndOutputBuffersEndToEndTest(neonDefaultBackends);
646*89c4ff92SAndroid Build Coastguard Worker }
647*89c4ff92SAndroid Build Coastguard Worker 
648*89c4ff92SAndroid Build Coastguard Worker // DISABLED
649*89c4ff92SAndroid Build Coastguard Worker //TEST_CASE("NeonDetectionPostProcessRegularNmsTest")
650*89c4ff92SAndroid Build Coastguard Worker //{
651*89c4ff92SAndroid Build Coastguard Worker //    std::vector<float> boxEncodings({
652*89c4ff92SAndroid Build Coastguard Worker //                                        0.0f, 0.0f, 0.0f, 0.0f,
653*89c4ff92SAndroid Build Coastguard Worker //                                        0.0f, 1.0f, 0.0f, 0.0f,
654*89c4ff92SAndroid Build Coastguard Worker //                                        0.0f, -1.0f, 0.0f, 0.0f,
655*89c4ff92SAndroid Build Coastguard Worker //                                        0.0f, 0.0f, 0.0f, 0.0f,
656*89c4ff92SAndroid Build Coastguard Worker //                                        0.0f, 1.0f, 0.0f, 0.0f,
657*89c4ff92SAndroid Build Coastguard Worker //                                        0.0f, 0.0f, 0.0f, 0.0f
658*89c4ff92SAndroid Build Coastguard Worker //                                    });
659*89c4ff92SAndroid Build Coastguard Worker //    std::vector<float> scores({
660*89c4ff92SAndroid Build Coastguard Worker //                                  0.0f, 0.9f, 0.8f,
661*89c4ff92SAndroid Build Coastguard Worker //                                  0.0f, 0.75f, 0.72f,
662*89c4ff92SAndroid Build Coastguard Worker //                                  0.0f, 0.6f, 0.5f,
663*89c4ff92SAndroid Build Coastguard Worker //                                  0.0f, 0.93f, 0.95f,
664*89c4ff92SAndroid Build Coastguard Worker //                                  0.0f, 0.5f, 0.4f,
665*89c4ff92SAndroid Build Coastguard Worker //                                  0.0f, 0.3f, 0.2f
666*89c4ff92SAndroid Build Coastguard Worker //                              });
667*89c4ff92SAndroid Build Coastguard Worker //    std::vector<float> anchors({
668*89c4ff92SAndroid Build Coastguard Worker //                                   0.5f, 0.5f, 1.0f, 1.0f,
669*89c4ff92SAndroid Build Coastguard Worker //                                   0.5f, 0.5f, 1.0f, 1.0f,
670*89c4ff92SAndroid Build Coastguard Worker //                                   0.5f, 0.5f, 1.0f, 1.0f,
671*89c4ff92SAndroid Build Coastguard Worker //                                   0.5f, 10.5f, 1.0f, 1.0f,
672*89c4ff92SAndroid Build Coastguard Worker //                                   0.5f, 10.5f, 1.0f, 1.0f,
673*89c4ff92SAndroid Build Coastguard Worker //                                   0.5f, 100.5f, 1.0f, 1.0f
674*89c4ff92SAndroid Build Coastguard Worker //                               });
675*89c4ff92SAndroid Build Coastguard Worker //    DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
676*89c4ff92SAndroid Build Coastguard Worker //                                                                     boxEncodings,
677*89c4ff92SAndroid Build Coastguard Worker //                                                                     scores,
678*89c4ff92SAndroid Build Coastguard Worker //                                                                     anchors);
679*89c4ff92SAndroid Build Coastguard Worker //}
680*89c4ff92SAndroid Build Coastguard Worker 
QuantizeData(uint8_t * quant,const float * dequant,const TensorInfo & info)681*89c4ff92SAndroid Build Coastguard Worker inline void QuantizeData(uint8_t* quant, const float* dequant, const TensorInfo& info)
682*89c4ff92SAndroid Build Coastguard Worker {
683*89c4ff92SAndroid Build Coastguard Worker     for (size_t i = 0; i < info.GetNumElements(); i++)
684*89c4ff92SAndroid Build Coastguard Worker     {
685*89c4ff92SAndroid Build Coastguard Worker         quant[i] = armnn::Quantize<uint8_t>(dequant[i], info.GetQuantizationScale(), info.GetQuantizationOffset());
686*89c4ff92SAndroid Build Coastguard Worker     }
687*89c4ff92SAndroid Build Coastguard Worker }
688*89c4ff92SAndroid Build Coastguard Worker 
689*89c4ff92SAndroid Build Coastguard Worker // DISABLED
690*89c4ff92SAndroid Build Coastguard Worker //TEST_CASE("NeonDetectionPostProcessRegularNmsUint8Test")
691*89c4ff92SAndroid Build Coastguard Worker //{
692*89c4ff92SAndroid Build Coastguard Worker //    armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
693*89c4ff92SAndroid Build Coastguard Worker //    armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
694*89c4ff92SAndroid Build Coastguard Worker //    armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
695*89c4ff92SAndroid Build Coastguard Worker //
696*89c4ff92SAndroid Build Coastguard Worker //    boxEncodingsInfo.SetQuantizationScale(1.0f);
697*89c4ff92SAndroid Build Coastguard Worker //    boxEncodingsInfo.SetQuantizationOffset(1);
698*89c4ff92SAndroid Build Coastguard Worker //    scoresInfo.SetQuantizationScale(0.01f);
699*89c4ff92SAndroid Build Coastguard Worker //    scoresInfo.SetQuantizationOffset(0);
700*89c4ff92SAndroid Build Coastguard Worker //    anchorsInfo.SetQuantizationScale(0.5f);
701*89c4ff92SAndroid Build Coastguard Worker //    anchorsInfo.SetQuantizationOffset(0);
702*89c4ff92SAndroid Build Coastguard Worker //
703*89c4ff92SAndroid Build Coastguard Worker //    std::vector<float> boxEncodings({
704*89c4ff92SAndroid Build Coastguard Worker //                                        0.0f, 0.0f, 0.0f, 0.0f,
705*89c4ff92SAndroid Build Coastguard Worker //                                        0.0f, 1.0f, 0.0f, 0.0f,
706*89c4ff92SAndroid Build Coastguard Worker //                                        0.0f, -1.0f, 0.0f, 0.0f,
707*89c4ff92SAndroid Build Coastguard Worker //                                        0.0f, 0.0f, 0.0f, 0.0f,
708*89c4ff92SAndroid Build Coastguard Worker //                                        0.0f, 1.0f, 0.0f, 0.0f,
709*89c4ff92SAndroid Build Coastguard Worker //                                        0.0f, 0.0f, 0.0f, 0.0f
710*89c4ff92SAndroid Build Coastguard Worker //                                    });
711*89c4ff92SAndroid Build Coastguard Worker //    std::vector<float> scores({
712*89c4ff92SAndroid Build Coastguard Worker //                                  0.0f, 0.9f, 0.8f,
713*89c4ff92SAndroid Build Coastguard Worker //                                  0.0f, 0.75f, 0.72f,
714*89c4ff92SAndroid Build Coastguard Worker //                                  0.0f, 0.6f, 0.5f,
715*89c4ff92SAndroid Build Coastguard Worker //                                  0.0f, 0.93f, 0.95f,
716*89c4ff92SAndroid Build Coastguard Worker //                                  0.0f, 0.5f, 0.4f,
717*89c4ff92SAndroid Build Coastguard Worker //                                  0.0f, 0.3f, 0.2f
718*89c4ff92SAndroid Build Coastguard Worker //                              });
719*89c4ff92SAndroid Build Coastguard Worker //    std::vector<float> anchors({
720*89c4ff92SAndroid Build Coastguard Worker //                                   0.5f, 0.5f, 1.0f, 1.0f,
721*89c4ff92SAndroid Build Coastguard Worker //                                   0.5f, 0.5f, 1.0f, 1.0f,
722*89c4ff92SAndroid Build Coastguard Worker //                                   0.5f, 0.5f, 1.0f, 1.0f,
723*89c4ff92SAndroid Build Coastguard Worker //                                   0.5f, 10.5f, 1.0f, 1.0f,
724*89c4ff92SAndroid Build Coastguard Worker //                                   0.5f, 10.5f, 1.0f, 1.0f,
725*89c4ff92SAndroid Build Coastguard Worker //                                   0.5f, 100.5f, 1.0f, 1.0f
726*89c4ff92SAndroid Build Coastguard Worker //                               });
727*89c4ff92SAndroid Build Coastguard Worker //
728*89c4ff92SAndroid Build Coastguard Worker //    std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
729*89c4ff92SAndroid Build Coastguard Worker //    std::vector<uint8_t> qScores(scores.size(), 0);
730*89c4ff92SAndroid Build Coastguard Worker //    std::vector<uint8_t> qAnchors(anchors.size(), 0);
731*89c4ff92SAndroid Build Coastguard Worker //    QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
732*89c4ff92SAndroid Build Coastguard Worker //    QuantizeData(qScores.data(), scores.data(), scoresInfo);
733*89c4ff92SAndroid Build Coastguard Worker //    QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
734*89c4ff92SAndroid Build Coastguard Worker //    DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, qBoxEncodings,
735*89c4ff92SAndroid Build Coastguard Worker //                                                                             qScores, qAnchors,
736*89c4ff92SAndroid Build Coastguard Worker //                                                                             1.0f, 1, 0.01f, 0, 0.5f, 0);
737*89c4ff92SAndroid Build Coastguard Worker //}
738*89c4ff92SAndroid Build Coastguard Worker //
739*89c4ff92SAndroid Build Coastguard Worker //TEST_CASE("NeonDetectionPostProcessFastNmsTest")
740*89c4ff92SAndroid Build Coastguard Worker //{
741*89c4ff92SAndroid Build Coastguard Worker //    std::vector<float> boxEncodings({
742*89c4ff92SAndroid Build Coastguard Worker //                                        0.0f, 0.0f, 0.0f, 0.0f,
743*89c4ff92SAndroid Build Coastguard Worker //                                        0.0f, 1.0f, 0.0f, 0.0f,
744*89c4ff92SAndroid Build Coastguard Worker //                                        0.0f, -1.0f, 0.0f, 0.0f,
745*89c4ff92SAndroid Build Coastguard Worker //                                        0.0f, 0.0f, 0.0f, 0.0f,
746*89c4ff92SAndroid Build Coastguard Worker //                                        0.0f, 1.0f, 0.0f, 0.0f,
747*89c4ff92SAndroid Build Coastguard Worker //                                        0.0f, 0.0f, 0.0f, 0.0f
748*89c4ff92SAndroid Build Coastguard Worker //                                    });
749*89c4ff92SAndroid Build Coastguard Worker //    std::vector<float> scores({
750*89c4ff92SAndroid Build Coastguard Worker //                                  0.0f, 0.9f, 0.8f,
751*89c4ff92SAndroid Build Coastguard Worker //                                  0.0f, 0.75f, 0.72f,
752*89c4ff92SAndroid Build Coastguard Worker //                                  0.0f, 0.6f, 0.5f,
753*89c4ff92SAndroid Build Coastguard Worker //                                  0.0f, 0.93f, 0.95f,
754*89c4ff92SAndroid Build Coastguard Worker //                                  0.0f, 0.5f, 0.4f,
755*89c4ff92SAndroid Build Coastguard Worker //                                  0.0f, 0.3f, 0.2f
756*89c4ff92SAndroid Build Coastguard Worker //                              });
757*89c4ff92SAndroid Build Coastguard Worker //    std::vector<float> anchors({
758*89c4ff92SAndroid Build Coastguard Worker //                                   0.5f, 0.5f, 1.0f, 1.0f,
759*89c4ff92SAndroid Build Coastguard Worker //                                   0.5f, 0.5f, 1.0f, 1.0f,
760*89c4ff92SAndroid Build Coastguard Worker //                                   0.5f, 0.5f, 1.0f, 1.0f,
761*89c4ff92SAndroid Build Coastguard Worker //                                   0.5f, 10.5f, 1.0f, 1.0f,
762*89c4ff92SAndroid Build Coastguard Worker //                                   0.5f, 10.5f, 1.0f, 1.0f,
763*89c4ff92SAndroid Build Coastguard Worker //                                   0.5f, 100.5f, 1.0f, 1.0f
764*89c4ff92SAndroid Build Coastguard Worker //                               });
765*89c4ff92SAndroid Build Coastguard Worker //    DetectionPostProcessFastNmsEndToEnd<armnn::DataType::Float32>(neonDefaultBackends,
766*89c4ff92SAndroid Build Coastguard Worker //                                                                  boxEncodings,
767*89c4ff92SAndroid Build Coastguard Worker //                                                                  scores,
768*89c4ff92SAndroid Build Coastguard Worker //                                                                  anchors);
769*89c4ff92SAndroid Build Coastguard Worker //}
770*89c4ff92SAndroid Build Coastguard Worker //
771*89c4ff92SAndroid Build Coastguard Worker // DISABLED
772*89c4ff92SAndroid Build Coastguard Worker //TEST_CASE("NeonDetectionPostProcessFastNmsUint8Test")
773*89c4ff92SAndroid Build Coastguard Worker //{
774*89c4ff92SAndroid Build Coastguard Worker //    armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
775*89c4ff92SAndroid Build Coastguard Worker //    armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
776*89c4ff92SAndroid Build Coastguard Worker //    armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
777*89c4ff92SAndroid Build Coastguard Worker //
778*89c4ff92SAndroid Build Coastguard Worker //    boxEncodingsInfo.SetQuantizationScale(1.0f);
779*89c4ff92SAndroid Build Coastguard Worker //    boxEncodingsInfo.SetQuantizationOffset(1);
780*89c4ff92SAndroid Build Coastguard Worker //    scoresInfo.SetQuantizationScale(0.01f);
781*89c4ff92SAndroid Build Coastguard Worker //    scoresInfo.SetQuantizationOffset(0);
782*89c4ff92SAndroid Build Coastguard Worker //    anchorsInfo.SetQuantizationScale(0.5f);
783*89c4ff92SAndroid Build Coastguard Worker //    anchorsInfo.SetQuantizationOffset(0);
784*89c4ff92SAndroid Build Coastguard Worker //
785*89c4ff92SAndroid Build Coastguard Worker //    std::vector<float> boxEncodings({
786*89c4ff92SAndroid Build Coastguard Worker //                                        0.0f, 0.0f, 0.0f, 0.0f,
787*89c4ff92SAndroid Build Coastguard Worker //                                        0.0f, 1.0f, 0.0f, 0.0f,
788*89c4ff92SAndroid Build Coastguard Worker //                                        0.0f, -1.0f, 0.0f, 0.0f,
789*89c4ff92SAndroid Build Coastguard Worker //                                        0.0f, 0.0f, 0.0f, 0.0f,
790*89c4ff92SAndroid Build Coastguard Worker //                                        0.0f, 1.0f, 0.0f, 0.0f,
791*89c4ff92SAndroid Build Coastguard Worker //                                        0.0f, 0.0f, 0.0f, 0.0f
792*89c4ff92SAndroid Build Coastguard Worker //                                    });
793*89c4ff92SAndroid Build Coastguard Worker //    std::vector<float> scores({
794*89c4ff92SAndroid Build Coastguard Worker //                                  0.0f, 0.9f, 0.8f,
795*89c4ff92SAndroid Build Coastguard Worker //                                  0.0f, 0.75f, 0.72f,
796*89c4ff92SAndroid Build Coastguard Worker //                                  0.0f, 0.6f, 0.5f,
797*89c4ff92SAndroid Build Coastguard Worker //                                  0.0f, 0.93f, 0.95f,
798*89c4ff92SAndroid Build Coastguard Worker //                                  0.0f, 0.5f, 0.4f,
799*89c4ff92SAndroid Build Coastguard Worker //                                  0.0f, 0.3f, 0.2f
800*89c4ff92SAndroid Build Coastguard Worker //                              });
801*89c4ff92SAndroid Build Coastguard Worker //    std::vector<float> anchors({
802*89c4ff92SAndroid Build Coastguard Worker //                                   0.5f, 0.5f, 1.0f, 1.0f,
803*89c4ff92SAndroid Build Coastguard Worker //                                   0.5f, 0.5f, 1.0f, 1.0f,
804*89c4ff92SAndroid Build Coastguard Worker //                                   0.5f, 0.5f, 1.0f, 1.0f,
805*89c4ff92SAndroid Build Coastguard Worker //                                   0.5f, 10.5f, 1.0f, 1.0f,
806*89c4ff92SAndroid Build Coastguard Worker //                                   0.5f, 10.5f, 1.0f, 1.0f,
807*89c4ff92SAndroid Build Coastguard Worker //                                   0.5f, 100.5f, 1.0f, 1.0f
808*89c4ff92SAndroid Build Coastguard Worker //                               });
809*89c4ff92SAndroid Build Coastguard Worker //
810*89c4ff92SAndroid Build Coastguard Worker //    std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
811*89c4ff92SAndroid Build Coastguard Worker //    std::vector<uint8_t> qScores(scores.size(), 0);
812*89c4ff92SAndroid Build Coastguard Worker //    std::vector<uint8_t> qAnchors(anchors.size(), 0);
813*89c4ff92SAndroid Build Coastguard Worker //    QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
814*89c4ff92SAndroid Build Coastguard Worker //    QuantizeData(qScores.data(), scores.data(), scoresInfo);
815*89c4ff92SAndroid Build Coastguard Worker //    QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
816*89c4ff92SAndroid Build Coastguard Worker //    DetectionPostProcessFastNmsEndToEnd<armnn::DataType::QAsymmU8>(neonDefaultBackends, qBoxEncodings,
817*89c4ff92SAndroid Build Coastguard Worker //                                                                          qScores, qAnchors,
818*89c4ff92SAndroid Build Coastguard Worker //                                                                          1.0f, 1, 0.01f, 0, 0.5f, 0);
819*89c4ff92SAndroid Build Coastguard Worker //}
820*89c4ff92SAndroid Build Coastguard Worker 
821*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("NeonQLstmEndToEndTest")
822*89c4ff92SAndroid Build Coastguard Worker {
823*89c4ff92SAndroid Build Coastguard Worker     QLstmEndToEnd(neonDefaultBackends);
824*89c4ff92SAndroid Build Coastguard Worker }
825*89c4ff92SAndroid Build Coastguard Worker 
826*89c4ff92SAndroid Build Coastguard Worker }
827