1*89c4ff92SAndroid Build Coastguard Worker //
2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2020, 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 "RedefineTestHelper.hpp"
7*89c4ff92SAndroid Build Coastguard Worker
8*89c4ff92SAndroid Build Coastguard Worker #include <armnn_delegate.hpp>
9*89c4ff92SAndroid Build Coastguard Worker
10*89c4ff92SAndroid Build Coastguard Worker #include <flatbuffers/flatbuffers.h>
11*89c4ff92SAndroid Build Coastguard Worker #include <schema_generated.h>
12*89c4ff92SAndroid Build Coastguard Worker
13*89c4ff92SAndroid Build Coastguard Worker #include <doctest/doctest.h>
14*89c4ff92SAndroid Build Coastguard Worker
15*89c4ff92SAndroid Build Coastguard Worker #include <half/half.hpp>
16*89c4ff92SAndroid Build Coastguard Worker
17*89c4ff92SAndroid Build Coastguard Worker using Half = half_float::half;
18*89c4ff92SAndroid Build Coastguard Worker
19*89c4ff92SAndroid Build Coastguard Worker namespace armnnDelegate
20*89c4ff92SAndroid Build Coastguard Worker {
21*89c4ff92SAndroid Build Coastguard Worker
ReshapeSimpleTest(std::vector<armnn::BackendId> & backends,bool useOption=true)22*89c4ff92SAndroid Build Coastguard Worker void ReshapeSimpleTest(std::vector<armnn::BackendId>& backends, bool useOption = true)
23*89c4ff92SAndroid Build Coastguard Worker {
24*89c4ff92SAndroid Build Coastguard Worker // Set input data
25*89c4ff92SAndroid Build Coastguard Worker std::vector<int32_t> inputShape { 1, 3, 4, 1 };
26*89c4ff92SAndroid Build Coastguard Worker std::vector<int32_t> outputShape { 1, 3, 2, 2 };
27*89c4ff92SAndroid Build Coastguard Worker std::vector<int32_t> targetShape { 1, 3, 2, 2 };
28*89c4ff92SAndroid Build Coastguard Worker
29*89c4ff92SAndroid Build Coastguard Worker std::vector<float> inputValues = { -5.0f, 8.0f, -10.0f, 7.0f,
30*89c4ff92SAndroid Build Coastguard Worker 8.0f, 12.0f, -15.0f, 2.0f,
31*89c4ff92SAndroid Build Coastguard Worker 3.0f, -4.0f, -1.0f, -11.0f };
32*89c4ff92SAndroid Build Coastguard Worker
33*89c4ff92SAndroid Build Coastguard Worker std::vector<float> expectedOutputValues = { -5.0f, 8.0f, -10.0f, 7.0f,
34*89c4ff92SAndroid Build Coastguard Worker 8.0f, 12.0f, -15.0f, 2.0f,
35*89c4ff92SAndroid Build Coastguard Worker 3.0f, -4.0f, -1.0f, -11.0f };
36*89c4ff92SAndroid Build Coastguard Worker
37*89c4ff92SAndroid Build Coastguard Worker RedefineTest<float>(tflite::BuiltinOperator_RESHAPE,
38*89c4ff92SAndroid Build Coastguard Worker ::tflite::TensorType_FLOAT32,
39*89c4ff92SAndroid Build Coastguard Worker backends,
40*89c4ff92SAndroid Build Coastguard Worker inputShape,
41*89c4ff92SAndroid Build Coastguard Worker outputShape,
42*89c4ff92SAndroid Build Coastguard Worker inputValues,
43*89c4ff92SAndroid Build Coastguard Worker expectedOutputValues,
44*89c4ff92SAndroid Build Coastguard Worker targetShape,
45*89c4ff92SAndroid Build Coastguard Worker useOption);
46*89c4ff92SAndroid Build Coastguard Worker }
47*89c4ff92SAndroid Build Coastguard Worker
48*89c4ff92SAndroid Build Coastguard Worker using namespace half_float::literal;
49*89c4ff92SAndroid Build Coastguard Worker
ReshapeSimpleFloat16Test(std::vector<armnn::BackendId> & backends,bool useOption=true)50*89c4ff92SAndroid Build Coastguard Worker void ReshapeSimpleFloat16Test(std::vector<armnn::BackendId>& backends, bool useOption = true)
51*89c4ff92SAndroid Build Coastguard Worker {
52*89c4ff92SAndroid Build Coastguard Worker // Set input data
53*89c4ff92SAndroid Build Coastguard Worker std::vector<int32_t> inputShape { 1, 3, 4, 1 };
54*89c4ff92SAndroid Build Coastguard Worker std::vector<int32_t> outputShape { 1, 3, 2, 2 };
55*89c4ff92SAndroid Build Coastguard Worker std::vector<int32_t> targetShape { 1, 3, 2, 2 };
56*89c4ff92SAndroid Build Coastguard Worker
57*89c4ff92SAndroid Build Coastguard Worker std::vector<Half> inputValues = { 5._h, -8._h, -10._h, 7._h,
58*89c4ff92SAndroid Build Coastguard Worker 8._h, 12._h, -15._h, 2._h,
59*89c4ff92SAndroid Build Coastguard Worker 3._h, -4._h, -1._h, -11._h };
60*89c4ff92SAndroid Build Coastguard Worker
61*89c4ff92SAndroid Build Coastguard Worker std::vector<Half> expectedOutputValues = { 5._h, -8._h, -10._h, 7._h,
62*89c4ff92SAndroid Build Coastguard Worker 8._h, 12._h, -15._h, 2._h,
63*89c4ff92SAndroid Build Coastguard Worker 3._h, -4._h, -1._h, -11._h };
64*89c4ff92SAndroid Build Coastguard Worker
65*89c4ff92SAndroid Build Coastguard Worker RedefineTest<Half>(tflite::BuiltinOperator_RESHAPE,
66*89c4ff92SAndroid Build Coastguard Worker ::tflite::TensorType_FLOAT16,
67*89c4ff92SAndroid Build Coastguard Worker backends,
68*89c4ff92SAndroid Build Coastguard Worker inputShape,
69*89c4ff92SAndroid Build Coastguard Worker outputShape,
70*89c4ff92SAndroid Build Coastguard Worker inputValues,
71*89c4ff92SAndroid Build Coastguard Worker expectedOutputValues,
72*89c4ff92SAndroid Build Coastguard Worker targetShape,
73*89c4ff92SAndroid Build Coastguard Worker useOption);
74*89c4ff92SAndroid Build Coastguard Worker }
75*89c4ff92SAndroid Build Coastguard Worker
ReshapeReduceDimTest(std::vector<armnn::BackendId> & backends,bool useOption=true)76*89c4ff92SAndroid Build Coastguard Worker void ReshapeReduceDimTest(std::vector<armnn::BackendId>& backends, bool useOption = true)
77*89c4ff92SAndroid Build Coastguard Worker {
78*89c4ff92SAndroid Build Coastguard Worker // Set input data
79*89c4ff92SAndroid Build Coastguard Worker std::vector<int32_t> inputShape { 1, 3, 4, 1 };
80*89c4ff92SAndroid Build Coastguard Worker std::vector<int32_t> outputShape { 1, 4, 3 };
81*89c4ff92SAndroid Build Coastguard Worker std::vector<int32_t> targetShape { 1, 4, 3 };
82*89c4ff92SAndroid Build Coastguard Worker
83*89c4ff92SAndroid Build Coastguard Worker std::vector<float> inputValues = { -5.0f, 8.0f, -10.0f, 7.0f,
84*89c4ff92SAndroid Build Coastguard Worker 8.0f, 12.0f, -15.0f, 2.0f,
85*89c4ff92SAndroid Build Coastguard Worker 3.0f, -4.0f, -1.0f, -11.0f };
86*89c4ff92SAndroid Build Coastguard Worker
87*89c4ff92SAndroid Build Coastguard Worker std::vector<float> expectedOutputValues = { -5.0f, 8.0f, -10.0f, 7.0f,
88*89c4ff92SAndroid Build Coastguard Worker 8.0f, 12.0f, -15.0f, 2.0f,
89*89c4ff92SAndroid Build Coastguard Worker 3.0f, -4.0f, -1.0f, -11.0f };
90*89c4ff92SAndroid Build Coastguard Worker
91*89c4ff92SAndroid Build Coastguard Worker RedefineTest<float>(tflite::BuiltinOperator_RESHAPE,
92*89c4ff92SAndroid Build Coastguard Worker ::tflite::TensorType_FLOAT32,
93*89c4ff92SAndroid Build Coastguard Worker backends,
94*89c4ff92SAndroid Build Coastguard Worker inputShape,
95*89c4ff92SAndroid Build Coastguard Worker outputShape,
96*89c4ff92SAndroid Build Coastguard Worker inputValues,
97*89c4ff92SAndroid Build Coastguard Worker expectedOutputValues,
98*89c4ff92SAndroid Build Coastguard Worker targetShape,
99*89c4ff92SAndroid Build Coastguard Worker useOption);
100*89c4ff92SAndroid Build Coastguard Worker }
101*89c4ff92SAndroid Build Coastguard Worker
ReshapeFlattenTest(std::vector<armnn::BackendId> & backends,bool useOption=true)102*89c4ff92SAndroid Build Coastguard Worker void ReshapeFlattenTest(std::vector<armnn::BackendId>& backends, bool useOption = true)
103*89c4ff92SAndroid Build Coastguard Worker {
104*89c4ff92SAndroid Build Coastguard Worker // Set input data
105*89c4ff92SAndroid Build Coastguard Worker std::vector<int32_t> inputShape { 1, 3, 4, 1 };
106*89c4ff92SAndroid Build Coastguard Worker std::vector<int32_t> outputShape { 6, 2 };
107*89c4ff92SAndroid Build Coastguard Worker std::vector<int32_t> targetShape { -1, 2 };
108*89c4ff92SAndroid Build Coastguard Worker
109*89c4ff92SAndroid Build Coastguard Worker std::vector<float> inputValues = { -5.0f, 8.0f, -10.0f, 7.0f,
110*89c4ff92SAndroid Build Coastguard Worker 8.0f, 12.0f, -15.0f, 2.0f,
111*89c4ff92SAndroid Build Coastguard Worker 3.0f, -4.0f, -1.0f, -11.0f };
112*89c4ff92SAndroid Build Coastguard Worker
113*89c4ff92SAndroid Build Coastguard Worker std::vector<float> expectedOutputValues = { -5.0f, 8.0f, -10.0f, 7.0f,
114*89c4ff92SAndroid Build Coastguard Worker 8.0f, 12.0f, -15.0f, 2.0f,
115*89c4ff92SAndroid Build Coastguard Worker 3.0f, -4.0f, -1.0f, -11.0f };
116*89c4ff92SAndroid Build Coastguard Worker
117*89c4ff92SAndroid Build Coastguard Worker RedefineTest<float>(tflite::BuiltinOperator_RESHAPE,
118*89c4ff92SAndroid Build Coastguard Worker ::tflite::TensorType_FLOAT32,
119*89c4ff92SAndroid Build Coastguard Worker backends,
120*89c4ff92SAndroid Build Coastguard Worker inputShape,
121*89c4ff92SAndroid Build Coastguard Worker outputShape,
122*89c4ff92SAndroid Build Coastguard Worker inputValues,
123*89c4ff92SAndroid Build Coastguard Worker expectedOutputValues,
124*89c4ff92SAndroid Build Coastguard Worker targetShape,
125*89c4ff92SAndroid Build Coastguard Worker useOption);
126*89c4ff92SAndroid Build Coastguard Worker }
127*89c4ff92SAndroid Build Coastguard Worker
ReshapeFlattenAllTest(std::vector<armnn::BackendId> & backends,bool useOption=true)128*89c4ff92SAndroid Build Coastguard Worker void ReshapeFlattenAllTest(std::vector<armnn::BackendId>& backends, bool useOption = true)
129*89c4ff92SAndroid Build Coastguard Worker {
130*89c4ff92SAndroid Build Coastguard Worker // Set input data
131*89c4ff92SAndroid Build Coastguard Worker std::vector<int32_t> inputShape { 1, 3, 4, 1 };
132*89c4ff92SAndroid Build Coastguard Worker std::vector<int32_t> outputShape { 12 };
133*89c4ff92SAndroid Build Coastguard Worker std::vector<int32_t> targetShape { -1 };
134*89c4ff92SAndroid Build Coastguard Worker
135*89c4ff92SAndroid Build Coastguard Worker std::vector<float> inputValues = { -5.0f, 8.0f, -10.0f, 7.0f,
136*89c4ff92SAndroid Build Coastguard Worker 8.0f, 12.0f, -15.0f, 2.0f,
137*89c4ff92SAndroid Build Coastguard Worker 3.0f, -4.0f, -1.0f, -11.0f };
138*89c4ff92SAndroid Build Coastguard Worker
139*89c4ff92SAndroid Build Coastguard Worker std::vector<float> expectedOutputValues = { -5.0f, 8.0f, -10.0f, 7.0f,
140*89c4ff92SAndroid Build Coastguard Worker 8.0f, 12.0f, -15.0f, 2.0f,
141*89c4ff92SAndroid Build Coastguard Worker 3.0f, -4.0f, -1.0f, -11.0f };
142*89c4ff92SAndroid Build Coastguard Worker
143*89c4ff92SAndroid Build Coastguard Worker RedefineTest<float>(tflite::BuiltinOperator_RESHAPE,
144*89c4ff92SAndroid Build Coastguard Worker ::tflite::TensorType_FLOAT32,
145*89c4ff92SAndroid Build Coastguard Worker backends,
146*89c4ff92SAndroid Build Coastguard Worker inputShape,
147*89c4ff92SAndroid Build Coastguard Worker outputShape,
148*89c4ff92SAndroid Build Coastguard Worker inputValues,
149*89c4ff92SAndroid Build Coastguard Worker expectedOutputValues,
150*89c4ff92SAndroid Build Coastguard Worker targetShape,
151*89c4ff92SAndroid Build Coastguard Worker useOption);
152*89c4ff92SAndroid Build Coastguard Worker }
153*89c4ff92SAndroid Build Coastguard Worker
ReshapeInt8Test(std::vector<armnn::BackendId> & backends,bool useOption=true)154*89c4ff92SAndroid Build Coastguard Worker void ReshapeInt8Test(std::vector<armnn::BackendId>& backends, bool useOption = true)
155*89c4ff92SAndroid Build Coastguard Worker {
156*89c4ff92SAndroid Build Coastguard Worker // Set input data
157*89c4ff92SAndroid Build Coastguard Worker std::vector<int32_t> inputShape { 1, 3, 4, 1 };
158*89c4ff92SAndroid Build Coastguard Worker std::vector<int32_t> outputShape { 6, 2 };
159*89c4ff92SAndroid Build Coastguard Worker std::vector<int32_t> targetShape { -1, 2 };
160*89c4ff92SAndroid Build Coastguard Worker
161*89c4ff92SAndroid Build Coastguard Worker std::vector<int8_t> inputValues = { -5, 8, -10, 7,
162*89c4ff92SAndroid Build Coastguard Worker 8, 12, -15, 2,
163*89c4ff92SAndroid Build Coastguard Worker 3, -4, -1, -11 };
164*89c4ff92SAndroid Build Coastguard Worker
165*89c4ff92SAndroid Build Coastguard Worker std::vector<int8_t> expectedOutputValues = { -5, 8, -10, 7,
166*89c4ff92SAndroid Build Coastguard Worker 8, 12, -15, 2,
167*89c4ff92SAndroid Build Coastguard Worker 3, -4, -1, -11 };
168*89c4ff92SAndroid Build Coastguard Worker
169*89c4ff92SAndroid Build Coastguard Worker RedefineTest<int8_t>(tflite::BuiltinOperator_RESHAPE,
170*89c4ff92SAndroid Build Coastguard Worker ::tflite::TensorType_INT8,
171*89c4ff92SAndroid Build Coastguard Worker backends,
172*89c4ff92SAndroid Build Coastguard Worker inputShape,
173*89c4ff92SAndroid Build Coastguard Worker outputShape,
174*89c4ff92SAndroid Build Coastguard Worker inputValues,
175*89c4ff92SAndroid Build Coastguard Worker expectedOutputValues,
176*89c4ff92SAndroid Build Coastguard Worker targetShape,
177*89c4ff92SAndroid Build Coastguard Worker useOption,
178*89c4ff92SAndroid Build Coastguard Worker 2.5f,
179*89c4ff92SAndroid Build Coastguard Worker 1);
180*89c4ff92SAndroid Build Coastguard Worker }
181*89c4ff92SAndroid Build Coastguard Worker
ReshapeUint8Test(std::vector<armnn::BackendId> & backends,bool useOption=true)182*89c4ff92SAndroid Build Coastguard Worker void ReshapeUint8Test(std::vector<armnn::BackendId>& backends, bool useOption = true)
183*89c4ff92SAndroid Build Coastguard Worker {
184*89c4ff92SAndroid Build Coastguard Worker // Set input data
185*89c4ff92SAndroid Build Coastguard Worker std::vector<int32_t> inputShape { 1, 3, 4, 1 };
186*89c4ff92SAndroid Build Coastguard Worker std::vector<int32_t> outputShape { 6, 2 };
187*89c4ff92SAndroid Build Coastguard Worker std::vector<int32_t> targetShape { -1, 2 };
188*89c4ff92SAndroid Build Coastguard Worker
189*89c4ff92SAndroid Build Coastguard Worker std::vector<uint8_t> inputValues = { 5, 8, 10, 7,
190*89c4ff92SAndroid Build Coastguard Worker 8, 12, 15, 2,
191*89c4ff92SAndroid Build Coastguard Worker 3, 4, 1, 11 };
192*89c4ff92SAndroid Build Coastguard Worker
193*89c4ff92SAndroid Build Coastguard Worker std::vector<uint8_t> expectedOutputValues = { 5, 8, 10, 7,
194*89c4ff92SAndroid Build Coastguard Worker 8, 12, 15, 2,
195*89c4ff92SAndroid Build Coastguard Worker 3, 4, 1, 11 };
196*89c4ff92SAndroid Build Coastguard Worker
197*89c4ff92SAndroid Build Coastguard Worker RedefineTest<uint8_t>(tflite::BuiltinOperator_RESHAPE,
198*89c4ff92SAndroid Build Coastguard Worker ::tflite::TensorType_UINT8,
199*89c4ff92SAndroid Build Coastguard Worker backends,
200*89c4ff92SAndroid Build Coastguard Worker inputShape,
201*89c4ff92SAndroid Build Coastguard Worker outputShape,
202*89c4ff92SAndroid Build Coastguard Worker inputValues,
203*89c4ff92SAndroid Build Coastguard Worker expectedOutputValues,
204*89c4ff92SAndroid Build Coastguard Worker targetShape,
205*89c4ff92SAndroid Build Coastguard Worker useOption,
206*89c4ff92SAndroid Build Coastguard Worker 2.5f,
207*89c4ff92SAndroid Build Coastguard Worker 1);
208*89c4ff92SAndroid Build Coastguard Worker }
209*89c4ff92SAndroid Build Coastguard Worker
ReshapeInt16Test(std::vector<armnn::BackendId> & backends,bool useOption=true)210*89c4ff92SAndroid Build Coastguard Worker void ReshapeInt16Test(std::vector<armnn::BackendId>& backends, bool useOption = true)
211*89c4ff92SAndroid Build Coastguard Worker {
212*89c4ff92SAndroid Build Coastguard Worker // Set input data
213*89c4ff92SAndroid Build Coastguard Worker std::vector<int32_t> inputShape { 1, 3, 4, 1 };
214*89c4ff92SAndroid Build Coastguard Worker std::vector<int32_t> outputShape { 6, 2 };
215*89c4ff92SAndroid Build Coastguard Worker std::vector<int32_t> targetShape { -1, 2 };
216*89c4ff92SAndroid Build Coastguard Worker
217*89c4ff92SAndroid Build Coastguard Worker std::vector<int16_t> inputValues = { -5, 8, -10, 7,
218*89c4ff92SAndroid Build Coastguard Worker 8, 12, -15, 2,
219*89c4ff92SAndroid Build Coastguard Worker 3, -4, -1, -11 };
220*89c4ff92SAndroid Build Coastguard Worker
221*89c4ff92SAndroid Build Coastguard Worker std::vector<int16_t> expectedOutputValues = { -5, 8, -10, 7,
222*89c4ff92SAndroid Build Coastguard Worker 8, 12, -15, 2,
223*89c4ff92SAndroid Build Coastguard Worker 3, -4, -1, -11 };
224*89c4ff92SAndroid Build Coastguard Worker
225*89c4ff92SAndroid Build Coastguard Worker RedefineTest<int16_t>(tflite::BuiltinOperator_RESHAPE,
226*89c4ff92SAndroid Build Coastguard Worker ::tflite::TensorType_INT16,
227*89c4ff92SAndroid Build Coastguard Worker backends,
228*89c4ff92SAndroid Build Coastguard Worker inputShape,
229*89c4ff92SAndroid Build Coastguard Worker outputShape,
230*89c4ff92SAndroid Build Coastguard Worker inputValues,
231*89c4ff92SAndroid Build Coastguard Worker expectedOutputValues,
232*89c4ff92SAndroid Build Coastguard Worker targetShape,
233*89c4ff92SAndroid Build Coastguard Worker useOption,
234*89c4ff92SAndroid Build Coastguard Worker 2.5f,
235*89c4ff92SAndroid Build Coastguard Worker 0);
236*89c4ff92SAndroid Build Coastguard Worker }
237*89c4ff92SAndroid Build Coastguard Worker
238*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE("Reshape_GpuAccTests")
239*89c4ff92SAndroid Build Coastguard Worker {
240*89c4ff92SAndroid Build Coastguard Worker
241*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Simple_GpuAcc_Test")
242*89c4ff92SAndroid Build Coastguard Worker {
243*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
244*89c4ff92SAndroid Build Coastguard Worker ReshapeSimpleTest(backends);
245*89c4ff92SAndroid Build Coastguard Worker }
246*89c4ff92SAndroid Build Coastguard Worker
247*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_ReduceDimension_GpuAcc_Test")
248*89c4ff92SAndroid Build Coastguard Worker {
249*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
250*89c4ff92SAndroid Build Coastguard Worker ReshapeReduceDimTest(backends);
251*89c4ff92SAndroid Build Coastguard Worker }
252*89c4ff92SAndroid Build Coastguard Worker
253*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Flatten_GpuAcc_Test")
254*89c4ff92SAndroid Build Coastguard Worker {
255*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
256*89c4ff92SAndroid Build Coastguard Worker ReshapeFlattenTest(backends);
257*89c4ff92SAndroid Build Coastguard Worker }
258*89c4ff92SAndroid Build Coastguard Worker
259*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_FlattenAll_GpuAcc_Test")
260*89c4ff92SAndroid Build Coastguard Worker {
261*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
262*89c4ff92SAndroid Build Coastguard Worker ReshapeFlattenAllTest(backends);
263*89c4ff92SAndroid Build Coastguard Worker }
264*89c4ff92SAndroid Build Coastguard Worker
265*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Int8_GpuAcc_Test")
266*89c4ff92SAndroid Build Coastguard Worker {
267*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
268*89c4ff92SAndroid Build Coastguard Worker ReshapeInt8Test(backends);
269*89c4ff92SAndroid Build Coastguard Worker }
270*89c4ff92SAndroid Build Coastguard Worker
271*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Uint8_GpuAcc_Test")
272*89c4ff92SAndroid Build Coastguard Worker {
273*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
274*89c4ff92SAndroid Build Coastguard Worker ReshapeUint8Test(backends);
275*89c4ff92SAndroid Build Coastguard Worker }
276*89c4ff92SAndroid Build Coastguard Worker
277*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Float16_GpuAcc_Test")
278*89c4ff92SAndroid Build Coastguard Worker {
279*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
280*89c4ff92SAndroid Build Coastguard Worker ReshapeSimpleFloat16Test(backends);
281*89c4ff92SAndroid Build Coastguard Worker }
282*89c4ff92SAndroid Build Coastguard Worker
283*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Simple_ShapeTensor_GpuAcc_Test")
284*89c4ff92SAndroid Build Coastguard Worker {
285*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
286*89c4ff92SAndroid Build Coastguard Worker ReshapeSimpleTest(backends, false);
287*89c4ff92SAndroid Build Coastguard Worker }
288*89c4ff92SAndroid Build Coastguard Worker
289*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_ReduceDimension_ShapeTensor_GpuAcc_Test")
290*89c4ff92SAndroid Build Coastguard Worker {
291*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
292*89c4ff92SAndroid Build Coastguard Worker ReshapeReduceDimTest(backends, false);
293*89c4ff92SAndroid Build Coastguard Worker }
294*89c4ff92SAndroid Build Coastguard Worker
295*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Flatten_ShapeTensor_GpuAcc_Test")
296*89c4ff92SAndroid Build Coastguard Worker {
297*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
298*89c4ff92SAndroid Build Coastguard Worker ReshapeFlattenTest(backends, false);
299*89c4ff92SAndroid Build Coastguard Worker }
300*89c4ff92SAndroid Build Coastguard Worker
301*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_FlattenAll_ShapeTensor_GpuAcc_Test")
302*89c4ff92SAndroid Build Coastguard Worker {
303*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
304*89c4ff92SAndroid Build Coastguard Worker ReshapeFlattenAllTest(backends, false);
305*89c4ff92SAndroid Build Coastguard Worker }
306*89c4ff92SAndroid Build Coastguard Worker
307*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Int8_ShapeTensor_GpuAcc_Test")
308*89c4ff92SAndroid Build Coastguard Worker {
309*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
310*89c4ff92SAndroid Build Coastguard Worker ReshapeInt8Test(backends, false);
311*89c4ff92SAndroid Build Coastguard Worker }
312*89c4ff92SAndroid Build Coastguard Worker
313*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Uint8_ShapeTensor_GpuAcc_Test")
314*89c4ff92SAndroid Build Coastguard Worker {
315*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
316*89c4ff92SAndroid Build Coastguard Worker ReshapeUint8Test(backends, false);
317*89c4ff92SAndroid Build Coastguard Worker }
318*89c4ff92SAndroid Build Coastguard Worker
319*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Float16_ShapeTensor_GpuAcc_Test")
320*89c4ff92SAndroid Build Coastguard Worker {
321*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
322*89c4ff92SAndroid Build Coastguard Worker ReshapeSimpleFloat16Test(backends, false);
323*89c4ff92SAndroid Build Coastguard Worker }
324*89c4ff92SAndroid Build Coastguard Worker
325*89c4ff92SAndroid Build Coastguard Worker } // TEST_SUITE("Reshape_GpuAccTests")
326*89c4ff92SAndroid Build Coastguard Worker
327*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE("Reshape_CpuAccTests")
328*89c4ff92SAndroid Build Coastguard Worker {
329*89c4ff92SAndroid Build Coastguard Worker
330*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Simple_CpuAcc_Test")
331*89c4ff92SAndroid Build Coastguard Worker {
332*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
333*89c4ff92SAndroid Build Coastguard Worker ReshapeSimpleTest(backends);
334*89c4ff92SAndroid Build Coastguard Worker }
335*89c4ff92SAndroid Build Coastguard Worker
336*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_ReduceDimension_CpuAcc_Test")
337*89c4ff92SAndroid Build Coastguard Worker {
338*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
339*89c4ff92SAndroid Build Coastguard Worker ReshapeReduceDimTest(backends);
340*89c4ff92SAndroid Build Coastguard Worker }
341*89c4ff92SAndroid Build Coastguard Worker
342*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Flatten_CpuAcc_Test")
343*89c4ff92SAndroid Build Coastguard Worker {
344*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
345*89c4ff92SAndroid Build Coastguard Worker ReshapeFlattenTest(backends);
346*89c4ff92SAndroid Build Coastguard Worker }
347*89c4ff92SAndroid Build Coastguard Worker
348*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_FlattenAll_CpuAcc_Test")
349*89c4ff92SAndroid Build Coastguard Worker {
350*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
351*89c4ff92SAndroid Build Coastguard Worker ReshapeFlattenAllTest(backends);
352*89c4ff92SAndroid Build Coastguard Worker }
353*89c4ff92SAndroid Build Coastguard Worker
354*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Int8_CpuAcc_Test")
355*89c4ff92SAndroid Build Coastguard Worker {
356*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
357*89c4ff92SAndroid Build Coastguard Worker ReshapeInt8Test(backends);
358*89c4ff92SAndroid Build Coastguard Worker }
359*89c4ff92SAndroid Build Coastguard Worker
360*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Uint8_CpuAcc_Test")
361*89c4ff92SAndroid Build Coastguard Worker {
362*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
363*89c4ff92SAndroid Build Coastguard Worker ReshapeUint8Test(backends);
364*89c4ff92SAndroid Build Coastguard Worker }
365*89c4ff92SAndroid Build Coastguard Worker
366*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Float16_CpuAcc_Test")
367*89c4ff92SAndroid Build Coastguard Worker {
368*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
369*89c4ff92SAndroid Build Coastguard Worker ReshapeSimpleFloat16Test(backends);
370*89c4ff92SAndroid Build Coastguard Worker }
371*89c4ff92SAndroid Build Coastguard Worker
372*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Simple_ShapeTensor_CpuAcc_Test")
373*89c4ff92SAndroid Build Coastguard Worker {
374*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
375*89c4ff92SAndroid Build Coastguard Worker ReshapeSimpleTest(backends, false);
376*89c4ff92SAndroid Build Coastguard Worker }
377*89c4ff92SAndroid Build Coastguard Worker
378*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_ReduceDimension_ShapeTensor_CpuAcc_Test")
379*89c4ff92SAndroid Build Coastguard Worker {
380*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
381*89c4ff92SAndroid Build Coastguard Worker ReshapeReduceDimTest(backends, false);
382*89c4ff92SAndroid Build Coastguard Worker }
383*89c4ff92SAndroid Build Coastguard Worker
384*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Flatten_ShapeTensor_CpuAcc_Test")
385*89c4ff92SAndroid Build Coastguard Worker {
386*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
387*89c4ff92SAndroid Build Coastguard Worker ReshapeFlattenTest(backends, false);
388*89c4ff92SAndroid Build Coastguard Worker }
389*89c4ff92SAndroid Build Coastguard Worker
390*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_FlattenAll_ShapeTensor_CpuAcc_Test")
391*89c4ff92SAndroid Build Coastguard Worker {
392*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
393*89c4ff92SAndroid Build Coastguard Worker ReshapeFlattenAllTest(backends, false);
394*89c4ff92SAndroid Build Coastguard Worker }
395*89c4ff92SAndroid Build Coastguard Worker
396*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Int8_ShapeTensor_CpuAcc_Test")
397*89c4ff92SAndroid Build Coastguard Worker {
398*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
399*89c4ff92SAndroid Build Coastguard Worker ReshapeInt8Test(backends, false);
400*89c4ff92SAndroid Build Coastguard Worker }
401*89c4ff92SAndroid Build Coastguard Worker
402*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Uint8_ShapeTensor_CpuAcc_Test")
403*89c4ff92SAndroid Build Coastguard Worker {
404*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
405*89c4ff92SAndroid Build Coastguard Worker ReshapeUint8Test(backends, false);
406*89c4ff92SAndroid Build Coastguard Worker }
407*89c4ff92SAndroid Build Coastguard Worker
408*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Float16_ShapeTensor_CpuAcc_Test")
409*89c4ff92SAndroid Build Coastguard Worker {
410*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
411*89c4ff92SAndroid Build Coastguard Worker ReshapeSimpleFloat16Test(backends, false);
412*89c4ff92SAndroid Build Coastguard Worker }
413*89c4ff92SAndroid Build Coastguard Worker
414*89c4ff92SAndroid Build Coastguard Worker } // TEST_SUITE("Reshape_CpuAccTests")
415*89c4ff92SAndroid Build Coastguard Worker
416*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE("Reshape_CpuRefTests")
417*89c4ff92SAndroid Build Coastguard Worker {
418*89c4ff92SAndroid Build Coastguard Worker
419*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Simple_CpuRef_Test")
420*89c4ff92SAndroid Build Coastguard Worker {
421*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
422*89c4ff92SAndroid Build Coastguard Worker ReshapeSimpleTest(backends);
423*89c4ff92SAndroid Build Coastguard Worker }
424*89c4ff92SAndroid Build Coastguard Worker
425*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_ReduceDimension_CpuRef_Test")
426*89c4ff92SAndroid Build Coastguard Worker {
427*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
428*89c4ff92SAndroid Build Coastguard Worker ReshapeReduceDimTest(backends);
429*89c4ff92SAndroid Build Coastguard Worker }
430*89c4ff92SAndroid Build Coastguard Worker
431*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Flatten_CpuRef_Test")
432*89c4ff92SAndroid Build Coastguard Worker {
433*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
434*89c4ff92SAndroid Build Coastguard Worker ReshapeFlattenTest(backends);
435*89c4ff92SAndroid Build Coastguard Worker }
436*89c4ff92SAndroid Build Coastguard Worker
437*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_FlattenAll_CpuRef_Test")
438*89c4ff92SAndroid Build Coastguard Worker {
439*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
440*89c4ff92SAndroid Build Coastguard Worker ReshapeFlattenAllTest(backends);
441*89c4ff92SAndroid Build Coastguard Worker }
442*89c4ff92SAndroid Build Coastguard Worker
443*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Int8_CpuRef_Test")
444*89c4ff92SAndroid Build Coastguard Worker {
445*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
446*89c4ff92SAndroid Build Coastguard Worker ReshapeInt8Test(backends);
447*89c4ff92SAndroid Build Coastguard Worker }
448*89c4ff92SAndroid Build Coastguard Worker
449*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Uint8_CpuRef_Test")
450*89c4ff92SAndroid Build Coastguard Worker {
451*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
452*89c4ff92SAndroid Build Coastguard Worker ReshapeUint8Test(backends);
453*89c4ff92SAndroid Build Coastguard Worker }
454*89c4ff92SAndroid Build Coastguard Worker
455*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Int16_CpuRef_Test")
456*89c4ff92SAndroid Build Coastguard Worker {
457*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
458*89c4ff92SAndroid Build Coastguard Worker ReshapeInt16Test(backends);
459*89c4ff92SAndroid Build Coastguard Worker }
460*89c4ff92SAndroid Build Coastguard Worker
461*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Float16_CpuRef_Test")
462*89c4ff92SAndroid Build Coastguard Worker {
463*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
464*89c4ff92SAndroid Build Coastguard Worker ReshapeSimpleFloat16Test(backends);
465*89c4ff92SAndroid Build Coastguard Worker }
466*89c4ff92SAndroid Build Coastguard Worker
467*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Simple_ShapeTensor_CpuRef_Test")
468*89c4ff92SAndroid Build Coastguard Worker {
469*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
470*89c4ff92SAndroid Build Coastguard Worker ReshapeSimpleTest(backends, false);
471*89c4ff92SAndroid Build Coastguard Worker }
472*89c4ff92SAndroid Build Coastguard Worker
473*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_ReduceDimension_ShapeTensor_CpuRef_Test")
474*89c4ff92SAndroid Build Coastguard Worker {
475*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
476*89c4ff92SAndroid Build Coastguard Worker ReshapeReduceDimTest(backends, false);
477*89c4ff92SAndroid Build Coastguard Worker }
478*89c4ff92SAndroid Build Coastguard Worker
479*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Flatten_ShapeTensor_CpuRef_Test")
480*89c4ff92SAndroid Build Coastguard Worker {
481*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
482*89c4ff92SAndroid Build Coastguard Worker ReshapeFlattenTest(backends, false);
483*89c4ff92SAndroid Build Coastguard Worker }
484*89c4ff92SAndroid Build Coastguard Worker
485*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_FlattenAll_ShapeTensor_CpuRef_Test")
486*89c4ff92SAndroid Build Coastguard Worker {
487*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
488*89c4ff92SAndroid Build Coastguard Worker ReshapeFlattenAllTest(backends, false);
489*89c4ff92SAndroid Build Coastguard Worker }
490*89c4ff92SAndroid Build Coastguard Worker
491*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Int8_ShapeTensor_CpuRef_Test")
492*89c4ff92SAndroid Build Coastguard Worker {
493*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
494*89c4ff92SAndroid Build Coastguard Worker ReshapeInt8Test(backends, false);
495*89c4ff92SAndroid Build Coastguard Worker }
496*89c4ff92SAndroid Build Coastguard Worker
497*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Uint8_ShapeTensor_CpuRef_Test")
498*89c4ff92SAndroid Build Coastguard Worker {
499*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
500*89c4ff92SAndroid Build Coastguard Worker ReshapeUint8Test(backends, false);
501*89c4ff92SAndroid Build Coastguard Worker }
502*89c4ff92SAndroid Build Coastguard Worker
503*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Int16_ShapeTensor_CpuRef_Test")
504*89c4ff92SAndroid Build Coastguard Worker {
505*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
506*89c4ff92SAndroid Build Coastguard Worker ReshapeInt16Test(backends, false);
507*89c4ff92SAndroid Build Coastguard Worker }
508*89c4ff92SAndroid Build Coastguard Worker
509*89c4ff92SAndroid Build Coastguard Worker TEST_CASE ("Reshape_Float16_ShapeTensor_CpuRef_Test")
510*89c4ff92SAndroid Build Coastguard Worker {
511*89c4ff92SAndroid Build Coastguard Worker std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
512*89c4ff92SAndroid Build Coastguard Worker ReshapeSimpleFloat16Test(backends, false);
513*89c4ff92SAndroid Build Coastguard Worker }
514*89c4ff92SAndroid Build Coastguard Worker
515*89c4ff92SAndroid Build Coastguard Worker } // TEST_SUITE("Reshape_CpuRefTests")
516*89c4ff92SAndroid Build Coastguard Worker
517*89c4ff92SAndroid Build Coastguard Worker } // namespace armnnDelegate