1 // clang-format off
2 // Generated file (from: resize_nearest_neighbor.mod.py). Do not edit
CreateModel_shape_nhwc(Model * model)3 void CreateModel_shape_nhwc(Model *model) {
4 OperandType type0(Type::BOOL, {});
5 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
6 OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 1});
7 OperandType type3(Type::INT32, {});
8 // Phase 1, operands
9 auto in = model->addOperand(&type1);
10 auto param = model->addOperand(&type3);
11 auto param1 = model->addOperand(&type3);
12 auto layout = model->addOperand(&type0);
13 auto out = model->addOperand(&type2);
14 // Phase 2, operations
15 static int32_t param_init[] = {1};
16 model->setOperandValue(param, param_init, sizeof(int32_t) * 1);
17 static int32_t param1_init[] = {1};
18 model->setOperandValue(param1, param1_init, sizeof(int32_t) * 1);
19 static bool8 layout_init[] = {false};
20 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
21 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param, param1, layout}, {out});
22 // Phase 3, inputs and outputs
23 model->identifyInputsAndOutputs(
24 {in},
25 {out});
26 assert(model->isValid());
27 }
28
is_ignored_shape_nhwc(int i)29 inline bool is_ignored_shape_nhwc(int i) {
30 static std::set<int> ignore = {};
31 return ignore.find(i) != ignore.end();
32 }
33
CreateModel_shape_nhwc_relaxed(Model * model)34 void CreateModel_shape_nhwc_relaxed(Model *model) {
35 OperandType type0(Type::BOOL, {});
36 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
37 OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 1});
38 OperandType type3(Type::INT32, {});
39 // Phase 1, operands
40 auto in = model->addOperand(&type1);
41 auto param = model->addOperand(&type3);
42 auto param1 = model->addOperand(&type3);
43 auto layout = model->addOperand(&type0);
44 auto out = model->addOperand(&type2);
45 // Phase 2, operations
46 static int32_t param_init[] = {1};
47 model->setOperandValue(param, param_init, sizeof(int32_t) * 1);
48 static int32_t param1_init[] = {1};
49 model->setOperandValue(param1, param1_init, sizeof(int32_t) * 1);
50 static bool8 layout_init[] = {false};
51 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
52 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param, param1, layout}, {out});
53 // Phase 3, inputs and outputs
54 model->identifyInputsAndOutputs(
55 {in},
56 {out});
57 // Phase 4: set relaxed execution
58 model->relaxComputationFloat32toFloat16(true);
59 assert(model->isValid());
60 }
61
is_ignored_shape_nhwc_relaxed(int i)62 inline bool is_ignored_shape_nhwc_relaxed(int i) {
63 static std::set<int> ignore = {};
64 return ignore.find(i) != ignore.end();
65 }
66
CreateModel_shape_nhwc_quant8(Model * model)67 void CreateModel_shape_nhwc_quant8(Model *model) {
68 OperandType type0(Type::BOOL, {});
69 OperandType type19(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.25f, 128);
70 OperandType type20(Type::TENSOR_QUANT8_ASYMM, {1, 1, 1, 1}, 0.25f, 128);
71 OperandType type3(Type::INT32, {});
72 // Phase 1, operands
73 auto in = model->addOperand(&type19);
74 auto param = model->addOperand(&type3);
75 auto param1 = model->addOperand(&type3);
76 auto layout = model->addOperand(&type0);
77 auto out = model->addOperand(&type20);
78 // Phase 2, operations
79 static int32_t param_init[] = {1};
80 model->setOperandValue(param, param_init, sizeof(int32_t) * 1);
81 static int32_t param1_init[] = {1};
82 model->setOperandValue(param1, param1_init, sizeof(int32_t) * 1);
83 static bool8 layout_init[] = {false};
84 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
85 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param, param1, layout}, {out});
86 // Phase 3, inputs and outputs
87 model->identifyInputsAndOutputs(
88 {in},
89 {out});
90 assert(model->isValid());
91 }
92
is_ignored_shape_nhwc_quant8(int i)93 inline bool is_ignored_shape_nhwc_quant8(int i) {
94 static std::set<int> ignore = {};
95 return ignore.find(i) != ignore.end();
96 }
97
CreateModel_shape_nhwc_float16(Model * model)98 void CreateModel_shape_nhwc_float16(Model *model) {
99 OperandType type0(Type::BOOL, {});
100 OperandType type21(Type::TENSOR_FLOAT16, {1, 2, 2, 1});
101 OperandType type22(Type::TENSOR_FLOAT16, {1, 1, 1, 1});
102 OperandType type3(Type::INT32, {});
103 // Phase 1, operands
104 auto in = model->addOperand(&type21);
105 auto param = model->addOperand(&type3);
106 auto param1 = model->addOperand(&type3);
107 auto layout = model->addOperand(&type0);
108 auto out = model->addOperand(&type22);
109 // Phase 2, operations
110 static int32_t param_init[] = {1};
111 model->setOperandValue(param, param_init, sizeof(int32_t) * 1);
112 static int32_t param1_init[] = {1};
113 model->setOperandValue(param1, param1_init, sizeof(int32_t) * 1);
114 static bool8 layout_init[] = {false};
115 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
116 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param, param1, layout}, {out});
117 // Phase 3, inputs and outputs
118 model->identifyInputsAndOutputs(
119 {in},
120 {out});
121 assert(model->isValid());
122 }
123
is_ignored_shape_nhwc_float16(int i)124 inline bool is_ignored_shape_nhwc_float16(int i) {
125 static std::set<int> ignore = {};
126 return ignore.find(i) != ignore.end();
127 }
128
CreateModel_shape_nchw(Model * model)129 void CreateModel_shape_nchw(Model *model) {
130 OperandType type0(Type::BOOL, {});
131 OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 1});
132 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
133 OperandType type3(Type::INT32, {});
134 // Phase 1, operands
135 auto in = model->addOperand(&type23);
136 auto param = model->addOperand(&type3);
137 auto param1 = model->addOperand(&type3);
138 auto layout = model->addOperand(&type0);
139 auto out = model->addOperand(&type2);
140 // Phase 2, operations
141 static int32_t param_init[] = {1};
142 model->setOperandValue(param, param_init, sizeof(int32_t) * 1);
143 static int32_t param1_init[] = {1};
144 model->setOperandValue(param1, param1_init, sizeof(int32_t) * 1);
145 static bool8 layout_init[] = {true};
146 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
147 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param, param1, layout}, {out});
148 // Phase 3, inputs and outputs
149 model->identifyInputsAndOutputs(
150 {in},
151 {out});
152 assert(model->isValid());
153 }
154
is_ignored_shape_nchw(int i)155 inline bool is_ignored_shape_nchw(int i) {
156 static std::set<int> ignore = {};
157 return ignore.find(i) != ignore.end();
158 }
159
CreateModel_shape_nchw_relaxed(Model * model)160 void CreateModel_shape_nchw_relaxed(Model *model) {
161 OperandType type0(Type::BOOL, {});
162 OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 1});
163 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
164 OperandType type3(Type::INT32, {});
165 // Phase 1, operands
166 auto in = model->addOperand(&type23);
167 auto param = model->addOperand(&type3);
168 auto param1 = model->addOperand(&type3);
169 auto layout = model->addOperand(&type0);
170 auto out = model->addOperand(&type2);
171 // Phase 2, operations
172 static int32_t param_init[] = {1};
173 model->setOperandValue(param, param_init, sizeof(int32_t) * 1);
174 static int32_t param1_init[] = {1};
175 model->setOperandValue(param1, param1_init, sizeof(int32_t) * 1);
176 static bool8 layout_init[] = {true};
177 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
178 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param, param1, layout}, {out});
179 // Phase 3, inputs and outputs
180 model->identifyInputsAndOutputs(
181 {in},
182 {out});
183 // Phase 4: set relaxed execution
184 model->relaxComputationFloat32toFloat16(true);
185 assert(model->isValid());
186 }
187
is_ignored_shape_nchw_relaxed(int i)188 inline bool is_ignored_shape_nchw_relaxed(int i) {
189 static std::set<int> ignore = {};
190 return ignore.find(i) != ignore.end();
191 }
192
CreateModel_shape_nchw_quant8(Model * model)193 void CreateModel_shape_nchw_quant8(Model *model) {
194 OperandType type0(Type::BOOL, {});
195 OperandType type20(Type::TENSOR_QUANT8_ASYMM, {1, 1, 1, 1}, 0.25f, 128);
196 OperandType type24(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 2}, 0.25f, 128);
197 OperandType type3(Type::INT32, {});
198 // Phase 1, operands
199 auto in = model->addOperand(&type24);
200 auto param = model->addOperand(&type3);
201 auto param1 = model->addOperand(&type3);
202 auto layout = model->addOperand(&type0);
203 auto out = model->addOperand(&type20);
204 // Phase 2, operations
205 static int32_t param_init[] = {1};
206 model->setOperandValue(param, param_init, sizeof(int32_t) * 1);
207 static int32_t param1_init[] = {1};
208 model->setOperandValue(param1, param1_init, sizeof(int32_t) * 1);
209 static bool8 layout_init[] = {true};
210 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
211 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param, param1, layout}, {out});
212 // Phase 3, inputs and outputs
213 model->identifyInputsAndOutputs(
214 {in},
215 {out});
216 assert(model->isValid());
217 }
218
is_ignored_shape_nchw_quant8(int i)219 inline bool is_ignored_shape_nchw_quant8(int i) {
220 static std::set<int> ignore = {};
221 return ignore.find(i) != ignore.end();
222 }
223
CreateModel_shape_nchw_float16(Model * model)224 void CreateModel_shape_nchw_float16(Model *model) {
225 OperandType type0(Type::BOOL, {});
226 OperandType type22(Type::TENSOR_FLOAT16, {1, 1, 1, 1});
227 OperandType type25(Type::TENSOR_FLOAT16, {1, 1, 2, 2});
228 OperandType type3(Type::INT32, {});
229 // Phase 1, operands
230 auto in = model->addOperand(&type25);
231 auto param = model->addOperand(&type3);
232 auto param1 = model->addOperand(&type3);
233 auto layout = model->addOperand(&type0);
234 auto out = model->addOperand(&type22);
235 // Phase 2, operations
236 static int32_t param_init[] = {1};
237 model->setOperandValue(param, param_init, sizeof(int32_t) * 1);
238 static int32_t param1_init[] = {1};
239 model->setOperandValue(param1, param1_init, sizeof(int32_t) * 1);
240 static bool8 layout_init[] = {true};
241 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
242 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param, param1, layout}, {out});
243 // Phase 3, inputs and outputs
244 model->identifyInputsAndOutputs(
245 {in},
246 {out});
247 assert(model->isValid());
248 }
249
is_ignored_shape_nchw_float16(int i)250 inline bool is_ignored_shape_nchw_float16(int i) {
251 static std::set<int> ignore = {};
252 return ignore.find(i) != ignore.end();
253 }
254
CreateModel_shape_dynamic_output_shape_nhwc(Model * model)255 void CreateModel_shape_dynamic_output_shape_nhwc(Model *model) {
256 OperandType type0(Type::BOOL, {});
257 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
258 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
259 OperandType type3(Type::INT32, {});
260 // Phase 1, operands
261 auto in = model->addOperand(&type1);
262 auto param = model->addOperand(&type3);
263 auto param1 = model->addOperand(&type3);
264 auto layout = model->addOperand(&type0);
265 auto out = model->addOperand(&type26);
266 // Phase 2, operations
267 static int32_t param_init[] = {1};
268 model->setOperandValue(param, param_init, sizeof(int32_t) * 1);
269 static int32_t param1_init[] = {1};
270 model->setOperandValue(param1, param1_init, sizeof(int32_t) * 1);
271 static bool8 layout_init[] = {false};
272 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
273 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param, param1, layout}, {out});
274 // Phase 3, inputs and outputs
275 model->identifyInputsAndOutputs(
276 {in},
277 {out});
278 assert(model->isValid());
279 }
280
is_ignored_shape_dynamic_output_shape_nhwc(int i)281 inline bool is_ignored_shape_dynamic_output_shape_nhwc(int i) {
282 static std::set<int> ignore = {};
283 return ignore.find(i) != ignore.end();
284 }
285
CreateModel_shape_dynamic_output_shape_nhwc_relaxed(Model * model)286 void CreateModel_shape_dynamic_output_shape_nhwc_relaxed(Model *model) {
287 OperandType type0(Type::BOOL, {});
288 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
289 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
290 OperandType type3(Type::INT32, {});
291 // Phase 1, operands
292 auto in = model->addOperand(&type1);
293 auto param = model->addOperand(&type3);
294 auto param1 = model->addOperand(&type3);
295 auto layout = model->addOperand(&type0);
296 auto out = model->addOperand(&type26);
297 // Phase 2, operations
298 static int32_t param_init[] = {1};
299 model->setOperandValue(param, param_init, sizeof(int32_t) * 1);
300 static int32_t param1_init[] = {1};
301 model->setOperandValue(param1, param1_init, sizeof(int32_t) * 1);
302 static bool8 layout_init[] = {false};
303 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
304 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param, param1, layout}, {out});
305 // Phase 3, inputs and outputs
306 model->identifyInputsAndOutputs(
307 {in},
308 {out});
309 // Phase 4: set relaxed execution
310 model->relaxComputationFloat32toFloat16(true);
311 assert(model->isValid());
312 }
313
is_ignored_shape_dynamic_output_shape_nhwc_relaxed(int i)314 inline bool is_ignored_shape_dynamic_output_shape_nhwc_relaxed(int i) {
315 static std::set<int> ignore = {};
316 return ignore.find(i) != ignore.end();
317 }
318
CreateModel_shape_dynamic_output_shape_nhwc_quant8(Model * model)319 void CreateModel_shape_dynamic_output_shape_nhwc_quant8(Model *model) {
320 OperandType type0(Type::BOOL, {});
321 OperandType type19(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.25f, 128);
322 OperandType type27(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 128);
323 OperandType type3(Type::INT32, {});
324 // Phase 1, operands
325 auto in = model->addOperand(&type19);
326 auto param = model->addOperand(&type3);
327 auto param1 = model->addOperand(&type3);
328 auto layout = model->addOperand(&type0);
329 auto out = model->addOperand(&type27);
330 // Phase 2, operations
331 static int32_t param_init[] = {1};
332 model->setOperandValue(param, param_init, sizeof(int32_t) * 1);
333 static int32_t param1_init[] = {1};
334 model->setOperandValue(param1, param1_init, sizeof(int32_t) * 1);
335 static bool8 layout_init[] = {false};
336 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
337 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param, param1, layout}, {out});
338 // Phase 3, inputs and outputs
339 model->identifyInputsAndOutputs(
340 {in},
341 {out});
342 assert(model->isValid());
343 }
344
is_ignored_shape_dynamic_output_shape_nhwc_quant8(int i)345 inline bool is_ignored_shape_dynamic_output_shape_nhwc_quant8(int i) {
346 static std::set<int> ignore = {};
347 return ignore.find(i) != ignore.end();
348 }
349
CreateModel_shape_dynamic_output_shape_nhwc_float16(Model * model)350 void CreateModel_shape_dynamic_output_shape_nhwc_float16(Model *model) {
351 OperandType type0(Type::BOOL, {});
352 OperandType type21(Type::TENSOR_FLOAT16, {1, 2, 2, 1});
353 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
354 OperandType type3(Type::INT32, {});
355 // Phase 1, operands
356 auto in = model->addOperand(&type21);
357 auto param = model->addOperand(&type3);
358 auto param1 = model->addOperand(&type3);
359 auto layout = model->addOperand(&type0);
360 auto out = model->addOperand(&type28);
361 // Phase 2, operations
362 static int32_t param_init[] = {1};
363 model->setOperandValue(param, param_init, sizeof(int32_t) * 1);
364 static int32_t param1_init[] = {1};
365 model->setOperandValue(param1, param1_init, sizeof(int32_t) * 1);
366 static bool8 layout_init[] = {false};
367 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
368 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param, param1, layout}, {out});
369 // Phase 3, inputs and outputs
370 model->identifyInputsAndOutputs(
371 {in},
372 {out});
373 assert(model->isValid());
374 }
375
is_ignored_shape_dynamic_output_shape_nhwc_float16(int i)376 inline bool is_ignored_shape_dynamic_output_shape_nhwc_float16(int i) {
377 static std::set<int> ignore = {};
378 return ignore.find(i) != ignore.end();
379 }
380
CreateModel_shape_dynamic_output_shape_nchw(Model * model)381 void CreateModel_shape_dynamic_output_shape_nchw(Model *model) {
382 OperandType type0(Type::BOOL, {});
383 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
384 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
385 OperandType type3(Type::INT32, {});
386 // Phase 1, operands
387 auto in = model->addOperand(&type23);
388 auto param = model->addOperand(&type3);
389 auto param1 = model->addOperand(&type3);
390 auto layout = model->addOperand(&type0);
391 auto out = model->addOperand(&type26);
392 // Phase 2, operations
393 static int32_t param_init[] = {1};
394 model->setOperandValue(param, param_init, sizeof(int32_t) * 1);
395 static int32_t param1_init[] = {1};
396 model->setOperandValue(param1, param1_init, sizeof(int32_t) * 1);
397 static bool8 layout_init[] = {true};
398 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
399 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param, param1, layout}, {out});
400 // Phase 3, inputs and outputs
401 model->identifyInputsAndOutputs(
402 {in},
403 {out});
404 assert(model->isValid());
405 }
406
is_ignored_shape_dynamic_output_shape_nchw(int i)407 inline bool is_ignored_shape_dynamic_output_shape_nchw(int i) {
408 static std::set<int> ignore = {};
409 return ignore.find(i) != ignore.end();
410 }
411
CreateModel_shape_dynamic_output_shape_nchw_relaxed(Model * model)412 void CreateModel_shape_dynamic_output_shape_nchw_relaxed(Model *model) {
413 OperandType type0(Type::BOOL, {});
414 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
415 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
416 OperandType type3(Type::INT32, {});
417 // Phase 1, operands
418 auto in = model->addOperand(&type23);
419 auto param = model->addOperand(&type3);
420 auto param1 = model->addOperand(&type3);
421 auto layout = model->addOperand(&type0);
422 auto out = model->addOperand(&type26);
423 // Phase 2, operations
424 static int32_t param_init[] = {1};
425 model->setOperandValue(param, param_init, sizeof(int32_t) * 1);
426 static int32_t param1_init[] = {1};
427 model->setOperandValue(param1, param1_init, sizeof(int32_t) * 1);
428 static bool8 layout_init[] = {true};
429 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
430 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param, param1, layout}, {out});
431 // Phase 3, inputs and outputs
432 model->identifyInputsAndOutputs(
433 {in},
434 {out});
435 // Phase 4: set relaxed execution
436 model->relaxComputationFloat32toFloat16(true);
437 assert(model->isValid());
438 }
439
is_ignored_shape_dynamic_output_shape_nchw_relaxed(int i)440 inline bool is_ignored_shape_dynamic_output_shape_nchw_relaxed(int i) {
441 static std::set<int> ignore = {};
442 return ignore.find(i) != ignore.end();
443 }
444
CreateModel_shape_dynamic_output_shape_nchw_quant8(Model * model)445 void CreateModel_shape_dynamic_output_shape_nchw_quant8(Model *model) {
446 OperandType type0(Type::BOOL, {});
447 OperandType type24(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 2}, 0.25f, 128);
448 OperandType type27(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 128);
449 OperandType type3(Type::INT32, {});
450 // Phase 1, operands
451 auto in = model->addOperand(&type24);
452 auto param = model->addOperand(&type3);
453 auto param1 = model->addOperand(&type3);
454 auto layout = model->addOperand(&type0);
455 auto out = model->addOperand(&type27);
456 // Phase 2, operations
457 static int32_t param_init[] = {1};
458 model->setOperandValue(param, param_init, sizeof(int32_t) * 1);
459 static int32_t param1_init[] = {1};
460 model->setOperandValue(param1, param1_init, sizeof(int32_t) * 1);
461 static bool8 layout_init[] = {true};
462 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
463 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param, param1, layout}, {out});
464 // Phase 3, inputs and outputs
465 model->identifyInputsAndOutputs(
466 {in},
467 {out});
468 assert(model->isValid());
469 }
470
is_ignored_shape_dynamic_output_shape_nchw_quant8(int i)471 inline bool is_ignored_shape_dynamic_output_shape_nchw_quant8(int i) {
472 static std::set<int> ignore = {};
473 return ignore.find(i) != ignore.end();
474 }
475
CreateModel_shape_dynamic_output_shape_nchw_float16(Model * model)476 void CreateModel_shape_dynamic_output_shape_nchw_float16(Model *model) {
477 OperandType type0(Type::BOOL, {});
478 OperandType type25(Type::TENSOR_FLOAT16, {1, 1, 2, 2});
479 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
480 OperandType type3(Type::INT32, {});
481 // Phase 1, operands
482 auto in = model->addOperand(&type25);
483 auto param = model->addOperand(&type3);
484 auto param1 = model->addOperand(&type3);
485 auto layout = model->addOperand(&type0);
486 auto out = model->addOperand(&type28);
487 // Phase 2, operations
488 static int32_t param_init[] = {1};
489 model->setOperandValue(param, param_init, sizeof(int32_t) * 1);
490 static int32_t param1_init[] = {1};
491 model->setOperandValue(param1, param1_init, sizeof(int32_t) * 1);
492 static bool8 layout_init[] = {true};
493 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
494 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param, param1, layout}, {out});
495 // Phase 3, inputs and outputs
496 model->identifyInputsAndOutputs(
497 {in},
498 {out});
499 assert(model->isValid());
500 }
501
is_ignored_shape_dynamic_output_shape_nchw_float16(int i)502 inline bool is_ignored_shape_dynamic_output_shape_nchw_float16(int i) {
503 static std::set<int> ignore = {};
504 return ignore.find(i) != ignore.end();
505 }
506
CreateModel_scale_nhwc(Model * model)507 void CreateModel_scale_nhwc(Model *model) {
508 OperandType type0(Type::BOOL, {});
509 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
510 OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 1});
511 OperandType type4(Type::FLOAT32, {});
512 // Phase 1, operands
513 auto in = model->addOperand(&type1);
514 auto param2 = model->addOperand(&type4);
515 auto param3 = model->addOperand(&type4);
516 auto layout = model->addOperand(&type0);
517 auto out = model->addOperand(&type2);
518 // Phase 2, operations
519 static float param2_init[] = {0.5f};
520 model->setOperandValue(param2, param2_init, sizeof(float) * 1);
521 static float param3_init[] = {0.5f};
522 model->setOperandValue(param3, param3_init, sizeof(float) * 1);
523 static bool8 layout_init[] = {false};
524 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
525 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param2, param3, layout}, {out});
526 // Phase 3, inputs and outputs
527 model->identifyInputsAndOutputs(
528 {in},
529 {out});
530 assert(model->isValid());
531 }
532
is_ignored_scale_nhwc(int i)533 inline bool is_ignored_scale_nhwc(int i) {
534 static std::set<int> ignore = {};
535 return ignore.find(i) != ignore.end();
536 }
537
CreateModel_scale_nhwc_relaxed(Model * model)538 void CreateModel_scale_nhwc_relaxed(Model *model) {
539 OperandType type0(Type::BOOL, {});
540 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
541 OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 1});
542 OperandType type4(Type::FLOAT32, {});
543 // Phase 1, operands
544 auto in = model->addOperand(&type1);
545 auto param2 = model->addOperand(&type4);
546 auto param3 = model->addOperand(&type4);
547 auto layout = model->addOperand(&type0);
548 auto out = model->addOperand(&type2);
549 // Phase 2, operations
550 static float param2_init[] = {0.5f};
551 model->setOperandValue(param2, param2_init, sizeof(float) * 1);
552 static float param3_init[] = {0.5f};
553 model->setOperandValue(param3, param3_init, sizeof(float) * 1);
554 static bool8 layout_init[] = {false};
555 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
556 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param2, param3, layout}, {out});
557 // Phase 3, inputs and outputs
558 model->identifyInputsAndOutputs(
559 {in},
560 {out});
561 // Phase 4: set relaxed execution
562 model->relaxComputationFloat32toFloat16(true);
563 assert(model->isValid());
564 }
565
is_ignored_scale_nhwc_relaxed(int i)566 inline bool is_ignored_scale_nhwc_relaxed(int i) {
567 static std::set<int> ignore = {};
568 return ignore.find(i) != ignore.end();
569 }
570
CreateModel_scale_nhwc_quant8(Model * model)571 void CreateModel_scale_nhwc_quant8(Model *model) {
572 OperandType type0(Type::BOOL, {});
573 OperandType type19(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.25f, 128);
574 OperandType type20(Type::TENSOR_QUANT8_ASYMM, {1, 1, 1, 1}, 0.25f, 128);
575 OperandType type4(Type::FLOAT32, {});
576 // Phase 1, operands
577 auto in = model->addOperand(&type19);
578 auto param2 = model->addOperand(&type4);
579 auto param3 = model->addOperand(&type4);
580 auto layout = model->addOperand(&type0);
581 auto out = model->addOperand(&type20);
582 // Phase 2, operations
583 static float param2_init[] = {0.5f};
584 model->setOperandValue(param2, param2_init, sizeof(float) * 1);
585 static float param3_init[] = {0.5f};
586 model->setOperandValue(param3, param3_init, sizeof(float) * 1);
587 static bool8 layout_init[] = {false};
588 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
589 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param2, param3, layout}, {out});
590 // Phase 3, inputs and outputs
591 model->identifyInputsAndOutputs(
592 {in},
593 {out});
594 assert(model->isValid());
595 }
596
is_ignored_scale_nhwc_quant8(int i)597 inline bool is_ignored_scale_nhwc_quant8(int i) {
598 static std::set<int> ignore = {};
599 return ignore.find(i) != ignore.end();
600 }
601
CreateModel_scale_nhwc_float16(Model * model)602 void CreateModel_scale_nhwc_float16(Model *model) {
603 OperandType type0(Type::BOOL, {});
604 OperandType type21(Type::TENSOR_FLOAT16, {1, 2, 2, 1});
605 OperandType type22(Type::TENSOR_FLOAT16, {1, 1, 1, 1});
606 OperandType type29(Type::FLOAT16, {});
607 // Phase 1, operands
608 auto in = model->addOperand(&type21);
609 auto param2 = model->addOperand(&type29);
610 auto param3 = model->addOperand(&type29);
611 auto layout = model->addOperand(&type0);
612 auto out = model->addOperand(&type22);
613 // Phase 2, operations
614 static _Float16 param2_init[] = {0.5f};
615 model->setOperandValue(param2, param2_init, sizeof(_Float16) * 1);
616 static _Float16 param3_init[] = {0.5f};
617 model->setOperandValue(param3, param3_init, sizeof(_Float16) * 1);
618 static bool8 layout_init[] = {false};
619 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
620 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param2, param3, layout}, {out});
621 // Phase 3, inputs and outputs
622 model->identifyInputsAndOutputs(
623 {in},
624 {out});
625 assert(model->isValid());
626 }
627
is_ignored_scale_nhwc_float16(int i)628 inline bool is_ignored_scale_nhwc_float16(int i) {
629 static std::set<int> ignore = {};
630 return ignore.find(i) != ignore.end();
631 }
632
CreateModel_scale_nchw(Model * model)633 void CreateModel_scale_nchw(Model *model) {
634 OperandType type0(Type::BOOL, {});
635 OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 1});
636 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
637 OperandType type4(Type::FLOAT32, {});
638 // Phase 1, operands
639 auto in = model->addOperand(&type23);
640 auto param2 = model->addOperand(&type4);
641 auto param3 = model->addOperand(&type4);
642 auto layout = model->addOperand(&type0);
643 auto out = model->addOperand(&type2);
644 // Phase 2, operations
645 static float param2_init[] = {0.5f};
646 model->setOperandValue(param2, param2_init, sizeof(float) * 1);
647 static float param3_init[] = {0.5f};
648 model->setOperandValue(param3, param3_init, sizeof(float) * 1);
649 static bool8 layout_init[] = {true};
650 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
651 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param2, param3, layout}, {out});
652 // Phase 3, inputs and outputs
653 model->identifyInputsAndOutputs(
654 {in},
655 {out});
656 assert(model->isValid());
657 }
658
is_ignored_scale_nchw(int i)659 inline bool is_ignored_scale_nchw(int i) {
660 static std::set<int> ignore = {};
661 return ignore.find(i) != ignore.end();
662 }
663
CreateModel_scale_nchw_relaxed(Model * model)664 void CreateModel_scale_nchw_relaxed(Model *model) {
665 OperandType type0(Type::BOOL, {});
666 OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 1});
667 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
668 OperandType type4(Type::FLOAT32, {});
669 // Phase 1, operands
670 auto in = model->addOperand(&type23);
671 auto param2 = model->addOperand(&type4);
672 auto param3 = model->addOperand(&type4);
673 auto layout = model->addOperand(&type0);
674 auto out = model->addOperand(&type2);
675 // Phase 2, operations
676 static float param2_init[] = {0.5f};
677 model->setOperandValue(param2, param2_init, sizeof(float) * 1);
678 static float param3_init[] = {0.5f};
679 model->setOperandValue(param3, param3_init, sizeof(float) * 1);
680 static bool8 layout_init[] = {true};
681 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
682 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param2, param3, layout}, {out});
683 // Phase 3, inputs and outputs
684 model->identifyInputsAndOutputs(
685 {in},
686 {out});
687 // Phase 4: set relaxed execution
688 model->relaxComputationFloat32toFloat16(true);
689 assert(model->isValid());
690 }
691
is_ignored_scale_nchw_relaxed(int i)692 inline bool is_ignored_scale_nchw_relaxed(int i) {
693 static std::set<int> ignore = {};
694 return ignore.find(i) != ignore.end();
695 }
696
CreateModel_scale_nchw_quant8(Model * model)697 void CreateModel_scale_nchw_quant8(Model *model) {
698 OperandType type0(Type::BOOL, {});
699 OperandType type20(Type::TENSOR_QUANT8_ASYMM, {1, 1, 1, 1}, 0.25f, 128);
700 OperandType type24(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 2}, 0.25f, 128);
701 OperandType type4(Type::FLOAT32, {});
702 // Phase 1, operands
703 auto in = model->addOperand(&type24);
704 auto param2 = model->addOperand(&type4);
705 auto param3 = model->addOperand(&type4);
706 auto layout = model->addOperand(&type0);
707 auto out = model->addOperand(&type20);
708 // Phase 2, operations
709 static float param2_init[] = {0.5f};
710 model->setOperandValue(param2, param2_init, sizeof(float) * 1);
711 static float param3_init[] = {0.5f};
712 model->setOperandValue(param3, param3_init, sizeof(float) * 1);
713 static bool8 layout_init[] = {true};
714 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
715 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param2, param3, layout}, {out});
716 // Phase 3, inputs and outputs
717 model->identifyInputsAndOutputs(
718 {in},
719 {out});
720 assert(model->isValid());
721 }
722
is_ignored_scale_nchw_quant8(int i)723 inline bool is_ignored_scale_nchw_quant8(int i) {
724 static std::set<int> ignore = {};
725 return ignore.find(i) != ignore.end();
726 }
727
CreateModel_scale_nchw_float16(Model * model)728 void CreateModel_scale_nchw_float16(Model *model) {
729 OperandType type0(Type::BOOL, {});
730 OperandType type22(Type::TENSOR_FLOAT16, {1, 1, 1, 1});
731 OperandType type25(Type::TENSOR_FLOAT16, {1, 1, 2, 2});
732 OperandType type29(Type::FLOAT16, {});
733 // Phase 1, operands
734 auto in = model->addOperand(&type25);
735 auto param2 = model->addOperand(&type29);
736 auto param3 = model->addOperand(&type29);
737 auto layout = model->addOperand(&type0);
738 auto out = model->addOperand(&type22);
739 // Phase 2, operations
740 static _Float16 param2_init[] = {0.5f};
741 model->setOperandValue(param2, param2_init, sizeof(_Float16) * 1);
742 static _Float16 param3_init[] = {0.5f};
743 model->setOperandValue(param3, param3_init, sizeof(_Float16) * 1);
744 static bool8 layout_init[] = {true};
745 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
746 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param2, param3, layout}, {out});
747 // Phase 3, inputs and outputs
748 model->identifyInputsAndOutputs(
749 {in},
750 {out});
751 assert(model->isValid());
752 }
753
is_ignored_scale_nchw_float16(int i)754 inline bool is_ignored_scale_nchw_float16(int i) {
755 static std::set<int> ignore = {};
756 return ignore.find(i) != ignore.end();
757 }
758
CreateModel_scale_dynamic_output_shape_nhwc(Model * model)759 void CreateModel_scale_dynamic_output_shape_nhwc(Model *model) {
760 OperandType type0(Type::BOOL, {});
761 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
762 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
763 OperandType type4(Type::FLOAT32, {});
764 // Phase 1, operands
765 auto in = model->addOperand(&type1);
766 auto param2 = model->addOperand(&type4);
767 auto param3 = model->addOperand(&type4);
768 auto layout = model->addOperand(&type0);
769 auto out = model->addOperand(&type26);
770 // Phase 2, operations
771 static float param2_init[] = {0.5f};
772 model->setOperandValue(param2, param2_init, sizeof(float) * 1);
773 static float param3_init[] = {0.5f};
774 model->setOperandValue(param3, param3_init, sizeof(float) * 1);
775 static bool8 layout_init[] = {false};
776 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
777 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param2, param3, layout}, {out});
778 // Phase 3, inputs and outputs
779 model->identifyInputsAndOutputs(
780 {in},
781 {out});
782 assert(model->isValid());
783 }
784
is_ignored_scale_dynamic_output_shape_nhwc(int i)785 inline bool is_ignored_scale_dynamic_output_shape_nhwc(int i) {
786 static std::set<int> ignore = {};
787 return ignore.find(i) != ignore.end();
788 }
789
CreateModel_scale_dynamic_output_shape_nhwc_relaxed(Model * model)790 void CreateModel_scale_dynamic_output_shape_nhwc_relaxed(Model *model) {
791 OperandType type0(Type::BOOL, {});
792 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
793 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
794 OperandType type4(Type::FLOAT32, {});
795 // Phase 1, operands
796 auto in = model->addOperand(&type1);
797 auto param2 = model->addOperand(&type4);
798 auto param3 = model->addOperand(&type4);
799 auto layout = model->addOperand(&type0);
800 auto out = model->addOperand(&type26);
801 // Phase 2, operations
802 static float param2_init[] = {0.5f};
803 model->setOperandValue(param2, param2_init, sizeof(float) * 1);
804 static float param3_init[] = {0.5f};
805 model->setOperandValue(param3, param3_init, sizeof(float) * 1);
806 static bool8 layout_init[] = {false};
807 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
808 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param2, param3, layout}, {out});
809 // Phase 3, inputs and outputs
810 model->identifyInputsAndOutputs(
811 {in},
812 {out});
813 // Phase 4: set relaxed execution
814 model->relaxComputationFloat32toFloat16(true);
815 assert(model->isValid());
816 }
817
is_ignored_scale_dynamic_output_shape_nhwc_relaxed(int i)818 inline bool is_ignored_scale_dynamic_output_shape_nhwc_relaxed(int i) {
819 static std::set<int> ignore = {};
820 return ignore.find(i) != ignore.end();
821 }
822
CreateModel_scale_dynamic_output_shape_nhwc_quant8(Model * model)823 void CreateModel_scale_dynamic_output_shape_nhwc_quant8(Model *model) {
824 OperandType type0(Type::BOOL, {});
825 OperandType type19(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.25f, 128);
826 OperandType type27(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 128);
827 OperandType type4(Type::FLOAT32, {});
828 // Phase 1, operands
829 auto in = model->addOperand(&type19);
830 auto param2 = model->addOperand(&type4);
831 auto param3 = model->addOperand(&type4);
832 auto layout = model->addOperand(&type0);
833 auto out = model->addOperand(&type27);
834 // Phase 2, operations
835 static float param2_init[] = {0.5f};
836 model->setOperandValue(param2, param2_init, sizeof(float) * 1);
837 static float param3_init[] = {0.5f};
838 model->setOperandValue(param3, param3_init, sizeof(float) * 1);
839 static bool8 layout_init[] = {false};
840 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
841 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param2, param3, layout}, {out});
842 // Phase 3, inputs and outputs
843 model->identifyInputsAndOutputs(
844 {in},
845 {out});
846 assert(model->isValid());
847 }
848
is_ignored_scale_dynamic_output_shape_nhwc_quant8(int i)849 inline bool is_ignored_scale_dynamic_output_shape_nhwc_quant8(int i) {
850 static std::set<int> ignore = {};
851 return ignore.find(i) != ignore.end();
852 }
853
CreateModel_scale_dynamic_output_shape_nhwc_float16(Model * model)854 void CreateModel_scale_dynamic_output_shape_nhwc_float16(Model *model) {
855 OperandType type0(Type::BOOL, {});
856 OperandType type21(Type::TENSOR_FLOAT16, {1, 2, 2, 1});
857 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
858 OperandType type29(Type::FLOAT16, {});
859 // Phase 1, operands
860 auto in = model->addOperand(&type21);
861 auto param2 = model->addOperand(&type29);
862 auto param3 = model->addOperand(&type29);
863 auto layout = model->addOperand(&type0);
864 auto out = model->addOperand(&type28);
865 // Phase 2, operations
866 static _Float16 param2_init[] = {0.5f};
867 model->setOperandValue(param2, param2_init, sizeof(_Float16) * 1);
868 static _Float16 param3_init[] = {0.5f};
869 model->setOperandValue(param3, param3_init, sizeof(_Float16) * 1);
870 static bool8 layout_init[] = {false};
871 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
872 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param2, param3, layout}, {out});
873 // Phase 3, inputs and outputs
874 model->identifyInputsAndOutputs(
875 {in},
876 {out});
877 assert(model->isValid());
878 }
879
is_ignored_scale_dynamic_output_shape_nhwc_float16(int i)880 inline bool is_ignored_scale_dynamic_output_shape_nhwc_float16(int i) {
881 static std::set<int> ignore = {};
882 return ignore.find(i) != ignore.end();
883 }
884
CreateModel_scale_dynamic_output_shape_nchw(Model * model)885 void CreateModel_scale_dynamic_output_shape_nchw(Model *model) {
886 OperandType type0(Type::BOOL, {});
887 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
888 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
889 OperandType type4(Type::FLOAT32, {});
890 // Phase 1, operands
891 auto in = model->addOperand(&type23);
892 auto param2 = model->addOperand(&type4);
893 auto param3 = model->addOperand(&type4);
894 auto layout = model->addOperand(&type0);
895 auto out = model->addOperand(&type26);
896 // Phase 2, operations
897 static float param2_init[] = {0.5f};
898 model->setOperandValue(param2, param2_init, sizeof(float) * 1);
899 static float param3_init[] = {0.5f};
900 model->setOperandValue(param3, param3_init, sizeof(float) * 1);
901 static bool8 layout_init[] = {true};
902 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
903 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param2, param3, layout}, {out});
904 // Phase 3, inputs and outputs
905 model->identifyInputsAndOutputs(
906 {in},
907 {out});
908 assert(model->isValid());
909 }
910
is_ignored_scale_dynamic_output_shape_nchw(int i)911 inline bool is_ignored_scale_dynamic_output_shape_nchw(int i) {
912 static std::set<int> ignore = {};
913 return ignore.find(i) != ignore.end();
914 }
915
CreateModel_scale_dynamic_output_shape_nchw_relaxed(Model * model)916 void CreateModel_scale_dynamic_output_shape_nchw_relaxed(Model *model) {
917 OperandType type0(Type::BOOL, {});
918 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
919 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
920 OperandType type4(Type::FLOAT32, {});
921 // Phase 1, operands
922 auto in = model->addOperand(&type23);
923 auto param2 = model->addOperand(&type4);
924 auto param3 = model->addOperand(&type4);
925 auto layout = model->addOperand(&type0);
926 auto out = model->addOperand(&type26);
927 // Phase 2, operations
928 static float param2_init[] = {0.5f};
929 model->setOperandValue(param2, param2_init, sizeof(float) * 1);
930 static float param3_init[] = {0.5f};
931 model->setOperandValue(param3, param3_init, sizeof(float) * 1);
932 static bool8 layout_init[] = {true};
933 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
934 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param2, param3, layout}, {out});
935 // Phase 3, inputs and outputs
936 model->identifyInputsAndOutputs(
937 {in},
938 {out});
939 // Phase 4: set relaxed execution
940 model->relaxComputationFloat32toFloat16(true);
941 assert(model->isValid());
942 }
943
is_ignored_scale_dynamic_output_shape_nchw_relaxed(int i)944 inline bool is_ignored_scale_dynamic_output_shape_nchw_relaxed(int i) {
945 static std::set<int> ignore = {};
946 return ignore.find(i) != ignore.end();
947 }
948
CreateModel_scale_dynamic_output_shape_nchw_quant8(Model * model)949 void CreateModel_scale_dynamic_output_shape_nchw_quant8(Model *model) {
950 OperandType type0(Type::BOOL, {});
951 OperandType type24(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 2}, 0.25f, 128);
952 OperandType type27(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 128);
953 OperandType type4(Type::FLOAT32, {});
954 // Phase 1, operands
955 auto in = model->addOperand(&type24);
956 auto param2 = model->addOperand(&type4);
957 auto param3 = model->addOperand(&type4);
958 auto layout = model->addOperand(&type0);
959 auto out = model->addOperand(&type27);
960 // Phase 2, operations
961 static float param2_init[] = {0.5f};
962 model->setOperandValue(param2, param2_init, sizeof(float) * 1);
963 static float param3_init[] = {0.5f};
964 model->setOperandValue(param3, param3_init, sizeof(float) * 1);
965 static bool8 layout_init[] = {true};
966 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
967 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param2, param3, layout}, {out});
968 // Phase 3, inputs and outputs
969 model->identifyInputsAndOutputs(
970 {in},
971 {out});
972 assert(model->isValid());
973 }
974
is_ignored_scale_dynamic_output_shape_nchw_quant8(int i)975 inline bool is_ignored_scale_dynamic_output_shape_nchw_quant8(int i) {
976 static std::set<int> ignore = {};
977 return ignore.find(i) != ignore.end();
978 }
979
CreateModel_scale_dynamic_output_shape_nchw_float16(Model * model)980 void CreateModel_scale_dynamic_output_shape_nchw_float16(Model *model) {
981 OperandType type0(Type::BOOL, {});
982 OperandType type25(Type::TENSOR_FLOAT16, {1, 1, 2, 2});
983 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
984 OperandType type29(Type::FLOAT16, {});
985 // Phase 1, operands
986 auto in = model->addOperand(&type25);
987 auto param2 = model->addOperand(&type29);
988 auto param3 = model->addOperand(&type29);
989 auto layout = model->addOperand(&type0);
990 auto out = model->addOperand(&type28);
991 // Phase 2, operations
992 static _Float16 param2_init[] = {0.5f};
993 model->setOperandValue(param2, param2_init, sizeof(_Float16) * 1);
994 static _Float16 param3_init[] = {0.5f};
995 model->setOperandValue(param3, param3_init, sizeof(_Float16) * 1);
996 static bool8 layout_init[] = {true};
997 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
998 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in, param2, param3, layout}, {out});
999 // Phase 3, inputs and outputs
1000 model->identifyInputsAndOutputs(
1001 {in},
1002 {out});
1003 assert(model->isValid());
1004 }
1005
is_ignored_scale_dynamic_output_shape_nchw_float16(int i)1006 inline bool is_ignored_scale_dynamic_output_shape_nchw_float16(int i) {
1007 static std::set<int> ignore = {};
1008 return ignore.find(i) != ignore.end();
1009 }
1010
CreateModel_shape_nhwc_2(Model * model)1011 void CreateModel_shape_nhwc_2(Model *model) {
1012 OperandType type0(Type::BOOL, {});
1013 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
1014 OperandType type3(Type::INT32, {});
1015 OperandType type5(Type::TENSOR_FLOAT32, {1, 3, 3, 1});
1016 // Phase 1, operands
1017 auto in1 = model->addOperand(&type1);
1018 auto param4 = model->addOperand(&type3);
1019 auto param5 = model->addOperand(&type3);
1020 auto layout = model->addOperand(&type0);
1021 auto out1 = model->addOperand(&type5);
1022 // Phase 2, operations
1023 static int32_t param4_init[] = {3};
1024 model->setOperandValue(param4, param4_init, sizeof(int32_t) * 1);
1025 static int32_t param5_init[] = {3};
1026 model->setOperandValue(param5, param5_init, sizeof(int32_t) * 1);
1027 static bool8 layout_init[] = {false};
1028 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1029 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param4, param5, layout}, {out1});
1030 // Phase 3, inputs and outputs
1031 model->identifyInputsAndOutputs(
1032 {in1},
1033 {out1});
1034 assert(model->isValid());
1035 }
1036
is_ignored_shape_nhwc_2(int i)1037 inline bool is_ignored_shape_nhwc_2(int i) {
1038 static std::set<int> ignore = {};
1039 return ignore.find(i) != ignore.end();
1040 }
1041
CreateModel_shape_nhwc_relaxed_2(Model * model)1042 void CreateModel_shape_nhwc_relaxed_2(Model *model) {
1043 OperandType type0(Type::BOOL, {});
1044 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
1045 OperandType type3(Type::INT32, {});
1046 OperandType type5(Type::TENSOR_FLOAT32, {1, 3, 3, 1});
1047 // Phase 1, operands
1048 auto in1 = model->addOperand(&type1);
1049 auto param4 = model->addOperand(&type3);
1050 auto param5 = model->addOperand(&type3);
1051 auto layout = model->addOperand(&type0);
1052 auto out1 = model->addOperand(&type5);
1053 // Phase 2, operations
1054 static int32_t param4_init[] = {3};
1055 model->setOperandValue(param4, param4_init, sizeof(int32_t) * 1);
1056 static int32_t param5_init[] = {3};
1057 model->setOperandValue(param5, param5_init, sizeof(int32_t) * 1);
1058 static bool8 layout_init[] = {false};
1059 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1060 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param4, param5, layout}, {out1});
1061 // Phase 3, inputs and outputs
1062 model->identifyInputsAndOutputs(
1063 {in1},
1064 {out1});
1065 // Phase 4: set relaxed execution
1066 model->relaxComputationFloat32toFloat16(true);
1067 assert(model->isValid());
1068 }
1069
is_ignored_shape_nhwc_relaxed_2(int i)1070 inline bool is_ignored_shape_nhwc_relaxed_2(int i) {
1071 static std::set<int> ignore = {};
1072 return ignore.find(i) != ignore.end();
1073 }
1074
CreateModel_shape_nhwc_quant8_2(Model * model)1075 void CreateModel_shape_nhwc_quant8_2(Model *model) {
1076 OperandType type0(Type::BOOL, {});
1077 OperandType type3(Type::INT32, {});
1078 OperandType type30(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.25f, 0);
1079 OperandType type31(Type::TENSOR_QUANT8_ASYMM, {1, 3, 3, 1}, 0.25f, 0);
1080 // Phase 1, operands
1081 auto in1 = model->addOperand(&type30);
1082 auto param4 = model->addOperand(&type3);
1083 auto param5 = model->addOperand(&type3);
1084 auto layout = model->addOperand(&type0);
1085 auto out1 = model->addOperand(&type31);
1086 // Phase 2, operations
1087 static int32_t param4_init[] = {3};
1088 model->setOperandValue(param4, param4_init, sizeof(int32_t) * 1);
1089 static int32_t param5_init[] = {3};
1090 model->setOperandValue(param5, param5_init, sizeof(int32_t) * 1);
1091 static bool8 layout_init[] = {false};
1092 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1093 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param4, param5, layout}, {out1});
1094 // Phase 3, inputs and outputs
1095 model->identifyInputsAndOutputs(
1096 {in1},
1097 {out1});
1098 assert(model->isValid());
1099 }
1100
is_ignored_shape_nhwc_quant8_2(int i)1101 inline bool is_ignored_shape_nhwc_quant8_2(int i) {
1102 static std::set<int> ignore = {};
1103 return ignore.find(i) != ignore.end();
1104 }
1105
CreateModel_shape_nhwc_float16_2(Model * model)1106 void CreateModel_shape_nhwc_float16_2(Model *model) {
1107 OperandType type0(Type::BOOL, {});
1108 OperandType type21(Type::TENSOR_FLOAT16, {1, 2, 2, 1});
1109 OperandType type3(Type::INT32, {});
1110 OperandType type32(Type::TENSOR_FLOAT16, {1, 3, 3, 1});
1111 // Phase 1, operands
1112 auto in1 = model->addOperand(&type21);
1113 auto param4 = model->addOperand(&type3);
1114 auto param5 = model->addOperand(&type3);
1115 auto layout = model->addOperand(&type0);
1116 auto out1 = model->addOperand(&type32);
1117 // Phase 2, operations
1118 static int32_t param4_init[] = {3};
1119 model->setOperandValue(param4, param4_init, sizeof(int32_t) * 1);
1120 static int32_t param5_init[] = {3};
1121 model->setOperandValue(param5, param5_init, sizeof(int32_t) * 1);
1122 static bool8 layout_init[] = {false};
1123 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1124 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param4, param5, layout}, {out1});
1125 // Phase 3, inputs and outputs
1126 model->identifyInputsAndOutputs(
1127 {in1},
1128 {out1});
1129 assert(model->isValid());
1130 }
1131
is_ignored_shape_nhwc_float16_2(int i)1132 inline bool is_ignored_shape_nhwc_float16_2(int i) {
1133 static std::set<int> ignore = {};
1134 return ignore.find(i) != ignore.end();
1135 }
1136
CreateModel_shape_nchw_2(Model * model)1137 void CreateModel_shape_nchw_2(Model *model) {
1138 OperandType type0(Type::BOOL, {});
1139 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
1140 OperandType type3(Type::INT32, {});
1141 OperandType type33(Type::TENSOR_FLOAT32, {1, 1, 3, 3});
1142 // Phase 1, operands
1143 auto in1 = model->addOperand(&type23);
1144 auto param4 = model->addOperand(&type3);
1145 auto param5 = model->addOperand(&type3);
1146 auto layout = model->addOperand(&type0);
1147 auto out1 = model->addOperand(&type33);
1148 // Phase 2, operations
1149 static int32_t param4_init[] = {3};
1150 model->setOperandValue(param4, param4_init, sizeof(int32_t) * 1);
1151 static int32_t param5_init[] = {3};
1152 model->setOperandValue(param5, param5_init, sizeof(int32_t) * 1);
1153 static bool8 layout_init[] = {true};
1154 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1155 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param4, param5, layout}, {out1});
1156 // Phase 3, inputs and outputs
1157 model->identifyInputsAndOutputs(
1158 {in1},
1159 {out1});
1160 assert(model->isValid());
1161 }
1162
is_ignored_shape_nchw_2(int i)1163 inline bool is_ignored_shape_nchw_2(int i) {
1164 static std::set<int> ignore = {};
1165 return ignore.find(i) != ignore.end();
1166 }
1167
CreateModel_shape_nchw_relaxed_2(Model * model)1168 void CreateModel_shape_nchw_relaxed_2(Model *model) {
1169 OperandType type0(Type::BOOL, {});
1170 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
1171 OperandType type3(Type::INT32, {});
1172 OperandType type33(Type::TENSOR_FLOAT32, {1, 1, 3, 3});
1173 // Phase 1, operands
1174 auto in1 = model->addOperand(&type23);
1175 auto param4 = model->addOperand(&type3);
1176 auto param5 = model->addOperand(&type3);
1177 auto layout = model->addOperand(&type0);
1178 auto out1 = model->addOperand(&type33);
1179 // Phase 2, operations
1180 static int32_t param4_init[] = {3};
1181 model->setOperandValue(param4, param4_init, sizeof(int32_t) * 1);
1182 static int32_t param5_init[] = {3};
1183 model->setOperandValue(param5, param5_init, sizeof(int32_t) * 1);
1184 static bool8 layout_init[] = {true};
1185 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1186 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param4, param5, layout}, {out1});
1187 // Phase 3, inputs and outputs
1188 model->identifyInputsAndOutputs(
1189 {in1},
1190 {out1});
1191 // Phase 4: set relaxed execution
1192 model->relaxComputationFloat32toFloat16(true);
1193 assert(model->isValid());
1194 }
1195
is_ignored_shape_nchw_relaxed_2(int i)1196 inline bool is_ignored_shape_nchw_relaxed_2(int i) {
1197 static std::set<int> ignore = {};
1198 return ignore.find(i) != ignore.end();
1199 }
1200
CreateModel_shape_nchw_quant8_2(Model * model)1201 void CreateModel_shape_nchw_quant8_2(Model *model) {
1202 OperandType type0(Type::BOOL, {});
1203 OperandType type3(Type::INT32, {});
1204 OperandType type34(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 2}, 0.25f, 0);
1205 OperandType type35(Type::TENSOR_QUANT8_ASYMM, {1, 1, 3, 3}, 0.25f, 0);
1206 // Phase 1, operands
1207 auto in1 = model->addOperand(&type34);
1208 auto param4 = model->addOperand(&type3);
1209 auto param5 = model->addOperand(&type3);
1210 auto layout = model->addOperand(&type0);
1211 auto out1 = model->addOperand(&type35);
1212 // Phase 2, operations
1213 static int32_t param4_init[] = {3};
1214 model->setOperandValue(param4, param4_init, sizeof(int32_t) * 1);
1215 static int32_t param5_init[] = {3};
1216 model->setOperandValue(param5, param5_init, sizeof(int32_t) * 1);
1217 static bool8 layout_init[] = {true};
1218 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1219 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param4, param5, layout}, {out1});
1220 // Phase 3, inputs and outputs
1221 model->identifyInputsAndOutputs(
1222 {in1},
1223 {out1});
1224 assert(model->isValid());
1225 }
1226
is_ignored_shape_nchw_quant8_2(int i)1227 inline bool is_ignored_shape_nchw_quant8_2(int i) {
1228 static std::set<int> ignore = {};
1229 return ignore.find(i) != ignore.end();
1230 }
1231
CreateModel_shape_nchw_float16_2(Model * model)1232 void CreateModel_shape_nchw_float16_2(Model *model) {
1233 OperandType type0(Type::BOOL, {});
1234 OperandType type25(Type::TENSOR_FLOAT16, {1, 1, 2, 2});
1235 OperandType type3(Type::INT32, {});
1236 OperandType type36(Type::TENSOR_FLOAT16, {1, 1, 3, 3});
1237 // Phase 1, operands
1238 auto in1 = model->addOperand(&type25);
1239 auto param4 = model->addOperand(&type3);
1240 auto param5 = model->addOperand(&type3);
1241 auto layout = model->addOperand(&type0);
1242 auto out1 = model->addOperand(&type36);
1243 // Phase 2, operations
1244 static int32_t param4_init[] = {3};
1245 model->setOperandValue(param4, param4_init, sizeof(int32_t) * 1);
1246 static int32_t param5_init[] = {3};
1247 model->setOperandValue(param5, param5_init, sizeof(int32_t) * 1);
1248 static bool8 layout_init[] = {true};
1249 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1250 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param4, param5, layout}, {out1});
1251 // Phase 3, inputs and outputs
1252 model->identifyInputsAndOutputs(
1253 {in1},
1254 {out1});
1255 assert(model->isValid());
1256 }
1257
is_ignored_shape_nchw_float16_2(int i)1258 inline bool is_ignored_shape_nchw_float16_2(int i) {
1259 static std::set<int> ignore = {};
1260 return ignore.find(i) != ignore.end();
1261 }
1262
CreateModel_shape_dynamic_output_shape_nhwc_2(Model * model)1263 void CreateModel_shape_dynamic_output_shape_nhwc_2(Model *model) {
1264 OperandType type0(Type::BOOL, {});
1265 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
1266 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
1267 OperandType type3(Type::INT32, {});
1268 // Phase 1, operands
1269 auto in1 = model->addOperand(&type1);
1270 auto param4 = model->addOperand(&type3);
1271 auto param5 = model->addOperand(&type3);
1272 auto layout = model->addOperand(&type0);
1273 auto out1 = model->addOperand(&type26);
1274 // Phase 2, operations
1275 static int32_t param4_init[] = {3};
1276 model->setOperandValue(param4, param4_init, sizeof(int32_t) * 1);
1277 static int32_t param5_init[] = {3};
1278 model->setOperandValue(param5, param5_init, sizeof(int32_t) * 1);
1279 static bool8 layout_init[] = {false};
1280 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1281 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param4, param5, layout}, {out1});
1282 // Phase 3, inputs and outputs
1283 model->identifyInputsAndOutputs(
1284 {in1},
1285 {out1});
1286 assert(model->isValid());
1287 }
1288
is_ignored_shape_dynamic_output_shape_nhwc_2(int i)1289 inline bool is_ignored_shape_dynamic_output_shape_nhwc_2(int i) {
1290 static std::set<int> ignore = {};
1291 return ignore.find(i) != ignore.end();
1292 }
1293
CreateModel_shape_dynamic_output_shape_nhwc_relaxed_2(Model * model)1294 void CreateModel_shape_dynamic_output_shape_nhwc_relaxed_2(Model *model) {
1295 OperandType type0(Type::BOOL, {});
1296 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
1297 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
1298 OperandType type3(Type::INT32, {});
1299 // Phase 1, operands
1300 auto in1 = model->addOperand(&type1);
1301 auto param4 = model->addOperand(&type3);
1302 auto param5 = model->addOperand(&type3);
1303 auto layout = model->addOperand(&type0);
1304 auto out1 = model->addOperand(&type26);
1305 // Phase 2, operations
1306 static int32_t param4_init[] = {3};
1307 model->setOperandValue(param4, param4_init, sizeof(int32_t) * 1);
1308 static int32_t param5_init[] = {3};
1309 model->setOperandValue(param5, param5_init, sizeof(int32_t) * 1);
1310 static bool8 layout_init[] = {false};
1311 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1312 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param4, param5, layout}, {out1});
1313 // Phase 3, inputs and outputs
1314 model->identifyInputsAndOutputs(
1315 {in1},
1316 {out1});
1317 // Phase 4: set relaxed execution
1318 model->relaxComputationFloat32toFloat16(true);
1319 assert(model->isValid());
1320 }
1321
is_ignored_shape_dynamic_output_shape_nhwc_relaxed_2(int i)1322 inline bool is_ignored_shape_dynamic_output_shape_nhwc_relaxed_2(int i) {
1323 static std::set<int> ignore = {};
1324 return ignore.find(i) != ignore.end();
1325 }
1326
CreateModel_shape_dynamic_output_shape_nhwc_quant8_2(Model * model)1327 void CreateModel_shape_dynamic_output_shape_nhwc_quant8_2(Model *model) {
1328 OperandType type0(Type::BOOL, {});
1329 OperandType type3(Type::INT32, {});
1330 OperandType type30(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.25f, 0);
1331 OperandType type37(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 0);
1332 // Phase 1, operands
1333 auto in1 = model->addOperand(&type30);
1334 auto param4 = model->addOperand(&type3);
1335 auto param5 = model->addOperand(&type3);
1336 auto layout = model->addOperand(&type0);
1337 auto out1 = model->addOperand(&type37);
1338 // Phase 2, operations
1339 static int32_t param4_init[] = {3};
1340 model->setOperandValue(param4, param4_init, sizeof(int32_t) * 1);
1341 static int32_t param5_init[] = {3};
1342 model->setOperandValue(param5, param5_init, sizeof(int32_t) * 1);
1343 static bool8 layout_init[] = {false};
1344 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1345 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param4, param5, layout}, {out1});
1346 // Phase 3, inputs and outputs
1347 model->identifyInputsAndOutputs(
1348 {in1},
1349 {out1});
1350 assert(model->isValid());
1351 }
1352
is_ignored_shape_dynamic_output_shape_nhwc_quant8_2(int i)1353 inline bool is_ignored_shape_dynamic_output_shape_nhwc_quant8_2(int i) {
1354 static std::set<int> ignore = {};
1355 return ignore.find(i) != ignore.end();
1356 }
1357
CreateModel_shape_dynamic_output_shape_nhwc_float16_2(Model * model)1358 void CreateModel_shape_dynamic_output_shape_nhwc_float16_2(Model *model) {
1359 OperandType type0(Type::BOOL, {});
1360 OperandType type21(Type::TENSOR_FLOAT16, {1, 2, 2, 1});
1361 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
1362 OperandType type3(Type::INT32, {});
1363 // Phase 1, operands
1364 auto in1 = model->addOperand(&type21);
1365 auto param4 = model->addOperand(&type3);
1366 auto param5 = model->addOperand(&type3);
1367 auto layout = model->addOperand(&type0);
1368 auto out1 = model->addOperand(&type28);
1369 // Phase 2, operations
1370 static int32_t param4_init[] = {3};
1371 model->setOperandValue(param4, param4_init, sizeof(int32_t) * 1);
1372 static int32_t param5_init[] = {3};
1373 model->setOperandValue(param5, param5_init, sizeof(int32_t) * 1);
1374 static bool8 layout_init[] = {false};
1375 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1376 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param4, param5, layout}, {out1});
1377 // Phase 3, inputs and outputs
1378 model->identifyInputsAndOutputs(
1379 {in1},
1380 {out1});
1381 assert(model->isValid());
1382 }
1383
is_ignored_shape_dynamic_output_shape_nhwc_float16_2(int i)1384 inline bool is_ignored_shape_dynamic_output_shape_nhwc_float16_2(int i) {
1385 static std::set<int> ignore = {};
1386 return ignore.find(i) != ignore.end();
1387 }
1388
CreateModel_shape_dynamic_output_shape_nchw_2(Model * model)1389 void CreateModel_shape_dynamic_output_shape_nchw_2(Model *model) {
1390 OperandType type0(Type::BOOL, {});
1391 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
1392 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
1393 OperandType type3(Type::INT32, {});
1394 // Phase 1, operands
1395 auto in1 = model->addOperand(&type23);
1396 auto param4 = model->addOperand(&type3);
1397 auto param5 = model->addOperand(&type3);
1398 auto layout = model->addOperand(&type0);
1399 auto out1 = model->addOperand(&type26);
1400 // Phase 2, operations
1401 static int32_t param4_init[] = {3};
1402 model->setOperandValue(param4, param4_init, sizeof(int32_t) * 1);
1403 static int32_t param5_init[] = {3};
1404 model->setOperandValue(param5, param5_init, sizeof(int32_t) * 1);
1405 static bool8 layout_init[] = {true};
1406 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1407 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param4, param5, layout}, {out1});
1408 // Phase 3, inputs and outputs
1409 model->identifyInputsAndOutputs(
1410 {in1},
1411 {out1});
1412 assert(model->isValid());
1413 }
1414
is_ignored_shape_dynamic_output_shape_nchw_2(int i)1415 inline bool is_ignored_shape_dynamic_output_shape_nchw_2(int i) {
1416 static std::set<int> ignore = {};
1417 return ignore.find(i) != ignore.end();
1418 }
1419
CreateModel_shape_dynamic_output_shape_nchw_relaxed_2(Model * model)1420 void CreateModel_shape_dynamic_output_shape_nchw_relaxed_2(Model *model) {
1421 OperandType type0(Type::BOOL, {});
1422 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
1423 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
1424 OperandType type3(Type::INT32, {});
1425 // Phase 1, operands
1426 auto in1 = model->addOperand(&type23);
1427 auto param4 = model->addOperand(&type3);
1428 auto param5 = model->addOperand(&type3);
1429 auto layout = model->addOperand(&type0);
1430 auto out1 = model->addOperand(&type26);
1431 // Phase 2, operations
1432 static int32_t param4_init[] = {3};
1433 model->setOperandValue(param4, param4_init, sizeof(int32_t) * 1);
1434 static int32_t param5_init[] = {3};
1435 model->setOperandValue(param5, param5_init, sizeof(int32_t) * 1);
1436 static bool8 layout_init[] = {true};
1437 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1438 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param4, param5, layout}, {out1});
1439 // Phase 3, inputs and outputs
1440 model->identifyInputsAndOutputs(
1441 {in1},
1442 {out1});
1443 // Phase 4: set relaxed execution
1444 model->relaxComputationFloat32toFloat16(true);
1445 assert(model->isValid());
1446 }
1447
is_ignored_shape_dynamic_output_shape_nchw_relaxed_2(int i)1448 inline bool is_ignored_shape_dynamic_output_shape_nchw_relaxed_2(int i) {
1449 static std::set<int> ignore = {};
1450 return ignore.find(i) != ignore.end();
1451 }
1452
CreateModel_shape_dynamic_output_shape_nchw_quant8_2(Model * model)1453 void CreateModel_shape_dynamic_output_shape_nchw_quant8_2(Model *model) {
1454 OperandType type0(Type::BOOL, {});
1455 OperandType type3(Type::INT32, {});
1456 OperandType type34(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 2}, 0.25f, 0);
1457 OperandType type37(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 0);
1458 // Phase 1, operands
1459 auto in1 = model->addOperand(&type34);
1460 auto param4 = model->addOperand(&type3);
1461 auto param5 = model->addOperand(&type3);
1462 auto layout = model->addOperand(&type0);
1463 auto out1 = model->addOperand(&type37);
1464 // Phase 2, operations
1465 static int32_t param4_init[] = {3};
1466 model->setOperandValue(param4, param4_init, sizeof(int32_t) * 1);
1467 static int32_t param5_init[] = {3};
1468 model->setOperandValue(param5, param5_init, sizeof(int32_t) * 1);
1469 static bool8 layout_init[] = {true};
1470 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1471 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param4, param5, layout}, {out1});
1472 // Phase 3, inputs and outputs
1473 model->identifyInputsAndOutputs(
1474 {in1},
1475 {out1});
1476 assert(model->isValid());
1477 }
1478
is_ignored_shape_dynamic_output_shape_nchw_quant8_2(int i)1479 inline bool is_ignored_shape_dynamic_output_shape_nchw_quant8_2(int i) {
1480 static std::set<int> ignore = {};
1481 return ignore.find(i) != ignore.end();
1482 }
1483
CreateModel_shape_dynamic_output_shape_nchw_float16_2(Model * model)1484 void CreateModel_shape_dynamic_output_shape_nchw_float16_2(Model *model) {
1485 OperandType type0(Type::BOOL, {});
1486 OperandType type25(Type::TENSOR_FLOAT16, {1, 1, 2, 2});
1487 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
1488 OperandType type3(Type::INT32, {});
1489 // Phase 1, operands
1490 auto in1 = model->addOperand(&type25);
1491 auto param4 = model->addOperand(&type3);
1492 auto param5 = model->addOperand(&type3);
1493 auto layout = model->addOperand(&type0);
1494 auto out1 = model->addOperand(&type28);
1495 // Phase 2, operations
1496 static int32_t param4_init[] = {3};
1497 model->setOperandValue(param4, param4_init, sizeof(int32_t) * 1);
1498 static int32_t param5_init[] = {3};
1499 model->setOperandValue(param5, param5_init, sizeof(int32_t) * 1);
1500 static bool8 layout_init[] = {true};
1501 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1502 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param4, param5, layout}, {out1});
1503 // Phase 3, inputs and outputs
1504 model->identifyInputsAndOutputs(
1505 {in1},
1506 {out1});
1507 assert(model->isValid());
1508 }
1509
is_ignored_shape_dynamic_output_shape_nchw_float16_2(int i)1510 inline bool is_ignored_shape_dynamic_output_shape_nchw_float16_2(int i) {
1511 static std::set<int> ignore = {};
1512 return ignore.find(i) != ignore.end();
1513 }
1514
CreateModel_scale_nhwc_2(Model * model)1515 void CreateModel_scale_nhwc_2(Model *model) {
1516 OperandType type0(Type::BOOL, {});
1517 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
1518 OperandType type4(Type::FLOAT32, {});
1519 OperandType type5(Type::TENSOR_FLOAT32, {1, 3, 3, 1});
1520 // Phase 1, operands
1521 auto in1 = model->addOperand(&type1);
1522 auto param6 = model->addOperand(&type4);
1523 auto param7 = model->addOperand(&type4);
1524 auto layout = model->addOperand(&type0);
1525 auto out1 = model->addOperand(&type5);
1526 // Phase 2, operations
1527 static float param6_init[] = {1.5f};
1528 model->setOperandValue(param6, param6_init, sizeof(float) * 1);
1529 static float param7_init[] = {1.5f};
1530 model->setOperandValue(param7, param7_init, sizeof(float) * 1);
1531 static bool8 layout_init[] = {false};
1532 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1533 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param6, param7, layout}, {out1});
1534 // Phase 3, inputs and outputs
1535 model->identifyInputsAndOutputs(
1536 {in1},
1537 {out1});
1538 assert(model->isValid());
1539 }
1540
is_ignored_scale_nhwc_2(int i)1541 inline bool is_ignored_scale_nhwc_2(int i) {
1542 static std::set<int> ignore = {};
1543 return ignore.find(i) != ignore.end();
1544 }
1545
CreateModel_scale_nhwc_relaxed_2(Model * model)1546 void CreateModel_scale_nhwc_relaxed_2(Model *model) {
1547 OperandType type0(Type::BOOL, {});
1548 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
1549 OperandType type4(Type::FLOAT32, {});
1550 OperandType type5(Type::TENSOR_FLOAT32, {1, 3, 3, 1});
1551 // Phase 1, operands
1552 auto in1 = model->addOperand(&type1);
1553 auto param6 = model->addOperand(&type4);
1554 auto param7 = model->addOperand(&type4);
1555 auto layout = model->addOperand(&type0);
1556 auto out1 = model->addOperand(&type5);
1557 // Phase 2, operations
1558 static float param6_init[] = {1.5f};
1559 model->setOperandValue(param6, param6_init, sizeof(float) * 1);
1560 static float param7_init[] = {1.5f};
1561 model->setOperandValue(param7, param7_init, sizeof(float) * 1);
1562 static bool8 layout_init[] = {false};
1563 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1564 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param6, param7, layout}, {out1});
1565 // Phase 3, inputs and outputs
1566 model->identifyInputsAndOutputs(
1567 {in1},
1568 {out1});
1569 // Phase 4: set relaxed execution
1570 model->relaxComputationFloat32toFloat16(true);
1571 assert(model->isValid());
1572 }
1573
is_ignored_scale_nhwc_relaxed_2(int i)1574 inline bool is_ignored_scale_nhwc_relaxed_2(int i) {
1575 static std::set<int> ignore = {};
1576 return ignore.find(i) != ignore.end();
1577 }
1578
CreateModel_scale_nhwc_quant8_2(Model * model)1579 void CreateModel_scale_nhwc_quant8_2(Model *model) {
1580 OperandType type0(Type::BOOL, {});
1581 OperandType type30(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.25f, 0);
1582 OperandType type31(Type::TENSOR_QUANT8_ASYMM, {1, 3, 3, 1}, 0.25f, 0);
1583 OperandType type4(Type::FLOAT32, {});
1584 // Phase 1, operands
1585 auto in1 = model->addOperand(&type30);
1586 auto param6 = model->addOperand(&type4);
1587 auto param7 = model->addOperand(&type4);
1588 auto layout = model->addOperand(&type0);
1589 auto out1 = model->addOperand(&type31);
1590 // Phase 2, operations
1591 static float param6_init[] = {1.5f};
1592 model->setOperandValue(param6, param6_init, sizeof(float) * 1);
1593 static float param7_init[] = {1.5f};
1594 model->setOperandValue(param7, param7_init, sizeof(float) * 1);
1595 static bool8 layout_init[] = {false};
1596 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1597 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param6, param7, layout}, {out1});
1598 // Phase 3, inputs and outputs
1599 model->identifyInputsAndOutputs(
1600 {in1},
1601 {out1});
1602 assert(model->isValid());
1603 }
1604
is_ignored_scale_nhwc_quant8_2(int i)1605 inline bool is_ignored_scale_nhwc_quant8_2(int i) {
1606 static std::set<int> ignore = {};
1607 return ignore.find(i) != ignore.end();
1608 }
1609
CreateModel_scale_nhwc_float16_2(Model * model)1610 void CreateModel_scale_nhwc_float16_2(Model *model) {
1611 OperandType type0(Type::BOOL, {});
1612 OperandType type21(Type::TENSOR_FLOAT16, {1, 2, 2, 1});
1613 OperandType type29(Type::FLOAT16, {});
1614 OperandType type32(Type::TENSOR_FLOAT16, {1, 3, 3, 1});
1615 // Phase 1, operands
1616 auto in1 = model->addOperand(&type21);
1617 auto param6 = model->addOperand(&type29);
1618 auto param7 = model->addOperand(&type29);
1619 auto layout = model->addOperand(&type0);
1620 auto out1 = model->addOperand(&type32);
1621 // Phase 2, operations
1622 static _Float16 param6_init[] = {1.5f};
1623 model->setOperandValue(param6, param6_init, sizeof(_Float16) * 1);
1624 static _Float16 param7_init[] = {1.5f};
1625 model->setOperandValue(param7, param7_init, sizeof(_Float16) * 1);
1626 static bool8 layout_init[] = {false};
1627 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1628 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param6, param7, layout}, {out1});
1629 // Phase 3, inputs and outputs
1630 model->identifyInputsAndOutputs(
1631 {in1},
1632 {out1});
1633 assert(model->isValid());
1634 }
1635
is_ignored_scale_nhwc_float16_2(int i)1636 inline bool is_ignored_scale_nhwc_float16_2(int i) {
1637 static std::set<int> ignore = {};
1638 return ignore.find(i) != ignore.end();
1639 }
1640
CreateModel_scale_nchw_2(Model * model)1641 void CreateModel_scale_nchw_2(Model *model) {
1642 OperandType type0(Type::BOOL, {});
1643 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
1644 OperandType type33(Type::TENSOR_FLOAT32, {1, 1, 3, 3});
1645 OperandType type4(Type::FLOAT32, {});
1646 // Phase 1, operands
1647 auto in1 = model->addOperand(&type23);
1648 auto param6 = model->addOperand(&type4);
1649 auto param7 = model->addOperand(&type4);
1650 auto layout = model->addOperand(&type0);
1651 auto out1 = model->addOperand(&type33);
1652 // Phase 2, operations
1653 static float param6_init[] = {1.5f};
1654 model->setOperandValue(param6, param6_init, sizeof(float) * 1);
1655 static float param7_init[] = {1.5f};
1656 model->setOperandValue(param7, param7_init, sizeof(float) * 1);
1657 static bool8 layout_init[] = {true};
1658 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1659 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param6, param7, layout}, {out1});
1660 // Phase 3, inputs and outputs
1661 model->identifyInputsAndOutputs(
1662 {in1},
1663 {out1});
1664 assert(model->isValid());
1665 }
1666
is_ignored_scale_nchw_2(int i)1667 inline bool is_ignored_scale_nchw_2(int i) {
1668 static std::set<int> ignore = {};
1669 return ignore.find(i) != ignore.end();
1670 }
1671
CreateModel_scale_nchw_relaxed_2(Model * model)1672 void CreateModel_scale_nchw_relaxed_2(Model *model) {
1673 OperandType type0(Type::BOOL, {});
1674 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
1675 OperandType type33(Type::TENSOR_FLOAT32, {1, 1, 3, 3});
1676 OperandType type4(Type::FLOAT32, {});
1677 // Phase 1, operands
1678 auto in1 = model->addOperand(&type23);
1679 auto param6 = model->addOperand(&type4);
1680 auto param7 = model->addOperand(&type4);
1681 auto layout = model->addOperand(&type0);
1682 auto out1 = model->addOperand(&type33);
1683 // Phase 2, operations
1684 static float param6_init[] = {1.5f};
1685 model->setOperandValue(param6, param6_init, sizeof(float) * 1);
1686 static float param7_init[] = {1.5f};
1687 model->setOperandValue(param7, param7_init, sizeof(float) * 1);
1688 static bool8 layout_init[] = {true};
1689 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1690 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param6, param7, layout}, {out1});
1691 // Phase 3, inputs and outputs
1692 model->identifyInputsAndOutputs(
1693 {in1},
1694 {out1});
1695 // Phase 4: set relaxed execution
1696 model->relaxComputationFloat32toFloat16(true);
1697 assert(model->isValid());
1698 }
1699
is_ignored_scale_nchw_relaxed_2(int i)1700 inline bool is_ignored_scale_nchw_relaxed_2(int i) {
1701 static std::set<int> ignore = {};
1702 return ignore.find(i) != ignore.end();
1703 }
1704
CreateModel_scale_nchw_quant8_2(Model * model)1705 void CreateModel_scale_nchw_quant8_2(Model *model) {
1706 OperandType type0(Type::BOOL, {});
1707 OperandType type34(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 2}, 0.25f, 0);
1708 OperandType type35(Type::TENSOR_QUANT8_ASYMM, {1, 1, 3, 3}, 0.25f, 0);
1709 OperandType type4(Type::FLOAT32, {});
1710 // Phase 1, operands
1711 auto in1 = model->addOperand(&type34);
1712 auto param6 = model->addOperand(&type4);
1713 auto param7 = model->addOperand(&type4);
1714 auto layout = model->addOperand(&type0);
1715 auto out1 = model->addOperand(&type35);
1716 // Phase 2, operations
1717 static float param6_init[] = {1.5f};
1718 model->setOperandValue(param6, param6_init, sizeof(float) * 1);
1719 static float param7_init[] = {1.5f};
1720 model->setOperandValue(param7, param7_init, sizeof(float) * 1);
1721 static bool8 layout_init[] = {true};
1722 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1723 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param6, param7, layout}, {out1});
1724 // Phase 3, inputs and outputs
1725 model->identifyInputsAndOutputs(
1726 {in1},
1727 {out1});
1728 assert(model->isValid());
1729 }
1730
is_ignored_scale_nchw_quant8_2(int i)1731 inline bool is_ignored_scale_nchw_quant8_2(int i) {
1732 static std::set<int> ignore = {};
1733 return ignore.find(i) != ignore.end();
1734 }
1735
CreateModel_scale_nchw_float16_2(Model * model)1736 void CreateModel_scale_nchw_float16_2(Model *model) {
1737 OperandType type0(Type::BOOL, {});
1738 OperandType type25(Type::TENSOR_FLOAT16, {1, 1, 2, 2});
1739 OperandType type29(Type::FLOAT16, {});
1740 OperandType type36(Type::TENSOR_FLOAT16, {1, 1, 3, 3});
1741 // Phase 1, operands
1742 auto in1 = model->addOperand(&type25);
1743 auto param6 = model->addOperand(&type29);
1744 auto param7 = model->addOperand(&type29);
1745 auto layout = model->addOperand(&type0);
1746 auto out1 = model->addOperand(&type36);
1747 // Phase 2, operations
1748 static _Float16 param6_init[] = {1.5f};
1749 model->setOperandValue(param6, param6_init, sizeof(_Float16) * 1);
1750 static _Float16 param7_init[] = {1.5f};
1751 model->setOperandValue(param7, param7_init, sizeof(_Float16) * 1);
1752 static bool8 layout_init[] = {true};
1753 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1754 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param6, param7, layout}, {out1});
1755 // Phase 3, inputs and outputs
1756 model->identifyInputsAndOutputs(
1757 {in1},
1758 {out1});
1759 assert(model->isValid());
1760 }
1761
is_ignored_scale_nchw_float16_2(int i)1762 inline bool is_ignored_scale_nchw_float16_2(int i) {
1763 static std::set<int> ignore = {};
1764 return ignore.find(i) != ignore.end();
1765 }
1766
CreateModel_scale_dynamic_output_shape_nhwc_2(Model * model)1767 void CreateModel_scale_dynamic_output_shape_nhwc_2(Model *model) {
1768 OperandType type0(Type::BOOL, {});
1769 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
1770 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
1771 OperandType type4(Type::FLOAT32, {});
1772 // Phase 1, operands
1773 auto in1 = model->addOperand(&type1);
1774 auto param6 = model->addOperand(&type4);
1775 auto param7 = model->addOperand(&type4);
1776 auto layout = model->addOperand(&type0);
1777 auto out1 = model->addOperand(&type26);
1778 // Phase 2, operations
1779 static float param6_init[] = {1.5f};
1780 model->setOperandValue(param6, param6_init, sizeof(float) * 1);
1781 static float param7_init[] = {1.5f};
1782 model->setOperandValue(param7, param7_init, sizeof(float) * 1);
1783 static bool8 layout_init[] = {false};
1784 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1785 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param6, param7, layout}, {out1});
1786 // Phase 3, inputs and outputs
1787 model->identifyInputsAndOutputs(
1788 {in1},
1789 {out1});
1790 assert(model->isValid());
1791 }
1792
is_ignored_scale_dynamic_output_shape_nhwc_2(int i)1793 inline bool is_ignored_scale_dynamic_output_shape_nhwc_2(int i) {
1794 static std::set<int> ignore = {};
1795 return ignore.find(i) != ignore.end();
1796 }
1797
CreateModel_scale_dynamic_output_shape_nhwc_relaxed_2(Model * model)1798 void CreateModel_scale_dynamic_output_shape_nhwc_relaxed_2(Model *model) {
1799 OperandType type0(Type::BOOL, {});
1800 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
1801 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
1802 OperandType type4(Type::FLOAT32, {});
1803 // Phase 1, operands
1804 auto in1 = model->addOperand(&type1);
1805 auto param6 = model->addOperand(&type4);
1806 auto param7 = model->addOperand(&type4);
1807 auto layout = model->addOperand(&type0);
1808 auto out1 = model->addOperand(&type26);
1809 // Phase 2, operations
1810 static float param6_init[] = {1.5f};
1811 model->setOperandValue(param6, param6_init, sizeof(float) * 1);
1812 static float param7_init[] = {1.5f};
1813 model->setOperandValue(param7, param7_init, sizeof(float) * 1);
1814 static bool8 layout_init[] = {false};
1815 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1816 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param6, param7, layout}, {out1});
1817 // Phase 3, inputs and outputs
1818 model->identifyInputsAndOutputs(
1819 {in1},
1820 {out1});
1821 // Phase 4: set relaxed execution
1822 model->relaxComputationFloat32toFloat16(true);
1823 assert(model->isValid());
1824 }
1825
is_ignored_scale_dynamic_output_shape_nhwc_relaxed_2(int i)1826 inline bool is_ignored_scale_dynamic_output_shape_nhwc_relaxed_2(int i) {
1827 static std::set<int> ignore = {};
1828 return ignore.find(i) != ignore.end();
1829 }
1830
CreateModel_scale_dynamic_output_shape_nhwc_quant8_2(Model * model)1831 void CreateModel_scale_dynamic_output_shape_nhwc_quant8_2(Model *model) {
1832 OperandType type0(Type::BOOL, {});
1833 OperandType type30(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.25f, 0);
1834 OperandType type37(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 0);
1835 OperandType type4(Type::FLOAT32, {});
1836 // Phase 1, operands
1837 auto in1 = model->addOperand(&type30);
1838 auto param6 = model->addOperand(&type4);
1839 auto param7 = model->addOperand(&type4);
1840 auto layout = model->addOperand(&type0);
1841 auto out1 = model->addOperand(&type37);
1842 // Phase 2, operations
1843 static float param6_init[] = {1.5f};
1844 model->setOperandValue(param6, param6_init, sizeof(float) * 1);
1845 static float param7_init[] = {1.5f};
1846 model->setOperandValue(param7, param7_init, sizeof(float) * 1);
1847 static bool8 layout_init[] = {false};
1848 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1849 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param6, param7, layout}, {out1});
1850 // Phase 3, inputs and outputs
1851 model->identifyInputsAndOutputs(
1852 {in1},
1853 {out1});
1854 assert(model->isValid());
1855 }
1856
is_ignored_scale_dynamic_output_shape_nhwc_quant8_2(int i)1857 inline bool is_ignored_scale_dynamic_output_shape_nhwc_quant8_2(int i) {
1858 static std::set<int> ignore = {};
1859 return ignore.find(i) != ignore.end();
1860 }
1861
CreateModel_scale_dynamic_output_shape_nhwc_float16_2(Model * model)1862 void CreateModel_scale_dynamic_output_shape_nhwc_float16_2(Model *model) {
1863 OperandType type0(Type::BOOL, {});
1864 OperandType type21(Type::TENSOR_FLOAT16, {1, 2, 2, 1});
1865 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
1866 OperandType type29(Type::FLOAT16, {});
1867 // Phase 1, operands
1868 auto in1 = model->addOperand(&type21);
1869 auto param6 = model->addOperand(&type29);
1870 auto param7 = model->addOperand(&type29);
1871 auto layout = model->addOperand(&type0);
1872 auto out1 = model->addOperand(&type28);
1873 // Phase 2, operations
1874 static _Float16 param6_init[] = {1.5f};
1875 model->setOperandValue(param6, param6_init, sizeof(_Float16) * 1);
1876 static _Float16 param7_init[] = {1.5f};
1877 model->setOperandValue(param7, param7_init, sizeof(_Float16) * 1);
1878 static bool8 layout_init[] = {false};
1879 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1880 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param6, param7, layout}, {out1});
1881 // Phase 3, inputs and outputs
1882 model->identifyInputsAndOutputs(
1883 {in1},
1884 {out1});
1885 assert(model->isValid());
1886 }
1887
is_ignored_scale_dynamic_output_shape_nhwc_float16_2(int i)1888 inline bool is_ignored_scale_dynamic_output_shape_nhwc_float16_2(int i) {
1889 static std::set<int> ignore = {};
1890 return ignore.find(i) != ignore.end();
1891 }
1892
CreateModel_scale_dynamic_output_shape_nchw_2(Model * model)1893 void CreateModel_scale_dynamic_output_shape_nchw_2(Model *model) {
1894 OperandType type0(Type::BOOL, {});
1895 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
1896 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
1897 OperandType type4(Type::FLOAT32, {});
1898 // Phase 1, operands
1899 auto in1 = model->addOperand(&type23);
1900 auto param6 = model->addOperand(&type4);
1901 auto param7 = model->addOperand(&type4);
1902 auto layout = model->addOperand(&type0);
1903 auto out1 = model->addOperand(&type26);
1904 // Phase 2, operations
1905 static float param6_init[] = {1.5f};
1906 model->setOperandValue(param6, param6_init, sizeof(float) * 1);
1907 static float param7_init[] = {1.5f};
1908 model->setOperandValue(param7, param7_init, sizeof(float) * 1);
1909 static bool8 layout_init[] = {true};
1910 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1911 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param6, param7, layout}, {out1});
1912 // Phase 3, inputs and outputs
1913 model->identifyInputsAndOutputs(
1914 {in1},
1915 {out1});
1916 assert(model->isValid());
1917 }
1918
is_ignored_scale_dynamic_output_shape_nchw_2(int i)1919 inline bool is_ignored_scale_dynamic_output_shape_nchw_2(int i) {
1920 static std::set<int> ignore = {};
1921 return ignore.find(i) != ignore.end();
1922 }
1923
CreateModel_scale_dynamic_output_shape_nchw_relaxed_2(Model * model)1924 void CreateModel_scale_dynamic_output_shape_nchw_relaxed_2(Model *model) {
1925 OperandType type0(Type::BOOL, {});
1926 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
1927 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
1928 OperandType type4(Type::FLOAT32, {});
1929 // Phase 1, operands
1930 auto in1 = model->addOperand(&type23);
1931 auto param6 = model->addOperand(&type4);
1932 auto param7 = model->addOperand(&type4);
1933 auto layout = model->addOperand(&type0);
1934 auto out1 = model->addOperand(&type26);
1935 // Phase 2, operations
1936 static float param6_init[] = {1.5f};
1937 model->setOperandValue(param6, param6_init, sizeof(float) * 1);
1938 static float param7_init[] = {1.5f};
1939 model->setOperandValue(param7, param7_init, sizeof(float) * 1);
1940 static bool8 layout_init[] = {true};
1941 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1942 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param6, param7, layout}, {out1});
1943 // Phase 3, inputs and outputs
1944 model->identifyInputsAndOutputs(
1945 {in1},
1946 {out1});
1947 // Phase 4: set relaxed execution
1948 model->relaxComputationFloat32toFloat16(true);
1949 assert(model->isValid());
1950 }
1951
is_ignored_scale_dynamic_output_shape_nchw_relaxed_2(int i)1952 inline bool is_ignored_scale_dynamic_output_shape_nchw_relaxed_2(int i) {
1953 static std::set<int> ignore = {};
1954 return ignore.find(i) != ignore.end();
1955 }
1956
CreateModel_scale_dynamic_output_shape_nchw_quant8_2(Model * model)1957 void CreateModel_scale_dynamic_output_shape_nchw_quant8_2(Model *model) {
1958 OperandType type0(Type::BOOL, {});
1959 OperandType type34(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 2}, 0.25f, 0);
1960 OperandType type37(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 0);
1961 OperandType type4(Type::FLOAT32, {});
1962 // Phase 1, operands
1963 auto in1 = model->addOperand(&type34);
1964 auto param6 = model->addOperand(&type4);
1965 auto param7 = model->addOperand(&type4);
1966 auto layout = model->addOperand(&type0);
1967 auto out1 = model->addOperand(&type37);
1968 // Phase 2, operations
1969 static float param6_init[] = {1.5f};
1970 model->setOperandValue(param6, param6_init, sizeof(float) * 1);
1971 static float param7_init[] = {1.5f};
1972 model->setOperandValue(param7, param7_init, sizeof(float) * 1);
1973 static bool8 layout_init[] = {true};
1974 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
1975 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param6, param7, layout}, {out1});
1976 // Phase 3, inputs and outputs
1977 model->identifyInputsAndOutputs(
1978 {in1},
1979 {out1});
1980 assert(model->isValid());
1981 }
1982
is_ignored_scale_dynamic_output_shape_nchw_quant8_2(int i)1983 inline bool is_ignored_scale_dynamic_output_shape_nchw_quant8_2(int i) {
1984 static std::set<int> ignore = {};
1985 return ignore.find(i) != ignore.end();
1986 }
1987
CreateModel_scale_dynamic_output_shape_nchw_float16_2(Model * model)1988 void CreateModel_scale_dynamic_output_shape_nchw_float16_2(Model *model) {
1989 OperandType type0(Type::BOOL, {});
1990 OperandType type25(Type::TENSOR_FLOAT16, {1, 1, 2, 2});
1991 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
1992 OperandType type29(Type::FLOAT16, {});
1993 // Phase 1, operands
1994 auto in1 = model->addOperand(&type25);
1995 auto param6 = model->addOperand(&type29);
1996 auto param7 = model->addOperand(&type29);
1997 auto layout = model->addOperand(&type0);
1998 auto out1 = model->addOperand(&type28);
1999 // Phase 2, operations
2000 static _Float16 param6_init[] = {1.5f};
2001 model->setOperandValue(param6, param6_init, sizeof(_Float16) * 1);
2002 static _Float16 param7_init[] = {1.5f};
2003 model->setOperandValue(param7, param7_init, sizeof(_Float16) * 1);
2004 static bool8 layout_init[] = {true};
2005 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2006 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in1, param6, param7, layout}, {out1});
2007 // Phase 3, inputs and outputs
2008 model->identifyInputsAndOutputs(
2009 {in1},
2010 {out1});
2011 assert(model->isValid());
2012 }
2013
is_ignored_scale_dynamic_output_shape_nchw_float16_2(int i)2014 inline bool is_ignored_scale_dynamic_output_shape_nchw_float16_2(int i) {
2015 static std::set<int> ignore = {};
2016 return ignore.find(i) != ignore.end();
2017 }
2018
CreateModel_shape_nhwc_3(Model * model)2019 void CreateModel_shape_nhwc_3(Model *model) {
2020 OperandType type0(Type::BOOL, {});
2021 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
2022 OperandType type3(Type::INT32, {});
2023 OperandType type5(Type::TENSOR_FLOAT32, {1, 3, 3, 1});
2024 // Phase 1, operands
2025 auto in2 = model->addOperand(&type5);
2026 auto param8 = model->addOperand(&type3);
2027 auto param9 = model->addOperand(&type3);
2028 auto layout = model->addOperand(&type0);
2029 auto out2 = model->addOperand(&type1);
2030 // Phase 2, operations
2031 static int32_t param8_init[] = {2};
2032 model->setOperandValue(param8, param8_init, sizeof(int32_t) * 1);
2033 static int32_t param9_init[] = {2};
2034 model->setOperandValue(param9, param9_init, sizeof(int32_t) * 1);
2035 static bool8 layout_init[] = {false};
2036 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2037 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param8, param9, layout}, {out2});
2038 // Phase 3, inputs and outputs
2039 model->identifyInputsAndOutputs(
2040 {in2},
2041 {out2});
2042 assert(model->isValid());
2043 }
2044
is_ignored_shape_nhwc_3(int i)2045 inline bool is_ignored_shape_nhwc_3(int i) {
2046 static std::set<int> ignore = {};
2047 return ignore.find(i) != ignore.end();
2048 }
2049
CreateModel_shape_nhwc_relaxed_3(Model * model)2050 void CreateModel_shape_nhwc_relaxed_3(Model *model) {
2051 OperandType type0(Type::BOOL, {});
2052 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
2053 OperandType type3(Type::INT32, {});
2054 OperandType type5(Type::TENSOR_FLOAT32, {1, 3, 3, 1});
2055 // Phase 1, operands
2056 auto in2 = model->addOperand(&type5);
2057 auto param8 = model->addOperand(&type3);
2058 auto param9 = model->addOperand(&type3);
2059 auto layout = model->addOperand(&type0);
2060 auto out2 = model->addOperand(&type1);
2061 // Phase 2, operations
2062 static int32_t param8_init[] = {2};
2063 model->setOperandValue(param8, param8_init, sizeof(int32_t) * 1);
2064 static int32_t param9_init[] = {2};
2065 model->setOperandValue(param9, param9_init, sizeof(int32_t) * 1);
2066 static bool8 layout_init[] = {false};
2067 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2068 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param8, param9, layout}, {out2});
2069 // Phase 3, inputs and outputs
2070 model->identifyInputsAndOutputs(
2071 {in2},
2072 {out2});
2073 // Phase 4: set relaxed execution
2074 model->relaxComputationFloat32toFloat16(true);
2075 assert(model->isValid());
2076 }
2077
is_ignored_shape_nhwc_relaxed_3(int i)2078 inline bool is_ignored_shape_nhwc_relaxed_3(int i) {
2079 static std::set<int> ignore = {};
2080 return ignore.find(i) != ignore.end();
2081 }
2082
CreateModel_shape_nhwc_quant8_3(Model * model)2083 void CreateModel_shape_nhwc_quant8_3(Model *model) {
2084 OperandType type0(Type::BOOL, {});
2085 OperandType type3(Type::INT32, {});
2086 OperandType type38(Type::TENSOR_QUANT8_ASYMM, {1, 3, 3, 1}, 0.25f, 100);
2087 OperandType type39(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.25f, 100);
2088 // Phase 1, operands
2089 auto in2 = model->addOperand(&type38);
2090 auto param8 = model->addOperand(&type3);
2091 auto param9 = model->addOperand(&type3);
2092 auto layout = model->addOperand(&type0);
2093 auto out2 = model->addOperand(&type39);
2094 // Phase 2, operations
2095 static int32_t param8_init[] = {2};
2096 model->setOperandValue(param8, param8_init, sizeof(int32_t) * 1);
2097 static int32_t param9_init[] = {2};
2098 model->setOperandValue(param9, param9_init, sizeof(int32_t) * 1);
2099 static bool8 layout_init[] = {false};
2100 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2101 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param8, param9, layout}, {out2});
2102 // Phase 3, inputs and outputs
2103 model->identifyInputsAndOutputs(
2104 {in2},
2105 {out2});
2106 assert(model->isValid());
2107 }
2108
is_ignored_shape_nhwc_quant8_3(int i)2109 inline bool is_ignored_shape_nhwc_quant8_3(int i) {
2110 static std::set<int> ignore = {};
2111 return ignore.find(i) != ignore.end();
2112 }
2113
CreateModel_shape_nhwc_float16_3(Model * model)2114 void CreateModel_shape_nhwc_float16_3(Model *model) {
2115 OperandType type0(Type::BOOL, {});
2116 OperandType type21(Type::TENSOR_FLOAT16, {1, 2, 2, 1});
2117 OperandType type3(Type::INT32, {});
2118 OperandType type32(Type::TENSOR_FLOAT16, {1, 3, 3, 1});
2119 // Phase 1, operands
2120 auto in2 = model->addOperand(&type32);
2121 auto param8 = model->addOperand(&type3);
2122 auto param9 = model->addOperand(&type3);
2123 auto layout = model->addOperand(&type0);
2124 auto out2 = model->addOperand(&type21);
2125 // Phase 2, operations
2126 static int32_t param8_init[] = {2};
2127 model->setOperandValue(param8, param8_init, sizeof(int32_t) * 1);
2128 static int32_t param9_init[] = {2};
2129 model->setOperandValue(param9, param9_init, sizeof(int32_t) * 1);
2130 static bool8 layout_init[] = {false};
2131 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2132 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param8, param9, layout}, {out2});
2133 // Phase 3, inputs and outputs
2134 model->identifyInputsAndOutputs(
2135 {in2},
2136 {out2});
2137 assert(model->isValid());
2138 }
2139
is_ignored_shape_nhwc_float16_3(int i)2140 inline bool is_ignored_shape_nhwc_float16_3(int i) {
2141 static std::set<int> ignore = {};
2142 return ignore.find(i) != ignore.end();
2143 }
2144
CreateModel_shape_nchw_3(Model * model)2145 void CreateModel_shape_nchw_3(Model *model) {
2146 OperandType type0(Type::BOOL, {});
2147 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
2148 OperandType type3(Type::INT32, {});
2149 OperandType type33(Type::TENSOR_FLOAT32, {1, 1, 3, 3});
2150 // Phase 1, operands
2151 auto in2 = model->addOperand(&type33);
2152 auto param8 = model->addOperand(&type3);
2153 auto param9 = model->addOperand(&type3);
2154 auto layout = model->addOperand(&type0);
2155 auto out2 = model->addOperand(&type23);
2156 // Phase 2, operations
2157 static int32_t param8_init[] = {2};
2158 model->setOperandValue(param8, param8_init, sizeof(int32_t) * 1);
2159 static int32_t param9_init[] = {2};
2160 model->setOperandValue(param9, param9_init, sizeof(int32_t) * 1);
2161 static bool8 layout_init[] = {true};
2162 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2163 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param8, param9, layout}, {out2});
2164 // Phase 3, inputs and outputs
2165 model->identifyInputsAndOutputs(
2166 {in2},
2167 {out2});
2168 assert(model->isValid());
2169 }
2170
is_ignored_shape_nchw_3(int i)2171 inline bool is_ignored_shape_nchw_3(int i) {
2172 static std::set<int> ignore = {};
2173 return ignore.find(i) != ignore.end();
2174 }
2175
CreateModel_shape_nchw_relaxed_3(Model * model)2176 void CreateModel_shape_nchw_relaxed_3(Model *model) {
2177 OperandType type0(Type::BOOL, {});
2178 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
2179 OperandType type3(Type::INT32, {});
2180 OperandType type33(Type::TENSOR_FLOAT32, {1, 1, 3, 3});
2181 // Phase 1, operands
2182 auto in2 = model->addOperand(&type33);
2183 auto param8 = model->addOperand(&type3);
2184 auto param9 = model->addOperand(&type3);
2185 auto layout = model->addOperand(&type0);
2186 auto out2 = model->addOperand(&type23);
2187 // Phase 2, operations
2188 static int32_t param8_init[] = {2};
2189 model->setOperandValue(param8, param8_init, sizeof(int32_t) * 1);
2190 static int32_t param9_init[] = {2};
2191 model->setOperandValue(param9, param9_init, sizeof(int32_t) * 1);
2192 static bool8 layout_init[] = {true};
2193 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2194 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param8, param9, layout}, {out2});
2195 // Phase 3, inputs and outputs
2196 model->identifyInputsAndOutputs(
2197 {in2},
2198 {out2});
2199 // Phase 4: set relaxed execution
2200 model->relaxComputationFloat32toFloat16(true);
2201 assert(model->isValid());
2202 }
2203
is_ignored_shape_nchw_relaxed_3(int i)2204 inline bool is_ignored_shape_nchw_relaxed_3(int i) {
2205 static std::set<int> ignore = {};
2206 return ignore.find(i) != ignore.end();
2207 }
2208
CreateModel_shape_nchw_quant8_3(Model * model)2209 void CreateModel_shape_nchw_quant8_3(Model *model) {
2210 OperandType type0(Type::BOOL, {});
2211 OperandType type3(Type::INT32, {});
2212 OperandType type40(Type::TENSOR_QUANT8_ASYMM, {1, 1, 3, 3}, 0.25f, 100);
2213 OperandType type41(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 2}, 0.25f, 100);
2214 // Phase 1, operands
2215 auto in2 = model->addOperand(&type40);
2216 auto param8 = model->addOperand(&type3);
2217 auto param9 = model->addOperand(&type3);
2218 auto layout = model->addOperand(&type0);
2219 auto out2 = model->addOperand(&type41);
2220 // Phase 2, operations
2221 static int32_t param8_init[] = {2};
2222 model->setOperandValue(param8, param8_init, sizeof(int32_t) * 1);
2223 static int32_t param9_init[] = {2};
2224 model->setOperandValue(param9, param9_init, sizeof(int32_t) * 1);
2225 static bool8 layout_init[] = {true};
2226 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2227 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param8, param9, layout}, {out2});
2228 // Phase 3, inputs and outputs
2229 model->identifyInputsAndOutputs(
2230 {in2},
2231 {out2});
2232 assert(model->isValid());
2233 }
2234
is_ignored_shape_nchw_quant8_3(int i)2235 inline bool is_ignored_shape_nchw_quant8_3(int i) {
2236 static std::set<int> ignore = {};
2237 return ignore.find(i) != ignore.end();
2238 }
2239
CreateModel_shape_nchw_float16_3(Model * model)2240 void CreateModel_shape_nchw_float16_3(Model *model) {
2241 OperandType type0(Type::BOOL, {});
2242 OperandType type25(Type::TENSOR_FLOAT16, {1, 1, 2, 2});
2243 OperandType type3(Type::INT32, {});
2244 OperandType type36(Type::TENSOR_FLOAT16, {1, 1, 3, 3});
2245 // Phase 1, operands
2246 auto in2 = model->addOperand(&type36);
2247 auto param8 = model->addOperand(&type3);
2248 auto param9 = model->addOperand(&type3);
2249 auto layout = model->addOperand(&type0);
2250 auto out2 = model->addOperand(&type25);
2251 // Phase 2, operations
2252 static int32_t param8_init[] = {2};
2253 model->setOperandValue(param8, param8_init, sizeof(int32_t) * 1);
2254 static int32_t param9_init[] = {2};
2255 model->setOperandValue(param9, param9_init, sizeof(int32_t) * 1);
2256 static bool8 layout_init[] = {true};
2257 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2258 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param8, param9, layout}, {out2});
2259 // Phase 3, inputs and outputs
2260 model->identifyInputsAndOutputs(
2261 {in2},
2262 {out2});
2263 assert(model->isValid());
2264 }
2265
is_ignored_shape_nchw_float16_3(int i)2266 inline bool is_ignored_shape_nchw_float16_3(int i) {
2267 static std::set<int> ignore = {};
2268 return ignore.find(i) != ignore.end();
2269 }
2270
CreateModel_shape_dynamic_output_shape_nhwc_3(Model * model)2271 void CreateModel_shape_dynamic_output_shape_nhwc_3(Model *model) {
2272 OperandType type0(Type::BOOL, {});
2273 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
2274 OperandType type3(Type::INT32, {});
2275 OperandType type5(Type::TENSOR_FLOAT32, {1, 3, 3, 1});
2276 // Phase 1, operands
2277 auto in2 = model->addOperand(&type5);
2278 auto param8 = model->addOperand(&type3);
2279 auto param9 = model->addOperand(&type3);
2280 auto layout = model->addOperand(&type0);
2281 auto out2 = model->addOperand(&type26);
2282 // Phase 2, operations
2283 static int32_t param8_init[] = {2};
2284 model->setOperandValue(param8, param8_init, sizeof(int32_t) * 1);
2285 static int32_t param9_init[] = {2};
2286 model->setOperandValue(param9, param9_init, sizeof(int32_t) * 1);
2287 static bool8 layout_init[] = {false};
2288 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2289 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param8, param9, layout}, {out2});
2290 // Phase 3, inputs and outputs
2291 model->identifyInputsAndOutputs(
2292 {in2},
2293 {out2});
2294 assert(model->isValid());
2295 }
2296
is_ignored_shape_dynamic_output_shape_nhwc_3(int i)2297 inline bool is_ignored_shape_dynamic_output_shape_nhwc_3(int i) {
2298 static std::set<int> ignore = {};
2299 return ignore.find(i) != ignore.end();
2300 }
2301
CreateModel_shape_dynamic_output_shape_nhwc_relaxed_3(Model * model)2302 void CreateModel_shape_dynamic_output_shape_nhwc_relaxed_3(Model *model) {
2303 OperandType type0(Type::BOOL, {});
2304 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
2305 OperandType type3(Type::INT32, {});
2306 OperandType type5(Type::TENSOR_FLOAT32, {1, 3, 3, 1});
2307 // Phase 1, operands
2308 auto in2 = model->addOperand(&type5);
2309 auto param8 = model->addOperand(&type3);
2310 auto param9 = model->addOperand(&type3);
2311 auto layout = model->addOperand(&type0);
2312 auto out2 = model->addOperand(&type26);
2313 // Phase 2, operations
2314 static int32_t param8_init[] = {2};
2315 model->setOperandValue(param8, param8_init, sizeof(int32_t) * 1);
2316 static int32_t param9_init[] = {2};
2317 model->setOperandValue(param9, param9_init, sizeof(int32_t) * 1);
2318 static bool8 layout_init[] = {false};
2319 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2320 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param8, param9, layout}, {out2});
2321 // Phase 3, inputs and outputs
2322 model->identifyInputsAndOutputs(
2323 {in2},
2324 {out2});
2325 // Phase 4: set relaxed execution
2326 model->relaxComputationFloat32toFloat16(true);
2327 assert(model->isValid());
2328 }
2329
is_ignored_shape_dynamic_output_shape_nhwc_relaxed_3(int i)2330 inline bool is_ignored_shape_dynamic_output_shape_nhwc_relaxed_3(int i) {
2331 static std::set<int> ignore = {};
2332 return ignore.find(i) != ignore.end();
2333 }
2334
CreateModel_shape_dynamic_output_shape_nhwc_quant8_3(Model * model)2335 void CreateModel_shape_dynamic_output_shape_nhwc_quant8_3(Model *model) {
2336 OperandType type0(Type::BOOL, {});
2337 OperandType type3(Type::INT32, {});
2338 OperandType type38(Type::TENSOR_QUANT8_ASYMM, {1, 3, 3, 1}, 0.25f, 100);
2339 OperandType type42(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 100);
2340 // Phase 1, operands
2341 auto in2 = model->addOperand(&type38);
2342 auto param8 = model->addOperand(&type3);
2343 auto param9 = model->addOperand(&type3);
2344 auto layout = model->addOperand(&type0);
2345 auto out2 = model->addOperand(&type42);
2346 // Phase 2, operations
2347 static int32_t param8_init[] = {2};
2348 model->setOperandValue(param8, param8_init, sizeof(int32_t) * 1);
2349 static int32_t param9_init[] = {2};
2350 model->setOperandValue(param9, param9_init, sizeof(int32_t) * 1);
2351 static bool8 layout_init[] = {false};
2352 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2353 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param8, param9, layout}, {out2});
2354 // Phase 3, inputs and outputs
2355 model->identifyInputsAndOutputs(
2356 {in2},
2357 {out2});
2358 assert(model->isValid());
2359 }
2360
is_ignored_shape_dynamic_output_shape_nhwc_quant8_3(int i)2361 inline bool is_ignored_shape_dynamic_output_shape_nhwc_quant8_3(int i) {
2362 static std::set<int> ignore = {};
2363 return ignore.find(i) != ignore.end();
2364 }
2365
CreateModel_shape_dynamic_output_shape_nhwc_float16_3(Model * model)2366 void CreateModel_shape_dynamic_output_shape_nhwc_float16_3(Model *model) {
2367 OperandType type0(Type::BOOL, {});
2368 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
2369 OperandType type3(Type::INT32, {});
2370 OperandType type32(Type::TENSOR_FLOAT16, {1, 3, 3, 1});
2371 // Phase 1, operands
2372 auto in2 = model->addOperand(&type32);
2373 auto param8 = model->addOperand(&type3);
2374 auto param9 = model->addOperand(&type3);
2375 auto layout = model->addOperand(&type0);
2376 auto out2 = model->addOperand(&type28);
2377 // Phase 2, operations
2378 static int32_t param8_init[] = {2};
2379 model->setOperandValue(param8, param8_init, sizeof(int32_t) * 1);
2380 static int32_t param9_init[] = {2};
2381 model->setOperandValue(param9, param9_init, sizeof(int32_t) * 1);
2382 static bool8 layout_init[] = {false};
2383 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2384 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param8, param9, layout}, {out2});
2385 // Phase 3, inputs and outputs
2386 model->identifyInputsAndOutputs(
2387 {in2},
2388 {out2});
2389 assert(model->isValid());
2390 }
2391
is_ignored_shape_dynamic_output_shape_nhwc_float16_3(int i)2392 inline bool is_ignored_shape_dynamic_output_shape_nhwc_float16_3(int i) {
2393 static std::set<int> ignore = {};
2394 return ignore.find(i) != ignore.end();
2395 }
2396
CreateModel_shape_dynamic_output_shape_nchw_3(Model * model)2397 void CreateModel_shape_dynamic_output_shape_nchw_3(Model *model) {
2398 OperandType type0(Type::BOOL, {});
2399 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
2400 OperandType type3(Type::INT32, {});
2401 OperandType type33(Type::TENSOR_FLOAT32, {1, 1, 3, 3});
2402 // Phase 1, operands
2403 auto in2 = model->addOperand(&type33);
2404 auto param8 = model->addOperand(&type3);
2405 auto param9 = model->addOperand(&type3);
2406 auto layout = model->addOperand(&type0);
2407 auto out2 = model->addOperand(&type26);
2408 // Phase 2, operations
2409 static int32_t param8_init[] = {2};
2410 model->setOperandValue(param8, param8_init, sizeof(int32_t) * 1);
2411 static int32_t param9_init[] = {2};
2412 model->setOperandValue(param9, param9_init, sizeof(int32_t) * 1);
2413 static bool8 layout_init[] = {true};
2414 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2415 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param8, param9, layout}, {out2});
2416 // Phase 3, inputs and outputs
2417 model->identifyInputsAndOutputs(
2418 {in2},
2419 {out2});
2420 assert(model->isValid());
2421 }
2422
is_ignored_shape_dynamic_output_shape_nchw_3(int i)2423 inline bool is_ignored_shape_dynamic_output_shape_nchw_3(int i) {
2424 static std::set<int> ignore = {};
2425 return ignore.find(i) != ignore.end();
2426 }
2427
CreateModel_shape_dynamic_output_shape_nchw_relaxed_3(Model * model)2428 void CreateModel_shape_dynamic_output_shape_nchw_relaxed_3(Model *model) {
2429 OperandType type0(Type::BOOL, {});
2430 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
2431 OperandType type3(Type::INT32, {});
2432 OperandType type33(Type::TENSOR_FLOAT32, {1, 1, 3, 3});
2433 // Phase 1, operands
2434 auto in2 = model->addOperand(&type33);
2435 auto param8 = model->addOperand(&type3);
2436 auto param9 = model->addOperand(&type3);
2437 auto layout = model->addOperand(&type0);
2438 auto out2 = model->addOperand(&type26);
2439 // Phase 2, operations
2440 static int32_t param8_init[] = {2};
2441 model->setOperandValue(param8, param8_init, sizeof(int32_t) * 1);
2442 static int32_t param9_init[] = {2};
2443 model->setOperandValue(param9, param9_init, sizeof(int32_t) * 1);
2444 static bool8 layout_init[] = {true};
2445 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2446 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param8, param9, layout}, {out2});
2447 // Phase 3, inputs and outputs
2448 model->identifyInputsAndOutputs(
2449 {in2},
2450 {out2});
2451 // Phase 4: set relaxed execution
2452 model->relaxComputationFloat32toFloat16(true);
2453 assert(model->isValid());
2454 }
2455
is_ignored_shape_dynamic_output_shape_nchw_relaxed_3(int i)2456 inline bool is_ignored_shape_dynamic_output_shape_nchw_relaxed_3(int i) {
2457 static std::set<int> ignore = {};
2458 return ignore.find(i) != ignore.end();
2459 }
2460
CreateModel_shape_dynamic_output_shape_nchw_quant8_3(Model * model)2461 void CreateModel_shape_dynamic_output_shape_nchw_quant8_3(Model *model) {
2462 OperandType type0(Type::BOOL, {});
2463 OperandType type3(Type::INT32, {});
2464 OperandType type40(Type::TENSOR_QUANT8_ASYMM, {1, 1, 3, 3}, 0.25f, 100);
2465 OperandType type42(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 100);
2466 // Phase 1, operands
2467 auto in2 = model->addOperand(&type40);
2468 auto param8 = model->addOperand(&type3);
2469 auto param9 = model->addOperand(&type3);
2470 auto layout = model->addOperand(&type0);
2471 auto out2 = model->addOperand(&type42);
2472 // Phase 2, operations
2473 static int32_t param8_init[] = {2};
2474 model->setOperandValue(param8, param8_init, sizeof(int32_t) * 1);
2475 static int32_t param9_init[] = {2};
2476 model->setOperandValue(param9, param9_init, sizeof(int32_t) * 1);
2477 static bool8 layout_init[] = {true};
2478 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2479 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param8, param9, layout}, {out2});
2480 // Phase 3, inputs and outputs
2481 model->identifyInputsAndOutputs(
2482 {in2},
2483 {out2});
2484 assert(model->isValid());
2485 }
2486
is_ignored_shape_dynamic_output_shape_nchw_quant8_3(int i)2487 inline bool is_ignored_shape_dynamic_output_shape_nchw_quant8_3(int i) {
2488 static std::set<int> ignore = {};
2489 return ignore.find(i) != ignore.end();
2490 }
2491
CreateModel_shape_dynamic_output_shape_nchw_float16_3(Model * model)2492 void CreateModel_shape_dynamic_output_shape_nchw_float16_3(Model *model) {
2493 OperandType type0(Type::BOOL, {});
2494 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
2495 OperandType type3(Type::INT32, {});
2496 OperandType type36(Type::TENSOR_FLOAT16, {1, 1, 3, 3});
2497 // Phase 1, operands
2498 auto in2 = model->addOperand(&type36);
2499 auto param8 = model->addOperand(&type3);
2500 auto param9 = model->addOperand(&type3);
2501 auto layout = model->addOperand(&type0);
2502 auto out2 = model->addOperand(&type28);
2503 // Phase 2, operations
2504 static int32_t param8_init[] = {2};
2505 model->setOperandValue(param8, param8_init, sizeof(int32_t) * 1);
2506 static int32_t param9_init[] = {2};
2507 model->setOperandValue(param9, param9_init, sizeof(int32_t) * 1);
2508 static bool8 layout_init[] = {true};
2509 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2510 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param8, param9, layout}, {out2});
2511 // Phase 3, inputs and outputs
2512 model->identifyInputsAndOutputs(
2513 {in2},
2514 {out2});
2515 assert(model->isValid());
2516 }
2517
is_ignored_shape_dynamic_output_shape_nchw_float16_3(int i)2518 inline bool is_ignored_shape_dynamic_output_shape_nchw_float16_3(int i) {
2519 static std::set<int> ignore = {};
2520 return ignore.find(i) != ignore.end();
2521 }
2522
CreateModel_scale_nhwc_3(Model * model)2523 void CreateModel_scale_nhwc_3(Model *model) {
2524 OperandType type0(Type::BOOL, {});
2525 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
2526 OperandType type4(Type::FLOAT32, {});
2527 OperandType type5(Type::TENSOR_FLOAT32, {1, 3, 3, 1});
2528 // Phase 1, operands
2529 auto in2 = model->addOperand(&type5);
2530 auto param10 = model->addOperand(&type4);
2531 auto param11 = model->addOperand(&type4);
2532 auto layout = model->addOperand(&type0);
2533 auto out2 = model->addOperand(&type1);
2534 // Phase 2, operations
2535 static float param10_init[] = {0.8f};
2536 model->setOperandValue(param10, param10_init, sizeof(float) * 1);
2537 static float param11_init[] = {0.8f};
2538 model->setOperandValue(param11, param11_init, sizeof(float) * 1);
2539 static bool8 layout_init[] = {false};
2540 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2541 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param10, param11, layout}, {out2});
2542 // Phase 3, inputs and outputs
2543 model->identifyInputsAndOutputs(
2544 {in2},
2545 {out2});
2546 assert(model->isValid());
2547 }
2548
is_ignored_scale_nhwc_3(int i)2549 inline bool is_ignored_scale_nhwc_3(int i) {
2550 static std::set<int> ignore = {};
2551 return ignore.find(i) != ignore.end();
2552 }
2553
CreateModel_scale_nhwc_relaxed_3(Model * model)2554 void CreateModel_scale_nhwc_relaxed_3(Model *model) {
2555 OperandType type0(Type::BOOL, {});
2556 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
2557 OperandType type4(Type::FLOAT32, {});
2558 OperandType type5(Type::TENSOR_FLOAT32, {1, 3, 3, 1});
2559 // Phase 1, operands
2560 auto in2 = model->addOperand(&type5);
2561 auto param10 = model->addOperand(&type4);
2562 auto param11 = model->addOperand(&type4);
2563 auto layout = model->addOperand(&type0);
2564 auto out2 = model->addOperand(&type1);
2565 // Phase 2, operations
2566 static float param10_init[] = {0.8f};
2567 model->setOperandValue(param10, param10_init, sizeof(float) * 1);
2568 static float param11_init[] = {0.8f};
2569 model->setOperandValue(param11, param11_init, sizeof(float) * 1);
2570 static bool8 layout_init[] = {false};
2571 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2572 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param10, param11, layout}, {out2});
2573 // Phase 3, inputs and outputs
2574 model->identifyInputsAndOutputs(
2575 {in2},
2576 {out2});
2577 // Phase 4: set relaxed execution
2578 model->relaxComputationFloat32toFloat16(true);
2579 assert(model->isValid());
2580 }
2581
is_ignored_scale_nhwc_relaxed_3(int i)2582 inline bool is_ignored_scale_nhwc_relaxed_3(int i) {
2583 static std::set<int> ignore = {};
2584 return ignore.find(i) != ignore.end();
2585 }
2586
CreateModel_scale_nhwc_quant8_3(Model * model)2587 void CreateModel_scale_nhwc_quant8_3(Model *model) {
2588 OperandType type0(Type::BOOL, {});
2589 OperandType type38(Type::TENSOR_QUANT8_ASYMM, {1, 3, 3, 1}, 0.25f, 100);
2590 OperandType type39(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.25f, 100);
2591 OperandType type4(Type::FLOAT32, {});
2592 // Phase 1, operands
2593 auto in2 = model->addOperand(&type38);
2594 auto param10 = model->addOperand(&type4);
2595 auto param11 = model->addOperand(&type4);
2596 auto layout = model->addOperand(&type0);
2597 auto out2 = model->addOperand(&type39);
2598 // Phase 2, operations
2599 static float param10_init[] = {0.8f};
2600 model->setOperandValue(param10, param10_init, sizeof(float) * 1);
2601 static float param11_init[] = {0.8f};
2602 model->setOperandValue(param11, param11_init, sizeof(float) * 1);
2603 static bool8 layout_init[] = {false};
2604 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2605 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param10, param11, layout}, {out2});
2606 // Phase 3, inputs and outputs
2607 model->identifyInputsAndOutputs(
2608 {in2},
2609 {out2});
2610 assert(model->isValid());
2611 }
2612
is_ignored_scale_nhwc_quant8_3(int i)2613 inline bool is_ignored_scale_nhwc_quant8_3(int i) {
2614 static std::set<int> ignore = {};
2615 return ignore.find(i) != ignore.end();
2616 }
2617
CreateModel_scale_nhwc_float16_3(Model * model)2618 void CreateModel_scale_nhwc_float16_3(Model *model) {
2619 OperandType type0(Type::BOOL, {});
2620 OperandType type21(Type::TENSOR_FLOAT16, {1, 2, 2, 1});
2621 OperandType type29(Type::FLOAT16, {});
2622 OperandType type32(Type::TENSOR_FLOAT16, {1, 3, 3, 1});
2623 // Phase 1, operands
2624 auto in2 = model->addOperand(&type32);
2625 auto param10 = model->addOperand(&type29);
2626 auto param11 = model->addOperand(&type29);
2627 auto layout = model->addOperand(&type0);
2628 auto out2 = model->addOperand(&type21);
2629 // Phase 2, operations
2630 static _Float16 param10_init[] = {0.800000011920929f};
2631 model->setOperandValue(param10, param10_init, sizeof(_Float16) * 1);
2632 static _Float16 param11_init[] = {0.800000011920929f};
2633 model->setOperandValue(param11, param11_init, sizeof(_Float16) * 1);
2634 static bool8 layout_init[] = {false};
2635 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2636 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param10, param11, layout}, {out2});
2637 // Phase 3, inputs and outputs
2638 model->identifyInputsAndOutputs(
2639 {in2},
2640 {out2});
2641 assert(model->isValid());
2642 }
2643
is_ignored_scale_nhwc_float16_3(int i)2644 inline bool is_ignored_scale_nhwc_float16_3(int i) {
2645 static std::set<int> ignore = {};
2646 return ignore.find(i) != ignore.end();
2647 }
2648
CreateModel_scale_nchw_3(Model * model)2649 void CreateModel_scale_nchw_3(Model *model) {
2650 OperandType type0(Type::BOOL, {});
2651 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
2652 OperandType type33(Type::TENSOR_FLOAT32, {1, 1, 3, 3});
2653 OperandType type4(Type::FLOAT32, {});
2654 // Phase 1, operands
2655 auto in2 = model->addOperand(&type33);
2656 auto param10 = model->addOperand(&type4);
2657 auto param11 = model->addOperand(&type4);
2658 auto layout = model->addOperand(&type0);
2659 auto out2 = model->addOperand(&type23);
2660 // Phase 2, operations
2661 static float param10_init[] = {0.8f};
2662 model->setOperandValue(param10, param10_init, sizeof(float) * 1);
2663 static float param11_init[] = {0.8f};
2664 model->setOperandValue(param11, param11_init, sizeof(float) * 1);
2665 static bool8 layout_init[] = {true};
2666 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2667 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param10, param11, layout}, {out2});
2668 // Phase 3, inputs and outputs
2669 model->identifyInputsAndOutputs(
2670 {in2},
2671 {out2});
2672 assert(model->isValid());
2673 }
2674
is_ignored_scale_nchw_3(int i)2675 inline bool is_ignored_scale_nchw_3(int i) {
2676 static std::set<int> ignore = {};
2677 return ignore.find(i) != ignore.end();
2678 }
2679
CreateModel_scale_nchw_relaxed_3(Model * model)2680 void CreateModel_scale_nchw_relaxed_3(Model *model) {
2681 OperandType type0(Type::BOOL, {});
2682 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
2683 OperandType type33(Type::TENSOR_FLOAT32, {1, 1, 3, 3});
2684 OperandType type4(Type::FLOAT32, {});
2685 // Phase 1, operands
2686 auto in2 = model->addOperand(&type33);
2687 auto param10 = model->addOperand(&type4);
2688 auto param11 = model->addOperand(&type4);
2689 auto layout = model->addOperand(&type0);
2690 auto out2 = model->addOperand(&type23);
2691 // Phase 2, operations
2692 static float param10_init[] = {0.8f};
2693 model->setOperandValue(param10, param10_init, sizeof(float) * 1);
2694 static float param11_init[] = {0.8f};
2695 model->setOperandValue(param11, param11_init, sizeof(float) * 1);
2696 static bool8 layout_init[] = {true};
2697 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2698 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param10, param11, layout}, {out2});
2699 // Phase 3, inputs and outputs
2700 model->identifyInputsAndOutputs(
2701 {in2},
2702 {out2});
2703 // Phase 4: set relaxed execution
2704 model->relaxComputationFloat32toFloat16(true);
2705 assert(model->isValid());
2706 }
2707
is_ignored_scale_nchw_relaxed_3(int i)2708 inline bool is_ignored_scale_nchw_relaxed_3(int i) {
2709 static std::set<int> ignore = {};
2710 return ignore.find(i) != ignore.end();
2711 }
2712
CreateModel_scale_nchw_quant8_3(Model * model)2713 void CreateModel_scale_nchw_quant8_3(Model *model) {
2714 OperandType type0(Type::BOOL, {});
2715 OperandType type4(Type::FLOAT32, {});
2716 OperandType type40(Type::TENSOR_QUANT8_ASYMM, {1, 1, 3, 3}, 0.25f, 100);
2717 OperandType type41(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 2}, 0.25f, 100);
2718 // Phase 1, operands
2719 auto in2 = model->addOperand(&type40);
2720 auto param10 = model->addOperand(&type4);
2721 auto param11 = model->addOperand(&type4);
2722 auto layout = model->addOperand(&type0);
2723 auto out2 = model->addOperand(&type41);
2724 // Phase 2, operations
2725 static float param10_init[] = {0.8f};
2726 model->setOperandValue(param10, param10_init, sizeof(float) * 1);
2727 static float param11_init[] = {0.8f};
2728 model->setOperandValue(param11, param11_init, sizeof(float) * 1);
2729 static bool8 layout_init[] = {true};
2730 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2731 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param10, param11, layout}, {out2});
2732 // Phase 3, inputs and outputs
2733 model->identifyInputsAndOutputs(
2734 {in2},
2735 {out2});
2736 assert(model->isValid());
2737 }
2738
is_ignored_scale_nchw_quant8_3(int i)2739 inline bool is_ignored_scale_nchw_quant8_3(int i) {
2740 static std::set<int> ignore = {};
2741 return ignore.find(i) != ignore.end();
2742 }
2743
CreateModel_scale_nchw_float16_3(Model * model)2744 void CreateModel_scale_nchw_float16_3(Model *model) {
2745 OperandType type0(Type::BOOL, {});
2746 OperandType type25(Type::TENSOR_FLOAT16, {1, 1, 2, 2});
2747 OperandType type29(Type::FLOAT16, {});
2748 OperandType type36(Type::TENSOR_FLOAT16, {1, 1, 3, 3});
2749 // Phase 1, operands
2750 auto in2 = model->addOperand(&type36);
2751 auto param10 = model->addOperand(&type29);
2752 auto param11 = model->addOperand(&type29);
2753 auto layout = model->addOperand(&type0);
2754 auto out2 = model->addOperand(&type25);
2755 // Phase 2, operations
2756 static _Float16 param10_init[] = {0.800000011920929f};
2757 model->setOperandValue(param10, param10_init, sizeof(_Float16) * 1);
2758 static _Float16 param11_init[] = {0.800000011920929f};
2759 model->setOperandValue(param11, param11_init, sizeof(_Float16) * 1);
2760 static bool8 layout_init[] = {true};
2761 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2762 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param10, param11, layout}, {out2});
2763 // Phase 3, inputs and outputs
2764 model->identifyInputsAndOutputs(
2765 {in2},
2766 {out2});
2767 assert(model->isValid());
2768 }
2769
is_ignored_scale_nchw_float16_3(int i)2770 inline bool is_ignored_scale_nchw_float16_3(int i) {
2771 static std::set<int> ignore = {};
2772 return ignore.find(i) != ignore.end();
2773 }
2774
CreateModel_scale_dynamic_output_shape_nhwc_3(Model * model)2775 void CreateModel_scale_dynamic_output_shape_nhwc_3(Model *model) {
2776 OperandType type0(Type::BOOL, {});
2777 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
2778 OperandType type4(Type::FLOAT32, {});
2779 OperandType type5(Type::TENSOR_FLOAT32, {1, 3, 3, 1});
2780 // Phase 1, operands
2781 auto in2 = model->addOperand(&type5);
2782 auto param10 = model->addOperand(&type4);
2783 auto param11 = model->addOperand(&type4);
2784 auto layout = model->addOperand(&type0);
2785 auto out2 = model->addOperand(&type26);
2786 // Phase 2, operations
2787 static float param10_init[] = {0.8f};
2788 model->setOperandValue(param10, param10_init, sizeof(float) * 1);
2789 static float param11_init[] = {0.8f};
2790 model->setOperandValue(param11, param11_init, sizeof(float) * 1);
2791 static bool8 layout_init[] = {false};
2792 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2793 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param10, param11, layout}, {out2});
2794 // Phase 3, inputs and outputs
2795 model->identifyInputsAndOutputs(
2796 {in2},
2797 {out2});
2798 assert(model->isValid());
2799 }
2800
is_ignored_scale_dynamic_output_shape_nhwc_3(int i)2801 inline bool is_ignored_scale_dynamic_output_shape_nhwc_3(int i) {
2802 static std::set<int> ignore = {};
2803 return ignore.find(i) != ignore.end();
2804 }
2805
CreateModel_scale_dynamic_output_shape_nhwc_relaxed_3(Model * model)2806 void CreateModel_scale_dynamic_output_shape_nhwc_relaxed_3(Model *model) {
2807 OperandType type0(Type::BOOL, {});
2808 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
2809 OperandType type4(Type::FLOAT32, {});
2810 OperandType type5(Type::TENSOR_FLOAT32, {1, 3, 3, 1});
2811 // Phase 1, operands
2812 auto in2 = model->addOperand(&type5);
2813 auto param10 = model->addOperand(&type4);
2814 auto param11 = model->addOperand(&type4);
2815 auto layout = model->addOperand(&type0);
2816 auto out2 = model->addOperand(&type26);
2817 // Phase 2, operations
2818 static float param10_init[] = {0.8f};
2819 model->setOperandValue(param10, param10_init, sizeof(float) * 1);
2820 static float param11_init[] = {0.8f};
2821 model->setOperandValue(param11, param11_init, sizeof(float) * 1);
2822 static bool8 layout_init[] = {false};
2823 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2824 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param10, param11, layout}, {out2});
2825 // Phase 3, inputs and outputs
2826 model->identifyInputsAndOutputs(
2827 {in2},
2828 {out2});
2829 // Phase 4: set relaxed execution
2830 model->relaxComputationFloat32toFloat16(true);
2831 assert(model->isValid());
2832 }
2833
is_ignored_scale_dynamic_output_shape_nhwc_relaxed_3(int i)2834 inline bool is_ignored_scale_dynamic_output_shape_nhwc_relaxed_3(int i) {
2835 static std::set<int> ignore = {};
2836 return ignore.find(i) != ignore.end();
2837 }
2838
CreateModel_scale_dynamic_output_shape_nhwc_quant8_3(Model * model)2839 void CreateModel_scale_dynamic_output_shape_nhwc_quant8_3(Model *model) {
2840 OperandType type0(Type::BOOL, {});
2841 OperandType type38(Type::TENSOR_QUANT8_ASYMM, {1, 3, 3, 1}, 0.25f, 100);
2842 OperandType type4(Type::FLOAT32, {});
2843 OperandType type42(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 100);
2844 // Phase 1, operands
2845 auto in2 = model->addOperand(&type38);
2846 auto param10 = model->addOperand(&type4);
2847 auto param11 = model->addOperand(&type4);
2848 auto layout = model->addOperand(&type0);
2849 auto out2 = model->addOperand(&type42);
2850 // Phase 2, operations
2851 static float param10_init[] = {0.8f};
2852 model->setOperandValue(param10, param10_init, sizeof(float) * 1);
2853 static float param11_init[] = {0.8f};
2854 model->setOperandValue(param11, param11_init, sizeof(float) * 1);
2855 static bool8 layout_init[] = {false};
2856 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2857 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param10, param11, layout}, {out2});
2858 // Phase 3, inputs and outputs
2859 model->identifyInputsAndOutputs(
2860 {in2},
2861 {out2});
2862 assert(model->isValid());
2863 }
2864
is_ignored_scale_dynamic_output_shape_nhwc_quant8_3(int i)2865 inline bool is_ignored_scale_dynamic_output_shape_nhwc_quant8_3(int i) {
2866 static std::set<int> ignore = {};
2867 return ignore.find(i) != ignore.end();
2868 }
2869
CreateModel_scale_dynamic_output_shape_nhwc_float16_3(Model * model)2870 void CreateModel_scale_dynamic_output_shape_nhwc_float16_3(Model *model) {
2871 OperandType type0(Type::BOOL, {});
2872 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
2873 OperandType type29(Type::FLOAT16, {});
2874 OperandType type32(Type::TENSOR_FLOAT16, {1, 3, 3, 1});
2875 // Phase 1, operands
2876 auto in2 = model->addOperand(&type32);
2877 auto param10 = model->addOperand(&type29);
2878 auto param11 = model->addOperand(&type29);
2879 auto layout = model->addOperand(&type0);
2880 auto out2 = model->addOperand(&type28);
2881 // Phase 2, operations
2882 static _Float16 param10_init[] = {0.800000011920929f};
2883 model->setOperandValue(param10, param10_init, sizeof(_Float16) * 1);
2884 static _Float16 param11_init[] = {0.800000011920929f};
2885 model->setOperandValue(param11, param11_init, sizeof(_Float16) * 1);
2886 static bool8 layout_init[] = {false};
2887 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2888 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param10, param11, layout}, {out2});
2889 // Phase 3, inputs and outputs
2890 model->identifyInputsAndOutputs(
2891 {in2},
2892 {out2});
2893 assert(model->isValid());
2894 }
2895
is_ignored_scale_dynamic_output_shape_nhwc_float16_3(int i)2896 inline bool is_ignored_scale_dynamic_output_shape_nhwc_float16_3(int i) {
2897 static std::set<int> ignore = {};
2898 return ignore.find(i) != ignore.end();
2899 }
2900
CreateModel_scale_dynamic_output_shape_nchw_3(Model * model)2901 void CreateModel_scale_dynamic_output_shape_nchw_3(Model *model) {
2902 OperandType type0(Type::BOOL, {});
2903 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
2904 OperandType type33(Type::TENSOR_FLOAT32, {1, 1, 3, 3});
2905 OperandType type4(Type::FLOAT32, {});
2906 // Phase 1, operands
2907 auto in2 = model->addOperand(&type33);
2908 auto param10 = model->addOperand(&type4);
2909 auto param11 = model->addOperand(&type4);
2910 auto layout = model->addOperand(&type0);
2911 auto out2 = model->addOperand(&type26);
2912 // Phase 2, operations
2913 static float param10_init[] = {0.8f};
2914 model->setOperandValue(param10, param10_init, sizeof(float) * 1);
2915 static float param11_init[] = {0.8f};
2916 model->setOperandValue(param11, param11_init, sizeof(float) * 1);
2917 static bool8 layout_init[] = {true};
2918 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2919 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param10, param11, layout}, {out2});
2920 // Phase 3, inputs and outputs
2921 model->identifyInputsAndOutputs(
2922 {in2},
2923 {out2});
2924 assert(model->isValid());
2925 }
2926
is_ignored_scale_dynamic_output_shape_nchw_3(int i)2927 inline bool is_ignored_scale_dynamic_output_shape_nchw_3(int i) {
2928 static std::set<int> ignore = {};
2929 return ignore.find(i) != ignore.end();
2930 }
2931
CreateModel_scale_dynamic_output_shape_nchw_relaxed_3(Model * model)2932 void CreateModel_scale_dynamic_output_shape_nchw_relaxed_3(Model *model) {
2933 OperandType type0(Type::BOOL, {});
2934 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
2935 OperandType type33(Type::TENSOR_FLOAT32, {1, 1, 3, 3});
2936 OperandType type4(Type::FLOAT32, {});
2937 // Phase 1, operands
2938 auto in2 = model->addOperand(&type33);
2939 auto param10 = model->addOperand(&type4);
2940 auto param11 = model->addOperand(&type4);
2941 auto layout = model->addOperand(&type0);
2942 auto out2 = model->addOperand(&type26);
2943 // Phase 2, operations
2944 static float param10_init[] = {0.8f};
2945 model->setOperandValue(param10, param10_init, sizeof(float) * 1);
2946 static float param11_init[] = {0.8f};
2947 model->setOperandValue(param11, param11_init, sizeof(float) * 1);
2948 static bool8 layout_init[] = {true};
2949 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2950 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param10, param11, layout}, {out2});
2951 // Phase 3, inputs and outputs
2952 model->identifyInputsAndOutputs(
2953 {in2},
2954 {out2});
2955 // Phase 4: set relaxed execution
2956 model->relaxComputationFloat32toFloat16(true);
2957 assert(model->isValid());
2958 }
2959
is_ignored_scale_dynamic_output_shape_nchw_relaxed_3(int i)2960 inline bool is_ignored_scale_dynamic_output_shape_nchw_relaxed_3(int i) {
2961 static std::set<int> ignore = {};
2962 return ignore.find(i) != ignore.end();
2963 }
2964
CreateModel_scale_dynamic_output_shape_nchw_quant8_3(Model * model)2965 void CreateModel_scale_dynamic_output_shape_nchw_quant8_3(Model *model) {
2966 OperandType type0(Type::BOOL, {});
2967 OperandType type4(Type::FLOAT32, {});
2968 OperandType type40(Type::TENSOR_QUANT8_ASYMM, {1, 1, 3, 3}, 0.25f, 100);
2969 OperandType type42(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 100);
2970 // Phase 1, operands
2971 auto in2 = model->addOperand(&type40);
2972 auto param10 = model->addOperand(&type4);
2973 auto param11 = model->addOperand(&type4);
2974 auto layout = model->addOperand(&type0);
2975 auto out2 = model->addOperand(&type42);
2976 // Phase 2, operations
2977 static float param10_init[] = {0.8f};
2978 model->setOperandValue(param10, param10_init, sizeof(float) * 1);
2979 static float param11_init[] = {0.8f};
2980 model->setOperandValue(param11, param11_init, sizeof(float) * 1);
2981 static bool8 layout_init[] = {true};
2982 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
2983 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param10, param11, layout}, {out2});
2984 // Phase 3, inputs and outputs
2985 model->identifyInputsAndOutputs(
2986 {in2},
2987 {out2});
2988 assert(model->isValid());
2989 }
2990
is_ignored_scale_dynamic_output_shape_nchw_quant8_3(int i)2991 inline bool is_ignored_scale_dynamic_output_shape_nchw_quant8_3(int i) {
2992 static std::set<int> ignore = {};
2993 return ignore.find(i) != ignore.end();
2994 }
2995
CreateModel_scale_dynamic_output_shape_nchw_float16_3(Model * model)2996 void CreateModel_scale_dynamic_output_shape_nchw_float16_3(Model *model) {
2997 OperandType type0(Type::BOOL, {});
2998 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
2999 OperandType type29(Type::FLOAT16, {});
3000 OperandType type36(Type::TENSOR_FLOAT16, {1, 1, 3, 3});
3001 // Phase 1, operands
3002 auto in2 = model->addOperand(&type36);
3003 auto param10 = model->addOperand(&type29);
3004 auto param11 = model->addOperand(&type29);
3005 auto layout = model->addOperand(&type0);
3006 auto out2 = model->addOperand(&type28);
3007 // Phase 2, operations
3008 static _Float16 param10_init[] = {0.800000011920929f};
3009 model->setOperandValue(param10, param10_init, sizeof(_Float16) * 1);
3010 static _Float16 param11_init[] = {0.800000011920929f};
3011 model->setOperandValue(param11, param11_init, sizeof(_Float16) * 1);
3012 static bool8 layout_init[] = {true};
3013 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3014 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in2, param10, param11, layout}, {out2});
3015 // Phase 3, inputs and outputs
3016 model->identifyInputsAndOutputs(
3017 {in2},
3018 {out2});
3019 assert(model->isValid());
3020 }
3021
is_ignored_scale_dynamic_output_shape_nchw_float16_3(int i)3022 inline bool is_ignored_scale_dynamic_output_shape_nchw_float16_3(int i) {
3023 static std::set<int> ignore = {};
3024 return ignore.find(i) != ignore.end();
3025 }
3026
CreateModel_shape_nhwc_4(Model * model)3027 void CreateModel_shape_nhwc_4(Model *model) {
3028 OperandType type0(Type::BOOL, {});
3029 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
3030 OperandType type3(Type::INT32, {});
3031 OperandType type6(Type::TENSOR_FLOAT32, {1, 2, 5, 1});
3032 // Phase 1, operands
3033 auto in3 = model->addOperand(&type1);
3034 auto param12 = model->addOperand(&type3);
3035 auto param13 = model->addOperand(&type3);
3036 auto layout = model->addOperand(&type0);
3037 auto out3 = model->addOperand(&type6);
3038 // Phase 2, operations
3039 static int32_t param12_init[] = {5};
3040 model->setOperandValue(param12, param12_init, sizeof(int32_t) * 1);
3041 static int32_t param13_init[] = {2};
3042 model->setOperandValue(param13, param13_init, sizeof(int32_t) * 1);
3043 static bool8 layout_init[] = {false};
3044 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3045 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param12, param13, layout}, {out3});
3046 // Phase 3, inputs and outputs
3047 model->identifyInputsAndOutputs(
3048 {in3},
3049 {out3});
3050 assert(model->isValid());
3051 }
3052
is_ignored_shape_nhwc_4(int i)3053 inline bool is_ignored_shape_nhwc_4(int i) {
3054 static std::set<int> ignore = {};
3055 return ignore.find(i) != ignore.end();
3056 }
3057
CreateModel_shape_nhwc_relaxed_4(Model * model)3058 void CreateModel_shape_nhwc_relaxed_4(Model *model) {
3059 OperandType type0(Type::BOOL, {});
3060 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
3061 OperandType type3(Type::INT32, {});
3062 OperandType type6(Type::TENSOR_FLOAT32, {1, 2, 5, 1});
3063 // Phase 1, operands
3064 auto in3 = model->addOperand(&type1);
3065 auto param12 = model->addOperand(&type3);
3066 auto param13 = model->addOperand(&type3);
3067 auto layout = model->addOperand(&type0);
3068 auto out3 = model->addOperand(&type6);
3069 // Phase 2, operations
3070 static int32_t param12_init[] = {5};
3071 model->setOperandValue(param12, param12_init, sizeof(int32_t) * 1);
3072 static int32_t param13_init[] = {2};
3073 model->setOperandValue(param13, param13_init, sizeof(int32_t) * 1);
3074 static bool8 layout_init[] = {false};
3075 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3076 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param12, param13, layout}, {out3});
3077 // Phase 3, inputs and outputs
3078 model->identifyInputsAndOutputs(
3079 {in3},
3080 {out3});
3081 // Phase 4: set relaxed execution
3082 model->relaxComputationFloat32toFloat16(true);
3083 assert(model->isValid());
3084 }
3085
is_ignored_shape_nhwc_relaxed_4(int i)3086 inline bool is_ignored_shape_nhwc_relaxed_4(int i) {
3087 static std::set<int> ignore = {};
3088 return ignore.find(i) != ignore.end();
3089 }
3090
CreateModel_shape_nhwc_quant8_4(Model * model)3091 void CreateModel_shape_nhwc_quant8_4(Model *model) {
3092 OperandType type0(Type::BOOL, {});
3093 OperandType type3(Type::INT32, {});
3094 OperandType type39(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.25f, 100);
3095 OperandType type43(Type::TENSOR_QUANT8_ASYMM, {1, 2, 5, 1}, 0.25f, 100);
3096 // Phase 1, operands
3097 auto in3 = model->addOperand(&type39);
3098 auto param12 = model->addOperand(&type3);
3099 auto param13 = model->addOperand(&type3);
3100 auto layout = model->addOperand(&type0);
3101 auto out3 = model->addOperand(&type43);
3102 // Phase 2, operations
3103 static int32_t param12_init[] = {5};
3104 model->setOperandValue(param12, param12_init, sizeof(int32_t) * 1);
3105 static int32_t param13_init[] = {2};
3106 model->setOperandValue(param13, param13_init, sizeof(int32_t) * 1);
3107 static bool8 layout_init[] = {false};
3108 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3109 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param12, param13, layout}, {out3});
3110 // Phase 3, inputs and outputs
3111 model->identifyInputsAndOutputs(
3112 {in3},
3113 {out3});
3114 assert(model->isValid());
3115 }
3116
is_ignored_shape_nhwc_quant8_4(int i)3117 inline bool is_ignored_shape_nhwc_quant8_4(int i) {
3118 static std::set<int> ignore = {};
3119 return ignore.find(i) != ignore.end();
3120 }
3121
CreateModel_shape_nhwc_float16_4(Model * model)3122 void CreateModel_shape_nhwc_float16_4(Model *model) {
3123 OperandType type0(Type::BOOL, {});
3124 OperandType type21(Type::TENSOR_FLOAT16, {1, 2, 2, 1});
3125 OperandType type3(Type::INT32, {});
3126 OperandType type44(Type::TENSOR_FLOAT16, {1, 2, 5, 1});
3127 // Phase 1, operands
3128 auto in3 = model->addOperand(&type21);
3129 auto param12 = model->addOperand(&type3);
3130 auto param13 = model->addOperand(&type3);
3131 auto layout = model->addOperand(&type0);
3132 auto out3 = model->addOperand(&type44);
3133 // Phase 2, operations
3134 static int32_t param12_init[] = {5};
3135 model->setOperandValue(param12, param12_init, sizeof(int32_t) * 1);
3136 static int32_t param13_init[] = {2};
3137 model->setOperandValue(param13, param13_init, sizeof(int32_t) * 1);
3138 static bool8 layout_init[] = {false};
3139 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3140 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param12, param13, layout}, {out3});
3141 // Phase 3, inputs and outputs
3142 model->identifyInputsAndOutputs(
3143 {in3},
3144 {out3});
3145 assert(model->isValid());
3146 }
3147
is_ignored_shape_nhwc_float16_4(int i)3148 inline bool is_ignored_shape_nhwc_float16_4(int i) {
3149 static std::set<int> ignore = {};
3150 return ignore.find(i) != ignore.end();
3151 }
3152
CreateModel_shape_nchw_4(Model * model)3153 void CreateModel_shape_nchw_4(Model *model) {
3154 OperandType type0(Type::BOOL, {});
3155 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
3156 OperandType type3(Type::INT32, {});
3157 OperandType type45(Type::TENSOR_FLOAT32, {1, 1, 2, 5});
3158 // Phase 1, operands
3159 auto in3 = model->addOperand(&type23);
3160 auto param12 = model->addOperand(&type3);
3161 auto param13 = model->addOperand(&type3);
3162 auto layout = model->addOperand(&type0);
3163 auto out3 = model->addOperand(&type45);
3164 // Phase 2, operations
3165 static int32_t param12_init[] = {5};
3166 model->setOperandValue(param12, param12_init, sizeof(int32_t) * 1);
3167 static int32_t param13_init[] = {2};
3168 model->setOperandValue(param13, param13_init, sizeof(int32_t) * 1);
3169 static bool8 layout_init[] = {true};
3170 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3171 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param12, param13, layout}, {out3});
3172 // Phase 3, inputs and outputs
3173 model->identifyInputsAndOutputs(
3174 {in3},
3175 {out3});
3176 assert(model->isValid());
3177 }
3178
is_ignored_shape_nchw_4(int i)3179 inline bool is_ignored_shape_nchw_4(int i) {
3180 static std::set<int> ignore = {};
3181 return ignore.find(i) != ignore.end();
3182 }
3183
CreateModel_shape_nchw_relaxed_4(Model * model)3184 void CreateModel_shape_nchw_relaxed_4(Model *model) {
3185 OperandType type0(Type::BOOL, {});
3186 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
3187 OperandType type3(Type::INT32, {});
3188 OperandType type45(Type::TENSOR_FLOAT32, {1, 1, 2, 5});
3189 // Phase 1, operands
3190 auto in3 = model->addOperand(&type23);
3191 auto param12 = model->addOperand(&type3);
3192 auto param13 = model->addOperand(&type3);
3193 auto layout = model->addOperand(&type0);
3194 auto out3 = model->addOperand(&type45);
3195 // Phase 2, operations
3196 static int32_t param12_init[] = {5};
3197 model->setOperandValue(param12, param12_init, sizeof(int32_t) * 1);
3198 static int32_t param13_init[] = {2};
3199 model->setOperandValue(param13, param13_init, sizeof(int32_t) * 1);
3200 static bool8 layout_init[] = {true};
3201 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3202 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param12, param13, layout}, {out3});
3203 // Phase 3, inputs and outputs
3204 model->identifyInputsAndOutputs(
3205 {in3},
3206 {out3});
3207 // Phase 4: set relaxed execution
3208 model->relaxComputationFloat32toFloat16(true);
3209 assert(model->isValid());
3210 }
3211
is_ignored_shape_nchw_relaxed_4(int i)3212 inline bool is_ignored_shape_nchw_relaxed_4(int i) {
3213 static std::set<int> ignore = {};
3214 return ignore.find(i) != ignore.end();
3215 }
3216
CreateModel_shape_nchw_quant8_4(Model * model)3217 void CreateModel_shape_nchw_quant8_4(Model *model) {
3218 OperandType type0(Type::BOOL, {});
3219 OperandType type3(Type::INT32, {});
3220 OperandType type41(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 2}, 0.25f, 100);
3221 OperandType type46(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 5}, 0.25f, 100);
3222 // Phase 1, operands
3223 auto in3 = model->addOperand(&type41);
3224 auto param12 = model->addOperand(&type3);
3225 auto param13 = model->addOperand(&type3);
3226 auto layout = model->addOperand(&type0);
3227 auto out3 = model->addOperand(&type46);
3228 // Phase 2, operations
3229 static int32_t param12_init[] = {5};
3230 model->setOperandValue(param12, param12_init, sizeof(int32_t) * 1);
3231 static int32_t param13_init[] = {2};
3232 model->setOperandValue(param13, param13_init, sizeof(int32_t) * 1);
3233 static bool8 layout_init[] = {true};
3234 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3235 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param12, param13, layout}, {out3});
3236 // Phase 3, inputs and outputs
3237 model->identifyInputsAndOutputs(
3238 {in3},
3239 {out3});
3240 assert(model->isValid());
3241 }
3242
is_ignored_shape_nchw_quant8_4(int i)3243 inline bool is_ignored_shape_nchw_quant8_4(int i) {
3244 static std::set<int> ignore = {};
3245 return ignore.find(i) != ignore.end();
3246 }
3247
CreateModel_shape_nchw_float16_4(Model * model)3248 void CreateModel_shape_nchw_float16_4(Model *model) {
3249 OperandType type0(Type::BOOL, {});
3250 OperandType type25(Type::TENSOR_FLOAT16, {1, 1, 2, 2});
3251 OperandType type3(Type::INT32, {});
3252 OperandType type47(Type::TENSOR_FLOAT16, {1, 1, 2, 5});
3253 // Phase 1, operands
3254 auto in3 = model->addOperand(&type25);
3255 auto param12 = model->addOperand(&type3);
3256 auto param13 = model->addOperand(&type3);
3257 auto layout = model->addOperand(&type0);
3258 auto out3 = model->addOperand(&type47);
3259 // Phase 2, operations
3260 static int32_t param12_init[] = {5};
3261 model->setOperandValue(param12, param12_init, sizeof(int32_t) * 1);
3262 static int32_t param13_init[] = {2};
3263 model->setOperandValue(param13, param13_init, sizeof(int32_t) * 1);
3264 static bool8 layout_init[] = {true};
3265 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3266 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param12, param13, layout}, {out3});
3267 // Phase 3, inputs and outputs
3268 model->identifyInputsAndOutputs(
3269 {in3},
3270 {out3});
3271 assert(model->isValid());
3272 }
3273
is_ignored_shape_nchw_float16_4(int i)3274 inline bool is_ignored_shape_nchw_float16_4(int i) {
3275 static std::set<int> ignore = {};
3276 return ignore.find(i) != ignore.end();
3277 }
3278
CreateModel_shape_dynamic_output_shape_nhwc_4(Model * model)3279 void CreateModel_shape_dynamic_output_shape_nhwc_4(Model *model) {
3280 OperandType type0(Type::BOOL, {});
3281 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
3282 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
3283 OperandType type3(Type::INT32, {});
3284 // Phase 1, operands
3285 auto in3 = model->addOperand(&type1);
3286 auto param12 = model->addOperand(&type3);
3287 auto param13 = model->addOperand(&type3);
3288 auto layout = model->addOperand(&type0);
3289 auto out3 = model->addOperand(&type26);
3290 // Phase 2, operations
3291 static int32_t param12_init[] = {5};
3292 model->setOperandValue(param12, param12_init, sizeof(int32_t) * 1);
3293 static int32_t param13_init[] = {2};
3294 model->setOperandValue(param13, param13_init, sizeof(int32_t) * 1);
3295 static bool8 layout_init[] = {false};
3296 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3297 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param12, param13, layout}, {out3});
3298 // Phase 3, inputs and outputs
3299 model->identifyInputsAndOutputs(
3300 {in3},
3301 {out3});
3302 assert(model->isValid());
3303 }
3304
is_ignored_shape_dynamic_output_shape_nhwc_4(int i)3305 inline bool is_ignored_shape_dynamic_output_shape_nhwc_4(int i) {
3306 static std::set<int> ignore = {};
3307 return ignore.find(i) != ignore.end();
3308 }
3309
CreateModel_shape_dynamic_output_shape_nhwc_relaxed_4(Model * model)3310 void CreateModel_shape_dynamic_output_shape_nhwc_relaxed_4(Model *model) {
3311 OperandType type0(Type::BOOL, {});
3312 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
3313 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
3314 OperandType type3(Type::INT32, {});
3315 // Phase 1, operands
3316 auto in3 = model->addOperand(&type1);
3317 auto param12 = model->addOperand(&type3);
3318 auto param13 = model->addOperand(&type3);
3319 auto layout = model->addOperand(&type0);
3320 auto out3 = model->addOperand(&type26);
3321 // Phase 2, operations
3322 static int32_t param12_init[] = {5};
3323 model->setOperandValue(param12, param12_init, sizeof(int32_t) * 1);
3324 static int32_t param13_init[] = {2};
3325 model->setOperandValue(param13, param13_init, sizeof(int32_t) * 1);
3326 static bool8 layout_init[] = {false};
3327 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3328 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param12, param13, layout}, {out3});
3329 // Phase 3, inputs and outputs
3330 model->identifyInputsAndOutputs(
3331 {in3},
3332 {out3});
3333 // Phase 4: set relaxed execution
3334 model->relaxComputationFloat32toFloat16(true);
3335 assert(model->isValid());
3336 }
3337
is_ignored_shape_dynamic_output_shape_nhwc_relaxed_4(int i)3338 inline bool is_ignored_shape_dynamic_output_shape_nhwc_relaxed_4(int i) {
3339 static std::set<int> ignore = {};
3340 return ignore.find(i) != ignore.end();
3341 }
3342
CreateModel_shape_dynamic_output_shape_nhwc_quant8_4(Model * model)3343 void CreateModel_shape_dynamic_output_shape_nhwc_quant8_4(Model *model) {
3344 OperandType type0(Type::BOOL, {});
3345 OperandType type3(Type::INT32, {});
3346 OperandType type39(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.25f, 100);
3347 OperandType type42(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 100);
3348 // Phase 1, operands
3349 auto in3 = model->addOperand(&type39);
3350 auto param12 = model->addOperand(&type3);
3351 auto param13 = model->addOperand(&type3);
3352 auto layout = model->addOperand(&type0);
3353 auto out3 = model->addOperand(&type42);
3354 // Phase 2, operations
3355 static int32_t param12_init[] = {5};
3356 model->setOperandValue(param12, param12_init, sizeof(int32_t) * 1);
3357 static int32_t param13_init[] = {2};
3358 model->setOperandValue(param13, param13_init, sizeof(int32_t) * 1);
3359 static bool8 layout_init[] = {false};
3360 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3361 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param12, param13, layout}, {out3});
3362 // Phase 3, inputs and outputs
3363 model->identifyInputsAndOutputs(
3364 {in3},
3365 {out3});
3366 assert(model->isValid());
3367 }
3368
is_ignored_shape_dynamic_output_shape_nhwc_quant8_4(int i)3369 inline bool is_ignored_shape_dynamic_output_shape_nhwc_quant8_4(int i) {
3370 static std::set<int> ignore = {};
3371 return ignore.find(i) != ignore.end();
3372 }
3373
CreateModel_shape_dynamic_output_shape_nhwc_float16_4(Model * model)3374 void CreateModel_shape_dynamic_output_shape_nhwc_float16_4(Model *model) {
3375 OperandType type0(Type::BOOL, {});
3376 OperandType type21(Type::TENSOR_FLOAT16, {1, 2, 2, 1});
3377 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
3378 OperandType type3(Type::INT32, {});
3379 // Phase 1, operands
3380 auto in3 = model->addOperand(&type21);
3381 auto param12 = model->addOperand(&type3);
3382 auto param13 = model->addOperand(&type3);
3383 auto layout = model->addOperand(&type0);
3384 auto out3 = model->addOperand(&type28);
3385 // Phase 2, operations
3386 static int32_t param12_init[] = {5};
3387 model->setOperandValue(param12, param12_init, sizeof(int32_t) * 1);
3388 static int32_t param13_init[] = {2};
3389 model->setOperandValue(param13, param13_init, sizeof(int32_t) * 1);
3390 static bool8 layout_init[] = {false};
3391 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3392 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param12, param13, layout}, {out3});
3393 // Phase 3, inputs and outputs
3394 model->identifyInputsAndOutputs(
3395 {in3},
3396 {out3});
3397 assert(model->isValid());
3398 }
3399
is_ignored_shape_dynamic_output_shape_nhwc_float16_4(int i)3400 inline bool is_ignored_shape_dynamic_output_shape_nhwc_float16_4(int i) {
3401 static std::set<int> ignore = {};
3402 return ignore.find(i) != ignore.end();
3403 }
3404
CreateModel_shape_dynamic_output_shape_nchw_4(Model * model)3405 void CreateModel_shape_dynamic_output_shape_nchw_4(Model *model) {
3406 OperandType type0(Type::BOOL, {});
3407 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
3408 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
3409 OperandType type3(Type::INT32, {});
3410 // Phase 1, operands
3411 auto in3 = model->addOperand(&type23);
3412 auto param12 = model->addOperand(&type3);
3413 auto param13 = model->addOperand(&type3);
3414 auto layout = model->addOperand(&type0);
3415 auto out3 = model->addOperand(&type26);
3416 // Phase 2, operations
3417 static int32_t param12_init[] = {5};
3418 model->setOperandValue(param12, param12_init, sizeof(int32_t) * 1);
3419 static int32_t param13_init[] = {2};
3420 model->setOperandValue(param13, param13_init, sizeof(int32_t) * 1);
3421 static bool8 layout_init[] = {true};
3422 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3423 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param12, param13, layout}, {out3});
3424 // Phase 3, inputs and outputs
3425 model->identifyInputsAndOutputs(
3426 {in3},
3427 {out3});
3428 assert(model->isValid());
3429 }
3430
is_ignored_shape_dynamic_output_shape_nchw_4(int i)3431 inline bool is_ignored_shape_dynamic_output_shape_nchw_4(int i) {
3432 static std::set<int> ignore = {};
3433 return ignore.find(i) != ignore.end();
3434 }
3435
CreateModel_shape_dynamic_output_shape_nchw_relaxed_4(Model * model)3436 void CreateModel_shape_dynamic_output_shape_nchw_relaxed_4(Model *model) {
3437 OperandType type0(Type::BOOL, {});
3438 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
3439 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
3440 OperandType type3(Type::INT32, {});
3441 // Phase 1, operands
3442 auto in3 = model->addOperand(&type23);
3443 auto param12 = model->addOperand(&type3);
3444 auto param13 = model->addOperand(&type3);
3445 auto layout = model->addOperand(&type0);
3446 auto out3 = model->addOperand(&type26);
3447 // Phase 2, operations
3448 static int32_t param12_init[] = {5};
3449 model->setOperandValue(param12, param12_init, sizeof(int32_t) * 1);
3450 static int32_t param13_init[] = {2};
3451 model->setOperandValue(param13, param13_init, sizeof(int32_t) * 1);
3452 static bool8 layout_init[] = {true};
3453 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3454 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param12, param13, layout}, {out3});
3455 // Phase 3, inputs and outputs
3456 model->identifyInputsAndOutputs(
3457 {in3},
3458 {out3});
3459 // Phase 4: set relaxed execution
3460 model->relaxComputationFloat32toFloat16(true);
3461 assert(model->isValid());
3462 }
3463
is_ignored_shape_dynamic_output_shape_nchw_relaxed_4(int i)3464 inline bool is_ignored_shape_dynamic_output_shape_nchw_relaxed_4(int i) {
3465 static std::set<int> ignore = {};
3466 return ignore.find(i) != ignore.end();
3467 }
3468
CreateModel_shape_dynamic_output_shape_nchw_quant8_4(Model * model)3469 void CreateModel_shape_dynamic_output_shape_nchw_quant8_4(Model *model) {
3470 OperandType type0(Type::BOOL, {});
3471 OperandType type3(Type::INT32, {});
3472 OperandType type41(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 2}, 0.25f, 100);
3473 OperandType type42(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 100);
3474 // Phase 1, operands
3475 auto in3 = model->addOperand(&type41);
3476 auto param12 = model->addOperand(&type3);
3477 auto param13 = model->addOperand(&type3);
3478 auto layout = model->addOperand(&type0);
3479 auto out3 = model->addOperand(&type42);
3480 // Phase 2, operations
3481 static int32_t param12_init[] = {5};
3482 model->setOperandValue(param12, param12_init, sizeof(int32_t) * 1);
3483 static int32_t param13_init[] = {2};
3484 model->setOperandValue(param13, param13_init, sizeof(int32_t) * 1);
3485 static bool8 layout_init[] = {true};
3486 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3487 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param12, param13, layout}, {out3});
3488 // Phase 3, inputs and outputs
3489 model->identifyInputsAndOutputs(
3490 {in3},
3491 {out3});
3492 assert(model->isValid());
3493 }
3494
is_ignored_shape_dynamic_output_shape_nchw_quant8_4(int i)3495 inline bool is_ignored_shape_dynamic_output_shape_nchw_quant8_4(int i) {
3496 static std::set<int> ignore = {};
3497 return ignore.find(i) != ignore.end();
3498 }
3499
CreateModel_shape_dynamic_output_shape_nchw_float16_4(Model * model)3500 void CreateModel_shape_dynamic_output_shape_nchw_float16_4(Model *model) {
3501 OperandType type0(Type::BOOL, {});
3502 OperandType type25(Type::TENSOR_FLOAT16, {1, 1, 2, 2});
3503 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
3504 OperandType type3(Type::INT32, {});
3505 // Phase 1, operands
3506 auto in3 = model->addOperand(&type25);
3507 auto param12 = model->addOperand(&type3);
3508 auto param13 = model->addOperand(&type3);
3509 auto layout = model->addOperand(&type0);
3510 auto out3 = model->addOperand(&type28);
3511 // Phase 2, operations
3512 static int32_t param12_init[] = {5};
3513 model->setOperandValue(param12, param12_init, sizeof(int32_t) * 1);
3514 static int32_t param13_init[] = {2};
3515 model->setOperandValue(param13, param13_init, sizeof(int32_t) * 1);
3516 static bool8 layout_init[] = {true};
3517 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3518 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param12, param13, layout}, {out3});
3519 // Phase 3, inputs and outputs
3520 model->identifyInputsAndOutputs(
3521 {in3},
3522 {out3});
3523 assert(model->isValid());
3524 }
3525
is_ignored_shape_dynamic_output_shape_nchw_float16_4(int i)3526 inline bool is_ignored_shape_dynamic_output_shape_nchw_float16_4(int i) {
3527 static std::set<int> ignore = {};
3528 return ignore.find(i) != ignore.end();
3529 }
3530
CreateModel_scale_nhwc_4(Model * model)3531 void CreateModel_scale_nhwc_4(Model *model) {
3532 OperandType type0(Type::BOOL, {});
3533 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
3534 OperandType type4(Type::FLOAT32, {});
3535 OperandType type6(Type::TENSOR_FLOAT32, {1, 2, 5, 1});
3536 // Phase 1, operands
3537 auto in3 = model->addOperand(&type1);
3538 auto param14 = model->addOperand(&type4);
3539 auto param15 = model->addOperand(&type4);
3540 auto layout = model->addOperand(&type0);
3541 auto out3 = model->addOperand(&type6);
3542 // Phase 2, operations
3543 static float param14_init[] = {2.6f};
3544 model->setOperandValue(param14, param14_init, sizeof(float) * 1);
3545 static float param15_init[] = {1.1f};
3546 model->setOperandValue(param15, param15_init, sizeof(float) * 1);
3547 static bool8 layout_init[] = {false};
3548 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3549 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param14, param15, layout}, {out3});
3550 // Phase 3, inputs and outputs
3551 model->identifyInputsAndOutputs(
3552 {in3},
3553 {out3});
3554 assert(model->isValid());
3555 }
3556
is_ignored_scale_nhwc_4(int i)3557 inline bool is_ignored_scale_nhwc_4(int i) {
3558 static std::set<int> ignore = {};
3559 return ignore.find(i) != ignore.end();
3560 }
3561
CreateModel_scale_nhwc_relaxed_4(Model * model)3562 void CreateModel_scale_nhwc_relaxed_4(Model *model) {
3563 OperandType type0(Type::BOOL, {});
3564 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
3565 OperandType type4(Type::FLOAT32, {});
3566 OperandType type6(Type::TENSOR_FLOAT32, {1, 2, 5, 1});
3567 // Phase 1, operands
3568 auto in3 = model->addOperand(&type1);
3569 auto param14 = model->addOperand(&type4);
3570 auto param15 = model->addOperand(&type4);
3571 auto layout = model->addOperand(&type0);
3572 auto out3 = model->addOperand(&type6);
3573 // Phase 2, operations
3574 static float param14_init[] = {2.6f};
3575 model->setOperandValue(param14, param14_init, sizeof(float) * 1);
3576 static float param15_init[] = {1.1f};
3577 model->setOperandValue(param15, param15_init, sizeof(float) * 1);
3578 static bool8 layout_init[] = {false};
3579 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3580 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param14, param15, layout}, {out3});
3581 // Phase 3, inputs and outputs
3582 model->identifyInputsAndOutputs(
3583 {in3},
3584 {out3});
3585 // Phase 4: set relaxed execution
3586 model->relaxComputationFloat32toFloat16(true);
3587 assert(model->isValid());
3588 }
3589
is_ignored_scale_nhwc_relaxed_4(int i)3590 inline bool is_ignored_scale_nhwc_relaxed_4(int i) {
3591 static std::set<int> ignore = {};
3592 return ignore.find(i) != ignore.end();
3593 }
3594
CreateModel_scale_nhwc_quant8_4(Model * model)3595 void CreateModel_scale_nhwc_quant8_4(Model *model) {
3596 OperandType type0(Type::BOOL, {});
3597 OperandType type39(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.25f, 100);
3598 OperandType type4(Type::FLOAT32, {});
3599 OperandType type43(Type::TENSOR_QUANT8_ASYMM, {1, 2, 5, 1}, 0.25f, 100);
3600 // Phase 1, operands
3601 auto in3 = model->addOperand(&type39);
3602 auto param14 = model->addOperand(&type4);
3603 auto param15 = model->addOperand(&type4);
3604 auto layout = model->addOperand(&type0);
3605 auto out3 = model->addOperand(&type43);
3606 // Phase 2, operations
3607 static float param14_init[] = {2.6f};
3608 model->setOperandValue(param14, param14_init, sizeof(float) * 1);
3609 static float param15_init[] = {1.1f};
3610 model->setOperandValue(param15, param15_init, sizeof(float) * 1);
3611 static bool8 layout_init[] = {false};
3612 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3613 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param14, param15, layout}, {out3});
3614 // Phase 3, inputs and outputs
3615 model->identifyInputsAndOutputs(
3616 {in3},
3617 {out3});
3618 assert(model->isValid());
3619 }
3620
is_ignored_scale_nhwc_quant8_4(int i)3621 inline bool is_ignored_scale_nhwc_quant8_4(int i) {
3622 static std::set<int> ignore = {};
3623 return ignore.find(i) != ignore.end();
3624 }
3625
CreateModel_scale_nhwc_float16_4(Model * model)3626 void CreateModel_scale_nhwc_float16_4(Model *model) {
3627 OperandType type0(Type::BOOL, {});
3628 OperandType type21(Type::TENSOR_FLOAT16, {1, 2, 2, 1});
3629 OperandType type29(Type::FLOAT16, {});
3630 OperandType type44(Type::TENSOR_FLOAT16, {1, 2, 5, 1});
3631 // Phase 1, operands
3632 auto in3 = model->addOperand(&type21);
3633 auto param14 = model->addOperand(&type29);
3634 auto param15 = model->addOperand(&type29);
3635 auto layout = model->addOperand(&type0);
3636 auto out3 = model->addOperand(&type44);
3637 // Phase 2, operations
3638 static _Float16 param14_init[] = {2.5999999046325684f};
3639 model->setOperandValue(param14, param14_init, sizeof(_Float16) * 1);
3640 static _Float16 param15_init[] = {1.100000023841858f};
3641 model->setOperandValue(param15, param15_init, sizeof(_Float16) * 1);
3642 static bool8 layout_init[] = {false};
3643 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3644 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param14, param15, layout}, {out3});
3645 // Phase 3, inputs and outputs
3646 model->identifyInputsAndOutputs(
3647 {in3},
3648 {out3});
3649 assert(model->isValid());
3650 }
3651
is_ignored_scale_nhwc_float16_4(int i)3652 inline bool is_ignored_scale_nhwc_float16_4(int i) {
3653 static std::set<int> ignore = {};
3654 return ignore.find(i) != ignore.end();
3655 }
3656
CreateModel_scale_nchw_4(Model * model)3657 void CreateModel_scale_nchw_4(Model *model) {
3658 OperandType type0(Type::BOOL, {});
3659 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
3660 OperandType type4(Type::FLOAT32, {});
3661 OperandType type45(Type::TENSOR_FLOAT32, {1, 1, 2, 5});
3662 // Phase 1, operands
3663 auto in3 = model->addOperand(&type23);
3664 auto param14 = model->addOperand(&type4);
3665 auto param15 = model->addOperand(&type4);
3666 auto layout = model->addOperand(&type0);
3667 auto out3 = model->addOperand(&type45);
3668 // Phase 2, operations
3669 static float param14_init[] = {2.6f};
3670 model->setOperandValue(param14, param14_init, sizeof(float) * 1);
3671 static float param15_init[] = {1.1f};
3672 model->setOperandValue(param15, param15_init, sizeof(float) * 1);
3673 static bool8 layout_init[] = {true};
3674 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3675 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param14, param15, layout}, {out3});
3676 // Phase 3, inputs and outputs
3677 model->identifyInputsAndOutputs(
3678 {in3},
3679 {out3});
3680 assert(model->isValid());
3681 }
3682
is_ignored_scale_nchw_4(int i)3683 inline bool is_ignored_scale_nchw_4(int i) {
3684 static std::set<int> ignore = {};
3685 return ignore.find(i) != ignore.end();
3686 }
3687
CreateModel_scale_nchw_relaxed_4(Model * model)3688 void CreateModel_scale_nchw_relaxed_4(Model *model) {
3689 OperandType type0(Type::BOOL, {});
3690 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
3691 OperandType type4(Type::FLOAT32, {});
3692 OperandType type45(Type::TENSOR_FLOAT32, {1, 1, 2, 5});
3693 // Phase 1, operands
3694 auto in3 = model->addOperand(&type23);
3695 auto param14 = model->addOperand(&type4);
3696 auto param15 = model->addOperand(&type4);
3697 auto layout = model->addOperand(&type0);
3698 auto out3 = model->addOperand(&type45);
3699 // Phase 2, operations
3700 static float param14_init[] = {2.6f};
3701 model->setOperandValue(param14, param14_init, sizeof(float) * 1);
3702 static float param15_init[] = {1.1f};
3703 model->setOperandValue(param15, param15_init, sizeof(float) * 1);
3704 static bool8 layout_init[] = {true};
3705 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3706 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param14, param15, layout}, {out3});
3707 // Phase 3, inputs and outputs
3708 model->identifyInputsAndOutputs(
3709 {in3},
3710 {out3});
3711 // Phase 4: set relaxed execution
3712 model->relaxComputationFloat32toFloat16(true);
3713 assert(model->isValid());
3714 }
3715
is_ignored_scale_nchw_relaxed_4(int i)3716 inline bool is_ignored_scale_nchw_relaxed_4(int i) {
3717 static std::set<int> ignore = {};
3718 return ignore.find(i) != ignore.end();
3719 }
3720
CreateModel_scale_nchw_quant8_4(Model * model)3721 void CreateModel_scale_nchw_quant8_4(Model *model) {
3722 OperandType type0(Type::BOOL, {});
3723 OperandType type4(Type::FLOAT32, {});
3724 OperandType type41(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 2}, 0.25f, 100);
3725 OperandType type46(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 5}, 0.25f, 100);
3726 // Phase 1, operands
3727 auto in3 = model->addOperand(&type41);
3728 auto param14 = model->addOperand(&type4);
3729 auto param15 = model->addOperand(&type4);
3730 auto layout = model->addOperand(&type0);
3731 auto out3 = model->addOperand(&type46);
3732 // Phase 2, operations
3733 static float param14_init[] = {2.6f};
3734 model->setOperandValue(param14, param14_init, sizeof(float) * 1);
3735 static float param15_init[] = {1.1f};
3736 model->setOperandValue(param15, param15_init, sizeof(float) * 1);
3737 static bool8 layout_init[] = {true};
3738 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3739 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param14, param15, layout}, {out3});
3740 // Phase 3, inputs and outputs
3741 model->identifyInputsAndOutputs(
3742 {in3},
3743 {out3});
3744 assert(model->isValid());
3745 }
3746
is_ignored_scale_nchw_quant8_4(int i)3747 inline bool is_ignored_scale_nchw_quant8_4(int i) {
3748 static std::set<int> ignore = {};
3749 return ignore.find(i) != ignore.end();
3750 }
3751
CreateModel_scale_nchw_float16_4(Model * model)3752 void CreateModel_scale_nchw_float16_4(Model *model) {
3753 OperandType type0(Type::BOOL, {});
3754 OperandType type25(Type::TENSOR_FLOAT16, {1, 1, 2, 2});
3755 OperandType type29(Type::FLOAT16, {});
3756 OperandType type47(Type::TENSOR_FLOAT16, {1, 1, 2, 5});
3757 // Phase 1, operands
3758 auto in3 = model->addOperand(&type25);
3759 auto param14 = model->addOperand(&type29);
3760 auto param15 = model->addOperand(&type29);
3761 auto layout = model->addOperand(&type0);
3762 auto out3 = model->addOperand(&type47);
3763 // Phase 2, operations
3764 static _Float16 param14_init[] = {2.5999999046325684f};
3765 model->setOperandValue(param14, param14_init, sizeof(_Float16) * 1);
3766 static _Float16 param15_init[] = {1.100000023841858f};
3767 model->setOperandValue(param15, param15_init, sizeof(_Float16) * 1);
3768 static bool8 layout_init[] = {true};
3769 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3770 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param14, param15, layout}, {out3});
3771 // Phase 3, inputs and outputs
3772 model->identifyInputsAndOutputs(
3773 {in3},
3774 {out3});
3775 assert(model->isValid());
3776 }
3777
is_ignored_scale_nchw_float16_4(int i)3778 inline bool is_ignored_scale_nchw_float16_4(int i) {
3779 static std::set<int> ignore = {};
3780 return ignore.find(i) != ignore.end();
3781 }
3782
CreateModel_scale_dynamic_output_shape_nhwc_4(Model * model)3783 void CreateModel_scale_dynamic_output_shape_nhwc_4(Model *model) {
3784 OperandType type0(Type::BOOL, {});
3785 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
3786 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
3787 OperandType type4(Type::FLOAT32, {});
3788 // Phase 1, operands
3789 auto in3 = model->addOperand(&type1);
3790 auto param14 = model->addOperand(&type4);
3791 auto param15 = model->addOperand(&type4);
3792 auto layout = model->addOperand(&type0);
3793 auto out3 = model->addOperand(&type26);
3794 // Phase 2, operations
3795 static float param14_init[] = {2.6f};
3796 model->setOperandValue(param14, param14_init, sizeof(float) * 1);
3797 static float param15_init[] = {1.1f};
3798 model->setOperandValue(param15, param15_init, sizeof(float) * 1);
3799 static bool8 layout_init[] = {false};
3800 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3801 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param14, param15, layout}, {out3});
3802 // Phase 3, inputs and outputs
3803 model->identifyInputsAndOutputs(
3804 {in3},
3805 {out3});
3806 assert(model->isValid());
3807 }
3808
is_ignored_scale_dynamic_output_shape_nhwc_4(int i)3809 inline bool is_ignored_scale_dynamic_output_shape_nhwc_4(int i) {
3810 static std::set<int> ignore = {};
3811 return ignore.find(i) != ignore.end();
3812 }
3813
CreateModel_scale_dynamic_output_shape_nhwc_relaxed_4(Model * model)3814 void CreateModel_scale_dynamic_output_shape_nhwc_relaxed_4(Model *model) {
3815 OperandType type0(Type::BOOL, {});
3816 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
3817 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
3818 OperandType type4(Type::FLOAT32, {});
3819 // Phase 1, operands
3820 auto in3 = model->addOperand(&type1);
3821 auto param14 = model->addOperand(&type4);
3822 auto param15 = model->addOperand(&type4);
3823 auto layout = model->addOperand(&type0);
3824 auto out3 = model->addOperand(&type26);
3825 // Phase 2, operations
3826 static float param14_init[] = {2.6f};
3827 model->setOperandValue(param14, param14_init, sizeof(float) * 1);
3828 static float param15_init[] = {1.1f};
3829 model->setOperandValue(param15, param15_init, sizeof(float) * 1);
3830 static bool8 layout_init[] = {false};
3831 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3832 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param14, param15, layout}, {out3});
3833 // Phase 3, inputs and outputs
3834 model->identifyInputsAndOutputs(
3835 {in3},
3836 {out3});
3837 // Phase 4: set relaxed execution
3838 model->relaxComputationFloat32toFloat16(true);
3839 assert(model->isValid());
3840 }
3841
is_ignored_scale_dynamic_output_shape_nhwc_relaxed_4(int i)3842 inline bool is_ignored_scale_dynamic_output_shape_nhwc_relaxed_4(int i) {
3843 static std::set<int> ignore = {};
3844 return ignore.find(i) != ignore.end();
3845 }
3846
CreateModel_scale_dynamic_output_shape_nhwc_quant8_4(Model * model)3847 void CreateModel_scale_dynamic_output_shape_nhwc_quant8_4(Model *model) {
3848 OperandType type0(Type::BOOL, {});
3849 OperandType type39(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.25f, 100);
3850 OperandType type4(Type::FLOAT32, {});
3851 OperandType type42(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 100);
3852 // Phase 1, operands
3853 auto in3 = model->addOperand(&type39);
3854 auto param14 = model->addOperand(&type4);
3855 auto param15 = model->addOperand(&type4);
3856 auto layout = model->addOperand(&type0);
3857 auto out3 = model->addOperand(&type42);
3858 // Phase 2, operations
3859 static float param14_init[] = {2.6f};
3860 model->setOperandValue(param14, param14_init, sizeof(float) * 1);
3861 static float param15_init[] = {1.1f};
3862 model->setOperandValue(param15, param15_init, sizeof(float) * 1);
3863 static bool8 layout_init[] = {false};
3864 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3865 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param14, param15, layout}, {out3});
3866 // Phase 3, inputs and outputs
3867 model->identifyInputsAndOutputs(
3868 {in3},
3869 {out3});
3870 assert(model->isValid());
3871 }
3872
is_ignored_scale_dynamic_output_shape_nhwc_quant8_4(int i)3873 inline bool is_ignored_scale_dynamic_output_shape_nhwc_quant8_4(int i) {
3874 static std::set<int> ignore = {};
3875 return ignore.find(i) != ignore.end();
3876 }
3877
CreateModel_scale_dynamic_output_shape_nhwc_float16_4(Model * model)3878 void CreateModel_scale_dynamic_output_shape_nhwc_float16_4(Model *model) {
3879 OperandType type0(Type::BOOL, {});
3880 OperandType type21(Type::TENSOR_FLOAT16, {1, 2, 2, 1});
3881 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
3882 OperandType type29(Type::FLOAT16, {});
3883 // Phase 1, operands
3884 auto in3 = model->addOperand(&type21);
3885 auto param14 = model->addOperand(&type29);
3886 auto param15 = model->addOperand(&type29);
3887 auto layout = model->addOperand(&type0);
3888 auto out3 = model->addOperand(&type28);
3889 // Phase 2, operations
3890 static _Float16 param14_init[] = {2.5999999046325684f};
3891 model->setOperandValue(param14, param14_init, sizeof(_Float16) * 1);
3892 static _Float16 param15_init[] = {1.100000023841858f};
3893 model->setOperandValue(param15, param15_init, sizeof(_Float16) * 1);
3894 static bool8 layout_init[] = {false};
3895 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3896 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param14, param15, layout}, {out3});
3897 // Phase 3, inputs and outputs
3898 model->identifyInputsAndOutputs(
3899 {in3},
3900 {out3});
3901 assert(model->isValid());
3902 }
3903
is_ignored_scale_dynamic_output_shape_nhwc_float16_4(int i)3904 inline bool is_ignored_scale_dynamic_output_shape_nhwc_float16_4(int i) {
3905 static std::set<int> ignore = {};
3906 return ignore.find(i) != ignore.end();
3907 }
3908
CreateModel_scale_dynamic_output_shape_nchw_4(Model * model)3909 void CreateModel_scale_dynamic_output_shape_nchw_4(Model *model) {
3910 OperandType type0(Type::BOOL, {});
3911 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
3912 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
3913 OperandType type4(Type::FLOAT32, {});
3914 // Phase 1, operands
3915 auto in3 = model->addOperand(&type23);
3916 auto param14 = model->addOperand(&type4);
3917 auto param15 = model->addOperand(&type4);
3918 auto layout = model->addOperand(&type0);
3919 auto out3 = model->addOperand(&type26);
3920 // Phase 2, operations
3921 static float param14_init[] = {2.6f};
3922 model->setOperandValue(param14, param14_init, sizeof(float) * 1);
3923 static float param15_init[] = {1.1f};
3924 model->setOperandValue(param15, param15_init, sizeof(float) * 1);
3925 static bool8 layout_init[] = {true};
3926 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3927 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param14, param15, layout}, {out3});
3928 // Phase 3, inputs and outputs
3929 model->identifyInputsAndOutputs(
3930 {in3},
3931 {out3});
3932 assert(model->isValid());
3933 }
3934
is_ignored_scale_dynamic_output_shape_nchw_4(int i)3935 inline bool is_ignored_scale_dynamic_output_shape_nchw_4(int i) {
3936 static std::set<int> ignore = {};
3937 return ignore.find(i) != ignore.end();
3938 }
3939
CreateModel_scale_dynamic_output_shape_nchw_relaxed_4(Model * model)3940 void CreateModel_scale_dynamic_output_shape_nchw_relaxed_4(Model *model) {
3941 OperandType type0(Type::BOOL, {});
3942 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
3943 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
3944 OperandType type4(Type::FLOAT32, {});
3945 // Phase 1, operands
3946 auto in3 = model->addOperand(&type23);
3947 auto param14 = model->addOperand(&type4);
3948 auto param15 = model->addOperand(&type4);
3949 auto layout = model->addOperand(&type0);
3950 auto out3 = model->addOperand(&type26);
3951 // Phase 2, operations
3952 static float param14_init[] = {2.6f};
3953 model->setOperandValue(param14, param14_init, sizeof(float) * 1);
3954 static float param15_init[] = {1.1f};
3955 model->setOperandValue(param15, param15_init, sizeof(float) * 1);
3956 static bool8 layout_init[] = {true};
3957 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3958 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param14, param15, layout}, {out3});
3959 // Phase 3, inputs and outputs
3960 model->identifyInputsAndOutputs(
3961 {in3},
3962 {out3});
3963 // Phase 4: set relaxed execution
3964 model->relaxComputationFloat32toFloat16(true);
3965 assert(model->isValid());
3966 }
3967
is_ignored_scale_dynamic_output_shape_nchw_relaxed_4(int i)3968 inline bool is_ignored_scale_dynamic_output_shape_nchw_relaxed_4(int i) {
3969 static std::set<int> ignore = {};
3970 return ignore.find(i) != ignore.end();
3971 }
3972
CreateModel_scale_dynamic_output_shape_nchw_quant8_4(Model * model)3973 void CreateModel_scale_dynamic_output_shape_nchw_quant8_4(Model *model) {
3974 OperandType type0(Type::BOOL, {});
3975 OperandType type4(Type::FLOAT32, {});
3976 OperandType type41(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 2}, 0.25f, 100);
3977 OperandType type42(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 100);
3978 // Phase 1, operands
3979 auto in3 = model->addOperand(&type41);
3980 auto param14 = model->addOperand(&type4);
3981 auto param15 = model->addOperand(&type4);
3982 auto layout = model->addOperand(&type0);
3983 auto out3 = model->addOperand(&type42);
3984 // Phase 2, operations
3985 static float param14_init[] = {2.6f};
3986 model->setOperandValue(param14, param14_init, sizeof(float) * 1);
3987 static float param15_init[] = {1.1f};
3988 model->setOperandValue(param15, param15_init, sizeof(float) * 1);
3989 static bool8 layout_init[] = {true};
3990 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
3991 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param14, param15, layout}, {out3});
3992 // Phase 3, inputs and outputs
3993 model->identifyInputsAndOutputs(
3994 {in3},
3995 {out3});
3996 assert(model->isValid());
3997 }
3998
is_ignored_scale_dynamic_output_shape_nchw_quant8_4(int i)3999 inline bool is_ignored_scale_dynamic_output_shape_nchw_quant8_4(int i) {
4000 static std::set<int> ignore = {};
4001 return ignore.find(i) != ignore.end();
4002 }
4003
CreateModel_scale_dynamic_output_shape_nchw_float16_4(Model * model)4004 void CreateModel_scale_dynamic_output_shape_nchw_float16_4(Model *model) {
4005 OperandType type0(Type::BOOL, {});
4006 OperandType type25(Type::TENSOR_FLOAT16, {1, 1, 2, 2});
4007 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
4008 OperandType type29(Type::FLOAT16, {});
4009 // Phase 1, operands
4010 auto in3 = model->addOperand(&type25);
4011 auto param14 = model->addOperand(&type29);
4012 auto param15 = model->addOperand(&type29);
4013 auto layout = model->addOperand(&type0);
4014 auto out3 = model->addOperand(&type28);
4015 // Phase 2, operations
4016 static _Float16 param14_init[] = {2.5999999046325684f};
4017 model->setOperandValue(param14, param14_init, sizeof(_Float16) * 1);
4018 static _Float16 param15_init[] = {1.100000023841858f};
4019 model->setOperandValue(param15, param15_init, sizeof(_Float16) * 1);
4020 static bool8 layout_init[] = {true};
4021 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4022 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in3, param14, param15, layout}, {out3});
4023 // Phase 3, inputs and outputs
4024 model->identifyInputsAndOutputs(
4025 {in3},
4026 {out3});
4027 assert(model->isValid());
4028 }
4029
is_ignored_scale_dynamic_output_shape_nchw_float16_4(int i)4030 inline bool is_ignored_scale_dynamic_output_shape_nchw_float16_4(int i) {
4031 static std::set<int> ignore = {};
4032 return ignore.find(i) != ignore.end();
4033 }
4034
CreateModel_shape_nhwc_5(Model * model)4035 void CreateModel_shape_nhwc_5(Model *model) {
4036 OperandType type0(Type::BOOL, {});
4037 OperandType type3(Type::INT32, {});
4038 OperandType type5(Type::TENSOR_FLOAT32, {1, 3, 3, 1});
4039 OperandType type7(Type::TENSOR_FLOAT32, {1, 4, 4, 1});
4040 // Phase 1, operands
4041 auto in4 = model->addOperand(&type7);
4042 auto param16 = model->addOperand(&type3);
4043 auto param17 = model->addOperand(&type3);
4044 auto layout = model->addOperand(&type0);
4045 auto out4 = model->addOperand(&type5);
4046 // Phase 2, operations
4047 static int32_t param16_init[] = {3};
4048 model->setOperandValue(param16, param16_init, sizeof(int32_t) * 1);
4049 static int32_t param17_init[] = {3};
4050 model->setOperandValue(param17, param17_init, sizeof(int32_t) * 1);
4051 static bool8 layout_init[] = {false};
4052 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4053 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param16, param17, layout}, {out4});
4054 // Phase 3, inputs and outputs
4055 model->identifyInputsAndOutputs(
4056 {in4},
4057 {out4});
4058 assert(model->isValid());
4059 }
4060
is_ignored_shape_nhwc_5(int i)4061 inline bool is_ignored_shape_nhwc_5(int i) {
4062 static std::set<int> ignore = {};
4063 return ignore.find(i) != ignore.end();
4064 }
4065
CreateModel_shape_nhwc_relaxed_5(Model * model)4066 void CreateModel_shape_nhwc_relaxed_5(Model *model) {
4067 OperandType type0(Type::BOOL, {});
4068 OperandType type3(Type::INT32, {});
4069 OperandType type5(Type::TENSOR_FLOAT32, {1, 3, 3, 1});
4070 OperandType type7(Type::TENSOR_FLOAT32, {1, 4, 4, 1});
4071 // Phase 1, operands
4072 auto in4 = model->addOperand(&type7);
4073 auto param16 = model->addOperand(&type3);
4074 auto param17 = model->addOperand(&type3);
4075 auto layout = model->addOperand(&type0);
4076 auto out4 = model->addOperand(&type5);
4077 // Phase 2, operations
4078 static int32_t param16_init[] = {3};
4079 model->setOperandValue(param16, param16_init, sizeof(int32_t) * 1);
4080 static int32_t param17_init[] = {3};
4081 model->setOperandValue(param17, param17_init, sizeof(int32_t) * 1);
4082 static bool8 layout_init[] = {false};
4083 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4084 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param16, param17, layout}, {out4});
4085 // Phase 3, inputs and outputs
4086 model->identifyInputsAndOutputs(
4087 {in4},
4088 {out4});
4089 // Phase 4: set relaxed execution
4090 model->relaxComputationFloat32toFloat16(true);
4091 assert(model->isValid());
4092 }
4093
is_ignored_shape_nhwc_relaxed_5(int i)4094 inline bool is_ignored_shape_nhwc_relaxed_5(int i) {
4095 static std::set<int> ignore = {};
4096 return ignore.find(i) != ignore.end();
4097 }
4098
CreateModel_shape_nhwc_quant8_5(Model * model)4099 void CreateModel_shape_nhwc_quant8_5(Model *model) {
4100 OperandType type0(Type::BOOL, {});
4101 OperandType type3(Type::INT32, {});
4102 OperandType type38(Type::TENSOR_QUANT8_ASYMM, {1, 3, 3, 1}, 0.25f, 100);
4103 OperandType type48(Type::TENSOR_QUANT8_ASYMM, {1, 4, 4, 1}, 0.25f, 100);
4104 // Phase 1, operands
4105 auto in4 = model->addOperand(&type48);
4106 auto param16 = model->addOperand(&type3);
4107 auto param17 = model->addOperand(&type3);
4108 auto layout = model->addOperand(&type0);
4109 auto out4 = model->addOperand(&type38);
4110 // Phase 2, operations
4111 static int32_t param16_init[] = {3};
4112 model->setOperandValue(param16, param16_init, sizeof(int32_t) * 1);
4113 static int32_t param17_init[] = {3};
4114 model->setOperandValue(param17, param17_init, sizeof(int32_t) * 1);
4115 static bool8 layout_init[] = {false};
4116 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4117 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param16, param17, layout}, {out4});
4118 // Phase 3, inputs and outputs
4119 model->identifyInputsAndOutputs(
4120 {in4},
4121 {out4});
4122 assert(model->isValid());
4123 }
4124
is_ignored_shape_nhwc_quant8_5(int i)4125 inline bool is_ignored_shape_nhwc_quant8_5(int i) {
4126 static std::set<int> ignore = {};
4127 return ignore.find(i) != ignore.end();
4128 }
4129
CreateModel_shape_nhwc_float16_5(Model * model)4130 void CreateModel_shape_nhwc_float16_5(Model *model) {
4131 OperandType type0(Type::BOOL, {});
4132 OperandType type3(Type::INT32, {});
4133 OperandType type32(Type::TENSOR_FLOAT16, {1, 3, 3, 1});
4134 OperandType type49(Type::TENSOR_FLOAT16, {1, 4, 4, 1});
4135 // Phase 1, operands
4136 auto in4 = model->addOperand(&type49);
4137 auto param16 = model->addOperand(&type3);
4138 auto param17 = model->addOperand(&type3);
4139 auto layout = model->addOperand(&type0);
4140 auto out4 = model->addOperand(&type32);
4141 // Phase 2, operations
4142 static int32_t param16_init[] = {3};
4143 model->setOperandValue(param16, param16_init, sizeof(int32_t) * 1);
4144 static int32_t param17_init[] = {3};
4145 model->setOperandValue(param17, param17_init, sizeof(int32_t) * 1);
4146 static bool8 layout_init[] = {false};
4147 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4148 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param16, param17, layout}, {out4});
4149 // Phase 3, inputs and outputs
4150 model->identifyInputsAndOutputs(
4151 {in4},
4152 {out4});
4153 assert(model->isValid());
4154 }
4155
is_ignored_shape_nhwc_float16_5(int i)4156 inline bool is_ignored_shape_nhwc_float16_5(int i) {
4157 static std::set<int> ignore = {};
4158 return ignore.find(i) != ignore.end();
4159 }
4160
CreateModel_shape_nchw_5(Model * model)4161 void CreateModel_shape_nchw_5(Model *model) {
4162 OperandType type0(Type::BOOL, {});
4163 OperandType type3(Type::INT32, {});
4164 OperandType type33(Type::TENSOR_FLOAT32, {1, 1, 3, 3});
4165 OperandType type50(Type::TENSOR_FLOAT32, {1, 1, 4, 4});
4166 // Phase 1, operands
4167 auto in4 = model->addOperand(&type50);
4168 auto param16 = model->addOperand(&type3);
4169 auto param17 = model->addOperand(&type3);
4170 auto layout = model->addOperand(&type0);
4171 auto out4 = model->addOperand(&type33);
4172 // Phase 2, operations
4173 static int32_t param16_init[] = {3};
4174 model->setOperandValue(param16, param16_init, sizeof(int32_t) * 1);
4175 static int32_t param17_init[] = {3};
4176 model->setOperandValue(param17, param17_init, sizeof(int32_t) * 1);
4177 static bool8 layout_init[] = {true};
4178 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4179 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param16, param17, layout}, {out4});
4180 // Phase 3, inputs and outputs
4181 model->identifyInputsAndOutputs(
4182 {in4},
4183 {out4});
4184 assert(model->isValid());
4185 }
4186
is_ignored_shape_nchw_5(int i)4187 inline bool is_ignored_shape_nchw_5(int i) {
4188 static std::set<int> ignore = {};
4189 return ignore.find(i) != ignore.end();
4190 }
4191
CreateModel_shape_nchw_relaxed_5(Model * model)4192 void CreateModel_shape_nchw_relaxed_5(Model *model) {
4193 OperandType type0(Type::BOOL, {});
4194 OperandType type3(Type::INT32, {});
4195 OperandType type33(Type::TENSOR_FLOAT32, {1, 1, 3, 3});
4196 OperandType type50(Type::TENSOR_FLOAT32, {1, 1, 4, 4});
4197 // Phase 1, operands
4198 auto in4 = model->addOperand(&type50);
4199 auto param16 = model->addOperand(&type3);
4200 auto param17 = model->addOperand(&type3);
4201 auto layout = model->addOperand(&type0);
4202 auto out4 = model->addOperand(&type33);
4203 // Phase 2, operations
4204 static int32_t param16_init[] = {3};
4205 model->setOperandValue(param16, param16_init, sizeof(int32_t) * 1);
4206 static int32_t param17_init[] = {3};
4207 model->setOperandValue(param17, param17_init, sizeof(int32_t) * 1);
4208 static bool8 layout_init[] = {true};
4209 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4210 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param16, param17, layout}, {out4});
4211 // Phase 3, inputs and outputs
4212 model->identifyInputsAndOutputs(
4213 {in4},
4214 {out4});
4215 // Phase 4: set relaxed execution
4216 model->relaxComputationFloat32toFloat16(true);
4217 assert(model->isValid());
4218 }
4219
is_ignored_shape_nchw_relaxed_5(int i)4220 inline bool is_ignored_shape_nchw_relaxed_5(int i) {
4221 static std::set<int> ignore = {};
4222 return ignore.find(i) != ignore.end();
4223 }
4224
CreateModel_shape_nchw_quant8_5(Model * model)4225 void CreateModel_shape_nchw_quant8_5(Model *model) {
4226 OperandType type0(Type::BOOL, {});
4227 OperandType type3(Type::INT32, {});
4228 OperandType type40(Type::TENSOR_QUANT8_ASYMM, {1, 1, 3, 3}, 0.25f, 100);
4229 OperandType type51(Type::TENSOR_QUANT8_ASYMM, {1, 1, 4, 4}, 0.25f, 100);
4230 // Phase 1, operands
4231 auto in4 = model->addOperand(&type51);
4232 auto param16 = model->addOperand(&type3);
4233 auto param17 = model->addOperand(&type3);
4234 auto layout = model->addOperand(&type0);
4235 auto out4 = model->addOperand(&type40);
4236 // Phase 2, operations
4237 static int32_t param16_init[] = {3};
4238 model->setOperandValue(param16, param16_init, sizeof(int32_t) * 1);
4239 static int32_t param17_init[] = {3};
4240 model->setOperandValue(param17, param17_init, sizeof(int32_t) * 1);
4241 static bool8 layout_init[] = {true};
4242 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4243 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param16, param17, layout}, {out4});
4244 // Phase 3, inputs and outputs
4245 model->identifyInputsAndOutputs(
4246 {in4},
4247 {out4});
4248 assert(model->isValid());
4249 }
4250
is_ignored_shape_nchw_quant8_5(int i)4251 inline bool is_ignored_shape_nchw_quant8_5(int i) {
4252 static std::set<int> ignore = {};
4253 return ignore.find(i) != ignore.end();
4254 }
4255
CreateModel_shape_nchw_float16_5(Model * model)4256 void CreateModel_shape_nchw_float16_5(Model *model) {
4257 OperandType type0(Type::BOOL, {});
4258 OperandType type3(Type::INT32, {});
4259 OperandType type36(Type::TENSOR_FLOAT16, {1, 1, 3, 3});
4260 OperandType type52(Type::TENSOR_FLOAT16, {1, 1, 4, 4});
4261 // Phase 1, operands
4262 auto in4 = model->addOperand(&type52);
4263 auto param16 = model->addOperand(&type3);
4264 auto param17 = model->addOperand(&type3);
4265 auto layout = model->addOperand(&type0);
4266 auto out4 = model->addOperand(&type36);
4267 // Phase 2, operations
4268 static int32_t param16_init[] = {3};
4269 model->setOperandValue(param16, param16_init, sizeof(int32_t) * 1);
4270 static int32_t param17_init[] = {3};
4271 model->setOperandValue(param17, param17_init, sizeof(int32_t) * 1);
4272 static bool8 layout_init[] = {true};
4273 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4274 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param16, param17, layout}, {out4});
4275 // Phase 3, inputs and outputs
4276 model->identifyInputsAndOutputs(
4277 {in4},
4278 {out4});
4279 assert(model->isValid());
4280 }
4281
is_ignored_shape_nchw_float16_5(int i)4282 inline bool is_ignored_shape_nchw_float16_5(int i) {
4283 static std::set<int> ignore = {};
4284 return ignore.find(i) != ignore.end();
4285 }
4286
CreateModel_shape_dynamic_output_shape_nhwc_5(Model * model)4287 void CreateModel_shape_dynamic_output_shape_nhwc_5(Model *model) {
4288 OperandType type0(Type::BOOL, {});
4289 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
4290 OperandType type3(Type::INT32, {});
4291 OperandType type7(Type::TENSOR_FLOAT32, {1, 4, 4, 1});
4292 // Phase 1, operands
4293 auto in4 = model->addOperand(&type7);
4294 auto param16 = model->addOperand(&type3);
4295 auto param17 = model->addOperand(&type3);
4296 auto layout = model->addOperand(&type0);
4297 auto out4 = model->addOperand(&type26);
4298 // Phase 2, operations
4299 static int32_t param16_init[] = {3};
4300 model->setOperandValue(param16, param16_init, sizeof(int32_t) * 1);
4301 static int32_t param17_init[] = {3};
4302 model->setOperandValue(param17, param17_init, sizeof(int32_t) * 1);
4303 static bool8 layout_init[] = {false};
4304 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4305 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param16, param17, layout}, {out4});
4306 // Phase 3, inputs and outputs
4307 model->identifyInputsAndOutputs(
4308 {in4},
4309 {out4});
4310 assert(model->isValid());
4311 }
4312
is_ignored_shape_dynamic_output_shape_nhwc_5(int i)4313 inline bool is_ignored_shape_dynamic_output_shape_nhwc_5(int i) {
4314 static std::set<int> ignore = {};
4315 return ignore.find(i) != ignore.end();
4316 }
4317
CreateModel_shape_dynamic_output_shape_nhwc_relaxed_5(Model * model)4318 void CreateModel_shape_dynamic_output_shape_nhwc_relaxed_5(Model *model) {
4319 OperandType type0(Type::BOOL, {});
4320 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
4321 OperandType type3(Type::INT32, {});
4322 OperandType type7(Type::TENSOR_FLOAT32, {1, 4, 4, 1});
4323 // Phase 1, operands
4324 auto in4 = model->addOperand(&type7);
4325 auto param16 = model->addOperand(&type3);
4326 auto param17 = model->addOperand(&type3);
4327 auto layout = model->addOperand(&type0);
4328 auto out4 = model->addOperand(&type26);
4329 // Phase 2, operations
4330 static int32_t param16_init[] = {3};
4331 model->setOperandValue(param16, param16_init, sizeof(int32_t) * 1);
4332 static int32_t param17_init[] = {3};
4333 model->setOperandValue(param17, param17_init, sizeof(int32_t) * 1);
4334 static bool8 layout_init[] = {false};
4335 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4336 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param16, param17, layout}, {out4});
4337 // Phase 3, inputs and outputs
4338 model->identifyInputsAndOutputs(
4339 {in4},
4340 {out4});
4341 // Phase 4: set relaxed execution
4342 model->relaxComputationFloat32toFloat16(true);
4343 assert(model->isValid());
4344 }
4345
is_ignored_shape_dynamic_output_shape_nhwc_relaxed_5(int i)4346 inline bool is_ignored_shape_dynamic_output_shape_nhwc_relaxed_5(int i) {
4347 static std::set<int> ignore = {};
4348 return ignore.find(i) != ignore.end();
4349 }
4350
CreateModel_shape_dynamic_output_shape_nhwc_quant8_5(Model * model)4351 void CreateModel_shape_dynamic_output_shape_nhwc_quant8_5(Model *model) {
4352 OperandType type0(Type::BOOL, {});
4353 OperandType type3(Type::INT32, {});
4354 OperandType type42(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 100);
4355 OperandType type48(Type::TENSOR_QUANT8_ASYMM, {1, 4, 4, 1}, 0.25f, 100);
4356 // Phase 1, operands
4357 auto in4 = model->addOperand(&type48);
4358 auto param16 = model->addOperand(&type3);
4359 auto param17 = model->addOperand(&type3);
4360 auto layout = model->addOperand(&type0);
4361 auto out4 = model->addOperand(&type42);
4362 // Phase 2, operations
4363 static int32_t param16_init[] = {3};
4364 model->setOperandValue(param16, param16_init, sizeof(int32_t) * 1);
4365 static int32_t param17_init[] = {3};
4366 model->setOperandValue(param17, param17_init, sizeof(int32_t) * 1);
4367 static bool8 layout_init[] = {false};
4368 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4369 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param16, param17, layout}, {out4});
4370 // Phase 3, inputs and outputs
4371 model->identifyInputsAndOutputs(
4372 {in4},
4373 {out4});
4374 assert(model->isValid());
4375 }
4376
is_ignored_shape_dynamic_output_shape_nhwc_quant8_5(int i)4377 inline bool is_ignored_shape_dynamic_output_shape_nhwc_quant8_5(int i) {
4378 static std::set<int> ignore = {};
4379 return ignore.find(i) != ignore.end();
4380 }
4381
CreateModel_shape_dynamic_output_shape_nhwc_float16_5(Model * model)4382 void CreateModel_shape_dynamic_output_shape_nhwc_float16_5(Model *model) {
4383 OperandType type0(Type::BOOL, {});
4384 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
4385 OperandType type3(Type::INT32, {});
4386 OperandType type49(Type::TENSOR_FLOAT16, {1, 4, 4, 1});
4387 // Phase 1, operands
4388 auto in4 = model->addOperand(&type49);
4389 auto param16 = model->addOperand(&type3);
4390 auto param17 = model->addOperand(&type3);
4391 auto layout = model->addOperand(&type0);
4392 auto out4 = model->addOperand(&type28);
4393 // Phase 2, operations
4394 static int32_t param16_init[] = {3};
4395 model->setOperandValue(param16, param16_init, sizeof(int32_t) * 1);
4396 static int32_t param17_init[] = {3};
4397 model->setOperandValue(param17, param17_init, sizeof(int32_t) * 1);
4398 static bool8 layout_init[] = {false};
4399 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4400 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param16, param17, layout}, {out4});
4401 // Phase 3, inputs and outputs
4402 model->identifyInputsAndOutputs(
4403 {in4},
4404 {out4});
4405 assert(model->isValid());
4406 }
4407
is_ignored_shape_dynamic_output_shape_nhwc_float16_5(int i)4408 inline bool is_ignored_shape_dynamic_output_shape_nhwc_float16_5(int i) {
4409 static std::set<int> ignore = {};
4410 return ignore.find(i) != ignore.end();
4411 }
4412
CreateModel_shape_dynamic_output_shape_nchw_5(Model * model)4413 void CreateModel_shape_dynamic_output_shape_nchw_5(Model *model) {
4414 OperandType type0(Type::BOOL, {});
4415 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
4416 OperandType type3(Type::INT32, {});
4417 OperandType type50(Type::TENSOR_FLOAT32, {1, 1, 4, 4});
4418 // Phase 1, operands
4419 auto in4 = model->addOperand(&type50);
4420 auto param16 = model->addOperand(&type3);
4421 auto param17 = model->addOperand(&type3);
4422 auto layout = model->addOperand(&type0);
4423 auto out4 = model->addOperand(&type26);
4424 // Phase 2, operations
4425 static int32_t param16_init[] = {3};
4426 model->setOperandValue(param16, param16_init, sizeof(int32_t) * 1);
4427 static int32_t param17_init[] = {3};
4428 model->setOperandValue(param17, param17_init, sizeof(int32_t) * 1);
4429 static bool8 layout_init[] = {true};
4430 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4431 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param16, param17, layout}, {out4});
4432 // Phase 3, inputs and outputs
4433 model->identifyInputsAndOutputs(
4434 {in4},
4435 {out4});
4436 assert(model->isValid());
4437 }
4438
is_ignored_shape_dynamic_output_shape_nchw_5(int i)4439 inline bool is_ignored_shape_dynamic_output_shape_nchw_5(int i) {
4440 static std::set<int> ignore = {};
4441 return ignore.find(i) != ignore.end();
4442 }
4443
CreateModel_shape_dynamic_output_shape_nchw_relaxed_5(Model * model)4444 void CreateModel_shape_dynamic_output_shape_nchw_relaxed_5(Model *model) {
4445 OperandType type0(Type::BOOL, {});
4446 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
4447 OperandType type3(Type::INT32, {});
4448 OperandType type50(Type::TENSOR_FLOAT32, {1, 1, 4, 4});
4449 // Phase 1, operands
4450 auto in4 = model->addOperand(&type50);
4451 auto param16 = model->addOperand(&type3);
4452 auto param17 = model->addOperand(&type3);
4453 auto layout = model->addOperand(&type0);
4454 auto out4 = model->addOperand(&type26);
4455 // Phase 2, operations
4456 static int32_t param16_init[] = {3};
4457 model->setOperandValue(param16, param16_init, sizeof(int32_t) * 1);
4458 static int32_t param17_init[] = {3};
4459 model->setOperandValue(param17, param17_init, sizeof(int32_t) * 1);
4460 static bool8 layout_init[] = {true};
4461 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4462 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param16, param17, layout}, {out4});
4463 // Phase 3, inputs and outputs
4464 model->identifyInputsAndOutputs(
4465 {in4},
4466 {out4});
4467 // Phase 4: set relaxed execution
4468 model->relaxComputationFloat32toFloat16(true);
4469 assert(model->isValid());
4470 }
4471
is_ignored_shape_dynamic_output_shape_nchw_relaxed_5(int i)4472 inline bool is_ignored_shape_dynamic_output_shape_nchw_relaxed_5(int i) {
4473 static std::set<int> ignore = {};
4474 return ignore.find(i) != ignore.end();
4475 }
4476
CreateModel_shape_dynamic_output_shape_nchw_quant8_5(Model * model)4477 void CreateModel_shape_dynamic_output_shape_nchw_quant8_5(Model *model) {
4478 OperandType type0(Type::BOOL, {});
4479 OperandType type3(Type::INT32, {});
4480 OperandType type42(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 100);
4481 OperandType type51(Type::TENSOR_QUANT8_ASYMM, {1, 1, 4, 4}, 0.25f, 100);
4482 // Phase 1, operands
4483 auto in4 = model->addOperand(&type51);
4484 auto param16 = model->addOperand(&type3);
4485 auto param17 = model->addOperand(&type3);
4486 auto layout = model->addOperand(&type0);
4487 auto out4 = model->addOperand(&type42);
4488 // Phase 2, operations
4489 static int32_t param16_init[] = {3};
4490 model->setOperandValue(param16, param16_init, sizeof(int32_t) * 1);
4491 static int32_t param17_init[] = {3};
4492 model->setOperandValue(param17, param17_init, sizeof(int32_t) * 1);
4493 static bool8 layout_init[] = {true};
4494 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4495 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param16, param17, layout}, {out4});
4496 // Phase 3, inputs and outputs
4497 model->identifyInputsAndOutputs(
4498 {in4},
4499 {out4});
4500 assert(model->isValid());
4501 }
4502
is_ignored_shape_dynamic_output_shape_nchw_quant8_5(int i)4503 inline bool is_ignored_shape_dynamic_output_shape_nchw_quant8_5(int i) {
4504 static std::set<int> ignore = {};
4505 return ignore.find(i) != ignore.end();
4506 }
4507
CreateModel_shape_dynamic_output_shape_nchw_float16_5(Model * model)4508 void CreateModel_shape_dynamic_output_shape_nchw_float16_5(Model *model) {
4509 OperandType type0(Type::BOOL, {});
4510 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
4511 OperandType type3(Type::INT32, {});
4512 OperandType type52(Type::TENSOR_FLOAT16, {1, 1, 4, 4});
4513 // Phase 1, operands
4514 auto in4 = model->addOperand(&type52);
4515 auto param16 = model->addOperand(&type3);
4516 auto param17 = model->addOperand(&type3);
4517 auto layout = model->addOperand(&type0);
4518 auto out4 = model->addOperand(&type28);
4519 // Phase 2, operations
4520 static int32_t param16_init[] = {3};
4521 model->setOperandValue(param16, param16_init, sizeof(int32_t) * 1);
4522 static int32_t param17_init[] = {3};
4523 model->setOperandValue(param17, param17_init, sizeof(int32_t) * 1);
4524 static bool8 layout_init[] = {true};
4525 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4526 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param16, param17, layout}, {out4});
4527 // Phase 3, inputs and outputs
4528 model->identifyInputsAndOutputs(
4529 {in4},
4530 {out4});
4531 assert(model->isValid());
4532 }
4533
is_ignored_shape_dynamic_output_shape_nchw_float16_5(int i)4534 inline bool is_ignored_shape_dynamic_output_shape_nchw_float16_5(int i) {
4535 static std::set<int> ignore = {};
4536 return ignore.find(i) != ignore.end();
4537 }
4538
CreateModel_scale_nhwc_5(Model * model)4539 void CreateModel_scale_nhwc_5(Model *model) {
4540 OperandType type0(Type::BOOL, {});
4541 OperandType type4(Type::FLOAT32, {});
4542 OperandType type5(Type::TENSOR_FLOAT32, {1, 3, 3, 1});
4543 OperandType type7(Type::TENSOR_FLOAT32, {1, 4, 4, 1});
4544 // Phase 1, operands
4545 auto in4 = model->addOperand(&type7);
4546 auto param18 = model->addOperand(&type4);
4547 auto param19 = model->addOperand(&type4);
4548 auto layout = model->addOperand(&type0);
4549 auto out4 = model->addOperand(&type5);
4550 // Phase 2, operations
4551 static float param18_init[] = {0.9f};
4552 model->setOperandValue(param18, param18_init, sizeof(float) * 1);
4553 static float param19_init[] = {0.9f};
4554 model->setOperandValue(param19, param19_init, sizeof(float) * 1);
4555 static bool8 layout_init[] = {false};
4556 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4557 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param18, param19, layout}, {out4});
4558 // Phase 3, inputs and outputs
4559 model->identifyInputsAndOutputs(
4560 {in4},
4561 {out4});
4562 assert(model->isValid());
4563 }
4564
is_ignored_scale_nhwc_5(int i)4565 inline bool is_ignored_scale_nhwc_5(int i) {
4566 static std::set<int> ignore = {};
4567 return ignore.find(i) != ignore.end();
4568 }
4569
CreateModel_scale_nhwc_relaxed_5(Model * model)4570 void CreateModel_scale_nhwc_relaxed_5(Model *model) {
4571 OperandType type0(Type::BOOL, {});
4572 OperandType type4(Type::FLOAT32, {});
4573 OperandType type5(Type::TENSOR_FLOAT32, {1, 3, 3, 1});
4574 OperandType type7(Type::TENSOR_FLOAT32, {1, 4, 4, 1});
4575 // Phase 1, operands
4576 auto in4 = model->addOperand(&type7);
4577 auto param18 = model->addOperand(&type4);
4578 auto param19 = model->addOperand(&type4);
4579 auto layout = model->addOperand(&type0);
4580 auto out4 = model->addOperand(&type5);
4581 // Phase 2, operations
4582 static float param18_init[] = {0.9f};
4583 model->setOperandValue(param18, param18_init, sizeof(float) * 1);
4584 static float param19_init[] = {0.9f};
4585 model->setOperandValue(param19, param19_init, sizeof(float) * 1);
4586 static bool8 layout_init[] = {false};
4587 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4588 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param18, param19, layout}, {out4});
4589 // Phase 3, inputs and outputs
4590 model->identifyInputsAndOutputs(
4591 {in4},
4592 {out4});
4593 // Phase 4: set relaxed execution
4594 model->relaxComputationFloat32toFloat16(true);
4595 assert(model->isValid());
4596 }
4597
is_ignored_scale_nhwc_relaxed_5(int i)4598 inline bool is_ignored_scale_nhwc_relaxed_5(int i) {
4599 static std::set<int> ignore = {};
4600 return ignore.find(i) != ignore.end();
4601 }
4602
CreateModel_scale_nhwc_quant8_5(Model * model)4603 void CreateModel_scale_nhwc_quant8_5(Model *model) {
4604 OperandType type0(Type::BOOL, {});
4605 OperandType type38(Type::TENSOR_QUANT8_ASYMM, {1, 3, 3, 1}, 0.25f, 100);
4606 OperandType type4(Type::FLOAT32, {});
4607 OperandType type48(Type::TENSOR_QUANT8_ASYMM, {1, 4, 4, 1}, 0.25f, 100);
4608 // Phase 1, operands
4609 auto in4 = model->addOperand(&type48);
4610 auto param18 = model->addOperand(&type4);
4611 auto param19 = model->addOperand(&type4);
4612 auto layout = model->addOperand(&type0);
4613 auto out4 = model->addOperand(&type38);
4614 // Phase 2, operations
4615 static float param18_init[] = {0.9f};
4616 model->setOperandValue(param18, param18_init, sizeof(float) * 1);
4617 static float param19_init[] = {0.9f};
4618 model->setOperandValue(param19, param19_init, sizeof(float) * 1);
4619 static bool8 layout_init[] = {false};
4620 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4621 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param18, param19, layout}, {out4});
4622 // Phase 3, inputs and outputs
4623 model->identifyInputsAndOutputs(
4624 {in4},
4625 {out4});
4626 assert(model->isValid());
4627 }
4628
is_ignored_scale_nhwc_quant8_5(int i)4629 inline bool is_ignored_scale_nhwc_quant8_5(int i) {
4630 static std::set<int> ignore = {};
4631 return ignore.find(i) != ignore.end();
4632 }
4633
CreateModel_scale_nhwc_float16_5(Model * model)4634 void CreateModel_scale_nhwc_float16_5(Model *model) {
4635 OperandType type0(Type::BOOL, {});
4636 OperandType type29(Type::FLOAT16, {});
4637 OperandType type32(Type::TENSOR_FLOAT16, {1, 3, 3, 1});
4638 OperandType type49(Type::TENSOR_FLOAT16, {1, 4, 4, 1});
4639 // Phase 1, operands
4640 auto in4 = model->addOperand(&type49);
4641 auto param18 = model->addOperand(&type29);
4642 auto param19 = model->addOperand(&type29);
4643 auto layout = model->addOperand(&type0);
4644 auto out4 = model->addOperand(&type32);
4645 // Phase 2, operations
4646 static _Float16 param18_init[] = {0.8999999761581421f};
4647 model->setOperandValue(param18, param18_init, sizeof(_Float16) * 1);
4648 static _Float16 param19_init[] = {0.8999999761581421f};
4649 model->setOperandValue(param19, param19_init, sizeof(_Float16) * 1);
4650 static bool8 layout_init[] = {false};
4651 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4652 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param18, param19, layout}, {out4});
4653 // Phase 3, inputs and outputs
4654 model->identifyInputsAndOutputs(
4655 {in4},
4656 {out4});
4657 assert(model->isValid());
4658 }
4659
is_ignored_scale_nhwc_float16_5(int i)4660 inline bool is_ignored_scale_nhwc_float16_5(int i) {
4661 static std::set<int> ignore = {};
4662 return ignore.find(i) != ignore.end();
4663 }
4664
CreateModel_scale_nchw_5(Model * model)4665 void CreateModel_scale_nchw_5(Model *model) {
4666 OperandType type0(Type::BOOL, {});
4667 OperandType type33(Type::TENSOR_FLOAT32, {1, 1, 3, 3});
4668 OperandType type4(Type::FLOAT32, {});
4669 OperandType type50(Type::TENSOR_FLOAT32, {1, 1, 4, 4});
4670 // Phase 1, operands
4671 auto in4 = model->addOperand(&type50);
4672 auto param18 = model->addOperand(&type4);
4673 auto param19 = model->addOperand(&type4);
4674 auto layout = model->addOperand(&type0);
4675 auto out4 = model->addOperand(&type33);
4676 // Phase 2, operations
4677 static float param18_init[] = {0.9f};
4678 model->setOperandValue(param18, param18_init, sizeof(float) * 1);
4679 static float param19_init[] = {0.9f};
4680 model->setOperandValue(param19, param19_init, sizeof(float) * 1);
4681 static bool8 layout_init[] = {true};
4682 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4683 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param18, param19, layout}, {out4});
4684 // Phase 3, inputs and outputs
4685 model->identifyInputsAndOutputs(
4686 {in4},
4687 {out4});
4688 assert(model->isValid());
4689 }
4690
is_ignored_scale_nchw_5(int i)4691 inline bool is_ignored_scale_nchw_5(int i) {
4692 static std::set<int> ignore = {};
4693 return ignore.find(i) != ignore.end();
4694 }
4695
CreateModel_scale_nchw_relaxed_5(Model * model)4696 void CreateModel_scale_nchw_relaxed_5(Model *model) {
4697 OperandType type0(Type::BOOL, {});
4698 OperandType type33(Type::TENSOR_FLOAT32, {1, 1, 3, 3});
4699 OperandType type4(Type::FLOAT32, {});
4700 OperandType type50(Type::TENSOR_FLOAT32, {1, 1, 4, 4});
4701 // Phase 1, operands
4702 auto in4 = model->addOperand(&type50);
4703 auto param18 = model->addOperand(&type4);
4704 auto param19 = model->addOperand(&type4);
4705 auto layout = model->addOperand(&type0);
4706 auto out4 = model->addOperand(&type33);
4707 // Phase 2, operations
4708 static float param18_init[] = {0.9f};
4709 model->setOperandValue(param18, param18_init, sizeof(float) * 1);
4710 static float param19_init[] = {0.9f};
4711 model->setOperandValue(param19, param19_init, sizeof(float) * 1);
4712 static bool8 layout_init[] = {true};
4713 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4714 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param18, param19, layout}, {out4});
4715 // Phase 3, inputs and outputs
4716 model->identifyInputsAndOutputs(
4717 {in4},
4718 {out4});
4719 // Phase 4: set relaxed execution
4720 model->relaxComputationFloat32toFloat16(true);
4721 assert(model->isValid());
4722 }
4723
is_ignored_scale_nchw_relaxed_5(int i)4724 inline bool is_ignored_scale_nchw_relaxed_5(int i) {
4725 static std::set<int> ignore = {};
4726 return ignore.find(i) != ignore.end();
4727 }
4728
CreateModel_scale_nchw_quant8_5(Model * model)4729 void CreateModel_scale_nchw_quant8_5(Model *model) {
4730 OperandType type0(Type::BOOL, {});
4731 OperandType type4(Type::FLOAT32, {});
4732 OperandType type40(Type::TENSOR_QUANT8_ASYMM, {1, 1, 3, 3}, 0.25f, 100);
4733 OperandType type51(Type::TENSOR_QUANT8_ASYMM, {1, 1, 4, 4}, 0.25f, 100);
4734 // Phase 1, operands
4735 auto in4 = model->addOperand(&type51);
4736 auto param18 = model->addOperand(&type4);
4737 auto param19 = model->addOperand(&type4);
4738 auto layout = model->addOperand(&type0);
4739 auto out4 = model->addOperand(&type40);
4740 // Phase 2, operations
4741 static float param18_init[] = {0.9f};
4742 model->setOperandValue(param18, param18_init, sizeof(float) * 1);
4743 static float param19_init[] = {0.9f};
4744 model->setOperandValue(param19, param19_init, sizeof(float) * 1);
4745 static bool8 layout_init[] = {true};
4746 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4747 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param18, param19, layout}, {out4});
4748 // Phase 3, inputs and outputs
4749 model->identifyInputsAndOutputs(
4750 {in4},
4751 {out4});
4752 assert(model->isValid());
4753 }
4754
is_ignored_scale_nchw_quant8_5(int i)4755 inline bool is_ignored_scale_nchw_quant8_5(int i) {
4756 static std::set<int> ignore = {};
4757 return ignore.find(i) != ignore.end();
4758 }
4759
CreateModel_scale_nchw_float16_5(Model * model)4760 void CreateModel_scale_nchw_float16_5(Model *model) {
4761 OperandType type0(Type::BOOL, {});
4762 OperandType type29(Type::FLOAT16, {});
4763 OperandType type36(Type::TENSOR_FLOAT16, {1, 1, 3, 3});
4764 OperandType type52(Type::TENSOR_FLOAT16, {1, 1, 4, 4});
4765 // Phase 1, operands
4766 auto in4 = model->addOperand(&type52);
4767 auto param18 = model->addOperand(&type29);
4768 auto param19 = model->addOperand(&type29);
4769 auto layout = model->addOperand(&type0);
4770 auto out4 = model->addOperand(&type36);
4771 // Phase 2, operations
4772 static _Float16 param18_init[] = {0.8999999761581421f};
4773 model->setOperandValue(param18, param18_init, sizeof(_Float16) * 1);
4774 static _Float16 param19_init[] = {0.8999999761581421f};
4775 model->setOperandValue(param19, param19_init, sizeof(_Float16) * 1);
4776 static bool8 layout_init[] = {true};
4777 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4778 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param18, param19, layout}, {out4});
4779 // Phase 3, inputs and outputs
4780 model->identifyInputsAndOutputs(
4781 {in4},
4782 {out4});
4783 assert(model->isValid());
4784 }
4785
is_ignored_scale_nchw_float16_5(int i)4786 inline bool is_ignored_scale_nchw_float16_5(int i) {
4787 static std::set<int> ignore = {};
4788 return ignore.find(i) != ignore.end();
4789 }
4790
CreateModel_scale_dynamic_output_shape_nhwc_5(Model * model)4791 void CreateModel_scale_dynamic_output_shape_nhwc_5(Model *model) {
4792 OperandType type0(Type::BOOL, {});
4793 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
4794 OperandType type4(Type::FLOAT32, {});
4795 OperandType type7(Type::TENSOR_FLOAT32, {1, 4, 4, 1});
4796 // Phase 1, operands
4797 auto in4 = model->addOperand(&type7);
4798 auto param18 = model->addOperand(&type4);
4799 auto param19 = model->addOperand(&type4);
4800 auto layout = model->addOperand(&type0);
4801 auto out4 = model->addOperand(&type26);
4802 // Phase 2, operations
4803 static float param18_init[] = {0.9f};
4804 model->setOperandValue(param18, param18_init, sizeof(float) * 1);
4805 static float param19_init[] = {0.9f};
4806 model->setOperandValue(param19, param19_init, sizeof(float) * 1);
4807 static bool8 layout_init[] = {false};
4808 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4809 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param18, param19, layout}, {out4});
4810 // Phase 3, inputs and outputs
4811 model->identifyInputsAndOutputs(
4812 {in4},
4813 {out4});
4814 assert(model->isValid());
4815 }
4816
is_ignored_scale_dynamic_output_shape_nhwc_5(int i)4817 inline bool is_ignored_scale_dynamic_output_shape_nhwc_5(int i) {
4818 static std::set<int> ignore = {};
4819 return ignore.find(i) != ignore.end();
4820 }
4821
CreateModel_scale_dynamic_output_shape_nhwc_relaxed_5(Model * model)4822 void CreateModel_scale_dynamic_output_shape_nhwc_relaxed_5(Model *model) {
4823 OperandType type0(Type::BOOL, {});
4824 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
4825 OperandType type4(Type::FLOAT32, {});
4826 OperandType type7(Type::TENSOR_FLOAT32, {1, 4, 4, 1});
4827 // Phase 1, operands
4828 auto in4 = model->addOperand(&type7);
4829 auto param18 = model->addOperand(&type4);
4830 auto param19 = model->addOperand(&type4);
4831 auto layout = model->addOperand(&type0);
4832 auto out4 = model->addOperand(&type26);
4833 // Phase 2, operations
4834 static float param18_init[] = {0.9f};
4835 model->setOperandValue(param18, param18_init, sizeof(float) * 1);
4836 static float param19_init[] = {0.9f};
4837 model->setOperandValue(param19, param19_init, sizeof(float) * 1);
4838 static bool8 layout_init[] = {false};
4839 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4840 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param18, param19, layout}, {out4});
4841 // Phase 3, inputs and outputs
4842 model->identifyInputsAndOutputs(
4843 {in4},
4844 {out4});
4845 // Phase 4: set relaxed execution
4846 model->relaxComputationFloat32toFloat16(true);
4847 assert(model->isValid());
4848 }
4849
is_ignored_scale_dynamic_output_shape_nhwc_relaxed_5(int i)4850 inline bool is_ignored_scale_dynamic_output_shape_nhwc_relaxed_5(int i) {
4851 static std::set<int> ignore = {};
4852 return ignore.find(i) != ignore.end();
4853 }
4854
CreateModel_scale_dynamic_output_shape_nhwc_quant8_5(Model * model)4855 void CreateModel_scale_dynamic_output_shape_nhwc_quant8_5(Model *model) {
4856 OperandType type0(Type::BOOL, {});
4857 OperandType type4(Type::FLOAT32, {});
4858 OperandType type42(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 100);
4859 OperandType type48(Type::TENSOR_QUANT8_ASYMM, {1, 4, 4, 1}, 0.25f, 100);
4860 // Phase 1, operands
4861 auto in4 = model->addOperand(&type48);
4862 auto param18 = model->addOperand(&type4);
4863 auto param19 = model->addOperand(&type4);
4864 auto layout = model->addOperand(&type0);
4865 auto out4 = model->addOperand(&type42);
4866 // Phase 2, operations
4867 static float param18_init[] = {0.9f};
4868 model->setOperandValue(param18, param18_init, sizeof(float) * 1);
4869 static float param19_init[] = {0.9f};
4870 model->setOperandValue(param19, param19_init, sizeof(float) * 1);
4871 static bool8 layout_init[] = {false};
4872 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4873 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param18, param19, layout}, {out4});
4874 // Phase 3, inputs and outputs
4875 model->identifyInputsAndOutputs(
4876 {in4},
4877 {out4});
4878 assert(model->isValid());
4879 }
4880
is_ignored_scale_dynamic_output_shape_nhwc_quant8_5(int i)4881 inline bool is_ignored_scale_dynamic_output_shape_nhwc_quant8_5(int i) {
4882 static std::set<int> ignore = {};
4883 return ignore.find(i) != ignore.end();
4884 }
4885
CreateModel_scale_dynamic_output_shape_nhwc_float16_5(Model * model)4886 void CreateModel_scale_dynamic_output_shape_nhwc_float16_5(Model *model) {
4887 OperandType type0(Type::BOOL, {});
4888 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
4889 OperandType type29(Type::FLOAT16, {});
4890 OperandType type49(Type::TENSOR_FLOAT16, {1, 4, 4, 1});
4891 // Phase 1, operands
4892 auto in4 = model->addOperand(&type49);
4893 auto param18 = model->addOperand(&type29);
4894 auto param19 = model->addOperand(&type29);
4895 auto layout = model->addOperand(&type0);
4896 auto out4 = model->addOperand(&type28);
4897 // Phase 2, operations
4898 static _Float16 param18_init[] = {0.8999999761581421f};
4899 model->setOperandValue(param18, param18_init, sizeof(_Float16) * 1);
4900 static _Float16 param19_init[] = {0.8999999761581421f};
4901 model->setOperandValue(param19, param19_init, sizeof(_Float16) * 1);
4902 static bool8 layout_init[] = {false};
4903 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4904 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param18, param19, layout}, {out4});
4905 // Phase 3, inputs and outputs
4906 model->identifyInputsAndOutputs(
4907 {in4},
4908 {out4});
4909 assert(model->isValid());
4910 }
4911
is_ignored_scale_dynamic_output_shape_nhwc_float16_5(int i)4912 inline bool is_ignored_scale_dynamic_output_shape_nhwc_float16_5(int i) {
4913 static std::set<int> ignore = {};
4914 return ignore.find(i) != ignore.end();
4915 }
4916
CreateModel_scale_dynamic_output_shape_nchw_5(Model * model)4917 void CreateModel_scale_dynamic_output_shape_nchw_5(Model *model) {
4918 OperandType type0(Type::BOOL, {});
4919 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
4920 OperandType type4(Type::FLOAT32, {});
4921 OperandType type50(Type::TENSOR_FLOAT32, {1, 1, 4, 4});
4922 // Phase 1, operands
4923 auto in4 = model->addOperand(&type50);
4924 auto param18 = model->addOperand(&type4);
4925 auto param19 = model->addOperand(&type4);
4926 auto layout = model->addOperand(&type0);
4927 auto out4 = model->addOperand(&type26);
4928 // Phase 2, operations
4929 static float param18_init[] = {0.9f};
4930 model->setOperandValue(param18, param18_init, sizeof(float) * 1);
4931 static float param19_init[] = {0.9f};
4932 model->setOperandValue(param19, param19_init, sizeof(float) * 1);
4933 static bool8 layout_init[] = {true};
4934 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4935 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param18, param19, layout}, {out4});
4936 // Phase 3, inputs and outputs
4937 model->identifyInputsAndOutputs(
4938 {in4},
4939 {out4});
4940 assert(model->isValid());
4941 }
4942
is_ignored_scale_dynamic_output_shape_nchw_5(int i)4943 inline bool is_ignored_scale_dynamic_output_shape_nchw_5(int i) {
4944 static std::set<int> ignore = {};
4945 return ignore.find(i) != ignore.end();
4946 }
4947
CreateModel_scale_dynamic_output_shape_nchw_relaxed_5(Model * model)4948 void CreateModel_scale_dynamic_output_shape_nchw_relaxed_5(Model *model) {
4949 OperandType type0(Type::BOOL, {});
4950 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
4951 OperandType type4(Type::FLOAT32, {});
4952 OperandType type50(Type::TENSOR_FLOAT32, {1, 1, 4, 4});
4953 // Phase 1, operands
4954 auto in4 = model->addOperand(&type50);
4955 auto param18 = model->addOperand(&type4);
4956 auto param19 = model->addOperand(&type4);
4957 auto layout = model->addOperand(&type0);
4958 auto out4 = model->addOperand(&type26);
4959 // Phase 2, operations
4960 static float param18_init[] = {0.9f};
4961 model->setOperandValue(param18, param18_init, sizeof(float) * 1);
4962 static float param19_init[] = {0.9f};
4963 model->setOperandValue(param19, param19_init, sizeof(float) * 1);
4964 static bool8 layout_init[] = {true};
4965 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4966 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param18, param19, layout}, {out4});
4967 // Phase 3, inputs and outputs
4968 model->identifyInputsAndOutputs(
4969 {in4},
4970 {out4});
4971 // Phase 4: set relaxed execution
4972 model->relaxComputationFloat32toFloat16(true);
4973 assert(model->isValid());
4974 }
4975
is_ignored_scale_dynamic_output_shape_nchw_relaxed_5(int i)4976 inline bool is_ignored_scale_dynamic_output_shape_nchw_relaxed_5(int i) {
4977 static std::set<int> ignore = {};
4978 return ignore.find(i) != ignore.end();
4979 }
4980
CreateModel_scale_dynamic_output_shape_nchw_quant8_5(Model * model)4981 void CreateModel_scale_dynamic_output_shape_nchw_quant8_5(Model *model) {
4982 OperandType type0(Type::BOOL, {});
4983 OperandType type4(Type::FLOAT32, {});
4984 OperandType type42(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 100);
4985 OperandType type51(Type::TENSOR_QUANT8_ASYMM, {1, 1, 4, 4}, 0.25f, 100);
4986 // Phase 1, operands
4987 auto in4 = model->addOperand(&type51);
4988 auto param18 = model->addOperand(&type4);
4989 auto param19 = model->addOperand(&type4);
4990 auto layout = model->addOperand(&type0);
4991 auto out4 = model->addOperand(&type42);
4992 // Phase 2, operations
4993 static float param18_init[] = {0.9f};
4994 model->setOperandValue(param18, param18_init, sizeof(float) * 1);
4995 static float param19_init[] = {0.9f};
4996 model->setOperandValue(param19, param19_init, sizeof(float) * 1);
4997 static bool8 layout_init[] = {true};
4998 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
4999 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param18, param19, layout}, {out4});
5000 // Phase 3, inputs and outputs
5001 model->identifyInputsAndOutputs(
5002 {in4},
5003 {out4});
5004 assert(model->isValid());
5005 }
5006
is_ignored_scale_dynamic_output_shape_nchw_quant8_5(int i)5007 inline bool is_ignored_scale_dynamic_output_shape_nchw_quant8_5(int i) {
5008 static std::set<int> ignore = {};
5009 return ignore.find(i) != ignore.end();
5010 }
5011
CreateModel_scale_dynamic_output_shape_nchw_float16_5(Model * model)5012 void CreateModel_scale_dynamic_output_shape_nchw_float16_5(Model *model) {
5013 OperandType type0(Type::BOOL, {});
5014 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
5015 OperandType type29(Type::FLOAT16, {});
5016 OperandType type52(Type::TENSOR_FLOAT16, {1, 1, 4, 4});
5017 // Phase 1, operands
5018 auto in4 = model->addOperand(&type52);
5019 auto param18 = model->addOperand(&type29);
5020 auto param19 = model->addOperand(&type29);
5021 auto layout = model->addOperand(&type0);
5022 auto out4 = model->addOperand(&type28);
5023 // Phase 2, operations
5024 static _Float16 param18_init[] = {0.8999999761581421f};
5025 model->setOperandValue(param18, param18_init, sizeof(_Float16) * 1);
5026 static _Float16 param19_init[] = {0.8999999761581421f};
5027 model->setOperandValue(param19, param19_init, sizeof(_Float16) * 1);
5028 static bool8 layout_init[] = {true};
5029 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5030 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in4, param18, param19, layout}, {out4});
5031 // Phase 3, inputs and outputs
5032 model->identifyInputsAndOutputs(
5033 {in4},
5034 {out4});
5035 assert(model->isValid());
5036 }
5037
is_ignored_scale_dynamic_output_shape_nchw_float16_5(int i)5038 inline bool is_ignored_scale_dynamic_output_shape_nchw_float16_5(int i) {
5039 static std::set<int> ignore = {};
5040 return ignore.find(i) != ignore.end();
5041 }
5042
CreateModel_shape_nhwc_6(Model * model)5043 void CreateModel_shape_nhwc_6(Model *model) {
5044 OperandType type0(Type::BOOL, {});
5045 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
5046 OperandType type3(Type::INT32, {});
5047 OperandType type8(Type::TENSOR_FLOAT32, {1, 5, 2, 1});
5048 // Phase 1, operands
5049 auto in5 = model->addOperand(&type1);
5050 auto param20 = model->addOperand(&type3);
5051 auto param21 = model->addOperand(&type3);
5052 auto layout = model->addOperand(&type0);
5053 auto out5 = model->addOperand(&type8);
5054 // Phase 2, operations
5055 static int32_t param20_init[] = {2};
5056 model->setOperandValue(param20, param20_init, sizeof(int32_t) * 1);
5057 static int32_t param21_init[] = {5};
5058 model->setOperandValue(param21, param21_init, sizeof(int32_t) * 1);
5059 static bool8 layout_init[] = {false};
5060 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5061 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param20, param21, layout}, {out5});
5062 // Phase 3, inputs and outputs
5063 model->identifyInputsAndOutputs(
5064 {in5},
5065 {out5});
5066 assert(model->isValid());
5067 }
5068
is_ignored_shape_nhwc_6(int i)5069 inline bool is_ignored_shape_nhwc_6(int i) {
5070 static std::set<int> ignore = {};
5071 return ignore.find(i) != ignore.end();
5072 }
5073
CreateModel_shape_nhwc_relaxed_6(Model * model)5074 void CreateModel_shape_nhwc_relaxed_6(Model *model) {
5075 OperandType type0(Type::BOOL, {});
5076 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
5077 OperandType type3(Type::INT32, {});
5078 OperandType type8(Type::TENSOR_FLOAT32, {1, 5, 2, 1});
5079 // Phase 1, operands
5080 auto in5 = model->addOperand(&type1);
5081 auto param20 = model->addOperand(&type3);
5082 auto param21 = model->addOperand(&type3);
5083 auto layout = model->addOperand(&type0);
5084 auto out5 = model->addOperand(&type8);
5085 // Phase 2, operations
5086 static int32_t param20_init[] = {2};
5087 model->setOperandValue(param20, param20_init, sizeof(int32_t) * 1);
5088 static int32_t param21_init[] = {5};
5089 model->setOperandValue(param21, param21_init, sizeof(int32_t) * 1);
5090 static bool8 layout_init[] = {false};
5091 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5092 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param20, param21, layout}, {out5});
5093 // Phase 3, inputs and outputs
5094 model->identifyInputsAndOutputs(
5095 {in5},
5096 {out5});
5097 // Phase 4: set relaxed execution
5098 model->relaxComputationFloat32toFloat16(true);
5099 assert(model->isValid());
5100 }
5101
is_ignored_shape_nhwc_relaxed_6(int i)5102 inline bool is_ignored_shape_nhwc_relaxed_6(int i) {
5103 static std::set<int> ignore = {};
5104 return ignore.find(i) != ignore.end();
5105 }
5106
CreateModel_shape_nhwc_quant8_6(Model * model)5107 void CreateModel_shape_nhwc_quant8_6(Model *model) {
5108 OperandType type0(Type::BOOL, {});
5109 OperandType type3(Type::INT32, {});
5110 OperandType type39(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.25f, 100);
5111 OperandType type53(Type::TENSOR_QUANT8_ASYMM, {1, 5, 2, 1}, 0.25f, 100);
5112 // Phase 1, operands
5113 auto in5 = model->addOperand(&type39);
5114 auto param20 = model->addOperand(&type3);
5115 auto param21 = model->addOperand(&type3);
5116 auto layout = model->addOperand(&type0);
5117 auto out5 = model->addOperand(&type53);
5118 // Phase 2, operations
5119 static int32_t param20_init[] = {2};
5120 model->setOperandValue(param20, param20_init, sizeof(int32_t) * 1);
5121 static int32_t param21_init[] = {5};
5122 model->setOperandValue(param21, param21_init, sizeof(int32_t) * 1);
5123 static bool8 layout_init[] = {false};
5124 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5125 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param20, param21, layout}, {out5});
5126 // Phase 3, inputs and outputs
5127 model->identifyInputsAndOutputs(
5128 {in5},
5129 {out5});
5130 assert(model->isValid());
5131 }
5132
is_ignored_shape_nhwc_quant8_6(int i)5133 inline bool is_ignored_shape_nhwc_quant8_6(int i) {
5134 static std::set<int> ignore = {};
5135 return ignore.find(i) != ignore.end();
5136 }
5137
CreateModel_shape_nhwc_float16_6(Model * model)5138 void CreateModel_shape_nhwc_float16_6(Model *model) {
5139 OperandType type0(Type::BOOL, {});
5140 OperandType type21(Type::TENSOR_FLOAT16, {1, 2, 2, 1});
5141 OperandType type3(Type::INT32, {});
5142 OperandType type54(Type::TENSOR_FLOAT16, {1, 5, 2, 1});
5143 // Phase 1, operands
5144 auto in5 = model->addOperand(&type21);
5145 auto param20 = model->addOperand(&type3);
5146 auto param21 = model->addOperand(&type3);
5147 auto layout = model->addOperand(&type0);
5148 auto out5 = model->addOperand(&type54);
5149 // Phase 2, operations
5150 static int32_t param20_init[] = {2};
5151 model->setOperandValue(param20, param20_init, sizeof(int32_t) * 1);
5152 static int32_t param21_init[] = {5};
5153 model->setOperandValue(param21, param21_init, sizeof(int32_t) * 1);
5154 static bool8 layout_init[] = {false};
5155 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5156 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param20, param21, layout}, {out5});
5157 // Phase 3, inputs and outputs
5158 model->identifyInputsAndOutputs(
5159 {in5},
5160 {out5});
5161 assert(model->isValid());
5162 }
5163
is_ignored_shape_nhwc_float16_6(int i)5164 inline bool is_ignored_shape_nhwc_float16_6(int i) {
5165 static std::set<int> ignore = {};
5166 return ignore.find(i) != ignore.end();
5167 }
5168
CreateModel_shape_nchw_6(Model * model)5169 void CreateModel_shape_nchw_6(Model *model) {
5170 OperandType type0(Type::BOOL, {});
5171 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
5172 OperandType type3(Type::INT32, {});
5173 OperandType type55(Type::TENSOR_FLOAT32, {1, 1, 5, 2});
5174 // Phase 1, operands
5175 auto in5 = model->addOperand(&type23);
5176 auto param20 = model->addOperand(&type3);
5177 auto param21 = model->addOperand(&type3);
5178 auto layout = model->addOperand(&type0);
5179 auto out5 = model->addOperand(&type55);
5180 // Phase 2, operations
5181 static int32_t param20_init[] = {2};
5182 model->setOperandValue(param20, param20_init, sizeof(int32_t) * 1);
5183 static int32_t param21_init[] = {5};
5184 model->setOperandValue(param21, param21_init, sizeof(int32_t) * 1);
5185 static bool8 layout_init[] = {true};
5186 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5187 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param20, param21, layout}, {out5});
5188 // Phase 3, inputs and outputs
5189 model->identifyInputsAndOutputs(
5190 {in5},
5191 {out5});
5192 assert(model->isValid());
5193 }
5194
is_ignored_shape_nchw_6(int i)5195 inline bool is_ignored_shape_nchw_6(int i) {
5196 static std::set<int> ignore = {};
5197 return ignore.find(i) != ignore.end();
5198 }
5199
CreateModel_shape_nchw_relaxed_6(Model * model)5200 void CreateModel_shape_nchw_relaxed_6(Model *model) {
5201 OperandType type0(Type::BOOL, {});
5202 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
5203 OperandType type3(Type::INT32, {});
5204 OperandType type55(Type::TENSOR_FLOAT32, {1, 1, 5, 2});
5205 // Phase 1, operands
5206 auto in5 = model->addOperand(&type23);
5207 auto param20 = model->addOperand(&type3);
5208 auto param21 = model->addOperand(&type3);
5209 auto layout = model->addOperand(&type0);
5210 auto out5 = model->addOperand(&type55);
5211 // Phase 2, operations
5212 static int32_t param20_init[] = {2};
5213 model->setOperandValue(param20, param20_init, sizeof(int32_t) * 1);
5214 static int32_t param21_init[] = {5};
5215 model->setOperandValue(param21, param21_init, sizeof(int32_t) * 1);
5216 static bool8 layout_init[] = {true};
5217 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5218 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param20, param21, layout}, {out5});
5219 // Phase 3, inputs and outputs
5220 model->identifyInputsAndOutputs(
5221 {in5},
5222 {out5});
5223 // Phase 4: set relaxed execution
5224 model->relaxComputationFloat32toFloat16(true);
5225 assert(model->isValid());
5226 }
5227
is_ignored_shape_nchw_relaxed_6(int i)5228 inline bool is_ignored_shape_nchw_relaxed_6(int i) {
5229 static std::set<int> ignore = {};
5230 return ignore.find(i) != ignore.end();
5231 }
5232
CreateModel_shape_nchw_quant8_6(Model * model)5233 void CreateModel_shape_nchw_quant8_6(Model *model) {
5234 OperandType type0(Type::BOOL, {});
5235 OperandType type3(Type::INT32, {});
5236 OperandType type41(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 2}, 0.25f, 100);
5237 OperandType type56(Type::TENSOR_QUANT8_ASYMM, {1, 1, 5, 2}, 0.25f, 100);
5238 // Phase 1, operands
5239 auto in5 = model->addOperand(&type41);
5240 auto param20 = model->addOperand(&type3);
5241 auto param21 = model->addOperand(&type3);
5242 auto layout = model->addOperand(&type0);
5243 auto out5 = model->addOperand(&type56);
5244 // Phase 2, operations
5245 static int32_t param20_init[] = {2};
5246 model->setOperandValue(param20, param20_init, sizeof(int32_t) * 1);
5247 static int32_t param21_init[] = {5};
5248 model->setOperandValue(param21, param21_init, sizeof(int32_t) * 1);
5249 static bool8 layout_init[] = {true};
5250 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5251 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param20, param21, layout}, {out5});
5252 // Phase 3, inputs and outputs
5253 model->identifyInputsAndOutputs(
5254 {in5},
5255 {out5});
5256 assert(model->isValid());
5257 }
5258
is_ignored_shape_nchw_quant8_6(int i)5259 inline bool is_ignored_shape_nchw_quant8_6(int i) {
5260 static std::set<int> ignore = {};
5261 return ignore.find(i) != ignore.end();
5262 }
5263
CreateModel_shape_nchw_float16_6(Model * model)5264 void CreateModel_shape_nchw_float16_6(Model *model) {
5265 OperandType type0(Type::BOOL, {});
5266 OperandType type25(Type::TENSOR_FLOAT16, {1, 1, 2, 2});
5267 OperandType type3(Type::INT32, {});
5268 OperandType type57(Type::TENSOR_FLOAT16, {1, 1, 5, 2});
5269 // Phase 1, operands
5270 auto in5 = model->addOperand(&type25);
5271 auto param20 = model->addOperand(&type3);
5272 auto param21 = model->addOperand(&type3);
5273 auto layout = model->addOperand(&type0);
5274 auto out5 = model->addOperand(&type57);
5275 // Phase 2, operations
5276 static int32_t param20_init[] = {2};
5277 model->setOperandValue(param20, param20_init, sizeof(int32_t) * 1);
5278 static int32_t param21_init[] = {5};
5279 model->setOperandValue(param21, param21_init, sizeof(int32_t) * 1);
5280 static bool8 layout_init[] = {true};
5281 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5282 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param20, param21, layout}, {out5});
5283 // Phase 3, inputs and outputs
5284 model->identifyInputsAndOutputs(
5285 {in5},
5286 {out5});
5287 assert(model->isValid());
5288 }
5289
is_ignored_shape_nchw_float16_6(int i)5290 inline bool is_ignored_shape_nchw_float16_6(int i) {
5291 static std::set<int> ignore = {};
5292 return ignore.find(i) != ignore.end();
5293 }
5294
CreateModel_shape_dynamic_output_shape_nhwc_6(Model * model)5295 void CreateModel_shape_dynamic_output_shape_nhwc_6(Model *model) {
5296 OperandType type0(Type::BOOL, {});
5297 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
5298 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
5299 OperandType type3(Type::INT32, {});
5300 // Phase 1, operands
5301 auto in5 = model->addOperand(&type1);
5302 auto param20 = model->addOperand(&type3);
5303 auto param21 = model->addOperand(&type3);
5304 auto layout = model->addOperand(&type0);
5305 auto out5 = model->addOperand(&type26);
5306 // Phase 2, operations
5307 static int32_t param20_init[] = {2};
5308 model->setOperandValue(param20, param20_init, sizeof(int32_t) * 1);
5309 static int32_t param21_init[] = {5};
5310 model->setOperandValue(param21, param21_init, sizeof(int32_t) * 1);
5311 static bool8 layout_init[] = {false};
5312 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5313 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param20, param21, layout}, {out5});
5314 // Phase 3, inputs and outputs
5315 model->identifyInputsAndOutputs(
5316 {in5},
5317 {out5});
5318 assert(model->isValid());
5319 }
5320
is_ignored_shape_dynamic_output_shape_nhwc_6(int i)5321 inline bool is_ignored_shape_dynamic_output_shape_nhwc_6(int i) {
5322 static std::set<int> ignore = {};
5323 return ignore.find(i) != ignore.end();
5324 }
5325
CreateModel_shape_dynamic_output_shape_nhwc_relaxed_6(Model * model)5326 void CreateModel_shape_dynamic_output_shape_nhwc_relaxed_6(Model *model) {
5327 OperandType type0(Type::BOOL, {});
5328 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
5329 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
5330 OperandType type3(Type::INT32, {});
5331 // Phase 1, operands
5332 auto in5 = model->addOperand(&type1);
5333 auto param20 = model->addOperand(&type3);
5334 auto param21 = model->addOperand(&type3);
5335 auto layout = model->addOperand(&type0);
5336 auto out5 = model->addOperand(&type26);
5337 // Phase 2, operations
5338 static int32_t param20_init[] = {2};
5339 model->setOperandValue(param20, param20_init, sizeof(int32_t) * 1);
5340 static int32_t param21_init[] = {5};
5341 model->setOperandValue(param21, param21_init, sizeof(int32_t) * 1);
5342 static bool8 layout_init[] = {false};
5343 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5344 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param20, param21, layout}, {out5});
5345 // Phase 3, inputs and outputs
5346 model->identifyInputsAndOutputs(
5347 {in5},
5348 {out5});
5349 // Phase 4: set relaxed execution
5350 model->relaxComputationFloat32toFloat16(true);
5351 assert(model->isValid());
5352 }
5353
is_ignored_shape_dynamic_output_shape_nhwc_relaxed_6(int i)5354 inline bool is_ignored_shape_dynamic_output_shape_nhwc_relaxed_6(int i) {
5355 static std::set<int> ignore = {};
5356 return ignore.find(i) != ignore.end();
5357 }
5358
CreateModel_shape_dynamic_output_shape_nhwc_quant8_6(Model * model)5359 void CreateModel_shape_dynamic_output_shape_nhwc_quant8_6(Model *model) {
5360 OperandType type0(Type::BOOL, {});
5361 OperandType type3(Type::INT32, {});
5362 OperandType type39(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.25f, 100);
5363 OperandType type42(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 100);
5364 // Phase 1, operands
5365 auto in5 = model->addOperand(&type39);
5366 auto param20 = model->addOperand(&type3);
5367 auto param21 = model->addOperand(&type3);
5368 auto layout = model->addOperand(&type0);
5369 auto out5 = model->addOperand(&type42);
5370 // Phase 2, operations
5371 static int32_t param20_init[] = {2};
5372 model->setOperandValue(param20, param20_init, sizeof(int32_t) * 1);
5373 static int32_t param21_init[] = {5};
5374 model->setOperandValue(param21, param21_init, sizeof(int32_t) * 1);
5375 static bool8 layout_init[] = {false};
5376 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5377 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param20, param21, layout}, {out5});
5378 // Phase 3, inputs and outputs
5379 model->identifyInputsAndOutputs(
5380 {in5},
5381 {out5});
5382 assert(model->isValid());
5383 }
5384
is_ignored_shape_dynamic_output_shape_nhwc_quant8_6(int i)5385 inline bool is_ignored_shape_dynamic_output_shape_nhwc_quant8_6(int i) {
5386 static std::set<int> ignore = {};
5387 return ignore.find(i) != ignore.end();
5388 }
5389
CreateModel_shape_dynamic_output_shape_nhwc_float16_6(Model * model)5390 void CreateModel_shape_dynamic_output_shape_nhwc_float16_6(Model *model) {
5391 OperandType type0(Type::BOOL, {});
5392 OperandType type21(Type::TENSOR_FLOAT16, {1, 2, 2, 1});
5393 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
5394 OperandType type3(Type::INT32, {});
5395 // Phase 1, operands
5396 auto in5 = model->addOperand(&type21);
5397 auto param20 = model->addOperand(&type3);
5398 auto param21 = model->addOperand(&type3);
5399 auto layout = model->addOperand(&type0);
5400 auto out5 = model->addOperand(&type28);
5401 // Phase 2, operations
5402 static int32_t param20_init[] = {2};
5403 model->setOperandValue(param20, param20_init, sizeof(int32_t) * 1);
5404 static int32_t param21_init[] = {5};
5405 model->setOperandValue(param21, param21_init, sizeof(int32_t) * 1);
5406 static bool8 layout_init[] = {false};
5407 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5408 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param20, param21, layout}, {out5});
5409 // Phase 3, inputs and outputs
5410 model->identifyInputsAndOutputs(
5411 {in5},
5412 {out5});
5413 assert(model->isValid());
5414 }
5415
is_ignored_shape_dynamic_output_shape_nhwc_float16_6(int i)5416 inline bool is_ignored_shape_dynamic_output_shape_nhwc_float16_6(int i) {
5417 static std::set<int> ignore = {};
5418 return ignore.find(i) != ignore.end();
5419 }
5420
CreateModel_shape_dynamic_output_shape_nchw_6(Model * model)5421 void CreateModel_shape_dynamic_output_shape_nchw_6(Model *model) {
5422 OperandType type0(Type::BOOL, {});
5423 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
5424 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
5425 OperandType type3(Type::INT32, {});
5426 // Phase 1, operands
5427 auto in5 = model->addOperand(&type23);
5428 auto param20 = model->addOperand(&type3);
5429 auto param21 = model->addOperand(&type3);
5430 auto layout = model->addOperand(&type0);
5431 auto out5 = model->addOperand(&type26);
5432 // Phase 2, operations
5433 static int32_t param20_init[] = {2};
5434 model->setOperandValue(param20, param20_init, sizeof(int32_t) * 1);
5435 static int32_t param21_init[] = {5};
5436 model->setOperandValue(param21, param21_init, sizeof(int32_t) * 1);
5437 static bool8 layout_init[] = {true};
5438 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5439 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param20, param21, layout}, {out5});
5440 // Phase 3, inputs and outputs
5441 model->identifyInputsAndOutputs(
5442 {in5},
5443 {out5});
5444 assert(model->isValid());
5445 }
5446
is_ignored_shape_dynamic_output_shape_nchw_6(int i)5447 inline bool is_ignored_shape_dynamic_output_shape_nchw_6(int i) {
5448 static std::set<int> ignore = {};
5449 return ignore.find(i) != ignore.end();
5450 }
5451
CreateModel_shape_dynamic_output_shape_nchw_relaxed_6(Model * model)5452 void CreateModel_shape_dynamic_output_shape_nchw_relaxed_6(Model *model) {
5453 OperandType type0(Type::BOOL, {});
5454 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
5455 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
5456 OperandType type3(Type::INT32, {});
5457 // Phase 1, operands
5458 auto in5 = model->addOperand(&type23);
5459 auto param20 = model->addOperand(&type3);
5460 auto param21 = model->addOperand(&type3);
5461 auto layout = model->addOperand(&type0);
5462 auto out5 = model->addOperand(&type26);
5463 // Phase 2, operations
5464 static int32_t param20_init[] = {2};
5465 model->setOperandValue(param20, param20_init, sizeof(int32_t) * 1);
5466 static int32_t param21_init[] = {5};
5467 model->setOperandValue(param21, param21_init, sizeof(int32_t) * 1);
5468 static bool8 layout_init[] = {true};
5469 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5470 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param20, param21, layout}, {out5});
5471 // Phase 3, inputs and outputs
5472 model->identifyInputsAndOutputs(
5473 {in5},
5474 {out5});
5475 // Phase 4: set relaxed execution
5476 model->relaxComputationFloat32toFloat16(true);
5477 assert(model->isValid());
5478 }
5479
is_ignored_shape_dynamic_output_shape_nchw_relaxed_6(int i)5480 inline bool is_ignored_shape_dynamic_output_shape_nchw_relaxed_6(int i) {
5481 static std::set<int> ignore = {};
5482 return ignore.find(i) != ignore.end();
5483 }
5484
CreateModel_shape_dynamic_output_shape_nchw_quant8_6(Model * model)5485 void CreateModel_shape_dynamic_output_shape_nchw_quant8_6(Model *model) {
5486 OperandType type0(Type::BOOL, {});
5487 OperandType type3(Type::INT32, {});
5488 OperandType type41(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 2}, 0.25f, 100);
5489 OperandType type42(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 100);
5490 // Phase 1, operands
5491 auto in5 = model->addOperand(&type41);
5492 auto param20 = model->addOperand(&type3);
5493 auto param21 = model->addOperand(&type3);
5494 auto layout = model->addOperand(&type0);
5495 auto out5 = model->addOperand(&type42);
5496 // Phase 2, operations
5497 static int32_t param20_init[] = {2};
5498 model->setOperandValue(param20, param20_init, sizeof(int32_t) * 1);
5499 static int32_t param21_init[] = {5};
5500 model->setOperandValue(param21, param21_init, sizeof(int32_t) * 1);
5501 static bool8 layout_init[] = {true};
5502 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5503 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param20, param21, layout}, {out5});
5504 // Phase 3, inputs and outputs
5505 model->identifyInputsAndOutputs(
5506 {in5},
5507 {out5});
5508 assert(model->isValid());
5509 }
5510
is_ignored_shape_dynamic_output_shape_nchw_quant8_6(int i)5511 inline bool is_ignored_shape_dynamic_output_shape_nchw_quant8_6(int i) {
5512 static std::set<int> ignore = {};
5513 return ignore.find(i) != ignore.end();
5514 }
5515
CreateModel_shape_dynamic_output_shape_nchw_float16_6(Model * model)5516 void CreateModel_shape_dynamic_output_shape_nchw_float16_6(Model *model) {
5517 OperandType type0(Type::BOOL, {});
5518 OperandType type25(Type::TENSOR_FLOAT16, {1, 1, 2, 2});
5519 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
5520 OperandType type3(Type::INT32, {});
5521 // Phase 1, operands
5522 auto in5 = model->addOperand(&type25);
5523 auto param20 = model->addOperand(&type3);
5524 auto param21 = model->addOperand(&type3);
5525 auto layout = model->addOperand(&type0);
5526 auto out5 = model->addOperand(&type28);
5527 // Phase 2, operations
5528 static int32_t param20_init[] = {2};
5529 model->setOperandValue(param20, param20_init, sizeof(int32_t) * 1);
5530 static int32_t param21_init[] = {5};
5531 model->setOperandValue(param21, param21_init, sizeof(int32_t) * 1);
5532 static bool8 layout_init[] = {true};
5533 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5534 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param20, param21, layout}, {out5});
5535 // Phase 3, inputs and outputs
5536 model->identifyInputsAndOutputs(
5537 {in5},
5538 {out5});
5539 assert(model->isValid());
5540 }
5541
is_ignored_shape_dynamic_output_shape_nchw_float16_6(int i)5542 inline bool is_ignored_shape_dynamic_output_shape_nchw_float16_6(int i) {
5543 static std::set<int> ignore = {};
5544 return ignore.find(i) != ignore.end();
5545 }
5546
CreateModel_scale_nhwc_6(Model * model)5547 void CreateModel_scale_nhwc_6(Model *model) {
5548 OperandType type0(Type::BOOL, {});
5549 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
5550 OperandType type4(Type::FLOAT32, {});
5551 OperandType type8(Type::TENSOR_FLOAT32, {1, 5, 2, 1});
5552 // Phase 1, operands
5553 auto in5 = model->addOperand(&type1);
5554 auto param22 = model->addOperand(&type4);
5555 auto param23 = model->addOperand(&type4);
5556 auto layout = model->addOperand(&type0);
5557 auto out5 = model->addOperand(&type8);
5558 // Phase 2, operations
5559 static float param22_init[] = {1.4f};
5560 model->setOperandValue(param22, param22_init, sizeof(float) * 1);
5561 static float param23_init[] = {2.8f};
5562 model->setOperandValue(param23, param23_init, sizeof(float) * 1);
5563 static bool8 layout_init[] = {false};
5564 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5565 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param22, param23, layout}, {out5});
5566 // Phase 3, inputs and outputs
5567 model->identifyInputsAndOutputs(
5568 {in5},
5569 {out5});
5570 assert(model->isValid());
5571 }
5572
is_ignored_scale_nhwc_6(int i)5573 inline bool is_ignored_scale_nhwc_6(int i) {
5574 static std::set<int> ignore = {};
5575 return ignore.find(i) != ignore.end();
5576 }
5577
CreateModel_scale_nhwc_relaxed_6(Model * model)5578 void CreateModel_scale_nhwc_relaxed_6(Model *model) {
5579 OperandType type0(Type::BOOL, {});
5580 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
5581 OperandType type4(Type::FLOAT32, {});
5582 OperandType type8(Type::TENSOR_FLOAT32, {1, 5, 2, 1});
5583 // Phase 1, operands
5584 auto in5 = model->addOperand(&type1);
5585 auto param22 = model->addOperand(&type4);
5586 auto param23 = model->addOperand(&type4);
5587 auto layout = model->addOperand(&type0);
5588 auto out5 = model->addOperand(&type8);
5589 // Phase 2, operations
5590 static float param22_init[] = {1.4f};
5591 model->setOperandValue(param22, param22_init, sizeof(float) * 1);
5592 static float param23_init[] = {2.8f};
5593 model->setOperandValue(param23, param23_init, sizeof(float) * 1);
5594 static bool8 layout_init[] = {false};
5595 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5596 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param22, param23, layout}, {out5});
5597 // Phase 3, inputs and outputs
5598 model->identifyInputsAndOutputs(
5599 {in5},
5600 {out5});
5601 // Phase 4: set relaxed execution
5602 model->relaxComputationFloat32toFloat16(true);
5603 assert(model->isValid());
5604 }
5605
is_ignored_scale_nhwc_relaxed_6(int i)5606 inline bool is_ignored_scale_nhwc_relaxed_6(int i) {
5607 static std::set<int> ignore = {};
5608 return ignore.find(i) != ignore.end();
5609 }
5610
CreateModel_scale_nhwc_quant8_6(Model * model)5611 void CreateModel_scale_nhwc_quant8_6(Model *model) {
5612 OperandType type0(Type::BOOL, {});
5613 OperandType type39(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.25f, 100);
5614 OperandType type4(Type::FLOAT32, {});
5615 OperandType type53(Type::TENSOR_QUANT8_ASYMM, {1, 5, 2, 1}, 0.25f, 100);
5616 // Phase 1, operands
5617 auto in5 = model->addOperand(&type39);
5618 auto param22 = model->addOperand(&type4);
5619 auto param23 = model->addOperand(&type4);
5620 auto layout = model->addOperand(&type0);
5621 auto out5 = model->addOperand(&type53);
5622 // Phase 2, operations
5623 static float param22_init[] = {1.4f};
5624 model->setOperandValue(param22, param22_init, sizeof(float) * 1);
5625 static float param23_init[] = {2.8f};
5626 model->setOperandValue(param23, param23_init, sizeof(float) * 1);
5627 static bool8 layout_init[] = {false};
5628 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5629 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param22, param23, layout}, {out5});
5630 // Phase 3, inputs and outputs
5631 model->identifyInputsAndOutputs(
5632 {in5},
5633 {out5});
5634 assert(model->isValid());
5635 }
5636
is_ignored_scale_nhwc_quant8_6(int i)5637 inline bool is_ignored_scale_nhwc_quant8_6(int i) {
5638 static std::set<int> ignore = {};
5639 return ignore.find(i) != ignore.end();
5640 }
5641
CreateModel_scale_nhwc_float16_6(Model * model)5642 void CreateModel_scale_nhwc_float16_6(Model *model) {
5643 OperandType type0(Type::BOOL, {});
5644 OperandType type21(Type::TENSOR_FLOAT16, {1, 2, 2, 1});
5645 OperandType type29(Type::FLOAT16, {});
5646 OperandType type54(Type::TENSOR_FLOAT16, {1, 5, 2, 1});
5647 // Phase 1, operands
5648 auto in5 = model->addOperand(&type21);
5649 auto param22 = model->addOperand(&type29);
5650 auto param23 = model->addOperand(&type29);
5651 auto layout = model->addOperand(&type0);
5652 auto out5 = model->addOperand(&type54);
5653 // Phase 2, operations
5654 static _Float16 param22_init[] = {1.399999976158142f};
5655 model->setOperandValue(param22, param22_init, sizeof(_Float16) * 1);
5656 static _Float16 param23_init[] = {2.799999952316284f};
5657 model->setOperandValue(param23, param23_init, sizeof(_Float16) * 1);
5658 static bool8 layout_init[] = {false};
5659 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5660 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param22, param23, layout}, {out5});
5661 // Phase 3, inputs and outputs
5662 model->identifyInputsAndOutputs(
5663 {in5},
5664 {out5});
5665 assert(model->isValid());
5666 }
5667
is_ignored_scale_nhwc_float16_6(int i)5668 inline bool is_ignored_scale_nhwc_float16_6(int i) {
5669 static std::set<int> ignore = {};
5670 return ignore.find(i) != ignore.end();
5671 }
5672
CreateModel_scale_nchw_6(Model * model)5673 void CreateModel_scale_nchw_6(Model *model) {
5674 OperandType type0(Type::BOOL, {});
5675 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
5676 OperandType type4(Type::FLOAT32, {});
5677 OperandType type55(Type::TENSOR_FLOAT32, {1, 1, 5, 2});
5678 // Phase 1, operands
5679 auto in5 = model->addOperand(&type23);
5680 auto param22 = model->addOperand(&type4);
5681 auto param23 = model->addOperand(&type4);
5682 auto layout = model->addOperand(&type0);
5683 auto out5 = model->addOperand(&type55);
5684 // Phase 2, operations
5685 static float param22_init[] = {1.4f};
5686 model->setOperandValue(param22, param22_init, sizeof(float) * 1);
5687 static float param23_init[] = {2.8f};
5688 model->setOperandValue(param23, param23_init, sizeof(float) * 1);
5689 static bool8 layout_init[] = {true};
5690 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5691 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param22, param23, layout}, {out5});
5692 // Phase 3, inputs and outputs
5693 model->identifyInputsAndOutputs(
5694 {in5},
5695 {out5});
5696 assert(model->isValid());
5697 }
5698
is_ignored_scale_nchw_6(int i)5699 inline bool is_ignored_scale_nchw_6(int i) {
5700 static std::set<int> ignore = {};
5701 return ignore.find(i) != ignore.end();
5702 }
5703
CreateModel_scale_nchw_relaxed_6(Model * model)5704 void CreateModel_scale_nchw_relaxed_6(Model *model) {
5705 OperandType type0(Type::BOOL, {});
5706 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
5707 OperandType type4(Type::FLOAT32, {});
5708 OperandType type55(Type::TENSOR_FLOAT32, {1, 1, 5, 2});
5709 // Phase 1, operands
5710 auto in5 = model->addOperand(&type23);
5711 auto param22 = model->addOperand(&type4);
5712 auto param23 = model->addOperand(&type4);
5713 auto layout = model->addOperand(&type0);
5714 auto out5 = model->addOperand(&type55);
5715 // Phase 2, operations
5716 static float param22_init[] = {1.4f};
5717 model->setOperandValue(param22, param22_init, sizeof(float) * 1);
5718 static float param23_init[] = {2.8f};
5719 model->setOperandValue(param23, param23_init, sizeof(float) * 1);
5720 static bool8 layout_init[] = {true};
5721 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5722 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param22, param23, layout}, {out5});
5723 // Phase 3, inputs and outputs
5724 model->identifyInputsAndOutputs(
5725 {in5},
5726 {out5});
5727 // Phase 4: set relaxed execution
5728 model->relaxComputationFloat32toFloat16(true);
5729 assert(model->isValid());
5730 }
5731
is_ignored_scale_nchw_relaxed_6(int i)5732 inline bool is_ignored_scale_nchw_relaxed_6(int i) {
5733 static std::set<int> ignore = {};
5734 return ignore.find(i) != ignore.end();
5735 }
5736
CreateModel_scale_nchw_quant8_6(Model * model)5737 void CreateModel_scale_nchw_quant8_6(Model *model) {
5738 OperandType type0(Type::BOOL, {});
5739 OperandType type4(Type::FLOAT32, {});
5740 OperandType type41(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 2}, 0.25f, 100);
5741 OperandType type56(Type::TENSOR_QUANT8_ASYMM, {1, 1, 5, 2}, 0.25f, 100);
5742 // Phase 1, operands
5743 auto in5 = model->addOperand(&type41);
5744 auto param22 = model->addOperand(&type4);
5745 auto param23 = model->addOperand(&type4);
5746 auto layout = model->addOperand(&type0);
5747 auto out5 = model->addOperand(&type56);
5748 // Phase 2, operations
5749 static float param22_init[] = {1.4f};
5750 model->setOperandValue(param22, param22_init, sizeof(float) * 1);
5751 static float param23_init[] = {2.8f};
5752 model->setOperandValue(param23, param23_init, sizeof(float) * 1);
5753 static bool8 layout_init[] = {true};
5754 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5755 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param22, param23, layout}, {out5});
5756 // Phase 3, inputs and outputs
5757 model->identifyInputsAndOutputs(
5758 {in5},
5759 {out5});
5760 assert(model->isValid());
5761 }
5762
is_ignored_scale_nchw_quant8_6(int i)5763 inline bool is_ignored_scale_nchw_quant8_6(int i) {
5764 static std::set<int> ignore = {};
5765 return ignore.find(i) != ignore.end();
5766 }
5767
CreateModel_scale_nchw_float16_6(Model * model)5768 void CreateModel_scale_nchw_float16_6(Model *model) {
5769 OperandType type0(Type::BOOL, {});
5770 OperandType type25(Type::TENSOR_FLOAT16, {1, 1, 2, 2});
5771 OperandType type29(Type::FLOAT16, {});
5772 OperandType type57(Type::TENSOR_FLOAT16, {1, 1, 5, 2});
5773 // Phase 1, operands
5774 auto in5 = model->addOperand(&type25);
5775 auto param22 = model->addOperand(&type29);
5776 auto param23 = model->addOperand(&type29);
5777 auto layout = model->addOperand(&type0);
5778 auto out5 = model->addOperand(&type57);
5779 // Phase 2, operations
5780 static _Float16 param22_init[] = {1.399999976158142f};
5781 model->setOperandValue(param22, param22_init, sizeof(_Float16) * 1);
5782 static _Float16 param23_init[] = {2.799999952316284f};
5783 model->setOperandValue(param23, param23_init, sizeof(_Float16) * 1);
5784 static bool8 layout_init[] = {true};
5785 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5786 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param22, param23, layout}, {out5});
5787 // Phase 3, inputs and outputs
5788 model->identifyInputsAndOutputs(
5789 {in5},
5790 {out5});
5791 assert(model->isValid());
5792 }
5793
is_ignored_scale_nchw_float16_6(int i)5794 inline bool is_ignored_scale_nchw_float16_6(int i) {
5795 static std::set<int> ignore = {};
5796 return ignore.find(i) != ignore.end();
5797 }
5798
CreateModel_scale_dynamic_output_shape_nhwc_6(Model * model)5799 void CreateModel_scale_dynamic_output_shape_nhwc_6(Model *model) {
5800 OperandType type0(Type::BOOL, {});
5801 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
5802 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
5803 OperandType type4(Type::FLOAT32, {});
5804 // Phase 1, operands
5805 auto in5 = model->addOperand(&type1);
5806 auto param22 = model->addOperand(&type4);
5807 auto param23 = model->addOperand(&type4);
5808 auto layout = model->addOperand(&type0);
5809 auto out5 = model->addOperand(&type26);
5810 // Phase 2, operations
5811 static float param22_init[] = {1.4f};
5812 model->setOperandValue(param22, param22_init, sizeof(float) * 1);
5813 static float param23_init[] = {2.8f};
5814 model->setOperandValue(param23, param23_init, sizeof(float) * 1);
5815 static bool8 layout_init[] = {false};
5816 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5817 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param22, param23, layout}, {out5});
5818 // Phase 3, inputs and outputs
5819 model->identifyInputsAndOutputs(
5820 {in5},
5821 {out5});
5822 assert(model->isValid());
5823 }
5824
is_ignored_scale_dynamic_output_shape_nhwc_6(int i)5825 inline bool is_ignored_scale_dynamic_output_shape_nhwc_6(int i) {
5826 static std::set<int> ignore = {};
5827 return ignore.find(i) != ignore.end();
5828 }
5829
CreateModel_scale_dynamic_output_shape_nhwc_relaxed_6(Model * model)5830 void CreateModel_scale_dynamic_output_shape_nhwc_relaxed_6(Model *model) {
5831 OperandType type0(Type::BOOL, {});
5832 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
5833 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
5834 OperandType type4(Type::FLOAT32, {});
5835 // Phase 1, operands
5836 auto in5 = model->addOperand(&type1);
5837 auto param22 = model->addOperand(&type4);
5838 auto param23 = model->addOperand(&type4);
5839 auto layout = model->addOperand(&type0);
5840 auto out5 = model->addOperand(&type26);
5841 // Phase 2, operations
5842 static float param22_init[] = {1.4f};
5843 model->setOperandValue(param22, param22_init, sizeof(float) * 1);
5844 static float param23_init[] = {2.8f};
5845 model->setOperandValue(param23, param23_init, sizeof(float) * 1);
5846 static bool8 layout_init[] = {false};
5847 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5848 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param22, param23, layout}, {out5});
5849 // Phase 3, inputs and outputs
5850 model->identifyInputsAndOutputs(
5851 {in5},
5852 {out5});
5853 // Phase 4: set relaxed execution
5854 model->relaxComputationFloat32toFloat16(true);
5855 assert(model->isValid());
5856 }
5857
is_ignored_scale_dynamic_output_shape_nhwc_relaxed_6(int i)5858 inline bool is_ignored_scale_dynamic_output_shape_nhwc_relaxed_6(int i) {
5859 static std::set<int> ignore = {};
5860 return ignore.find(i) != ignore.end();
5861 }
5862
CreateModel_scale_dynamic_output_shape_nhwc_quant8_6(Model * model)5863 void CreateModel_scale_dynamic_output_shape_nhwc_quant8_6(Model *model) {
5864 OperandType type0(Type::BOOL, {});
5865 OperandType type39(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.25f, 100);
5866 OperandType type4(Type::FLOAT32, {});
5867 OperandType type42(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 100);
5868 // Phase 1, operands
5869 auto in5 = model->addOperand(&type39);
5870 auto param22 = model->addOperand(&type4);
5871 auto param23 = model->addOperand(&type4);
5872 auto layout = model->addOperand(&type0);
5873 auto out5 = model->addOperand(&type42);
5874 // Phase 2, operations
5875 static float param22_init[] = {1.4f};
5876 model->setOperandValue(param22, param22_init, sizeof(float) * 1);
5877 static float param23_init[] = {2.8f};
5878 model->setOperandValue(param23, param23_init, sizeof(float) * 1);
5879 static bool8 layout_init[] = {false};
5880 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5881 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param22, param23, layout}, {out5});
5882 // Phase 3, inputs and outputs
5883 model->identifyInputsAndOutputs(
5884 {in5},
5885 {out5});
5886 assert(model->isValid());
5887 }
5888
is_ignored_scale_dynamic_output_shape_nhwc_quant8_6(int i)5889 inline bool is_ignored_scale_dynamic_output_shape_nhwc_quant8_6(int i) {
5890 static std::set<int> ignore = {};
5891 return ignore.find(i) != ignore.end();
5892 }
5893
CreateModel_scale_dynamic_output_shape_nhwc_float16_6(Model * model)5894 void CreateModel_scale_dynamic_output_shape_nhwc_float16_6(Model *model) {
5895 OperandType type0(Type::BOOL, {});
5896 OperandType type21(Type::TENSOR_FLOAT16, {1, 2, 2, 1});
5897 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
5898 OperandType type29(Type::FLOAT16, {});
5899 // Phase 1, operands
5900 auto in5 = model->addOperand(&type21);
5901 auto param22 = model->addOperand(&type29);
5902 auto param23 = model->addOperand(&type29);
5903 auto layout = model->addOperand(&type0);
5904 auto out5 = model->addOperand(&type28);
5905 // Phase 2, operations
5906 static _Float16 param22_init[] = {1.399999976158142f};
5907 model->setOperandValue(param22, param22_init, sizeof(_Float16) * 1);
5908 static _Float16 param23_init[] = {2.799999952316284f};
5909 model->setOperandValue(param23, param23_init, sizeof(_Float16) * 1);
5910 static bool8 layout_init[] = {false};
5911 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5912 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param22, param23, layout}, {out5});
5913 // Phase 3, inputs and outputs
5914 model->identifyInputsAndOutputs(
5915 {in5},
5916 {out5});
5917 assert(model->isValid());
5918 }
5919
is_ignored_scale_dynamic_output_shape_nhwc_float16_6(int i)5920 inline bool is_ignored_scale_dynamic_output_shape_nhwc_float16_6(int i) {
5921 static std::set<int> ignore = {};
5922 return ignore.find(i) != ignore.end();
5923 }
5924
CreateModel_scale_dynamic_output_shape_nchw_6(Model * model)5925 void CreateModel_scale_dynamic_output_shape_nchw_6(Model *model) {
5926 OperandType type0(Type::BOOL, {});
5927 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
5928 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
5929 OperandType type4(Type::FLOAT32, {});
5930 // Phase 1, operands
5931 auto in5 = model->addOperand(&type23);
5932 auto param22 = model->addOperand(&type4);
5933 auto param23 = model->addOperand(&type4);
5934 auto layout = model->addOperand(&type0);
5935 auto out5 = model->addOperand(&type26);
5936 // Phase 2, operations
5937 static float param22_init[] = {1.4f};
5938 model->setOperandValue(param22, param22_init, sizeof(float) * 1);
5939 static float param23_init[] = {2.8f};
5940 model->setOperandValue(param23, param23_init, sizeof(float) * 1);
5941 static bool8 layout_init[] = {true};
5942 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5943 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param22, param23, layout}, {out5});
5944 // Phase 3, inputs and outputs
5945 model->identifyInputsAndOutputs(
5946 {in5},
5947 {out5});
5948 assert(model->isValid());
5949 }
5950
is_ignored_scale_dynamic_output_shape_nchw_6(int i)5951 inline bool is_ignored_scale_dynamic_output_shape_nchw_6(int i) {
5952 static std::set<int> ignore = {};
5953 return ignore.find(i) != ignore.end();
5954 }
5955
CreateModel_scale_dynamic_output_shape_nchw_relaxed_6(Model * model)5956 void CreateModel_scale_dynamic_output_shape_nchw_relaxed_6(Model *model) {
5957 OperandType type0(Type::BOOL, {});
5958 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
5959 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
5960 OperandType type4(Type::FLOAT32, {});
5961 // Phase 1, operands
5962 auto in5 = model->addOperand(&type23);
5963 auto param22 = model->addOperand(&type4);
5964 auto param23 = model->addOperand(&type4);
5965 auto layout = model->addOperand(&type0);
5966 auto out5 = model->addOperand(&type26);
5967 // Phase 2, operations
5968 static float param22_init[] = {1.4f};
5969 model->setOperandValue(param22, param22_init, sizeof(float) * 1);
5970 static float param23_init[] = {2.8f};
5971 model->setOperandValue(param23, param23_init, sizeof(float) * 1);
5972 static bool8 layout_init[] = {true};
5973 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
5974 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param22, param23, layout}, {out5});
5975 // Phase 3, inputs and outputs
5976 model->identifyInputsAndOutputs(
5977 {in5},
5978 {out5});
5979 // Phase 4: set relaxed execution
5980 model->relaxComputationFloat32toFloat16(true);
5981 assert(model->isValid());
5982 }
5983
is_ignored_scale_dynamic_output_shape_nchw_relaxed_6(int i)5984 inline bool is_ignored_scale_dynamic_output_shape_nchw_relaxed_6(int i) {
5985 static std::set<int> ignore = {};
5986 return ignore.find(i) != ignore.end();
5987 }
5988
CreateModel_scale_dynamic_output_shape_nchw_quant8_6(Model * model)5989 void CreateModel_scale_dynamic_output_shape_nchw_quant8_6(Model *model) {
5990 OperandType type0(Type::BOOL, {});
5991 OperandType type4(Type::FLOAT32, {});
5992 OperandType type41(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 2}, 0.25f, 100);
5993 OperandType type42(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 100);
5994 // Phase 1, operands
5995 auto in5 = model->addOperand(&type41);
5996 auto param22 = model->addOperand(&type4);
5997 auto param23 = model->addOperand(&type4);
5998 auto layout = model->addOperand(&type0);
5999 auto out5 = model->addOperand(&type42);
6000 // Phase 2, operations
6001 static float param22_init[] = {1.4f};
6002 model->setOperandValue(param22, param22_init, sizeof(float) * 1);
6003 static float param23_init[] = {2.8f};
6004 model->setOperandValue(param23, param23_init, sizeof(float) * 1);
6005 static bool8 layout_init[] = {true};
6006 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6007 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param22, param23, layout}, {out5});
6008 // Phase 3, inputs and outputs
6009 model->identifyInputsAndOutputs(
6010 {in5},
6011 {out5});
6012 assert(model->isValid());
6013 }
6014
is_ignored_scale_dynamic_output_shape_nchw_quant8_6(int i)6015 inline bool is_ignored_scale_dynamic_output_shape_nchw_quant8_6(int i) {
6016 static std::set<int> ignore = {};
6017 return ignore.find(i) != ignore.end();
6018 }
6019
CreateModel_scale_dynamic_output_shape_nchw_float16_6(Model * model)6020 void CreateModel_scale_dynamic_output_shape_nchw_float16_6(Model *model) {
6021 OperandType type0(Type::BOOL, {});
6022 OperandType type25(Type::TENSOR_FLOAT16, {1, 1, 2, 2});
6023 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
6024 OperandType type29(Type::FLOAT16, {});
6025 // Phase 1, operands
6026 auto in5 = model->addOperand(&type25);
6027 auto param22 = model->addOperand(&type29);
6028 auto param23 = model->addOperand(&type29);
6029 auto layout = model->addOperand(&type0);
6030 auto out5 = model->addOperand(&type28);
6031 // Phase 2, operations
6032 static _Float16 param22_init[] = {1.399999976158142f};
6033 model->setOperandValue(param22, param22_init, sizeof(_Float16) * 1);
6034 static _Float16 param23_init[] = {2.799999952316284f};
6035 model->setOperandValue(param23, param23_init, sizeof(_Float16) * 1);
6036 static bool8 layout_init[] = {true};
6037 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6038 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in5, param22, param23, layout}, {out5});
6039 // Phase 3, inputs and outputs
6040 model->identifyInputsAndOutputs(
6041 {in5},
6042 {out5});
6043 assert(model->isValid());
6044 }
6045
is_ignored_scale_dynamic_output_shape_nchw_float16_6(int i)6046 inline bool is_ignored_scale_dynamic_output_shape_nchw_float16_6(int i) {
6047 static std::set<int> ignore = {};
6048 return ignore.find(i) != ignore.end();
6049 }
6050
CreateModel_shape_nhwc_7(Model * model)6051 void CreateModel_shape_nhwc_7(Model *model) {
6052 OperandType type0(Type::BOOL, {});
6053 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
6054 OperandType type3(Type::INT32, {});
6055 OperandType type7(Type::TENSOR_FLOAT32, {1, 4, 4, 1});
6056 // Phase 1, operands
6057 auto in6 = model->addOperand(&type1);
6058 auto param24 = model->addOperand(&type3);
6059 auto param25 = model->addOperand(&type3);
6060 auto layout = model->addOperand(&type0);
6061 auto out6 = model->addOperand(&type7);
6062 // Phase 2, operations
6063 static int32_t param24_init[] = {4};
6064 model->setOperandValue(param24, param24_init, sizeof(int32_t) * 1);
6065 static int32_t param25_init[] = {4};
6066 model->setOperandValue(param25, param25_init, sizeof(int32_t) * 1);
6067 static bool8 layout_init[] = {false};
6068 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6069 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param24, param25, layout}, {out6});
6070 // Phase 3, inputs and outputs
6071 model->identifyInputsAndOutputs(
6072 {in6},
6073 {out6});
6074 assert(model->isValid());
6075 }
6076
is_ignored_shape_nhwc_7(int i)6077 inline bool is_ignored_shape_nhwc_7(int i) {
6078 static std::set<int> ignore = {};
6079 return ignore.find(i) != ignore.end();
6080 }
6081
CreateModel_shape_nhwc_relaxed_7(Model * model)6082 void CreateModel_shape_nhwc_relaxed_7(Model *model) {
6083 OperandType type0(Type::BOOL, {});
6084 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
6085 OperandType type3(Type::INT32, {});
6086 OperandType type7(Type::TENSOR_FLOAT32, {1, 4, 4, 1});
6087 // Phase 1, operands
6088 auto in6 = model->addOperand(&type1);
6089 auto param24 = model->addOperand(&type3);
6090 auto param25 = model->addOperand(&type3);
6091 auto layout = model->addOperand(&type0);
6092 auto out6 = model->addOperand(&type7);
6093 // Phase 2, operations
6094 static int32_t param24_init[] = {4};
6095 model->setOperandValue(param24, param24_init, sizeof(int32_t) * 1);
6096 static int32_t param25_init[] = {4};
6097 model->setOperandValue(param25, param25_init, sizeof(int32_t) * 1);
6098 static bool8 layout_init[] = {false};
6099 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6100 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param24, param25, layout}, {out6});
6101 // Phase 3, inputs and outputs
6102 model->identifyInputsAndOutputs(
6103 {in6},
6104 {out6});
6105 // Phase 4: set relaxed execution
6106 model->relaxComputationFloat32toFloat16(true);
6107 assert(model->isValid());
6108 }
6109
is_ignored_shape_nhwc_relaxed_7(int i)6110 inline bool is_ignored_shape_nhwc_relaxed_7(int i) {
6111 static std::set<int> ignore = {};
6112 return ignore.find(i) != ignore.end();
6113 }
6114
CreateModel_shape_nhwc_quant8_7(Model * model)6115 void CreateModel_shape_nhwc_quant8_7(Model *model) {
6116 OperandType type0(Type::BOOL, {});
6117 OperandType type3(Type::INT32, {});
6118 OperandType type39(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.25f, 100);
6119 OperandType type48(Type::TENSOR_QUANT8_ASYMM, {1, 4, 4, 1}, 0.25f, 100);
6120 // Phase 1, operands
6121 auto in6 = model->addOperand(&type39);
6122 auto param24 = model->addOperand(&type3);
6123 auto param25 = model->addOperand(&type3);
6124 auto layout = model->addOperand(&type0);
6125 auto out6 = model->addOperand(&type48);
6126 // Phase 2, operations
6127 static int32_t param24_init[] = {4};
6128 model->setOperandValue(param24, param24_init, sizeof(int32_t) * 1);
6129 static int32_t param25_init[] = {4};
6130 model->setOperandValue(param25, param25_init, sizeof(int32_t) * 1);
6131 static bool8 layout_init[] = {false};
6132 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6133 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param24, param25, layout}, {out6});
6134 // Phase 3, inputs and outputs
6135 model->identifyInputsAndOutputs(
6136 {in6},
6137 {out6});
6138 assert(model->isValid());
6139 }
6140
is_ignored_shape_nhwc_quant8_7(int i)6141 inline bool is_ignored_shape_nhwc_quant8_7(int i) {
6142 static std::set<int> ignore = {};
6143 return ignore.find(i) != ignore.end();
6144 }
6145
CreateModel_shape_nhwc_float16_7(Model * model)6146 void CreateModel_shape_nhwc_float16_7(Model *model) {
6147 OperandType type0(Type::BOOL, {});
6148 OperandType type21(Type::TENSOR_FLOAT16, {1, 2, 2, 1});
6149 OperandType type3(Type::INT32, {});
6150 OperandType type49(Type::TENSOR_FLOAT16, {1, 4, 4, 1});
6151 // Phase 1, operands
6152 auto in6 = model->addOperand(&type21);
6153 auto param24 = model->addOperand(&type3);
6154 auto param25 = model->addOperand(&type3);
6155 auto layout = model->addOperand(&type0);
6156 auto out6 = model->addOperand(&type49);
6157 // Phase 2, operations
6158 static int32_t param24_init[] = {4};
6159 model->setOperandValue(param24, param24_init, sizeof(int32_t) * 1);
6160 static int32_t param25_init[] = {4};
6161 model->setOperandValue(param25, param25_init, sizeof(int32_t) * 1);
6162 static bool8 layout_init[] = {false};
6163 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6164 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param24, param25, layout}, {out6});
6165 // Phase 3, inputs and outputs
6166 model->identifyInputsAndOutputs(
6167 {in6},
6168 {out6});
6169 assert(model->isValid());
6170 }
6171
is_ignored_shape_nhwc_float16_7(int i)6172 inline bool is_ignored_shape_nhwc_float16_7(int i) {
6173 static std::set<int> ignore = {};
6174 return ignore.find(i) != ignore.end();
6175 }
6176
CreateModel_shape_nchw_7(Model * model)6177 void CreateModel_shape_nchw_7(Model *model) {
6178 OperandType type0(Type::BOOL, {});
6179 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
6180 OperandType type3(Type::INT32, {});
6181 OperandType type50(Type::TENSOR_FLOAT32, {1, 1, 4, 4});
6182 // Phase 1, operands
6183 auto in6 = model->addOperand(&type23);
6184 auto param24 = model->addOperand(&type3);
6185 auto param25 = model->addOperand(&type3);
6186 auto layout = model->addOperand(&type0);
6187 auto out6 = model->addOperand(&type50);
6188 // Phase 2, operations
6189 static int32_t param24_init[] = {4};
6190 model->setOperandValue(param24, param24_init, sizeof(int32_t) * 1);
6191 static int32_t param25_init[] = {4};
6192 model->setOperandValue(param25, param25_init, sizeof(int32_t) * 1);
6193 static bool8 layout_init[] = {true};
6194 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6195 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param24, param25, layout}, {out6});
6196 // Phase 3, inputs and outputs
6197 model->identifyInputsAndOutputs(
6198 {in6},
6199 {out6});
6200 assert(model->isValid());
6201 }
6202
is_ignored_shape_nchw_7(int i)6203 inline bool is_ignored_shape_nchw_7(int i) {
6204 static std::set<int> ignore = {};
6205 return ignore.find(i) != ignore.end();
6206 }
6207
CreateModel_shape_nchw_relaxed_7(Model * model)6208 void CreateModel_shape_nchw_relaxed_7(Model *model) {
6209 OperandType type0(Type::BOOL, {});
6210 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
6211 OperandType type3(Type::INT32, {});
6212 OperandType type50(Type::TENSOR_FLOAT32, {1, 1, 4, 4});
6213 // Phase 1, operands
6214 auto in6 = model->addOperand(&type23);
6215 auto param24 = model->addOperand(&type3);
6216 auto param25 = model->addOperand(&type3);
6217 auto layout = model->addOperand(&type0);
6218 auto out6 = model->addOperand(&type50);
6219 // Phase 2, operations
6220 static int32_t param24_init[] = {4};
6221 model->setOperandValue(param24, param24_init, sizeof(int32_t) * 1);
6222 static int32_t param25_init[] = {4};
6223 model->setOperandValue(param25, param25_init, sizeof(int32_t) * 1);
6224 static bool8 layout_init[] = {true};
6225 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6226 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param24, param25, layout}, {out6});
6227 // Phase 3, inputs and outputs
6228 model->identifyInputsAndOutputs(
6229 {in6},
6230 {out6});
6231 // Phase 4: set relaxed execution
6232 model->relaxComputationFloat32toFloat16(true);
6233 assert(model->isValid());
6234 }
6235
is_ignored_shape_nchw_relaxed_7(int i)6236 inline bool is_ignored_shape_nchw_relaxed_7(int i) {
6237 static std::set<int> ignore = {};
6238 return ignore.find(i) != ignore.end();
6239 }
6240
CreateModel_shape_nchw_quant8_7(Model * model)6241 void CreateModel_shape_nchw_quant8_7(Model *model) {
6242 OperandType type0(Type::BOOL, {});
6243 OperandType type3(Type::INT32, {});
6244 OperandType type41(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 2}, 0.25f, 100);
6245 OperandType type51(Type::TENSOR_QUANT8_ASYMM, {1, 1, 4, 4}, 0.25f, 100);
6246 // Phase 1, operands
6247 auto in6 = model->addOperand(&type41);
6248 auto param24 = model->addOperand(&type3);
6249 auto param25 = model->addOperand(&type3);
6250 auto layout = model->addOperand(&type0);
6251 auto out6 = model->addOperand(&type51);
6252 // Phase 2, operations
6253 static int32_t param24_init[] = {4};
6254 model->setOperandValue(param24, param24_init, sizeof(int32_t) * 1);
6255 static int32_t param25_init[] = {4};
6256 model->setOperandValue(param25, param25_init, sizeof(int32_t) * 1);
6257 static bool8 layout_init[] = {true};
6258 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6259 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param24, param25, layout}, {out6});
6260 // Phase 3, inputs and outputs
6261 model->identifyInputsAndOutputs(
6262 {in6},
6263 {out6});
6264 assert(model->isValid());
6265 }
6266
is_ignored_shape_nchw_quant8_7(int i)6267 inline bool is_ignored_shape_nchw_quant8_7(int i) {
6268 static std::set<int> ignore = {};
6269 return ignore.find(i) != ignore.end();
6270 }
6271
CreateModel_shape_nchw_float16_7(Model * model)6272 void CreateModel_shape_nchw_float16_7(Model *model) {
6273 OperandType type0(Type::BOOL, {});
6274 OperandType type25(Type::TENSOR_FLOAT16, {1, 1, 2, 2});
6275 OperandType type3(Type::INT32, {});
6276 OperandType type52(Type::TENSOR_FLOAT16, {1, 1, 4, 4});
6277 // Phase 1, operands
6278 auto in6 = model->addOperand(&type25);
6279 auto param24 = model->addOperand(&type3);
6280 auto param25 = model->addOperand(&type3);
6281 auto layout = model->addOperand(&type0);
6282 auto out6 = model->addOperand(&type52);
6283 // Phase 2, operations
6284 static int32_t param24_init[] = {4};
6285 model->setOperandValue(param24, param24_init, sizeof(int32_t) * 1);
6286 static int32_t param25_init[] = {4};
6287 model->setOperandValue(param25, param25_init, sizeof(int32_t) * 1);
6288 static bool8 layout_init[] = {true};
6289 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6290 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param24, param25, layout}, {out6});
6291 // Phase 3, inputs and outputs
6292 model->identifyInputsAndOutputs(
6293 {in6},
6294 {out6});
6295 assert(model->isValid());
6296 }
6297
is_ignored_shape_nchw_float16_7(int i)6298 inline bool is_ignored_shape_nchw_float16_7(int i) {
6299 static std::set<int> ignore = {};
6300 return ignore.find(i) != ignore.end();
6301 }
6302
CreateModel_shape_dynamic_output_shape_nhwc_7(Model * model)6303 void CreateModel_shape_dynamic_output_shape_nhwc_7(Model *model) {
6304 OperandType type0(Type::BOOL, {});
6305 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
6306 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
6307 OperandType type3(Type::INT32, {});
6308 // Phase 1, operands
6309 auto in6 = model->addOperand(&type1);
6310 auto param24 = model->addOperand(&type3);
6311 auto param25 = model->addOperand(&type3);
6312 auto layout = model->addOperand(&type0);
6313 auto out6 = model->addOperand(&type26);
6314 // Phase 2, operations
6315 static int32_t param24_init[] = {4};
6316 model->setOperandValue(param24, param24_init, sizeof(int32_t) * 1);
6317 static int32_t param25_init[] = {4};
6318 model->setOperandValue(param25, param25_init, sizeof(int32_t) * 1);
6319 static bool8 layout_init[] = {false};
6320 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6321 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param24, param25, layout}, {out6});
6322 // Phase 3, inputs and outputs
6323 model->identifyInputsAndOutputs(
6324 {in6},
6325 {out6});
6326 assert(model->isValid());
6327 }
6328
is_ignored_shape_dynamic_output_shape_nhwc_7(int i)6329 inline bool is_ignored_shape_dynamic_output_shape_nhwc_7(int i) {
6330 static std::set<int> ignore = {};
6331 return ignore.find(i) != ignore.end();
6332 }
6333
CreateModel_shape_dynamic_output_shape_nhwc_relaxed_7(Model * model)6334 void CreateModel_shape_dynamic_output_shape_nhwc_relaxed_7(Model *model) {
6335 OperandType type0(Type::BOOL, {});
6336 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
6337 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
6338 OperandType type3(Type::INT32, {});
6339 // Phase 1, operands
6340 auto in6 = model->addOperand(&type1);
6341 auto param24 = model->addOperand(&type3);
6342 auto param25 = model->addOperand(&type3);
6343 auto layout = model->addOperand(&type0);
6344 auto out6 = model->addOperand(&type26);
6345 // Phase 2, operations
6346 static int32_t param24_init[] = {4};
6347 model->setOperandValue(param24, param24_init, sizeof(int32_t) * 1);
6348 static int32_t param25_init[] = {4};
6349 model->setOperandValue(param25, param25_init, sizeof(int32_t) * 1);
6350 static bool8 layout_init[] = {false};
6351 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6352 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param24, param25, layout}, {out6});
6353 // Phase 3, inputs and outputs
6354 model->identifyInputsAndOutputs(
6355 {in6},
6356 {out6});
6357 // Phase 4: set relaxed execution
6358 model->relaxComputationFloat32toFloat16(true);
6359 assert(model->isValid());
6360 }
6361
is_ignored_shape_dynamic_output_shape_nhwc_relaxed_7(int i)6362 inline bool is_ignored_shape_dynamic_output_shape_nhwc_relaxed_7(int i) {
6363 static std::set<int> ignore = {};
6364 return ignore.find(i) != ignore.end();
6365 }
6366
CreateModel_shape_dynamic_output_shape_nhwc_quant8_7(Model * model)6367 void CreateModel_shape_dynamic_output_shape_nhwc_quant8_7(Model *model) {
6368 OperandType type0(Type::BOOL, {});
6369 OperandType type3(Type::INT32, {});
6370 OperandType type39(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.25f, 100);
6371 OperandType type42(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 100);
6372 // Phase 1, operands
6373 auto in6 = model->addOperand(&type39);
6374 auto param24 = model->addOperand(&type3);
6375 auto param25 = model->addOperand(&type3);
6376 auto layout = model->addOperand(&type0);
6377 auto out6 = model->addOperand(&type42);
6378 // Phase 2, operations
6379 static int32_t param24_init[] = {4};
6380 model->setOperandValue(param24, param24_init, sizeof(int32_t) * 1);
6381 static int32_t param25_init[] = {4};
6382 model->setOperandValue(param25, param25_init, sizeof(int32_t) * 1);
6383 static bool8 layout_init[] = {false};
6384 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6385 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param24, param25, layout}, {out6});
6386 // Phase 3, inputs and outputs
6387 model->identifyInputsAndOutputs(
6388 {in6},
6389 {out6});
6390 assert(model->isValid());
6391 }
6392
is_ignored_shape_dynamic_output_shape_nhwc_quant8_7(int i)6393 inline bool is_ignored_shape_dynamic_output_shape_nhwc_quant8_7(int i) {
6394 static std::set<int> ignore = {};
6395 return ignore.find(i) != ignore.end();
6396 }
6397
CreateModel_shape_dynamic_output_shape_nhwc_float16_7(Model * model)6398 void CreateModel_shape_dynamic_output_shape_nhwc_float16_7(Model *model) {
6399 OperandType type0(Type::BOOL, {});
6400 OperandType type21(Type::TENSOR_FLOAT16, {1, 2, 2, 1});
6401 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
6402 OperandType type3(Type::INT32, {});
6403 // Phase 1, operands
6404 auto in6 = model->addOperand(&type21);
6405 auto param24 = model->addOperand(&type3);
6406 auto param25 = model->addOperand(&type3);
6407 auto layout = model->addOperand(&type0);
6408 auto out6 = model->addOperand(&type28);
6409 // Phase 2, operations
6410 static int32_t param24_init[] = {4};
6411 model->setOperandValue(param24, param24_init, sizeof(int32_t) * 1);
6412 static int32_t param25_init[] = {4};
6413 model->setOperandValue(param25, param25_init, sizeof(int32_t) * 1);
6414 static bool8 layout_init[] = {false};
6415 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6416 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param24, param25, layout}, {out6});
6417 // Phase 3, inputs and outputs
6418 model->identifyInputsAndOutputs(
6419 {in6},
6420 {out6});
6421 assert(model->isValid());
6422 }
6423
is_ignored_shape_dynamic_output_shape_nhwc_float16_7(int i)6424 inline bool is_ignored_shape_dynamic_output_shape_nhwc_float16_7(int i) {
6425 static std::set<int> ignore = {};
6426 return ignore.find(i) != ignore.end();
6427 }
6428
CreateModel_shape_dynamic_output_shape_nchw_7(Model * model)6429 void CreateModel_shape_dynamic_output_shape_nchw_7(Model *model) {
6430 OperandType type0(Type::BOOL, {});
6431 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
6432 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
6433 OperandType type3(Type::INT32, {});
6434 // Phase 1, operands
6435 auto in6 = model->addOperand(&type23);
6436 auto param24 = model->addOperand(&type3);
6437 auto param25 = model->addOperand(&type3);
6438 auto layout = model->addOperand(&type0);
6439 auto out6 = model->addOperand(&type26);
6440 // Phase 2, operations
6441 static int32_t param24_init[] = {4};
6442 model->setOperandValue(param24, param24_init, sizeof(int32_t) * 1);
6443 static int32_t param25_init[] = {4};
6444 model->setOperandValue(param25, param25_init, sizeof(int32_t) * 1);
6445 static bool8 layout_init[] = {true};
6446 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6447 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param24, param25, layout}, {out6});
6448 // Phase 3, inputs and outputs
6449 model->identifyInputsAndOutputs(
6450 {in6},
6451 {out6});
6452 assert(model->isValid());
6453 }
6454
is_ignored_shape_dynamic_output_shape_nchw_7(int i)6455 inline bool is_ignored_shape_dynamic_output_shape_nchw_7(int i) {
6456 static std::set<int> ignore = {};
6457 return ignore.find(i) != ignore.end();
6458 }
6459
CreateModel_shape_dynamic_output_shape_nchw_relaxed_7(Model * model)6460 void CreateModel_shape_dynamic_output_shape_nchw_relaxed_7(Model *model) {
6461 OperandType type0(Type::BOOL, {});
6462 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
6463 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
6464 OperandType type3(Type::INT32, {});
6465 // Phase 1, operands
6466 auto in6 = model->addOperand(&type23);
6467 auto param24 = model->addOperand(&type3);
6468 auto param25 = model->addOperand(&type3);
6469 auto layout = model->addOperand(&type0);
6470 auto out6 = model->addOperand(&type26);
6471 // Phase 2, operations
6472 static int32_t param24_init[] = {4};
6473 model->setOperandValue(param24, param24_init, sizeof(int32_t) * 1);
6474 static int32_t param25_init[] = {4};
6475 model->setOperandValue(param25, param25_init, sizeof(int32_t) * 1);
6476 static bool8 layout_init[] = {true};
6477 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6478 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param24, param25, layout}, {out6});
6479 // Phase 3, inputs and outputs
6480 model->identifyInputsAndOutputs(
6481 {in6},
6482 {out6});
6483 // Phase 4: set relaxed execution
6484 model->relaxComputationFloat32toFloat16(true);
6485 assert(model->isValid());
6486 }
6487
is_ignored_shape_dynamic_output_shape_nchw_relaxed_7(int i)6488 inline bool is_ignored_shape_dynamic_output_shape_nchw_relaxed_7(int i) {
6489 static std::set<int> ignore = {};
6490 return ignore.find(i) != ignore.end();
6491 }
6492
CreateModel_shape_dynamic_output_shape_nchw_quant8_7(Model * model)6493 void CreateModel_shape_dynamic_output_shape_nchw_quant8_7(Model *model) {
6494 OperandType type0(Type::BOOL, {});
6495 OperandType type3(Type::INT32, {});
6496 OperandType type41(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 2}, 0.25f, 100);
6497 OperandType type42(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 100);
6498 // Phase 1, operands
6499 auto in6 = model->addOperand(&type41);
6500 auto param24 = model->addOperand(&type3);
6501 auto param25 = model->addOperand(&type3);
6502 auto layout = model->addOperand(&type0);
6503 auto out6 = model->addOperand(&type42);
6504 // Phase 2, operations
6505 static int32_t param24_init[] = {4};
6506 model->setOperandValue(param24, param24_init, sizeof(int32_t) * 1);
6507 static int32_t param25_init[] = {4};
6508 model->setOperandValue(param25, param25_init, sizeof(int32_t) * 1);
6509 static bool8 layout_init[] = {true};
6510 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6511 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param24, param25, layout}, {out6});
6512 // Phase 3, inputs and outputs
6513 model->identifyInputsAndOutputs(
6514 {in6},
6515 {out6});
6516 assert(model->isValid());
6517 }
6518
is_ignored_shape_dynamic_output_shape_nchw_quant8_7(int i)6519 inline bool is_ignored_shape_dynamic_output_shape_nchw_quant8_7(int i) {
6520 static std::set<int> ignore = {};
6521 return ignore.find(i) != ignore.end();
6522 }
6523
CreateModel_shape_dynamic_output_shape_nchw_float16_7(Model * model)6524 void CreateModel_shape_dynamic_output_shape_nchw_float16_7(Model *model) {
6525 OperandType type0(Type::BOOL, {});
6526 OperandType type25(Type::TENSOR_FLOAT16, {1, 1, 2, 2});
6527 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
6528 OperandType type3(Type::INT32, {});
6529 // Phase 1, operands
6530 auto in6 = model->addOperand(&type25);
6531 auto param24 = model->addOperand(&type3);
6532 auto param25 = model->addOperand(&type3);
6533 auto layout = model->addOperand(&type0);
6534 auto out6 = model->addOperand(&type28);
6535 // Phase 2, operations
6536 static int32_t param24_init[] = {4};
6537 model->setOperandValue(param24, param24_init, sizeof(int32_t) * 1);
6538 static int32_t param25_init[] = {4};
6539 model->setOperandValue(param25, param25_init, sizeof(int32_t) * 1);
6540 static bool8 layout_init[] = {true};
6541 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6542 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param24, param25, layout}, {out6});
6543 // Phase 3, inputs and outputs
6544 model->identifyInputsAndOutputs(
6545 {in6},
6546 {out6});
6547 assert(model->isValid());
6548 }
6549
is_ignored_shape_dynamic_output_shape_nchw_float16_7(int i)6550 inline bool is_ignored_shape_dynamic_output_shape_nchw_float16_7(int i) {
6551 static std::set<int> ignore = {};
6552 return ignore.find(i) != ignore.end();
6553 }
6554
CreateModel_scale_nhwc_7(Model * model)6555 void CreateModel_scale_nhwc_7(Model *model) {
6556 OperandType type0(Type::BOOL, {});
6557 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
6558 OperandType type4(Type::FLOAT32, {});
6559 OperandType type7(Type::TENSOR_FLOAT32, {1, 4, 4, 1});
6560 // Phase 1, operands
6561 auto in6 = model->addOperand(&type1);
6562 auto param26 = model->addOperand(&type4);
6563 auto param27 = model->addOperand(&type4);
6564 auto layout = model->addOperand(&type0);
6565 auto out6 = model->addOperand(&type7);
6566 // Phase 2, operations
6567 static float param26_init[] = {2.0f};
6568 model->setOperandValue(param26, param26_init, sizeof(float) * 1);
6569 static float param27_init[] = {2.0f};
6570 model->setOperandValue(param27, param27_init, sizeof(float) * 1);
6571 static bool8 layout_init[] = {false};
6572 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6573 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param26, param27, layout}, {out6});
6574 // Phase 3, inputs and outputs
6575 model->identifyInputsAndOutputs(
6576 {in6},
6577 {out6});
6578 assert(model->isValid());
6579 }
6580
is_ignored_scale_nhwc_7(int i)6581 inline bool is_ignored_scale_nhwc_7(int i) {
6582 static std::set<int> ignore = {};
6583 return ignore.find(i) != ignore.end();
6584 }
6585
CreateModel_scale_nhwc_relaxed_7(Model * model)6586 void CreateModel_scale_nhwc_relaxed_7(Model *model) {
6587 OperandType type0(Type::BOOL, {});
6588 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
6589 OperandType type4(Type::FLOAT32, {});
6590 OperandType type7(Type::TENSOR_FLOAT32, {1, 4, 4, 1});
6591 // Phase 1, operands
6592 auto in6 = model->addOperand(&type1);
6593 auto param26 = model->addOperand(&type4);
6594 auto param27 = model->addOperand(&type4);
6595 auto layout = model->addOperand(&type0);
6596 auto out6 = model->addOperand(&type7);
6597 // Phase 2, operations
6598 static float param26_init[] = {2.0f};
6599 model->setOperandValue(param26, param26_init, sizeof(float) * 1);
6600 static float param27_init[] = {2.0f};
6601 model->setOperandValue(param27, param27_init, sizeof(float) * 1);
6602 static bool8 layout_init[] = {false};
6603 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6604 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param26, param27, layout}, {out6});
6605 // Phase 3, inputs and outputs
6606 model->identifyInputsAndOutputs(
6607 {in6},
6608 {out6});
6609 // Phase 4: set relaxed execution
6610 model->relaxComputationFloat32toFloat16(true);
6611 assert(model->isValid());
6612 }
6613
is_ignored_scale_nhwc_relaxed_7(int i)6614 inline bool is_ignored_scale_nhwc_relaxed_7(int i) {
6615 static std::set<int> ignore = {};
6616 return ignore.find(i) != ignore.end();
6617 }
6618
CreateModel_scale_nhwc_quant8_7(Model * model)6619 void CreateModel_scale_nhwc_quant8_7(Model *model) {
6620 OperandType type0(Type::BOOL, {});
6621 OperandType type39(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.25f, 100);
6622 OperandType type4(Type::FLOAT32, {});
6623 OperandType type48(Type::TENSOR_QUANT8_ASYMM, {1, 4, 4, 1}, 0.25f, 100);
6624 // Phase 1, operands
6625 auto in6 = model->addOperand(&type39);
6626 auto param26 = model->addOperand(&type4);
6627 auto param27 = model->addOperand(&type4);
6628 auto layout = model->addOperand(&type0);
6629 auto out6 = model->addOperand(&type48);
6630 // Phase 2, operations
6631 static float param26_init[] = {2.0f};
6632 model->setOperandValue(param26, param26_init, sizeof(float) * 1);
6633 static float param27_init[] = {2.0f};
6634 model->setOperandValue(param27, param27_init, sizeof(float) * 1);
6635 static bool8 layout_init[] = {false};
6636 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6637 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param26, param27, layout}, {out6});
6638 // Phase 3, inputs and outputs
6639 model->identifyInputsAndOutputs(
6640 {in6},
6641 {out6});
6642 assert(model->isValid());
6643 }
6644
is_ignored_scale_nhwc_quant8_7(int i)6645 inline bool is_ignored_scale_nhwc_quant8_7(int i) {
6646 static std::set<int> ignore = {};
6647 return ignore.find(i) != ignore.end();
6648 }
6649
CreateModel_scale_nhwc_float16_7(Model * model)6650 void CreateModel_scale_nhwc_float16_7(Model *model) {
6651 OperandType type0(Type::BOOL, {});
6652 OperandType type21(Type::TENSOR_FLOAT16, {1, 2, 2, 1});
6653 OperandType type29(Type::FLOAT16, {});
6654 OperandType type49(Type::TENSOR_FLOAT16, {1, 4, 4, 1});
6655 // Phase 1, operands
6656 auto in6 = model->addOperand(&type21);
6657 auto param26 = model->addOperand(&type29);
6658 auto param27 = model->addOperand(&type29);
6659 auto layout = model->addOperand(&type0);
6660 auto out6 = model->addOperand(&type49);
6661 // Phase 2, operations
6662 static _Float16 param26_init[] = {2.0f};
6663 model->setOperandValue(param26, param26_init, sizeof(_Float16) * 1);
6664 static _Float16 param27_init[] = {2.0f};
6665 model->setOperandValue(param27, param27_init, sizeof(_Float16) * 1);
6666 static bool8 layout_init[] = {false};
6667 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6668 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param26, param27, layout}, {out6});
6669 // Phase 3, inputs and outputs
6670 model->identifyInputsAndOutputs(
6671 {in6},
6672 {out6});
6673 assert(model->isValid());
6674 }
6675
is_ignored_scale_nhwc_float16_7(int i)6676 inline bool is_ignored_scale_nhwc_float16_7(int i) {
6677 static std::set<int> ignore = {};
6678 return ignore.find(i) != ignore.end();
6679 }
6680
CreateModel_scale_nchw_7(Model * model)6681 void CreateModel_scale_nchw_7(Model *model) {
6682 OperandType type0(Type::BOOL, {});
6683 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
6684 OperandType type4(Type::FLOAT32, {});
6685 OperandType type50(Type::TENSOR_FLOAT32, {1, 1, 4, 4});
6686 // Phase 1, operands
6687 auto in6 = model->addOperand(&type23);
6688 auto param26 = model->addOperand(&type4);
6689 auto param27 = model->addOperand(&type4);
6690 auto layout = model->addOperand(&type0);
6691 auto out6 = model->addOperand(&type50);
6692 // Phase 2, operations
6693 static float param26_init[] = {2.0f};
6694 model->setOperandValue(param26, param26_init, sizeof(float) * 1);
6695 static float param27_init[] = {2.0f};
6696 model->setOperandValue(param27, param27_init, sizeof(float) * 1);
6697 static bool8 layout_init[] = {true};
6698 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6699 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param26, param27, layout}, {out6});
6700 // Phase 3, inputs and outputs
6701 model->identifyInputsAndOutputs(
6702 {in6},
6703 {out6});
6704 assert(model->isValid());
6705 }
6706
is_ignored_scale_nchw_7(int i)6707 inline bool is_ignored_scale_nchw_7(int i) {
6708 static std::set<int> ignore = {};
6709 return ignore.find(i) != ignore.end();
6710 }
6711
CreateModel_scale_nchw_relaxed_7(Model * model)6712 void CreateModel_scale_nchw_relaxed_7(Model *model) {
6713 OperandType type0(Type::BOOL, {});
6714 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
6715 OperandType type4(Type::FLOAT32, {});
6716 OperandType type50(Type::TENSOR_FLOAT32, {1, 1, 4, 4});
6717 // Phase 1, operands
6718 auto in6 = model->addOperand(&type23);
6719 auto param26 = model->addOperand(&type4);
6720 auto param27 = model->addOperand(&type4);
6721 auto layout = model->addOperand(&type0);
6722 auto out6 = model->addOperand(&type50);
6723 // Phase 2, operations
6724 static float param26_init[] = {2.0f};
6725 model->setOperandValue(param26, param26_init, sizeof(float) * 1);
6726 static float param27_init[] = {2.0f};
6727 model->setOperandValue(param27, param27_init, sizeof(float) * 1);
6728 static bool8 layout_init[] = {true};
6729 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6730 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param26, param27, layout}, {out6});
6731 // Phase 3, inputs and outputs
6732 model->identifyInputsAndOutputs(
6733 {in6},
6734 {out6});
6735 // Phase 4: set relaxed execution
6736 model->relaxComputationFloat32toFloat16(true);
6737 assert(model->isValid());
6738 }
6739
is_ignored_scale_nchw_relaxed_7(int i)6740 inline bool is_ignored_scale_nchw_relaxed_7(int i) {
6741 static std::set<int> ignore = {};
6742 return ignore.find(i) != ignore.end();
6743 }
6744
CreateModel_scale_nchw_quant8_7(Model * model)6745 void CreateModel_scale_nchw_quant8_7(Model *model) {
6746 OperandType type0(Type::BOOL, {});
6747 OperandType type4(Type::FLOAT32, {});
6748 OperandType type41(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 2}, 0.25f, 100);
6749 OperandType type51(Type::TENSOR_QUANT8_ASYMM, {1, 1, 4, 4}, 0.25f, 100);
6750 // Phase 1, operands
6751 auto in6 = model->addOperand(&type41);
6752 auto param26 = model->addOperand(&type4);
6753 auto param27 = model->addOperand(&type4);
6754 auto layout = model->addOperand(&type0);
6755 auto out6 = model->addOperand(&type51);
6756 // Phase 2, operations
6757 static float param26_init[] = {2.0f};
6758 model->setOperandValue(param26, param26_init, sizeof(float) * 1);
6759 static float param27_init[] = {2.0f};
6760 model->setOperandValue(param27, param27_init, sizeof(float) * 1);
6761 static bool8 layout_init[] = {true};
6762 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6763 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param26, param27, layout}, {out6});
6764 // Phase 3, inputs and outputs
6765 model->identifyInputsAndOutputs(
6766 {in6},
6767 {out6});
6768 assert(model->isValid());
6769 }
6770
is_ignored_scale_nchw_quant8_7(int i)6771 inline bool is_ignored_scale_nchw_quant8_7(int i) {
6772 static std::set<int> ignore = {};
6773 return ignore.find(i) != ignore.end();
6774 }
6775
CreateModel_scale_nchw_float16_7(Model * model)6776 void CreateModel_scale_nchw_float16_7(Model *model) {
6777 OperandType type0(Type::BOOL, {});
6778 OperandType type25(Type::TENSOR_FLOAT16, {1, 1, 2, 2});
6779 OperandType type29(Type::FLOAT16, {});
6780 OperandType type52(Type::TENSOR_FLOAT16, {1, 1, 4, 4});
6781 // Phase 1, operands
6782 auto in6 = model->addOperand(&type25);
6783 auto param26 = model->addOperand(&type29);
6784 auto param27 = model->addOperand(&type29);
6785 auto layout = model->addOperand(&type0);
6786 auto out6 = model->addOperand(&type52);
6787 // Phase 2, operations
6788 static _Float16 param26_init[] = {2.0f};
6789 model->setOperandValue(param26, param26_init, sizeof(_Float16) * 1);
6790 static _Float16 param27_init[] = {2.0f};
6791 model->setOperandValue(param27, param27_init, sizeof(_Float16) * 1);
6792 static bool8 layout_init[] = {true};
6793 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6794 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param26, param27, layout}, {out6});
6795 // Phase 3, inputs and outputs
6796 model->identifyInputsAndOutputs(
6797 {in6},
6798 {out6});
6799 assert(model->isValid());
6800 }
6801
is_ignored_scale_nchw_float16_7(int i)6802 inline bool is_ignored_scale_nchw_float16_7(int i) {
6803 static std::set<int> ignore = {};
6804 return ignore.find(i) != ignore.end();
6805 }
6806
CreateModel_scale_dynamic_output_shape_nhwc_7(Model * model)6807 void CreateModel_scale_dynamic_output_shape_nhwc_7(Model *model) {
6808 OperandType type0(Type::BOOL, {});
6809 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
6810 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
6811 OperandType type4(Type::FLOAT32, {});
6812 // Phase 1, operands
6813 auto in6 = model->addOperand(&type1);
6814 auto param26 = model->addOperand(&type4);
6815 auto param27 = model->addOperand(&type4);
6816 auto layout = model->addOperand(&type0);
6817 auto out6 = model->addOperand(&type26);
6818 // Phase 2, operations
6819 static float param26_init[] = {2.0f};
6820 model->setOperandValue(param26, param26_init, sizeof(float) * 1);
6821 static float param27_init[] = {2.0f};
6822 model->setOperandValue(param27, param27_init, sizeof(float) * 1);
6823 static bool8 layout_init[] = {false};
6824 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6825 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param26, param27, layout}, {out6});
6826 // Phase 3, inputs and outputs
6827 model->identifyInputsAndOutputs(
6828 {in6},
6829 {out6});
6830 assert(model->isValid());
6831 }
6832
is_ignored_scale_dynamic_output_shape_nhwc_7(int i)6833 inline bool is_ignored_scale_dynamic_output_shape_nhwc_7(int i) {
6834 static std::set<int> ignore = {};
6835 return ignore.find(i) != ignore.end();
6836 }
6837
CreateModel_scale_dynamic_output_shape_nhwc_relaxed_7(Model * model)6838 void CreateModel_scale_dynamic_output_shape_nhwc_relaxed_7(Model *model) {
6839 OperandType type0(Type::BOOL, {});
6840 OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
6841 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
6842 OperandType type4(Type::FLOAT32, {});
6843 // Phase 1, operands
6844 auto in6 = model->addOperand(&type1);
6845 auto param26 = model->addOperand(&type4);
6846 auto param27 = model->addOperand(&type4);
6847 auto layout = model->addOperand(&type0);
6848 auto out6 = model->addOperand(&type26);
6849 // Phase 2, operations
6850 static float param26_init[] = {2.0f};
6851 model->setOperandValue(param26, param26_init, sizeof(float) * 1);
6852 static float param27_init[] = {2.0f};
6853 model->setOperandValue(param27, param27_init, sizeof(float) * 1);
6854 static bool8 layout_init[] = {false};
6855 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6856 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param26, param27, layout}, {out6});
6857 // Phase 3, inputs and outputs
6858 model->identifyInputsAndOutputs(
6859 {in6},
6860 {out6});
6861 // Phase 4: set relaxed execution
6862 model->relaxComputationFloat32toFloat16(true);
6863 assert(model->isValid());
6864 }
6865
is_ignored_scale_dynamic_output_shape_nhwc_relaxed_7(int i)6866 inline bool is_ignored_scale_dynamic_output_shape_nhwc_relaxed_7(int i) {
6867 static std::set<int> ignore = {};
6868 return ignore.find(i) != ignore.end();
6869 }
6870
CreateModel_scale_dynamic_output_shape_nhwc_quant8_7(Model * model)6871 void CreateModel_scale_dynamic_output_shape_nhwc_quant8_7(Model *model) {
6872 OperandType type0(Type::BOOL, {});
6873 OperandType type39(Type::TENSOR_QUANT8_ASYMM, {1, 2, 2, 1}, 0.25f, 100);
6874 OperandType type4(Type::FLOAT32, {});
6875 OperandType type42(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 100);
6876 // Phase 1, operands
6877 auto in6 = model->addOperand(&type39);
6878 auto param26 = model->addOperand(&type4);
6879 auto param27 = model->addOperand(&type4);
6880 auto layout = model->addOperand(&type0);
6881 auto out6 = model->addOperand(&type42);
6882 // Phase 2, operations
6883 static float param26_init[] = {2.0f};
6884 model->setOperandValue(param26, param26_init, sizeof(float) * 1);
6885 static float param27_init[] = {2.0f};
6886 model->setOperandValue(param27, param27_init, sizeof(float) * 1);
6887 static bool8 layout_init[] = {false};
6888 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6889 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param26, param27, layout}, {out6});
6890 // Phase 3, inputs and outputs
6891 model->identifyInputsAndOutputs(
6892 {in6},
6893 {out6});
6894 assert(model->isValid());
6895 }
6896
is_ignored_scale_dynamic_output_shape_nhwc_quant8_7(int i)6897 inline bool is_ignored_scale_dynamic_output_shape_nhwc_quant8_7(int i) {
6898 static std::set<int> ignore = {};
6899 return ignore.find(i) != ignore.end();
6900 }
6901
CreateModel_scale_dynamic_output_shape_nhwc_float16_7(Model * model)6902 void CreateModel_scale_dynamic_output_shape_nhwc_float16_7(Model *model) {
6903 OperandType type0(Type::BOOL, {});
6904 OperandType type21(Type::TENSOR_FLOAT16, {1, 2, 2, 1});
6905 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
6906 OperandType type29(Type::FLOAT16, {});
6907 // Phase 1, operands
6908 auto in6 = model->addOperand(&type21);
6909 auto param26 = model->addOperand(&type29);
6910 auto param27 = model->addOperand(&type29);
6911 auto layout = model->addOperand(&type0);
6912 auto out6 = model->addOperand(&type28);
6913 // Phase 2, operations
6914 static _Float16 param26_init[] = {2.0f};
6915 model->setOperandValue(param26, param26_init, sizeof(_Float16) * 1);
6916 static _Float16 param27_init[] = {2.0f};
6917 model->setOperandValue(param27, param27_init, sizeof(_Float16) * 1);
6918 static bool8 layout_init[] = {false};
6919 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6920 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param26, param27, layout}, {out6});
6921 // Phase 3, inputs and outputs
6922 model->identifyInputsAndOutputs(
6923 {in6},
6924 {out6});
6925 assert(model->isValid());
6926 }
6927
is_ignored_scale_dynamic_output_shape_nhwc_float16_7(int i)6928 inline bool is_ignored_scale_dynamic_output_shape_nhwc_float16_7(int i) {
6929 static std::set<int> ignore = {};
6930 return ignore.find(i) != ignore.end();
6931 }
6932
CreateModel_scale_dynamic_output_shape_nchw_7(Model * model)6933 void CreateModel_scale_dynamic_output_shape_nchw_7(Model *model) {
6934 OperandType type0(Type::BOOL, {});
6935 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
6936 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
6937 OperandType type4(Type::FLOAT32, {});
6938 // Phase 1, operands
6939 auto in6 = model->addOperand(&type23);
6940 auto param26 = model->addOperand(&type4);
6941 auto param27 = model->addOperand(&type4);
6942 auto layout = model->addOperand(&type0);
6943 auto out6 = model->addOperand(&type26);
6944 // Phase 2, operations
6945 static float param26_init[] = {2.0f};
6946 model->setOperandValue(param26, param26_init, sizeof(float) * 1);
6947 static float param27_init[] = {2.0f};
6948 model->setOperandValue(param27, param27_init, sizeof(float) * 1);
6949 static bool8 layout_init[] = {true};
6950 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6951 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param26, param27, layout}, {out6});
6952 // Phase 3, inputs and outputs
6953 model->identifyInputsAndOutputs(
6954 {in6},
6955 {out6});
6956 assert(model->isValid());
6957 }
6958
is_ignored_scale_dynamic_output_shape_nchw_7(int i)6959 inline bool is_ignored_scale_dynamic_output_shape_nchw_7(int i) {
6960 static std::set<int> ignore = {};
6961 return ignore.find(i) != ignore.end();
6962 }
6963
CreateModel_scale_dynamic_output_shape_nchw_relaxed_7(Model * model)6964 void CreateModel_scale_dynamic_output_shape_nchw_relaxed_7(Model *model) {
6965 OperandType type0(Type::BOOL, {});
6966 OperandType type23(Type::TENSOR_FLOAT32, {1, 1, 2, 2});
6967 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
6968 OperandType type4(Type::FLOAT32, {});
6969 // Phase 1, operands
6970 auto in6 = model->addOperand(&type23);
6971 auto param26 = model->addOperand(&type4);
6972 auto param27 = model->addOperand(&type4);
6973 auto layout = model->addOperand(&type0);
6974 auto out6 = model->addOperand(&type26);
6975 // Phase 2, operations
6976 static float param26_init[] = {2.0f};
6977 model->setOperandValue(param26, param26_init, sizeof(float) * 1);
6978 static float param27_init[] = {2.0f};
6979 model->setOperandValue(param27, param27_init, sizeof(float) * 1);
6980 static bool8 layout_init[] = {true};
6981 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
6982 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param26, param27, layout}, {out6});
6983 // Phase 3, inputs and outputs
6984 model->identifyInputsAndOutputs(
6985 {in6},
6986 {out6});
6987 // Phase 4: set relaxed execution
6988 model->relaxComputationFloat32toFloat16(true);
6989 assert(model->isValid());
6990 }
6991
is_ignored_scale_dynamic_output_shape_nchw_relaxed_7(int i)6992 inline bool is_ignored_scale_dynamic_output_shape_nchw_relaxed_7(int i) {
6993 static std::set<int> ignore = {};
6994 return ignore.find(i) != ignore.end();
6995 }
6996
CreateModel_scale_dynamic_output_shape_nchw_quant8_7(Model * model)6997 void CreateModel_scale_dynamic_output_shape_nchw_quant8_7(Model *model) {
6998 OperandType type0(Type::BOOL, {});
6999 OperandType type4(Type::FLOAT32, {});
7000 OperandType type41(Type::TENSOR_QUANT8_ASYMM, {1, 1, 2, 2}, 0.25f, 100);
7001 OperandType type42(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 100);
7002 // Phase 1, operands
7003 auto in6 = model->addOperand(&type41);
7004 auto param26 = model->addOperand(&type4);
7005 auto param27 = model->addOperand(&type4);
7006 auto layout = model->addOperand(&type0);
7007 auto out6 = model->addOperand(&type42);
7008 // Phase 2, operations
7009 static float param26_init[] = {2.0f};
7010 model->setOperandValue(param26, param26_init, sizeof(float) * 1);
7011 static float param27_init[] = {2.0f};
7012 model->setOperandValue(param27, param27_init, sizeof(float) * 1);
7013 static bool8 layout_init[] = {true};
7014 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7015 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param26, param27, layout}, {out6});
7016 // Phase 3, inputs and outputs
7017 model->identifyInputsAndOutputs(
7018 {in6},
7019 {out6});
7020 assert(model->isValid());
7021 }
7022
is_ignored_scale_dynamic_output_shape_nchw_quant8_7(int i)7023 inline bool is_ignored_scale_dynamic_output_shape_nchw_quant8_7(int i) {
7024 static std::set<int> ignore = {};
7025 return ignore.find(i) != ignore.end();
7026 }
7027
CreateModel_scale_dynamic_output_shape_nchw_float16_7(Model * model)7028 void CreateModel_scale_dynamic_output_shape_nchw_float16_7(Model *model) {
7029 OperandType type0(Type::BOOL, {});
7030 OperandType type25(Type::TENSOR_FLOAT16, {1, 1, 2, 2});
7031 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
7032 OperandType type29(Type::FLOAT16, {});
7033 // Phase 1, operands
7034 auto in6 = model->addOperand(&type25);
7035 auto param26 = model->addOperand(&type29);
7036 auto param27 = model->addOperand(&type29);
7037 auto layout = model->addOperand(&type0);
7038 auto out6 = model->addOperand(&type28);
7039 // Phase 2, operations
7040 static _Float16 param26_init[] = {2.0f};
7041 model->setOperandValue(param26, param26_init, sizeof(_Float16) * 1);
7042 static _Float16 param27_init[] = {2.0f};
7043 model->setOperandValue(param27, param27_init, sizeof(_Float16) * 1);
7044 static bool8 layout_init[] = {true};
7045 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7046 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in6, param26, param27, layout}, {out6});
7047 // Phase 3, inputs and outputs
7048 model->identifyInputsAndOutputs(
7049 {in6},
7050 {out6});
7051 assert(model->isValid());
7052 }
7053
is_ignored_scale_dynamic_output_shape_nchw_float16_7(int i)7054 inline bool is_ignored_scale_dynamic_output_shape_nchw_float16_7(int i) {
7055 static std::set<int> ignore = {};
7056 return ignore.find(i) != ignore.end();
7057 }
7058
CreateModel_shape_nhwc_8(Model * model)7059 void CreateModel_shape_nhwc_8(Model *model) {
7060 OperandType type0(Type::BOOL, {});
7061 OperandType type10(Type::TENSOR_FLOAT32, {2, 3, 3, 2});
7062 OperandType type3(Type::INT32, {});
7063 OperandType type9(Type::TENSOR_FLOAT32, {2, 2, 2, 2});
7064 // Phase 1, operands
7065 auto in7 = model->addOperand(&type9);
7066 auto param28 = model->addOperand(&type3);
7067 auto param29 = model->addOperand(&type3);
7068 auto layout = model->addOperand(&type0);
7069 auto out7 = model->addOperand(&type10);
7070 // Phase 2, operations
7071 static int32_t param28_init[] = {3};
7072 model->setOperandValue(param28, param28_init, sizeof(int32_t) * 1);
7073 static int32_t param29_init[] = {3};
7074 model->setOperandValue(param29, param29_init, sizeof(int32_t) * 1);
7075 static bool8 layout_init[] = {false};
7076 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7077 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param28, param29, layout}, {out7});
7078 // Phase 3, inputs and outputs
7079 model->identifyInputsAndOutputs(
7080 {in7},
7081 {out7});
7082 assert(model->isValid());
7083 }
7084
is_ignored_shape_nhwc_8(int i)7085 inline bool is_ignored_shape_nhwc_8(int i) {
7086 static std::set<int> ignore = {};
7087 return ignore.find(i) != ignore.end();
7088 }
7089
CreateModel_shape_nhwc_relaxed_8(Model * model)7090 void CreateModel_shape_nhwc_relaxed_8(Model *model) {
7091 OperandType type0(Type::BOOL, {});
7092 OperandType type10(Type::TENSOR_FLOAT32, {2, 3, 3, 2});
7093 OperandType type3(Type::INT32, {});
7094 OperandType type9(Type::TENSOR_FLOAT32, {2, 2, 2, 2});
7095 // Phase 1, operands
7096 auto in7 = model->addOperand(&type9);
7097 auto param28 = model->addOperand(&type3);
7098 auto param29 = model->addOperand(&type3);
7099 auto layout = model->addOperand(&type0);
7100 auto out7 = model->addOperand(&type10);
7101 // Phase 2, operations
7102 static int32_t param28_init[] = {3};
7103 model->setOperandValue(param28, param28_init, sizeof(int32_t) * 1);
7104 static int32_t param29_init[] = {3};
7105 model->setOperandValue(param29, param29_init, sizeof(int32_t) * 1);
7106 static bool8 layout_init[] = {false};
7107 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7108 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param28, param29, layout}, {out7});
7109 // Phase 3, inputs and outputs
7110 model->identifyInputsAndOutputs(
7111 {in7},
7112 {out7});
7113 // Phase 4: set relaxed execution
7114 model->relaxComputationFloat32toFloat16(true);
7115 assert(model->isValid());
7116 }
7117
is_ignored_shape_nhwc_relaxed_8(int i)7118 inline bool is_ignored_shape_nhwc_relaxed_8(int i) {
7119 static std::set<int> ignore = {};
7120 return ignore.find(i) != ignore.end();
7121 }
7122
CreateModel_shape_nhwc_quant8_8(Model * model)7123 void CreateModel_shape_nhwc_quant8_8(Model *model) {
7124 OperandType type0(Type::BOOL, {});
7125 OperandType type3(Type::INT32, {});
7126 OperandType type58(Type::TENSOR_QUANT8_ASYMM, {2, 2, 2, 2}, 0.25f, 100);
7127 OperandType type59(Type::TENSOR_QUANT8_ASYMM, {2, 3, 3, 2}, 0.25f, 100);
7128 // Phase 1, operands
7129 auto in7 = model->addOperand(&type58);
7130 auto param28 = model->addOperand(&type3);
7131 auto param29 = model->addOperand(&type3);
7132 auto layout = model->addOperand(&type0);
7133 auto out7 = model->addOperand(&type59);
7134 // Phase 2, operations
7135 static int32_t param28_init[] = {3};
7136 model->setOperandValue(param28, param28_init, sizeof(int32_t) * 1);
7137 static int32_t param29_init[] = {3};
7138 model->setOperandValue(param29, param29_init, sizeof(int32_t) * 1);
7139 static bool8 layout_init[] = {false};
7140 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7141 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param28, param29, layout}, {out7});
7142 // Phase 3, inputs and outputs
7143 model->identifyInputsAndOutputs(
7144 {in7},
7145 {out7});
7146 assert(model->isValid());
7147 }
7148
is_ignored_shape_nhwc_quant8_8(int i)7149 inline bool is_ignored_shape_nhwc_quant8_8(int i) {
7150 static std::set<int> ignore = {};
7151 return ignore.find(i) != ignore.end();
7152 }
7153
CreateModel_shape_nhwc_float16_8(Model * model)7154 void CreateModel_shape_nhwc_float16_8(Model *model) {
7155 OperandType type0(Type::BOOL, {});
7156 OperandType type3(Type::INT32, {});
7157 OperandType type60(Type::TENSOR_FLOAT16, {2, 2, 2, 2});
7158 OperandType type61(Type::TENSOR_FLOAT16, {2, 3, 3, 2});
7159 // Phase 1, operands
7160 auto in7 = model->addOperand(&type60);
7161 auto param28 = model->addOperand(&type3);
7162 auto param29 = model->addOperand(&type3);
7163 auto layout = model->addOperand(&type0);
7164 auto out7 = model->addOperand(&type61);
7165 // Phase 2, operations
7166 static int32_t param28_init[] = {3};
7167 model->setOperandValue(param28, param28_init, sizeof(int32_t) * 1);
7168 static int32_t param29_init[] = {3};
7169 model->setOperandValue(param29, param29_init, sizeof(int32_t) * 1);
7170 static bool8 layout_init[] = {false};
7171 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7172 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param28, param29, layout}, {out7});
7173 // Phase 3, inputs and outputs
7174 model->identifyInputsAndOutputs(
7175 {in7},
7176 {out7});
7177 assert(model->isValid());
7178 }
7179
is_ignored_shape_nhwc_float16_8(int i)7180 inline bool is_ignored_shape_nhwc_float16_8(int i) {
7181 static std::set<int> ignore = {};
7182 return ignore.find(i) != ignore.end();
7183 }
7184
CreateModel_shape_nchw_8(Model * model)7185 void CreateModel_shape_nchw_8(Model *model) {
7186 OperandType type0(Type::BOOL, {});
7187 OperandType type3(Type::INT32, {});
7188 OperandType type62(Type::TENSOR_FLOAT32, {2, 2, 3, 3});
7189 OperandType type9(Type::TENSOR_FLOAT32, {2, 2, 2, 2});
7190 // Phase 1, operands
7191 auto in7 = model->addOperand(&type9);
7192 auto param28 = model->addOperand(&type3);
7193 auto param29 = model->addOperand(&type3);
7194 auto layout = model->addOperand(&type0);
7195 auto out7 = model->addOperand(&type62);
7196 // Phase 2, operations
7197 static int32_t param28_init[] = {3};
7198 model->setOperandValue(param28, param28_init, sizeof(int32_t) * 1);
7199 static int32_t param29_init[] = {3};
7200 model->setOperandValue(param29, param29_init, sizeof(int32_t) * 1);
7201 static bool8 layout_init[] = {true};
7202 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7203 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param28, param29, layout}, {out7});
7204 // Phase 3, inputs and outputs
7205 model->identifyInputsAndOutputs(
7206 {in7},
7207 {out7});
7208 assert(model->isValid());
7209 }
7210
is_ignored_shape_nchw_8(int i)7211 inline bool is_ignored_shape_nchw_8(int i) {
7212 static std::set<int> ignore = {};
7213 return ignore.find(i) != ignore.end();
7214 }
7215
CreateModel_shape_nchw_relaxed_8(Model * model)7216 void CreateModel_shape_nchw_relaxed_8(Model *model) {
7217 OperandType type0(Type::BOOL, {});
7218 OperandType type3(Type::INT32, {});
7219 OperandType type62(Type::TENSOR_FLOAT32, {2, 2, 3, 3});
7220 OperandType type9(Type::TENSOR_FLOAT32, {2, 2, 2, 2});
7221 // Phase 1, operands
7222 auto in7 = model->addOperand(&type9);
7223 auto param28 = model->addOperand(&type3);
7224 auto param29 = model->addOperand(&type3);
7225 auto layout = model->addOperand(&type0);
7226 auto out7 = model->addOperand(&type62);
7227 // Phase 2, operations
7228 static int32_t param28_init[] = {3};
7229 model->setOperandValue(param28, param28_init, sizeof(int32_t) * 1);
7230 static int32_t param29_init[] = {3};
7231 model->setOperandValue(param29, param29_init, sizeof(int32_t) * 1);
7232 static bool8 layout_init[] = {true};
7233 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7234 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param28, param29, layout}, {out7});
7235 // Phase 3, inputs and outputs
7236 model->identifyInputsAndOutputs(
7237 {in7},
7238 {out7});
7239 // Phase 4: set relaxed execution
7240 model->relaxComputationFloat32toFloat16(true);
7241 assert(model->isValid());
7242 }
7243
is_ignored_shape_nchw_relaxed_8(int i)7244 inline bool is_ignored_shape_nchw_relaxed_8(int i) {
7245 static std::set<int> ignore = {};
7246 return ignore.find(i) != ignore.end();
7247 }
7248
CreateModel_shape_nchw_quant8_8(Model * model)7249 void CreateModel_shape_nchw_quant8_8(Model *model) {
7250 OperandType type0(Type::BOOL, {});
7251 OperandType type3(Type::INT32, {});
7252 OperandType type58(Type::TENSOR_QUANT8_ASYMM, {2, 2, 2, 2}, 0.25f, 100);
7253 OperandType type63(Type::TENSOR_QUANT8_ASYMM, {2, 2, 3, 3}, 0.25f, 100);
7254 // Phase 1, operands
7255 auto in7 = model->addOperand(&type58);
7256 auto param28 = model->addOperand(&type3);
7257 auto param29 = model->addOperand(&type3);
7258 auto layout = model->addOperand(&type0);
7259 auto out7 = model->addOperand(&type63);
7260 // Phase 2, operations
7261 static int32_t param28_init[] = {3};
7262 model->setOperandValue(param28, param28_init, sizeof(int32_t) * 1);
7263 static int32_t param29_init[] = {3};
7264 model->setOperandValue(param29, param29_init, sizeof(int32_t) * 1);
7265 static bool8 layout_init[] = {true};
7266 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7267 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param28, param29, layout}, {out7});
7268 // Phase 3, inputs and outputs
7269 model->identifyInputsAndOutputs(
7270 {in7},
7271 {out7});
7272 assert(model->isValid());
7273 }
7274
is_ignored_shape_nchw_quant8_8(int i)7275 inline bool is_ignored_shape_nchw_quant8_8(int i) {
7276 static std::set<int> ignore = {};
7277 return ignore.find(i) != ignore.end();
7278 }
7279
CreateModel_shape_nchw_float16_8(Model * model)7280 void CreateModel_shape_nchw_float16_8(Model *model) {
7281 OperandType type0(Type::BOOL, {});
7282 OperandType type3(Type::INT32, {});
7283 OperandType type60(Type::TENSOR_FLOAT16, {2, 2, 2, 2});
7284 OperandType type64(Type::TENSOR_FLOAT16, {2, 2, 3, 3});
7285 // Phase 1, operands
7286 auto in7 = model->addOperand(&type60);
7287 auto param28 = model->addOperand(&type3);
7288 auto param29 = model->addOperand(&type3);
7289 auto layout = model->addOperand(&type0);
7290 auto out7 = model->addOperand(&type64);
7291 // Phase 2, operations
7292 static int32_t param28_init[] = {3};
7293 model->setOperandValue(param28, param28_init, sizeof(int32_t) * 1);
7294 static int32_t param29_init[] = {3};
7295 model->setOperandValue(param29, param29_init, sizeof(int32_t) * 1);
7296 static bool8 layout_init[] = {true};
7297 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7298 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param28, param29, layout}, {out7});
7299 // Phase 3, inputs and outputs
7300 model->identifyInputsAndOutputs(
7301 {in7},
7302 {out7});
7303 assert(model->isValid());
7304 }
7305
is_ignored_shape_nchw_float16_8(int i)7306 inline bool is_ignored_shape_nchw_float16_8(int i) {
7307 static std::set<int> ignore = {};
7308 return ignore.find(i) != ignore.end();
7309 }
7310
CreateModel_shape_dynamic_output_shape_nhwc_8(Model * model)7311 void CreateModel_shape_dynamic_output_shape_nhwc_8(Model *model) {
7312 OperandType type0(Type::BOOL, {});
7313 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
7314 OperandType type3(Type::INT32, {});
7315 OperandType type9(Type::TENSOR_FLOAT32, {2, 2, 2, 2});
7316 // Phase 1, operands
7317 auto in7 = model->addOperand(&type9);
7318 auto param28 = model->addOperand(&type3);
7319 auto param29 = model->addOperand(&type3);
7320 auto layout = model->addOperand(&type0);
7321 auto out7 = model->addOperand(&type26);
7322 // Phase 2, operations
7323 static int32_t param28_init[] = {3};
7324 model->setOperandValue(param28, param28_init, sizeof(int32_t) * 1);
7325 static int32_t param29_init[] = {3};
7326 model->setOperandValue(param29, param29_init, sizeof(int32_t) * 1);
7327 static bool8 layout_init[] = {false};
7328 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7329 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param28, param29, layout}, {out7});
7330 // Phase 3, inputs and outputs
7331 model->identifyInputsAndOutputs(
7332 {in7},
7333 {out7});
7334 assert(model->isValid());
7335 }
7336
is_ignored_shape_dynamic_output_shape_nhwc_8(int i)7337 inline bool is_ignored_shape_dynamic_output_shape_nhwc_8(int i) {
7338 static std::set<int> ignore = {};
7339 return ignore.find(i) != ignore.end();
7340 }
7341
CreateModel_shape_dynamic_output_shape_nhwc_relaxed_8(Model * model)7342 void CreateModel_shape_dynamic_output_shape_nhwc_relaxed_8(Model *model) {
7343 OperandType type0(Type::BOOL, {});
7344 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
7345 OperandType type3(Type::INT32, {});
7346 OperandType type9(Type::TENSOR_FLOAT32, {2, 2, 2, 2});
7347 // Phase 1, operands
7348 auto in7 = model->addOperand(&type9);
7349 auto param28 = model->addOperand(&type3);
7350 auto param29 = model->addOperand(&type3);
7351 auto layout = model->addOperand(&type0);
7352 auto out7 = model->addOperand(&type26);
7353 // Phase 2, operations
7354 static int32_t param28_init[] = {3};
7355 model->setOperandValue(param28, param28_init, sizeof(int32_t) * 1);
7356 static int32_t param29_init[] = {3};
7357 model->setOperandValue(param29, param29_init, sizeof(int32_t) * 1);
7358 static bool8 layout_init[] = {false};
7359 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7360 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param28, param29, layout}, {out7});
7361 // Phase 3, inputs and outputs
7362 model->identifyInputsAndOutputs(
7363 {in7},
7364 {out7});
7365 // Phase 4: set relaxed execution
7366 model->relaxComputationFloat32toFloat16(true);
7367 assert(model->isValid());
7368 }
7369
is_ignored_shape_dynamic_output_shape_nhwc_relaxed_8(int i)7370 inline bool is_ignored_shape_dynamic_output_shape_nhwc_relaxed_8(int i) {
7371 static std::set<int> ignore = {};
7372 return ignore.find(i) != ignore.end();
7373 }
7374
CreateModel_shape_dynamic_output_shape_nhwc_quant8_8(Model * model)7375 void CreateModel_shape_dynamic_output_shape_nhwc_quant8_8(Model *model) {
7376 OperandType type0(Type::BOOL, {});
7377 OperandType type3(Type::INT32, {});
7378 OperandType type42(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 100);
7379 OperandType type58(Type::TENSOR_QUANT8_ASYMM, {2, 2, 2, 2}, 0.25f, 100);
7380 // Phase 1, operands
7381 auto in7 = model->addOperand(&type58);
7382 auto param28 = model->addOperand(&type3);
7383 auto param29 = model->addOperand(&type3);
7384 auto layout = model->addOperand(&type0);
7385 auto out7 = model->addOperand(&type42);
7386 // Phase 2, operations
7387 static int32_t param28_init[] = {3};
7388 model->setOperandValue(param28, param28_init, sizeof(int32_t) * 1);
7389 static int32_t param29_init[] = {3};
7390 model->setOperandValue(param29, param29_init, sizeof(int32_t) * 1);
7391 static bool8 layout_init[] = {false};
7392 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7393 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param28, param29, layout}, {out7});
7394 // Phase 3, inputs and outputs
7395 model->identifyInputsAndOutputs(
7396 {in7},
7397 {out7});
7398 assert(model->isValid());
7399 }
7400
is_ignored_shape_dynamic_output_shape_nhwc_quant8_8(int i)7401 inline bool is_ignored_shape_dynamic_output_shape_nhwc_quant8_8(int i) {
7402 static std::set<int> ignore = {};
7403 return ignore.find(i) != ignore.end();
7404 }
7405
CreateModel_shape_dynamic_output_shape_nhwc_float16_8(Model * model)7406 void CreateModel_shape_dynamic_output_shape_nhwc_float16_8(Model *model) {
7407 OperandType type0(Type::BOOL, {});
7408 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
7409 OperandType type3(Type::INT32, {});
7410 OperandType type60(Type::TENSOR_FLOAT16, {2, 2, 2, 2});
7411 // Phase 1, operands
7412 auto in7 = model->addOperand(&type60);
7413 auto param28 = model->addOperand(&type3);
7414 auto param29 = model->addOperand(&type3);
7415 auto layout = model->addOperand(&type0);
7416 auto out7 = model->addOperand(&type28);
7417 // Phase 2, operations
7418 static int32_t param28_init[] = {3};
7419 model->setOperandValue(param28, param28_init, sizeof(int32_t) * 1);
7420 static int32_t param29_init[] = {3};
7421 model->setOperandValue(param29, param29_init, sizeof(int32_t) * 1);
7422 static bool8 layout_init[] = {false};
7423 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7424 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param28, param29, layout}, {out7});
7425 // Phase 3, inputs and outputs
7426 model->identifyInputsAndOutputs(
7427 {in7},
7428 {out7});
7429 assert(model->isValid());
7430 }
7431
is_ignored_shape_dynamic_output_shape_nhwc_float16_8(int i)7432 inline bool is_ignored_shape_dynamic_output_shape_nhwc_float16_8(int i) {
7433 static std::set<int> ignore = {};
7434 return ignore.find(i) != ignore.end();
7435 }
7436
CreateModel_shape_dynamic_output_shape_nchw_8(Model * model)7437 void CreateModel_shape_dynamic_output_shape_nchw_8(Model *model) {
7438 OperandType type0(Type::BOOL, {});
7439 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
7440 OperandType type3(Type::INT32, {});
7441 OperandType type9(Type::TENSOR_FLOAT32, {2, 2, 2, 2});
7442 // Phase 1, operands
7443 auto in7 = model->addOperand(&type9);
7444 auto param28 = model->addOperand(&type3);
7445 auto param29 = model->addOperand(&type3);
7446 auto layout = model->addOperand(&type0);
7447 auto out7 = model->addOperand(&type26);
7448 // Phase 2, operations
7449 static int32_t param28_init[] = {3};
7450 model->setOperandValue(param28, param28_init, sizeof(int32_t) * 1);
7451 static int32_t param29_init[] = {3};
7452 model->setOperandValue(param29, param29_init, sizeof(int32_t) * 1);
7453 static bool8 layout_init[] = {true};
7454 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7455 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param28, param29, layout}, {out7});
7456 // Phase 3, inputs and outputs
7457 model->identifyInputsAndOutputs(
7458 {in7},
7459 {out7});
7460 assert(model->isValid());
7461 }
7462
is_ignored_shape_dynamic_output_shape_nchw_8(int i)7463 inline bool is_ignored_shape_dynamic_output_shape_nchw_8(int i) {
7464 static std::set<int> ignore = {};
7465 return ignore.find(i) != ignore.end();
7466 }
7467
CreateModel_shape_dynamic_output_shape_nchw_relaxed_8(Model * model)7468 void CreateModel_shape_dynamic_output_shape_nchw_relaxed_8(Model *model) {
7469 OperandType type0(Type::BOOL, {});
7470 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
7471 OperandType type3(Type::INT32, {});
7472 OperandType type9(Type::TENSOR_FLOAT32, {2, 2, 2, 2});
7473 // Phase 1, operands
7474 auto in7 = model->addOperand(&type9);
7475 auto param28 = model->addOperand(&type3);
7476 auto param29 = model->addOperand(&type3);
7477 auto layout = model->addOperand(&type0);
7478 auto out7 = model->addOperand(&type26);
7479 // Phase 2, operations
7480 static int32_t param28_init[] = {3};
7481 model->setOperandValue(param28, param28_init, sizeof(int32_t) * 1);
7482 static int32_t param29_init[] = {3};
7483 model->setOperandValue(param29, param29_init, sizeof(int32_t) * 1);
7484 static bool8 layout_init[] = {true};
7485 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7486 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param28, param29, layout}, {out7});
7487 // Phase 3, inputs and outputs
7488 model->identifyInputsAndOutputs(
7489 {in7},
7490 {out7});
7491 // Phase 4: set relaxed execution
7492 model->relaxComputationFloat32toFloat16(true);
7493 assert(model->isValid());
7494 }
7495
is_ignored_shape_dynamic_output_shape_nchw_relaxed_8(int i)7496 inline bool is_ignored_shape_dynamic_output_shape_nchw_relaxed_8(int i) {
7497 static std::set<int> ignore = {};
7498 return ignore.find(i) != ignore.end();
7499 }
7500
CreateModel_shape_dynamic_output_shape_nchw_quant8_8(Model * model)7501 void CreateModel_shape_dynamic_output_shape_nchw_quant8_8(Model *model) {
7502 OperandType type0(Type::BOOL, {});
7503 OperandType type3(Type::INT32, {});
7504 OperandType type42(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 100);
7505 OperandType type58(Type::TENSOR_QUANT8_ASYMM, {2, 2, 2, 2}, 0.25f, 100);
7506 // Phase 1, operands
7507 auto in7 = model->addOperand(&type58);
7508 auto param28 = model->addOperand(&type3);
7509 auto param29 = model->addOperand(&type3);
7510 auto layout = model->addOperand(&type0);
7511 auto out7 = model->addOperand(&type42);
7512 // Phase 2, operations
7513 static int32_t param28_init[] = {3};
7514 model->setOperandValue(param28, param28_init, sizeof(int32_t) * 1);
7515 static int32_t param29_init[] = {3};
7516 model->setOperandValue(param29, param29_init, sizeof(int32_t) * 1);
7517 static bool8 layout_init[] = {true};
7518 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7519 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param28, param29, layout}, {out7});
7520 // Phase 3, inputs and outputs
7521 model->identifyInputsAndOutputs(
7522 {in7},
7523 {out7});
7524 assert(model->isValid());
7525 }
7526
is_ignored_shape_dynamic_output_shape_nchw_quant8_8(int i)7527 inline bool is_ignored_shape_dynamic_output_shape_nchw_quant8_8(int i) {
7528 static std::set<int> ignore = {};
7529 return ignore.find(i) != ignore.end();
7530 }
7531
CreateModel_shape_dynamic_output_shape_nchw_float16_8(Model * model)7532 void CreateModel_shape_dynamic_output_shape_nchw_float16_8(Model *model) {
7533 OperandType type0(Type::BOOL, {});
7534 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
7535 OperandType type3(Type::INT32, {});
7536 OperandType type60(Type::TENSOR_FLOAT16, {2, 2, 2, 2});
7537 // Phase 1, operands
7538 auto in7 = model->addOperand(&type60);
7539 auto param28 = model->addOperand(&type3);
7540 auto param29 = model->addOperand(&type3);
7541 auto layout = model->addOperand(&type0);
7542 auto out7 = model->addOperand(&type28);
7543 // Phase 2, operations
7544 static int32_t param28_init[] = {3};
7545 model->setOperandValue(param28, param28_init, sizeof(int32_t) * 1);
7546 static int32_t param29_init[] = {3};
7547 model->setOperandValue(param29, param29_init, sizeof(int32_t) * 1);
7548 static bool8 layout_init[] = {true};
7549 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7550 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param28, param29, layout}, {out7});
7551 // Phase 3, inputs and outputs
7552 model->identifyInputsAndOutputs(
7553 {in7},
7554 {out7});
7555 assert(model->isValid());
7556 }
7557
is_ignored_shape_dynamic_output_shape_nchw_float16_8(int i)7558 inline bool is_ignored_shape_dynamic_output_shape_nchw_float16_8(int i) {
7559 static std::set<int> ignore = {};
7560 return ignore.find(i) != ignore.end();
7561 }
7562
CreateModel_scale_nhwc_8(Model * model)7563 void CreateModel_scale_nhwc_8(Model *model) {
7564 OperandType type0(Type::BOOL, {});
7565 OperandType type10(Type::TENSOR_FLOAT32, {2, 3, 3, 2});
7566 OperandType type4(Type::FLOAT32, {});
7567 OperandType type9(Type::TENSOR_FLOAT32, {2, 2, 2, 2});
7568 // Phase 1, operands
7569 auto in7 = model->addOperand(&type9);
7570 auto param30 = model->addOperand(&type4);
7571 auto param31 = model->addOperand(&type4);
7572 auto layout = model->addOperand(&type0);
7573 auto out7 = model->addOperand(&type10);
7574 // Phase 2, operations
7575 static float param30_init[] = {1.6f};
7576 model->setOperandValue(param30, param30_init, sizeof(float) * 1);
7577 static float param31_init[] = {1.8f};
7578 model->setOperandValue(param31, param31_init, sizeof(float) * 1);
7579 static bool8 layout_init[] = {false};
7580 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7581 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param30, param31, layout}, {out7});
7582 // Phase 3, inputs and outputs
7583 model->identifyInputsAndOutputs(
7584 {in7},
7585 {out7});
7586 assert(model->isValid());
7587 }
7588
is_ignored_scale_nhwc_8(int i)7589 inline bool is_ignored_scale_nhwc_8(int i) {
7590 static std::set<int> ignore = {};
7591 return ignore.find(i) != ignore.end();
7592 }
7593
CreateModel_scale_nhwc_relaxed_8(Model * model)7594 void CreateModel_scale_nhwc_relaxed_8(Model *model) {
7595 OperandType type0(Type::BOOL, {});
7596 OperandType type10(Type::TENSOR_FLOAT32, {2, 3, 3, 2});
7597 OperandType type4(Type::FLOAT32, {});
7598 OperandType type9(Type::TENSOR_FLOAT32, {2, 2, 2, 2});
7599 // Phase 1, operands
7600 auto in7 = model->addOperand(&type9);
7601 auto param30 = model->addOperand(&type4);
7602 auto param31 = model->addOperand(&type4);
7603 auto layout = model->addOperand(&type0);
7604 auto out7 = model->addOperand(&type10);
7605 // Phase 2, operations
7606 static float param30_init[] = {1.6f};
7607 model->setOperandValue(param30, param30_init, sizeof(float) * 1);
7608 static float param31_init[] = {1.8f};
7609 model->setOperandValue(param31, param31_init, sizeof(float) * 1);
7610 static bool8 layout_init[] = {false};
7611 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7612 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param30, param31, layout}, {out7});
7613 // Phase 3, inputs and outputs
7614 model->identifyInputsAndOutputs(
7615 {in7},
7616 {out7});
7617 // Phase 4: set relaxed execution
7618 model->relaxComputationFloat32toFloat16(true);
7619 assert(model->isValid());
7620 }
7621
is_ignored_scale_nhwc_relaxed_8(int i)7622 inline bool is_ignored_scale_nhwc_relaxed_8(int i) {
7623 static std::set<int> ignore = {};
7624 return ignore.find(i) != ignore.end();
7625 }
7626
CreateModel_scale_nhwc_quant8_8(Model * model)7627 void CreateModel_scale_nhwc_quant8_8(Model *model) {
7628 OperandType type0(Type::BOOL, {});
7629 OperandType type4(Type::FLOAT32, {});
7630 OperandType type58(Type::TENSOR_QUANT8_ASYMM, {2, 2, 2, 2}, 0.25f, 100);
7631 OperandType type59(Type::TENSOR_QUANT8_ASYMM, {2, 3, 3, 2}, 0.25f, 100);
7632 // Phase 1, operands
7633 auto in7 = model->addOperand(&type58);
7634 auto param30 = model->addOperand(&type4);
7635 auto param31 = model->addOperand(&type4);
7636 auto layout = model->addOperand(&type0);
7637 auto out7 = model->addOperand(&type59);
7638 // Phase 2, operations
7639 static float param30_init[] = {1.6f};
7640 model->setOperandValue(param30, param30_init, sizeof(float) * 1);
7641 static float param31_init[] = {1.8f};
7642 model->setOperandValue(param31, param31_init, sizeof(float) * 1);
7643 static bool8 layout_init[] = {false};
7644 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7645 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param30, param31, layout}, {out7});
7646 // Phase 3, inputs and outputs
7647 model->identifyInputsAndOutputs(
7648 {in7},
7649 {out7});
7650 assert(model->isValid());
7651 }
7652
is_ignored_scale_nhwc_quant8_8(int i)7653 inline bool is_ignored_scale_nhwc_quant8_8(int i) {
7654 static std::set<int> ignore = {};
7655 return ignore.find(i) != ignore.end();
7656 }
7657
CreateModel_scale_nhwc_float16_8(Model * model)7658 void CreateModel_scale_nhwc_float16_8(Model *model) {
7659 OperandType type0(Type::BOOL, {});
7660 OperandType type29(Type::FLOAT16, {});
7661 OperandType type60(Type::TENSOR_FLOAT16, {2, 2, 2, 2});
7662 OperandType type61(Type::TENSOR_FLOAT16, {2, 3, 3, 2});
7663 // Phase 1, operands
7664 auto in7 = model->addOperand(&type60);
7665 auto param30 = model->addOperand(&type29);
7666 auto param31 = model->addOperand(&type29);
7667 auto layout = model->addOperand(&type0);
7668 auto out7 = model->addOperand(&type61);
7669 // Phase 2, operations
7670 static _Float16 param30_init[] = {1.600000023841858f};
7671 model->setOperandValue(param30, param30_init, sizeof(_Float16) * 1);
7672 static _Float16 param31_init[] = {1.7999999523162842f};
7673 model->setOperandValue(param31, param31_init, sizeof(_Float16) * 1);
7674 static bool8 layout_init[] = {false};
7675 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7676 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param30, param31, layout}, {out7});
7677 // Phase 3, inputs and outputs
7678 model->identifyInputsAndOutputs(
7679 {in7},
7680 {out7});
7681 assert(model->isValid());
7682 }
7683
is_ignored_scale_nhwc_float16_8(int i)7684 inline bool is_ignored_scale_nhwc_float16_8(int i) {
7685 static std::set<int> ignore = {};
7686 return ignore.find(i) != ignore.end();
7687 }
7688
CreateModel_scale_nchw_8(Model * model)7689 void CreateModel_scale_nchw_8(Model *model) {
7690 OperandType type0(Type::BOOL, {});
7691 OperandType type4(Type::FLOAT32, {});
7692 OperandType type62(Type::TENSOR_FLOAT32, {2, 2, 3, 3});
7693 OperandType type9(Type::TENSOR_FLOAT32, {2, 2, 2, 2});
7694 // Phase 1, operands
7695 auto in7 = model->addOperand(&type9);
7696 auto param30 = model->addOperand(&type4);
7697 auto param31 = model->addOperand(&type4);
7698 auto layout = model->addOperand(&type0);
7699 auto out7 = model->addOperand(&type62);
7700 // Phase 2, operations
7701 static float param30_init[] = {1.6f};
7702 model->setOperandValue(param30, param30_init, sizeof(float) * 1);
7703 static float param31_init[] = {1.8f};
7704 model->setOperandValue(param31, param31_init, sizeof(float) * 1);
7705 static bool8 layout_init[] = {true};
7706 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7707 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param30, param31, layout}, {out7});
7708 // Phase 3, inputs and outputs
7709 model->identifyInputsAndOutputs(
7710 {in7},
7711 {out7});
7712 assert(model->isValid());
7713 }
7714
is_ignored_scale_nchw_8(int i)7715 inline bool is_ignored_scale_nchw_8(int i) {
7716 static std::set<int> ignore = {};
7717 return ignore.find(i) != ignore.end();
7718 }
7719
CreateModel_scale_nchw_relaxed_8(Model * model)7720 void CreateModel_scale_nchw_relaxed_8(Model *model) {
7721 OperandType type0(Type::BOOL, {});
7722 OperandType type4(Type::FLOAT32, {});
7723 OperandType type62(Type::TENSOR_FLOAT32, {2, 2, 3, 3});
7724 OperandType type9(Type::TENSOR_FLOAT32, {2, 2, 2, 2});
7725 // Phase 1, operands
7726 auto in7 = model->addOperand(&type9);
7727 auto param30 = model->addOperand(&type4);
7728 auto param31 = model->addOperand(&type4);
7729 auto layout = model->addOperand(&type0);
7730 auto out7 = model->addOperand(&type62);
7731 // Phase 2, operations
7732 static float param30_init[] = {1.6f};
7733 model->setOperandValue(param30, param30_init, sizeof(float) * 1);
7734 static float param31_init[] = {1.8f};
7735 model->setOperandValue(param31, param31_init, sizeof(float) * 1);
7736 static bool8 layout_init[] = {true};
7737 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7738 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param30, param31, layout}, {out7});
7739 // Phase 3, inputs and outputs
7740 model->identifyInputsAndOutputs(
7741 {in7},
7742 {out7});
7743 // Phase 4: set relaxed execution
7744 model->relaxComputationFloat32toFloat16(true);
7745 assert(model->isValid());
7746 }
7747
is_ignored_scale_nchw_relaxed_8(int i)7748 inline bool is_ignored_scale_nchw_relaxed_8(int i) {
7749 static std::set<int> ignore = {};
7750 return ignore.find(i) != ignore.end();
7751 }
7752
CreateModel_scale_nchw_quant8_8(Model * model)7753 void CreateModel_scale_nchw_quant8_8(Model *model) {
7754 OperandType type0(Type::BOOL, {});
7755 OperandType type4(Type::FLOAT32, {});
7756 OperandType type58(Type::TENSOR_QUANT8_ASYMM, {2, 2, 2, 2}, 0.25f, 100);
7757 OperandType type63(Type::TENSOR_QUANT8_ASYMM, {2, 2, 3, 3}, 0.25f, 100);
7758 // Phase 1, operands
7759 auto in7 = model->addOperand(&type58);
7760 auto param30 = model->addOperand(&type4);
7761 auto param31 = model->addOperand(&type4);
7762 auto layout = model->addOperand(&type0);
7763 auto out7 = model->addOperand(&type63);
7764 // Phase 2, operations
7765 static float param30_init[] = {1.6f};
7766 model->setOperandValue(param30, param30_init, sizeof(float) * 1);
7767 static float param31_init[] = {1.8f};
7768 model->setOperandValue(param31, param31_init, sizeof(float) * 1);
7769 static bool8 layout_init[] = {true};
7770 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7771 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param30, param31, layout}, {out7});
7772 // Phase 3, inputs and outputs
7773 model->identifyInputsAndOutputs(
7774 {in7},
7775 {out7});
7776 assert(model->isValid());
7777 }
7778
is_ignored_scale_nchw_quant8_8(int i)7779 inline bool is_ignored_scale_nchw_quant8_8(int i) {
7780 static std::set<int> ignore = {};
7781 return ignore.find(i) != ignore.end();
7782 }
7783
CreateModel_scale_nchw_float16_8(Model * model)7784 void CreateModel_scale_nchw_float16_8(Model *model) {
7785 OperandType type0(Type::BOOL, {});
7786 OperandType type29(Type::FLOAT16, {});
7787 OperandType type60(Type::TENSOR_FLOAT16, {2, 2, 2, 2});
7788 OperandType type64(Type::TENSOR_FLOAT16, {2, 2, 3, 3});
7789 // Phase 1, operands
7790 auto in7 = model->addOperand(&type60);
7791 auto param30 = model->addOperand(&type29);
7792 auto param31 = model->addOperand(&type29);
7793 auto layout = model->addOperand(&type0);
7794 auto out7 = model->addOperand(&type64);
7795 // Phase 2, operations
7796 static _Float16 param30_init[] = {1.600000023841858f};
7797 model->setOperandValue(param30, param30_init, sizeof(_Float16) * 1);
7798 static _Float16 param31_init[] = {1.7999999523162842f};
7799 model->setOperandValue(param31, param31_init, sizeof(_Float16) * 1);
7800 static bool8 layout_init[] = {true};
7801 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7802 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param30, param31, layout}, {out7});
7803 // Phase 3, inputs and outputs
7804 model->identifyInputsAndOutputs(
7805 {in7},
7806 {out7});
7807 assert(model->isValid());
7808 }
7809
is_ignored_scale_nchw_float16_8(int i)7810 inline bool is_ignored_scale_nchw_float16_8(int i) {
7811 static std::set<int> ignore = {};
7812 return ignore.find(i) != ignore.end();
7813 }
7814
CreateModel_scale_dynamic_output_shape_nhwc_8(Model * model)7815 void CreateModel_scale_dynamic_output_shape_nhwc_8(Model *model) {
7816 OperandType type0(Type::BOOL, {});
7817 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
7818 OperandType type4(Type::FLOAT32, {});
7819 OperandType type9(Type::TENSOR_FLOAT32, {2, 2, 2, 2});
7820 // Phase 1, operands
7821 auto in7 = model->addOperand(&type9);
7822 auto param30 = model->addOperand(&type4);
7823 auto param31 = model->addOperand(&type4);
7824 auto layout = model->addOperand(&type0);
7825 auto out7 = model->addOperand(&type26);
7826 // Phase 2, operations
7827 static float param30_init[] = {1.6f};
7828 model->setOperandValue(param30, param30_init, sizeof(float) * 1);
7829 static float param31_init[] = {1.8f};
7830 model->setOperandValue(param31, param31_init, sizeof(float) * 1);
7831 static bool8 layout_init[] = {false};
7832 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7833 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param30, param31, layout}, {out7});
7834 // Phase 3, inputs and outputs
7835 model->identifyInputsAndOutputs(
7836 {in7},
7837 {out7});
7838 assert(model->isValid());
7839 }
7840
is_ignored_scale_dynamic_output_shape_nhwc_8(int i)7841 inline bool is_ignored_scale_dynamic_output_shape_nhwc_8(int i) {
7842 static std::set<int> ignore = {};
7843 return ignore.find(i) != ignore.end();
7844 }
7845
CreateModel_scale_dynamic_output_shape_nhwc_relaxed_8(Model * model)7846 void CreateModel_scale_dynamic_output_shape_nhwc_relaxed_8(Model *model) {
7847 OperandType type0(Type::BOOL, {});
7848 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
7849 OperandType type4(Type::FLOAT32, {});
7850 OperandType type9(Type::TENSOR_FLOAT32, {2, 2, 2, 2});
7851 // Phase 1, operands
7852 auto in7 = model->addOperand(&type9);
7853 auto param30 = model->addOperand(&type4);
7854 auto param31 = model->addOperand(&type4);
7855 auto layout = model->addOperand(&type0);
7856 auto out7 = model->addOperand(&type26);
7857 // Phase 2, operations
7858 static float param30_init[] = {1.6f};
7859 model->setOperandValue(param30, param30_init, sizeof(float) * 1);
7860 static float param31_init[] = {1.8f};
7861 model->setOperandValue(param31, param31_init, sizeof(float) * 1);
7862 static bool8 layout_init[] = {false};
7863 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7864 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param30, param31, layout}, {out7});
7865 // Phase 3, inputs and outputs
7866 model->identifyInputsAndOutputs(
7867 {in7},
7868 {out7});
7869 // Phase 4: set relaxed execution
7870 model->relaxComputationFloat32toFloat16(true);
7871 assert(model->isValid());
7872 }
7873
is_ignored_scale_dynamic_output_shape_nhwc_relaxed_8(int i)7874 inline bool is_ignored_scale_dynamic_output_shape_nhwc_relaxed_8(int i) {
7875 static std::set<int> ignore = {};
7876 return ignore.find(i) != ignore.end();
7877 }
7878
CreateModel_scale_dynamic_output_shape_nhwc_quant8_8(Model * model)7879 void CreateModel_scale_dynamic_output_shape_nhwc_quant8_8(Model *model) {
7880 OperandType type0(Type::BOOL, {});
7881 OperandType type4(Type::FLOAT32, {});
7882 OperandType type42(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 100);
7883 OperandType type58(Type::TENSOR_QUANT8_ASYMM, {2, 2, 2, 2}, 0.25f, 100);
7884 // Phase 1, operands
7885 auto in7 = model->addOperand(&type58);
7886 auto param30 = model->addOperand(&type4);
7887 auto param31 = model->addOperand(&type4);
7888 auto layout = model->addOperand(&type0);
7889 auto out7 = model->addOperand(&type42);
7890 // Phase 2, operations
7891 static float param30_init[] = {1.6f};
7892 model->setOperandValue(param30, param30_init, sizeof(float) * 1);
7893 static float param31_init[] = {1.8f};
7894 model->setOperandValue(param31, param31_init, sizeof(float) * 1);
7895 static bool8 layout_init[] = {false};
7896 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7897 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param30, param31, layout}, {out7});
7898 // Phase 3, inputs and outputs
7899 model->identifyInputsAndOutputs(
7900 {in7},
7901 {out7});
7902 assert(model->isValid());
7903 }
7904
is_ignored_scale_dynamic_output_shape_nhwc_quant8_8(int i)7905 inline bool is_ignored_scale_dynamic_output_shape_nhwc_quant8_8(int i) {
7906 static std::set<int> ignore = {};
7907 return ignore.find(i) != ignore.end();
7908 }
7909
CreateModel_scale_dynamic_output_shape_nhwc_float16_8(Model * model)7910 void CreateModel_scale_dynamic_output_shape_nhwc_float16_8(Model *model) {
7911 OperandType type0(Type::BOOL, {});
7912 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
7913 OperandType type29(Type::FLOAT16, {});
7914 OperandType type60(Type::TENSOR_FLOAT16, {2, 2, 2, 2});
7915 // Phase 1, operands
7916 auto in7 = model->addOperand(&type60);
7917 auto param30 = model->addOperand(&type29);
7918 auto param31 = model->addOperand(&type29);
7919 auto layout = model->addOperand(&type0);
7920 auto out7 = model->addOperand(&type28);
7921 // Phase 2, operations
7922 static _Float16 param30_init[] = {1.600000023841858f};
7923 model->setOperandValue(param30, param30_init, sizeof(_Float16) * 1);
7924 static _Float16 param31_init[] = {1.7999999523162842f};
7925 model->setOperandValue(param31, param31_init, sizeof(_Float16) * 1);
7926 static bool8 layout_init[] = {false};
7927 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7928 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param30, param31, layout}, {out7});
7929 // Phase 3, inputs and outputs
7930 model->identifyInputsAndOutputs(
7931 {in7},
7932 {out7});
7933 assert(model->isValid());
7934 }
7935
is_ignored_scale_dynamic_output_shape_nhwc_float16_8(int i)7936 inline bool is_ignored_scale_dynamic_output_shape_nhwc_float16_8(int i) {
7937 static std::set<int> ignore = {};
7938 return ignore.find(i) != ignore.end();
7939 }
7940
CreateModel_scale_dynamic_output_shape_nchw_8(Model * model)7941 void CreateModel_scale_dynamic_output_shape_nchw_8(Model *model) {
7942 OperandType type0(Type::BOOL, {});
7943 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
7944 OperandType type4(Type::FLOAT32, {});
7945 OperandType type9(Type::TENSOR_FLOAT32, {2, 2, 2, 2});
7946 // Phase 1, operands
7947 auto in7 = model->addOperand(&type9);
7948 auto param30 = model->addOperand(&type4);
7949 auto param31 = model->addOperand(&type4);
7950 auto layout = model->addOperand(&type0);
7951 auto out7 = model->addOperand(&type26);
7952 // Phase 2, operations
7953 static float param30_init[] = {1.6f};
7954 model->setOperandValue(param30, param30_init, sizeof(float) * 1);
7955 static float param31_init[] = {1.8f};
7956 model->setOperandValue(param31, param31_init, sizeof(float) * 1);
7957 static bool8 layout_init[] = {true};
7958 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7959 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param30, param31, layout}, {out7});
7960 // Phase 3, inputs and outputs
7961 model->identifyInputsAndOutputs(
7962 {in7},
7963 {out7});
7964 assert(model->isValid());
7965 }
7966
is_ignored_scale_dynamic_output_shape_nchw_8(int i)7967 inline bool is_ignored_scale_dynamic_output_shape_nchw_8(int i) {
7968 static std::set<int> ignore = {};
7969 return ignore.find(i) != ignore.end();
7970 }
7971
CreateModel_scale_dynamic_output_shape_nchw_relaxed_8(Model * model)7972 void CreateModel_scale_dynamic_output_shape_nchw_relaxed_8(Model *model) {
7973 OperandType type0(Type::BOOL, {});
7974 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
7975 OperandType type4(Type::FLOAT32, {});
7976 OperandType type9(Type::TENSOR_FLOAT32, {2, 2, 2, 2});
7977 // Phase 1, operands
7978 auto in7 = model->addOperand(&type9);
7979 auto param30 = model->addOperand(&type4);
7980 auto param31 = model->addOperand(&type4);
7981 auto layout = model->addOperand(&type0);
7982 auto out7 = model->addOperand(&type26);
7983 // Phase 2, operations
7984 static float param30_init[] = {1.6f};
7985 model->setOperandValue(param30, param30_init, sizeof(float) * 1);
7986 static float param31_init[] = {1.8f};
7987 model->setOperandValue(param31, param31_init, sizeof(float) * 1);
7988 static bool8 layout_init[] = {true};
7989 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
7990 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param30, param31, layout}, {out7});
7991 // Phase 3, inputs and outputs
7992 model->identifyInputsAndOutputs(
7993 {in7},
7994 {out7});
7995 // Phase 4: set relaxed execution
7996 model->relaxComputationFloat32toFloat16(true);
7997 assert(model->isValid());
7998 }
7999
is_ignored_scale_dynamic_output_shape_nchw_relaxed_8(int i)8000 inline bool is_ignored_scale_dynamic_output_shape_nchw_relaxed_8(int i) {
8001 static std::set<int> ignore = {};
8002 return ignore.find(i) != ignore.end();
8003 }
8004
CreateModel_scale_dynamic_output_shape_nchw_quant8_8(Model * model)8005 void CreateModel_scale_dynamic_output_shape_nchw_quant8_8(Model *model) {
8006 OperandType type0(Type::BOOL, {});
8007 OperandType type4(Type::FLOAT32, {});
8008 OperandType type42(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.25f, 100);
8009 OperandType type58(Type::TENSOR_QUANT8_ASYMM, {2, 2, 2, 2}, 0.25f, 100);
8010 // Phase 1, operands
8011 auto in7 = model->addOperand(&type58);
8012 auto param30 = model->addOperand(&type4);
8013 auto param31 = model->addOperand(&type4);
8014 auto layout = model->addOperand(&type0);
8015 auto out7 = model->addOperand(&type42);
8016 // Phase 2, operations
8017 static float param30_init[] = {1.6f};
8018 model->setOperandValue(param30, param30_init, sizeof(float) * 1);
8019 static float param31_init[] = {1.8f};
8020 model->setOperandValue(param31, param31_init, sizeof(float) * 1);
8021 static bool8 layout_init[] = {true};
8022 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
8023 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param30, param31, layout}, {out7});
8024 // Phase 3, inputs and outputs
8025 model->identifyInputsAndOutputs(
8026 {in7},
8027 {out7});
8028 assert(model->isValid());
8029 }
8030
is_ignored_scale_dynamic_output_shape_nchw_quant8_8(int i)8031 inline bool is_ignored_scale_dynamic_output_shape_nchw_quant8_8(int i) {
8032 static std::set<int> ignore = {};
8033 return ignore.find(i) != ignore.end();
8034 }
8035
CreateModel_scale_dynamic_output_shape_nchw_float16_8(Model * model)8036 void CreateModel_scale_dynamic_output_shape_nchw_float16_8(Model *model) {
8037 OperandType type0(Type::BOOL, {});
8038 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
8039 OperandType type29(Type::FLOAT16, {});
8040 OperandType type60(Type::TENSOR_FLOAT16, {2, 2, 2, 2});
8041 // Phase 1, operands
8042 auto in7 = model->addOperand(&type60);
8043 auto param30 = model->addOperand(&type29);
8044 auto param31 = model->addOperand(&type29);
8045 auto layout = model->addOperand(&type0);
8046 auto out7 = model->addOperand(&type28);
8047 // Phase 2, operations
8048 static _Float16 param30_init[] = {1.600000023841858f};
8049 model->setOperandValue(param30, param30_init, sizeof(_Float16) * 1);
8050 static _Float16 param31_init[] = {1.7999999523162842f};
8051 model->setOperandValue(param31, param31_init, sizeof(_Float16) * 1);
8052 static bool8 layout_init[] = {true};
8053 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
8054 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {in7, param30, param31, layout}, {out7});
8055 // Phase 3, inputs and outputs
8056 model->identifyInputsAndOutputs(
8057 {in7},
8058 {out7});
8059 assert(model->isValid());
8060 }
8061
is_ignored_scale_dynamic_output_shape_nchw_float16_8(int i)8062 inline bool is_ignored_scale_dynamic_output_shape_nchw_float16_8(int i) {
8063 static std::set<int> ignore = {};
8064 return ignore.find(i) != ignore.end();
8065 }
8066
CreateModel_zero_sized_nhwc(Model * model)8067 void CreateModel_zero_sized_nhwc(Model *model) {
8068 OperandType type0(Type::BOOL, {});
8069 OperandType type11(Type::TENSOR_FLOAT32, {1, 2});
8070 OperandType type12(Type::TENSOR_FLOAT32, {1, 8});
8071 OperandType type13(Type::TENSOR_FLOAT32, {0});
8072 OperandType type14(Type::TENSOR_INT32, {0});
8073 OperandType type15(Type::TENSOR_FLOAT32, {0, 4});
8074 OperandType type16(Type::TENSOR_INT32, {1});
8075 OperandType type17(Type::TENSOR_FLOAT32, {0, 2, 2, 1});
8076 OperandType type18(Type::TENSOR_FLOAT32, {0, 3, 3, 1});
8077 OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 1});
8078 OperandType type3(Type::INT32, {});
8079 OperandType type4(Type::FLOAT32, {});
8080 // Phase 1, operands
8081 auto scores = model->addOperand(&type11);
8082 auto roi = model->addOperand(&type12);
8083 auto param32 = model->addOperand(&type16);
8084 auto param33 = model->addOperand(&type4);
8085 auto param34 = model->addOperand(&type3);
8086 auto param35 = model->addOperand(&type3);
8087 auto param36 = model->addOperand(&type4);
8088 auto param37 = model->addOperand(&type4);
8089 auto param38 = model->addOperand(&type4);
8090 auto scoresOut = model->addOperand(&type13);
8091 auto roiOut = model->addOperand(&type15);
8092 auto classesOut = model->addOperand(&type14);
8093 auto batchSplitOut = model->addOperand(&type14);
8094 auto in8 = model->addOperand(&type2);
8095 auto param39 = model->addOperand(&type3);
8096 auto param40 = model->addOperand(&type3);
8097 auto param41 = model->addOperand(&type4);
8098 auto param42 = model->addOperand(&type4);
8099 auto param43 = model->addOperand(&type3);
8100 auto param44 = model->addOperand(&type3);
8101 auto layout = model->addOperand(&type0);
8102 auto featureMap = model->addOperand(&type17);
8103 auto param45 = model->addOperand(&type3);
8104 auto param46 = model->addOperand(&type3);
8105 auto out8 = model->addOperand(&type18);
8106 // Phase 2, operations
8107 static float scores_init[] = {0.9f, 0.1f};
8108 model->setOperandValue(scores, scores_init, sizeof(float) * 2);
8109 static float roi_init[] = {1.0f, 1.0f, 10.0f, 10.0f, 0.0f, 0.0f, 10.0f, 10.0f};
8110 model->setOperandValue(roi, roi_init, sizeof(float) * 8);
8111 static int32_t param32_init[] = {0};
8112 model->setOperandValue(param32, param32_init, sizeof(int32_t) * 1);
8113 static float param33_init[] = {0.3f};
8114 model->setOperandValue(param33, param33_init, sizeof(float) * 1);
8115 static int32_t param34_init[] = {-1};
8116 model->setOperandValue(param34, param34_init, sizeof(int32_t) * 1);
8117 static int32_t param35_init[] = {0};
8118 model->setOperandValue(param35, param35_init, sizeof(int32_t) * 1);
8119 static float param36_init[] = {0.4f};
8120 model->setOperandValue(param36, param36_init, sizeof(float) * 1);
8121 static float param37_init[] = {1.0f};
8122 model->setOperandValue(param37, param37_init, sizeof(float) * 1);
8123 static float param38_init[] = {0.3f};
8124 model->setOperandValue(param38, param38_init, sizeof(float) * 1);
8125 static int32_t param39_init[] = {2};
8126 model->setOperandValue(param39, param39_init, sizeof(int32_t) * 1);
8127 static int32_t param40_init[] = {2};
8128 model->setOperandValue(param40, param40_init, sizeof(int32_t) * 1);
8129 static float param41_init[] = {2.0f};
8130 model->setOperandValue(param41, param41_init, sizeof(float) * 1);
8131 static float param42_init[] = {2.0f};
8132 model->setOperandValue(param42, param42_init, sizeof(float) * 1);
8133 static int32_t param43_init[] = {4};
8134 model->setOperandValue(param43, param43_init, sizeof(int32_t) * 1);
8135 static int32_t param44_init[] = {4};
8136 model->setOperandValue(param44, param44_init, sizeof(int32_t) * 1);
8137 static bool8 layout_init[] = {false};
8138 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
8139 static int32_t param45_init[] = {3};
8140 model->setOperandValue(param45, param45_init, sizeof(int32_t) * 1);
8141 static int32_t param46_init[] = {3};
8142 model->setOperandValue(param46, param46_init, sizeof(int32_t) * 1);
8143 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores, roi, param32, param33, param34, param35, param36, param37, param38}, {scoresOut, roiOut, classesOut, batchSplitOut});
8144 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in8, roiOut, batchSplitOut, param39, param40, param41, param42, param43, param44, layout}, {featureMap});
8145 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap, param45, param46, layout}, {out8});
8146 // Phase 3, inputs and outputs
8147 model->identifyInputsAndOutputs(
8148 {in8},
8149 {scoresOut, classesOut, out8});
8150 assert(model->isValid());
8151 }
8152
is_ignored_zero_sized_nhwc(int i)8153 inline bool is_ignored_zero_sized_nhwc(int i) {
8154 static std::set<int> ignore = {};
8155 return ignore.find(i) != ignore.end();
8156 }
8157
CreateModel_zero_sized_nhwc_relaxed(Model * model)8158 void CreateModel_zero_sized_nhwc_relaxed(Model *model) {
8159 OperandType type0(Type::BOOL, {});
8160 OperandType type11(Type::TENSOR_FLOAT32, {1, 2});
8161 OperandType type12(Type::TENSOR_FLOAT32, {1, 8});
8162 OperandType type13(Type::TENSOR_FLOAT32, {0});
8163 OperandType type14(Type::TENSOR_INT32, {0});
8164 OperandType type15(Type::TENSOR_FLOAT32, {0, 4});
8165 OperandType type16(Type::TENSOR_INT32, {1});
8166 OperandType type17(Type::TENSOR_FLOAT32, {0, 2, 2, 1});
8167 OperandType type18(Type::TENSOR_FLOAT32, {0, 3, 3, 1});
8168 OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 1});
8169 OperandType type3(Type::INT32, {});
8170 OperandType type4(Type::FLOAT32, {});
8171 // Phase 1, operands
8172 auto scores = model->addOperand(&type11);
8173 auto roi = model->addOperand(&type12);
8174 auto param32 = model->addOperand(&type16);
8175 auto param33 = model->addOperand(&type4);
8176 auto param34 = model->addOperand(&type3);
8177 auto param35 = model->addOperand(&type3);
8178 auto param36 = model->addOperand(&type4);
8179 auto param37 = model->addOperand(&type4);
8180 auto param38 = model->addOperand(&type4);
8181 auto scoresOut = model->addOperand(&type13);
8182 auto roiOut = model->addOperand(&type15);
8183 auto classesOut = model->addOperand(&type14);
8184 auto batchSplitOut = model->addOperand(&type14);
8185 auto in8 = model->addOperand(&type2);
8186 auto param39 = model->addOperand(&type3);
8187 auto param40 = model->addOperand(&type3);
8188 auto param41 = model->addOperand(&type4);
8189 auto param42 = model->addOperand(&type4);
8190 auto param43 = model->addOperand(&type3);
8191 auto param44 = model->addOperand(&type3);
8192 auto layout = model->addOperand(&type0);
8193 auto featureMap = model->addOperand(&type17);
8194 auto param45 = model->addOperand(&type3);
8195 auto param46 = model->addOperand(&type3);
8196 auto out8 = model->addOperand(&type18);
8197 // Phase 2, operations
8198 static float scores_init[] = {0.9f, 0.1f};
8199 model->setOperandValue(scores, scores_init, sizeof(float) * 2);
8200 static float roi_init[] = {1.0f, 1.0f, 10.0f, 10.0f, 0.0f, 0.0f, 10.0f, 10.0f};
8201 model->setOperandValue(roi, roi_init, sizeof(float) * 8);
8202 static int32_t param32_init[] = {0};
8203 model->setOperandValue(param32, param32_init, sizeof(int32_t) * 1);
8204 static float param33_init[] = {0.3f};
8205 model->setOperandValue(param33, param33_init, sizeof(float) * 1);
8206 static int32_t param34_init[] = {-1};
8207 model->setOperandValue(param34, param34_init, sizeof(int32_t) * 1);
8208 static int32_t param35_init[] = {0};
8209 model->setOperandValue(param35, param35_init, sizeof(int32_t) * 1);
8210 static float param36_init[] = {0.4f};
8211 model->setOperandValue(param36, param36_init, sizeof(float) * 1);
8212 static float param37_init[] = {1.0f};
8213 model->setOperandValue(param37, param37_init, sizeof(float) * 1);
8214 static float param38_init[] = {0.3f};
8215 model->setOperandValue(param38, param38_init, sizeof(float) * 1);
8216 static int32_t param39_init[] = {2};
8217 model->setOperandValue(param39, param39_init, sizeof(int32_t) * 1);
8218 static int32_t param40_init[] = {2};
8219 model->setOperandValue(param40, param40_init, sizeof(int32_t) * 1);
8220 static float param41_init[] = {2.0f};
8221 model->setOperandValue(param41, param41_init, sizeof(float) * 1);
8222 static float param42_init[] = {2.0f};
8223 model->setOperandValue(param42, param42_init, sizeof(float) * 1);
8224 static int32_t param43_init[] = {4};
8225 model->setOperandValue(param43, param43_init, sizeof(int32_t) * 1);
8226 static int32_t param44_init[] = {4};
8227 model->setOperandValue(param44, param44_init, sizeof(int32_t) * 1);
8228 static bool8 layout_init[] = {false};
8229 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
8230 static int32_t param45_init[] = {3};
8231 model->setOperandValue(param45, param45_init, sizeof(int32_t) * 1);
8232 static int32_t param46_init[] = {3};
8233 model->setOperandValue(param46, param46_init, sizeof(int32_t) * 1);
8234 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores, roi, param32, param33, param34, param35, param36, param37, param38}, {scoresOut, roiOut, classesOut, batchSplitOut});
8235 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in8, roiOut, batchSplitOut, param39, param40, param41, param42, param43, param44, layout}, {featureMap});
8236 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap, param45, param46, layout}, {out8});
8237 // Phase 3, inputs and outputs
8238 model->identifyInputsAndOutputs(
8239 {in8},
8240 {scoresOut, classesOut, out8});
8241 // Phase 4: set relaxed execution
8242 model->relaxComputationFloat32toFloat16(true);
8243 assert(model->isValid());
8244 }
8245
is_ignored_zero_sized_nhwc_relaxed(int i)8246 inline bool is_ignored_zero_sized_nhwc_relaxed(int i) {
8247 static std::set<int> ignore = {};
8248 return ignore.find(i) != ignore.end();
8249 }
8250
CreateModel_zero_sized_nhwc_quant8(Model * model)8251 void CreateModel_zero_sized_nhwc_quant8(Model *model) {
8252 OperandType type0(Type::BOOL, {});
8253 OperandType type14(Type::TENSOR_INT32, {0});
8254 OperandType type16(Type::TENSOR_INT32, {1});
8255 OperandType type3(Type::INT32, {});
8256 OperandType type4(Type::FLOAT32, {});
8257 OperandType type65(Type::TENSOR_QUANT8_ASYMM, {0, 2, 2, 1}, 0.1f, 128);
8258 OperandType type66(Type::TENSOR_QUANT8_ASYMM, {1, 1, 1, 1}, 0.1f, 128);
8259 OperandType type67(Type::TENSOR_QUANT8_ASYMM, {0, 3, 3, 1}, 0.1f, 128);
8260 OperandType type68(Type::TENSOR_QUANT16_ASYMM, {1, 8}, 0.125f, 0);
8261 OperandType type69(Type::TENSOR_QUANT16_ASYMM, {0, 4}, 0.125f, 0);
8262 OperandType type70(Type::TENSOR_QUANT8_ASYMM, {1, 2}, 0.1f, 128);
8263 OperandType type71(Type::TENSOR_QUANT8_ASYMM, {0}, 0.1f, 128);
8264 // Phase 1, operands
8265 auto scores = model->addOperand(&type70);
8266 auto roi = model->addOperand(&type68);
8267 auto param32 = model->addOperand(&type16);
8268 auto param33 = model->addOperand(&type4);
8269 auto param34 = model->addOperand(&type3);
8270 auto param35 = model->addOperand(&type3);
8271 auto param36 = model->addOperand(&type4);
8272 auto param37 = model->addOperand(&type4);
8273 auto param38 = model->addOperand(&type4);
8274 auto scoresOut = model->addOperand(&type71);
8275 auto roiOut = model->addOperand(&type69);
8276 auto classesOut = model->addOperand(&type14);
8277 auto batchSplitOut = model->addOperand(&type14);
8278 auto in8 = model->addOperand(&type66);
8279 auto param39 = model->addOperand(&type3);
8280 auto param40 = model->addOperand(&type3);
8281 auto param41 = model->addOperand(&type4);
8282 auto param42 = model->addOperand(&type4);
8283 auto param43 = model->addOperand(&type3);
8284 auto param44 = model->addOperand(&type3);
8285 auto layout = model->addOperand(&type0);
8286 auto featureMap = model->addOperand(&type65);
8287 auto param45 = model->addOperand(&type3);
8288 auto param46 = model->addOperand(&type3);
8289 auto out8 = model->addOperand(&type67);
8290 // Phase 2, operations
8291 static uint8_t scores_init[] = {137, 129};
8292 model->setOperandValue(scores, scores_init, sizeof(uint8_t) * 2);
8293 static uint16_t roi_init[] = {8, 8, 80, 80, 0, 0, 80, 80};
8294 model->setOperandValue(roi, roi_init, sizeof(uint16_t) * 8);
8295 static int32_t param32_init[] = {0};
8296 model->setOperandValue(param32, param32_init, sizeof(int32_t) * 1);
8297 static float param33_init[] = {0.3f};
8298 model->setOperandValue(param33, param33_init, sizeof(float) * 1);
8299 static int32_t param34_init[] = {-1};
8300 model->setOperandValue(param34, param34_init, sizeof(int32_t) * 1);
8301 static int32_t param35_init[] = {0};
8302 model->setOperandValue(param35, param35_init, sizeof(int32_t) * 1);
8303 static float param36_init[] = {0.4f};
8304 model->setOperandValue(param36, param36_init, sizeof(float) * 1);
8305 static float param37_init[] = {1.0f};
8306 model->setOperandValue(param37, param37_init, sizeof(float) * 1);
8307 static float param38_init[] = {0.3f};
8308 model->setOperandValue(param38, param38_init, sizeof(float) * 1);
8309 static int32_t param39_init[] = {2};
8310 model->setOperandValue(param39, param39_init, sizeof(int32_t) * 1);
8311 static int32_t param40_init[] = {2};
8312 model->setOperandValue(param40, param40_init, sizeof(int32_t) * 1);
8313 static float param41_init[] = {2.0f};
8314 model->setOperandValue(param41, param41_init, sizeof(float) * 1);
8315 static float param42_init[] = {2.0f};
8316 model->setOperandValue(param42, param42_init, sizeof(float) * 1);
8317 static int32_t param43_init[] = {4};
8318 model->setOperandValue(param43, param43_init, sizeof(int32_t) * 1);
8319 static int32_t param44_init[] = {4};
8320 model->setOperandValue(param44, param44_init, sizeof(int32_t) * 1);
8321 static bool8 layout_init[] = {false};
8322 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
8323 static int32_t param45_init[] = {3};
8324 model->setOperandValue(param45, param45_init, sizeof(int32_t) * 1);
8325 static int32_t param46_init[] = {3};
8326 model->setOperandValue(param46, param46_init, sizeof(int32_t) * 1);
8327 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores, roi, param32, param33, param34, param35, param36, param37, param38}, {scoresOut, roiOut, classesOut, batchSplitOut});
8328 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in8, roiOut, batchSplitOut, param39, param40, param41, param42, param43, param44, layout}, {featureMap});
8329 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap, param45, param46, layout}, {out8});
8330 // Phase 3, inputs and outputs
8331 model->identifyInputsAndOutputs(
8332 {in8},
8333 {scoresOut, classesOut, out8});
8334 assert(model->isValid());
8335 }
8336
is_ignored_zero_sized_nhwc_quant8(int i)8337 inline bool is_ignored_zero_sized_nhwc_quant8(int i) {
8338 static std::set<int> ignore = {};
8339 return ignore.find(i) != ignore.end();
8340 }
8341
CreateModel_zero_sized_nhwc_float16(Model * model)8342 void CreateModel_zero_sized_nhwc_float16(Model *model) {
8343 OperandType type0(Type::BOOL, {});
8344 OperandType type14(Type::TENSOR_INT32, {0});
8345 OperandType type16(Type::TENSOR_INT32, {1});
8346 OperandType type22(Type::TENSOR_FLOAT16, {1, 1, 1, 1});
8347 OperandType type29(Type::FLOAT16, {});
8348 OperandType type3(Type::INT32, {});
8349 OperandType type72(Type::TENSOR_FLOAT16, {0, 2, 2, 1});
8350 OperandType type73(Type::TENSOR_FLOAT16, {0, 3, 3, 1});
8351 OperandType type74(Type::TENSOR_FLOAT16, {1, 8});
8352 OperandType type75(Type::TENSOR_FLOAT16, {0, 4});
8353 OperandType type76(Type::TENSOR_FLOAT16, {1, 2});
8354 OperandType type77(Type::TENSOR_FLOAT16, {0});
8355 // Phase 1, operands
8356 auto scores = model->addOperand(&type76);
8357 auto roi = model->addOperand(&type74);
8358 auto param32 = model->addOperand(&type16);
8359 auto param33 = model->addOperand(&type29);
8360 auto param34 = model->addOperand(&type3);
8361 auto param35 = model->addOperand(&type3);
8362 auto param36 = model->addOperand(&type29);
8363 auto param37 = model->addOperand(&type29);
8364 auto param38 = model->addOperand(&type29);
8365 auto scoresOut = model->addOperand(&type77);
8366 auto roiOut = model->addOperand(&type75);
8367 auto classesOut = model->addOperand(&type14);
8368 auto batchSplitOut = model->addOperand(&type14);
8369 auto in8 = model->addOperand(&type22);
8370 auto param39 = model->addOperand(&type3);
8371 auto param40 = model->addOperand(&type3);
8372 auto param41 = model->addOperand(&type29);
8373 auto param42 = model->addOperand(&type29);
8374 auto param43 = model->addOperand(&type3);
8375 auto param44 = model->addOperand(&type3);
8376 auto layout = model->addOperand(&type0);
8377 auto featureMap = model->addOperand(&type72);
8378 auto param45 = model->addOperand(&type3);
8379 auto param46 = model->addOperand(&type3);
8380 auto out8 = model->addOperand(&type73);
8381 // Phase 2, operations
8382 static _Float16 scores_init[] = {0.8999999761581421f, 0.10000000149011612f};
8383 model->setOperandValue(scores, scores_init, sizeof(_Float16) * 2);
8384 static _Float16 roi_init[] = {1.0f, 1.0f, 10.0f, 10.0f, 0.0f, 0.0f, 10.0f, 10.0f};
8385 model->setOperandValue(roi, roi_init, sizeof(_Float16) * 8);
8386 static int32_t param32_init[] = {0};
8387 model->setOperandValue(param32, param32_init, sizeof(int32_t) * 1);
8388 static _Float16 param33_init[] = {0.30000001192092896f};
8389 model->setOperandValue(param33, param33_init, sizeof(_Float16) * 1);
8390 static int32_t param34_init[] = {-1};
8391 model->setOperandValue(param34, param34_init, sizeof(int32_t) * 1);
8392 static int32_t param35_init[] = {0};
8393 model->setOperandValue(param35, param35_init, sizeof(int32_t) * 1);
8394 static _Float16 param36_init[] = {0.4000000059604645f};
8395 model->setOperandValue(param36, param36_init, sizeof(_Float16) * 1);
8396 static _Float16 param37_init[] = {1.0f};
8397 model->setOperandValue(param37, param37_init, sizeof(_Float16) * 1);
8398 static _Float16 param38_init[] = {0.30000001192092896f};
8399 model->setOperandValue(param38, param38_init, sizeof(_Float16) * 1);
8400 static int32_t param39_init[] = {2};
8401 model->setOperandValue(param39, param39_init, sizeof(int32_t) * 1);
8402 static int32_t param40_init[] = {2};
8403 model->setOperandValue(param40, param40_init, sizeof(int32_t) * 1);
8404 static _Float16 param41_init[] = {2.0f};
8405 model->setOperandValue(param41, param41_init, sizeof(_Float16) * 1);
8406 static _Float16 param42_init[] = {2.0f};
8407 model->setOperandValue(param42, param42_init, sizeof(_Float16) * 1);
8408 static int32_t param43_init[] = {4};
8409 model->setOperandValue(param43, param43_init, sizeof(int32_t) * 1);
8410 static int32_t param44_init[] = {4};
8411 model->setOperandValue(param44, param44_init, sizeof(int32_t) * 1);
8412 static bool8 layout_init[] = {false};
8413 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
8414 static int32_t param45_init[] = {3};
8415 model->setOperandValue(param45, param45_init, sizeof(int32_t) * 1);
8416 static int32_t param46_init[] = {3};
8417 model->setOperandValue(param46, param46_init, sizeof(int32_t) * 1);
8418 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores, roi, param32, param33, param34, param35, param36, param37, param38}, {scoresOut, roiOut, classesOut, batchSplitOut});
8419 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in8, roiOut, batchSplitOut, param39, param40, param41, param42, param43, param44, layout}, {featureMap});
8420 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap, param45, param46, layout}, {out8});
8421 // Phase 3, inputs and outputs
8422 model->identifyInputsAndOutputs(
8423 {in8},
8424 {scoresOut, classesOut, out8});
8425 assert(model->isValid());
8426 }
8427
is_ignored_zero_sized_nhwc_float16(int i)8428 inline bool is_ignored_zero_sized_nhwc_float16(int i) {
8429 static std::set<int> ignore = {};
8430 return ignore.find(i) != ignore.end();
8431 }
8432
CreateModel_zero_sized_nchw(Model * model)8433 void CreateModel_zero_sized_nchw(Model *model) {
8434 OperandType type0(Type::BOOL, {});
8435 OperandType type11(Type::TENSOR_FLOAT32, {1, 2});
8436 OperandType type12(Type::TENSOR_FLOAT32, {1, 8});
8437 OperandType type13(Type::TENSOR_FLOAT32, {0});
8438 OperandType type14(Type::TENSOR_INT32, {0});
8439 OperandType type15(Type::TENSOR_FLOAT32, {0, 4});
8440 OperandType type16(Type::TENSOR_INT32, {1});
8441 OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 1});
8442 OperandType type3(Type::INT32, {});
8443 OperandType type4(Type::FLOAT32, {});
8444 OperandType type78(Type::TENSOR_FLOAT32, {0, 1, 2, 2});
8445 OperandType type79(Type::TENSOR_FLOAT32, {0, 1, 3, 3});
8446 // Phase 1, operands
8447 auto scores = model->addOperand(&type11);
8448 auto roi = model->addOperand(&type12);
8449 auto param32 = model->addOperand(&type16);
8450 auto param33 = model->addOperand(&type4);
8451 auto param34 = model->addOperand(&type3);
8452 auto param35 = model->addOperand(&type3);
8453 auto param36 = model->addOperand(&type4);
8454 auto param37 = model->addOperand(&type4);
8455 auto param38 = model->addOperand(&type4);
8456 auto scoresOut = model->addOperand(&type13);
8457 auto roiOut = model->addOperand(&type15);
8458 auto classesOut = model->addOperand(&type14);
8459 auto batchSplitOut = model->addOperand(&type14);
8460 auto in8 = model->addOperand(&type2);
8461 auto param39 = model->addOperand(&type3);
8462 auto param40 = model->addOperand(&type3);
8463 auto param41 = model->addOperand(&type4);
8464 auto param42 = model->addOperand(&type4);
8465 auto param43 = model->addOperand(&type3);
8466 auto param44 = model->addOperand(&type3);
8467 auto layout = model->addOperand(&type0);
8468 auto featureMap = model->addOperand(&type78);
8469 auto param45 = model->addOperand(&type3);
8470 auto param46 = model->addOperand(&type3);
8471 auto out8 = model->addOperand(&type79);
8472 // Phase 2, operations
8473 static float scores_init[] = {0.9f, 0.1f};
8474 model->setOperandValue(scores, scores_init, sizeof(float) * 2);
8475 static float roi_init[] = {1.0f, 1.0f, 10.0f, 10.0f, 0.0f, 0.0f, 10.0f, 10.0f};
8476 model->setOperandValue(roi, roi_init, sizeof(float) * 8);
8477 static int32_t param32_init[] = {0};
8478 model->setOperandValue(param32, param32_init, sizeof(int32_t) * 1);
8479 static float param33_init[] = {0.3f};
8480 model->setOperandValue(param33, param33_init, sizeof(float) * 1);
8481 static int32_t param34_init[] = {-1};
8482 model->setOperandValue(param34, param34_init, sizeof(int32_t) * 1);
8483 static int32_t param35_init[] = {0};
8484 model->setOperandValue(param35, param35_init, sizeof(int32_t) * 1);
8485 static float param36_init[] = {0.4f};
8486 model->setOperandValue(param36, param36_init, sizeof(float) * 1);
8487 static float param37_init[] = {1.0f};
8488 model->setOperandValue(param37, param37_init, sizeof(float) * 1);
8489 static float param38_init[] = {0.3f};
8490 model->setOperandValue(param38, param38_init, sizeof(float) * 1);
8491 static int32_t param39_init[] = {2};
8492 model->setOperandValue(param39, param39_init, sizeof(int32_t) * 1);
8493 static int32_t param40_init[] = {2};
8494 model->setOperandValue(param40, param40_init, sizeof(int32_t) * 1);
8495 static float param41_init[] = {2.0f};
8496 model->setOperandValue(param41, param41_init, sizeof(float) * 1);
8497 static float param42_init[] = {2.0f};
8498 model->setOperandValue(param42, param42_init, sizeof(float) * 1);
8499 static int32_t param43_init[] = {4};
8500 model->setOperandValue(param43, param43_init, sizeof(int32_t) * 1);
8501 static int32_t param44_init[] = {4};
8502 model->setOperandValue(param44, param44_init, sizeof(int32_t) * 1);
8503 static bool8 layout_init[] = {true};
8504 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
8505 static int32_t param45_init[] = {3};
8506 model->setOperandValue(param45, param45_init, sizeof(int32_t) * 1);
8507 static int32_t param46_init[] = {3};
8508 model->setOperandValue(param46, param46_init, sizeof(int32_t) * 1);
8509 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores, roi, param32, param33, param34, param35, param36, param37, param38}, {scoresOut, roiOut, classesOut, batchSplitOut});
8510 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in8, roiOut, batchSplitOut, param39, param40, param41, param42, param43, param44, layout}, {featureMap});
8511 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap, param45, param46, layout}, {out8});
8512 // Phase 3, inputs and outputs
8513 model->identifyInputsAndOutputs(
8514 {in8},
8515 {scoresOut, classesOut, out8});
8516 assert(model->isValid());
8517 }
8518
is_ignored_zero_sized_nchw(int i)8519 inline bool is_ignored_zero_sized_nchw(int i) {
8520 static std::set<int> ignore = {};
8521 return ignore.find(i) != ignore.end();
8522 }
8523
CreateModel_zero_sized_nchw_relaxed(Model * model)8524 void CreateModel_zero_sized_nchw_relaxed(Model *model) {
8525 OperandType type0(Type::BOOL, {});
8526 OperandType type11(Type::TENSOR_FLOAT32, {1, 2});
8527 OperandType type12(Type::TENSOR_FLOAT32, {1, 8});
8528 OperandType type13(Type::TENSOR_FLOAT32, {0});
8529 OperandType type14(Type::TENSOR_INT32, {0});
8530 OperandType type15(Type::TENSOR_FLOAT32, {0, 4});
8531 OperandType type16(Type::TENSOR_INT32, {1});
8532 OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 1});
8533 OperandType type3(Type::INT32, {});
8534 OperandType type4(Type::FLOAT32, {});
8535 OperandType type78(Type::TENSOR_FLOAT32, {0, 1, 2, 2});
8536 OperandType type79(Type::TENSOR_FLOAT32, {0, 1, 3, 3});
8537 // Phase 1, operands
8538 auto scores = model->addOperand(&type11);
8539 auto roi = model->addOperand(&type12);
8540 auto param32 = model->addOperand(&type16);
8541 auto param33 = model->addOperand(&type4);
8542 auto param34 = model->addOperand(&type3);
8543 auto param35 = model->addOperand(&type3);
8544 auto param36 = model->addOperand(&type4);
8545 auto param37 = model->addOperand(&type4);
8546 auto param38 = model->addOperand(&type4);
8547 auto scoresOut = model->addOperand(&type13);
8548 auto roiOut = model->addOperand(&type15);
8549 auto classesOut = model->addOperand(&type14);
8550 auto batchSplitOut = model->addOperand(&type14);
8551 auto in8 = model->addOperand(&type2);
8552 auto param39 = model->addOperand(&type3);
8553 auto param40 = model->addOperand(&type3);
8554 auto param41 = model->addOperand(&type4);
8555 auto param42 = model->addOperand(&type4);
8556 auto param43 = model->addOperand(&type3);
8557 auto param44 = model->addOperand(&type3);
8558 auto layout = model->addOperand(&type0);
8559 auto featureMap = model->addOperand(&type78);
8560 auto param45 = model->addOperand(&type3);
8561 auto param46 = model->addOperand(&type3);
8562 auto out8 = model->addOperand(&type79);
8563 // Phase 2, operations
8564 static float scores_init[] = {0.9f, 0.1f};
8565 model->setOperandValue(scores, scores_init, sizeof(float) * 2);
8566 static float roi_init[] = {1.0f, 1.0f, 10.0f, 10.0f, 0.0f, 0.0f, 10.0f, 10.0f};
8567 model->setOperandValue(roi, roi_init, sizeof(float) * 8);
8568 static int32_t param32_init[] = {0};
8569 model->setOperandValue(param32, param32_init, sizeof(int32_t) * 1);
8570 static float param33_init[] = {0.3f};
8571 model->setOperandValue(param33, param33_init, sizeof(float) * 1);
8572 static int32_t param34_init[] = {-1};
8573 model->setOperandValue(param34, param34_init, sizeof(int32_t) * 1);
8574 static int32_t param35_init[] = {0};
8575 model->setOperandValue(param35, param35_init, sizeof(int32_t) * 1);
8576 static float param36_init[] = {0.4f};
8577 model->setOperandValue(param36, param36_init, sizeof(float) * 1);
8578 static float param37_init[] = {1.0f};
8579 model->setOperandValue(param37, param37_init, sizeof(float) * 1);
8580 static float param38_init[] = {0.3f};
8581 model->setOperandValue(param38, param38_init, sizeof(float) * 1);
8582 static int32_t param39_init[] = {2};
8583 model->setOperandValue(param39, param39_init, sizeof(int32_t) * 1);
8584 static int32_t param40_init[] = {2};
8585 model->setOperandValue(param40, param40_init, sizeof(int32_t) * 1);
8586 static float param41_init[] = {2.0f};
8587 model->setOperandValue(param41, param41_init, sizeof(float) * 1);
8588 static float param42_init[] = {2.0f};
8589 model->setOperandValue(param42, param42_init, sizeof(float) * 1);
8590 static int32_t param43_init[] = {4};
8591 model->setOperandValue(param43, param43_init, sizeof(int32_t) * 1);
8592 static int32_t param44_init[] = {4};
8593 model->setOperandValue(param44, param44_init, sizeof(int32_t) * 1);
8594 static bool8 layout_init[] = {true};
8595 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
8596 static int32_t param45_init[] = {3};
8597 model->setOperandValue(param45, param45_init, sizeof(int32_t) * 1);
8598 static int32_t param46_init[] = {3};
8599 model->setOperandValue(param46, param46_init, sizeof(int32_t) * 1);
8600 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores, roi, param32, param33, param34, param35, param36, param37, param38}, {scoresOut, roiOut, classesOut, batchSplitOut});
8601 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in8, roiOut, batchSplitOut, param39, param40, param41, param42, param43, param44, layout}, {featureMap});
8602 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap, param45, param46, layout}, {out8});
8603 // Phase 3, inputs and outputs
8604 model->identifyInputsAndOutputs(
8605 {in8},
8606 {scoresOut, classesOut, out8});
8607 // Phase 4: set relaxed execution
8608 model->relaxComputationFloat32toFloat16(true);
8609 assert(model->isValid());
8610 }
8611
is_ignored_zero_sized_nchw_relaxed(int i)8612 inline bool is_ignored_zero_sized_nchw_relaxed(int i) {
8613 static std::set<int> ignore = {};
8614 return ignore.find(i) != ignore.end();
8615 }
8616
CreateModel_zero_sized_nchw_quant8(Model * model)8617 void CreateModel_zero_sized_nchw_quant8(Model *model) {
8618 OperandType type0(Type::BOOL, {});
8619 OperandType type14(Type::TENSOR_INT32, {0});
8620 OperandType type16(Type::TENSOR_INT32, {1});
8621 OperandType type3(Type::INT32, {});
8622 OperandType type4(Type::FLOAT32, {});
8623 OperandType type66(Type::TENSOR_QUANT8_ASYMM, {1, 1, 1, 1}, 0.1f, 128);
8624 OperandType type68(Type::TENSOR_QUANT16_ASYMM, {1, 8}, 0.125f, 0);
8625 OperandType type69(Type::TENSOR_QUANT16_ASYMM, {0, 4}, 0.125f, 0);
8626 OperandType type70(Type::TENSOR_QUANT8_ASYMM, {1, 2}, 0.1f, 128);
8627 OperandType type71(Type::TENSOR_QUANT8_ASYMM, {0}, 0.1f, 128);
8628 OperandType type80(Type::TENSOR_QUANT8_ASYMM, {0, 1, 2, 2}, 0.1f, 128);
8629 OperandType type81(Type::TENSOR_QUANT8_ASYMM, {0, 1, 3, 3}, 0.1f, 128);
8630 // Phase 1, operands
8631 auto scores = model->addOperand(&type70);
8632 auto roi = model->addOperand(&type68);
8633 auto param32 = model->addOperand(&type16);
8634 auto param33 = model->addOperand(&type4);
8635 auto param34 = model->addOperand(&type3);
8636 auto param35 = model->addOperand(&type3);
8637 auto param36 = model->addOperand(&type4);
8638 auto param37 = model->addOperand(&type4);
8639 auto param38 = model->addOperand(&type4);
8640 auto scoresOut = model->addOperand(&type71);
8641 auto roiOut = model->addOperand(&type69);
8642 auto classesOut = model->addOperand(&type14);
8643 auto batchSplitOut = model->addOperand(&type14);
8644 auto in8 = model->addOperand(&type66);
8645 auto param39 = model->addOperand(&type3);
8646 auto param40 = model->addOperand(&type3);
8647 auto param41 = model->addOperand(&type4);
8648 auto param42 = model->addOperand(&type4);
8649 auto param43 = model->addOperand(&type3);
8650 auto param44 = model->addOperand(&type3);
8651 auto layout = model->addOperand(&type0);
8652 auto featureMap = model->addOperand(&type80);
8653 auto param45 = model->addOperand(&type3);
8654 auto param46 = model->addOperand(&type3);
8655 auto out8 = model->addOperand(&type81);
8656 // Phase 2, operations
8657 static uint8_t scores_init[] = {137, 129};
8658 model->setOperandValue(scores, scores_init, sizeof(uint8_t) * 2);
8659 static uint16_t roi_init[] = {8, 8, 80, 80, 0, 0, 80, 80};
8660 model->setOperandValue(roi, roi_init, sizeof(uint16_t) * 8);
8661 static int32_t param32_init[] = {0};
8662 model->setOperandValue(param32, param32_init, sizeof(int32_t) * 1);
8663 static float param33_init[] = {0.3f};
8664 model->setOperandValue(param33, param33_init, sizeof(float) * 1);
8665 static int32_t param34_init[] = {-1};
8666 model->setOperandValue(param34, param34_init, sizeof(int32_t) * 1);
8667 static int32_t param35_init[] = {0};
8668 model->setOperandValue(param35, param35_init, sizeof(int32_t) * 1);
8669 static float param36_init[] = {0.4f};
8670 model->setOperandValue(param36, param36_init, sizeof(float) * 1);
8671 static float param37_init[] = {1.0f};
8672 model->setOperandValue(param37, param37_init, sizeof(float) * 1);
8673 static float param38_init[] = {0.3f};
8674 model->setOperandValue(param38, param38_init, sizeof(float) * 1);
8675 static int32_t param39_init[] = {2};
8676 model->setOperandValue(param39, param39_init, sizeof(int32_t) * 1);
8677 static int32_t param40_init[] = {2};
8678 model->setOperandValue(param40, param40_init, sizeof(int32_t) * 1);
8679 static float param41_init[] = {2.0f};
8680 model->setOperandValue(param41, param41_init, sizeof(float) * 1);
8681 static float param42_init[] = {2.0f};
8682 model->setOperandValue(param42, param42_init, sizeof(float) * 1);
8683 static int32_t param43_init[] = {4};
8684 model->setOperandValue(param43, param43_init, sizeof(int32_t) * 1);
8685 static int32_t param44_init[] = {4};
8686 model->setOperandValue(param44, param44_init, sizeof(int32_t) * 1);
8687 static bool8 layout_init[] = {true};
8688 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
8689 static int32_t param45_init[] = {3};
8690 model->setOperandValue(param45, param45_init, sizeof(int32_t) * 1);
8691 static int32_t param46_init[] = {3};
8692 model->setOperandValue(param46, param46_init, sizeof(int32_t) * 1);
8693 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores, roi, param32, param33, param34, param35, param36, param37, param38}, {scoresOut, roiOut, classesOut, batchSplitOut});
8694 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in8, roiOut, batchSplitOut, param39, param40, param41, param42, param43, param44, layout}, {featureMap});
8695 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap, param45, param46, layout}, {out8});
8696 // Phase 3, inputs and outputs
8697 model->identifyInputsAndOutputs(
8698 {in8},
8699 {scoresOut, classesOut, out8});
8700 assert(model->isValid());
8701 }
8702
is_ignored_zero_sized_nchw_quant8(int i)8703 inline bool is_ignored_zero_sized_nchw_quant8(int i) {
8704 static std::set<int> ignore = {};
8705 return ignore.find(i) != ignore.end();
8706 }
8707
CreateModel_zero_sized_nchw_float16(Model * model)8708 void CreateModel_zero_sized_nchw_float16(Model *model) {
8709 OperandType type0(Type::BOOL, {});
8710 OperandType type14(Type::TENSOR_INT32, {0});
8711 OperandType type16(Type::TENSOR_INT32, {1});
8712 OperandType type22(Type::TENSOR_FLOAT16, {1, 1, 1, 1});
8713 OperandType type29(Type::FLOAT16, {});
8714 OperandType type3(Type::INT32, {});
8715 OperandType type74(Type::TENSOR_FLOAT16, {1, 8});
8716 OperandType type75(Type::TENSOR_FLOAT16, {0, 4});
8717 OperandType type76(Type::TENSOR_FLOAT16, {1, 2});
8718 OperandType type77(Type::TENSOR_FLOAT16, {0});
8719 OperandType type82(Type::TENSOR_FLOAT16, {0, 1, 2, 2});
8720 OperandType type83(Type::TENSOR_FLOAT16, {0, 1, 3, 3});
8721 // Phase 1, operands
8722 auto scores = model->addOperand(&type76);
8723 auto roi = model->addOperand(&type74);
8724 auto param32 = model->addOperand(&type16);
8725 auto param33 = model->addOperand(&type29);
8726 auto param34 = model->addOperand(&type3);
8727 auto param35 = model->addOperand(&type3);
8728 auto param36 = model->addOperand(&type29);
8729 auto param37 = model->addOperand(&type29);
8730 auto param38 = model->addOperand(&type29);
8731 auto scoresOut = model->addOperand(&type77);
8732 auto roiOut = model->addOperand(&type75);
8733 auto classesOut = model->addOperand(&type14);
8734 auto batchSplitOut = model->addOperand(&type14);
8735 auto in8 = model->addOperand(&type22);
8736 auto param39 = model->addOperand(&type3);
8737 auto param40 = model->addOperand(&type3);
8738 auto param41 = model->addOperand(&type29);
8739 auto param42 = model->addOperand(&type29);
8740 auto param43 = model->addOperand(&type3);
8741 auto param44 = model->addOperand(&type3);
8742 auto layout = model->addOperand(&type0);
8743 auto featureMap = model->addOperand(&type82);
8744 auto param45 = model->addOperand(&type3);
8745 auto param46 = model->addOperand(&type3);
8746 auto out8 = model->addOperand(&type83);
8747 // Phase 2, operations
8748 static _Float16 scores_init[] = {0.8999999761581421f, 0.10000000149011612f};
8749 model->setOperandValue(scores, scores_init, sizeof(_Float16) * 2);
8750 static _Float16 roi_init[] = {1.0f, 1.0f, 10.0f, 10.0f, 0.0f, 0.0f, 10.0f, 10.0f};
8751 model->setOperandValue(roi, roi_init, sizeof(_Float16) * 8);
8752 static int32_t param32_init[] = {0};
8753 model->setOperandValue(param32, param32_init, sizeof(int32_t) * 1);
8754 static _Float16 param33_init[] = {0.30000001192092896f};
8755 model->setOperandValue(param33, param33_init, sizeof(_Float16) * 1);
8756 static int32_t param34_init[] = {-1};
8757 model->setOperandValue(param34, param34_init, sizeof(int32_t) * 1);
8758 static int32_t param35_init[] = {0};
8759 model->setOperandValue(param35, param35_init, sizeof(int32_t) * 1);
8760 static _Float16 param36_init[] = {0.4000000059604645f};
8761 model->setOperandValue(param36, param36_init, sizeof(_Float16) * 1);
8762 static _Float16 param37_init[] = {1.0f};
8763 model->setOperandValue(param37, param37_init, sizeof(_Float16) * 1);
8764 static _Float16 param38_init[] = {0.30000001192092896f};
8765 model->setOperandValue(param38, param38_init, sizeof(_Float16) * 1);
8766 static int32_t param39_init[] = {2};
8767 model->setOperandValue(param39, param39_init, sizeof(int32_t) * 1);
8768 static int32_t param40_init[] = {2};
8769 model->setOperandValue(param40, param40_init, sizeof(int32_t) * 1);
8770 static _Float16 param41_init[] = {2.0f};
8771 model->setOperandValue(param41, param41_init, sizeof(_Float16) * 1);
8772 static _Float16 param42_init[] = {2.0f};
8773 model->setOperandValue(param42, param42_init, sizeof(_Float16) * 1);
8774 static int32_t param43_init[] = {4};
8775 model->setOperandValue(param43, param43_init, sizeof(int32_t) * 1);
8776 static int32_t param44_init[] = {4};
8777 model->setOperandValue(param44, param44_init, sizeof(int32_t) * 1);
8778 static bool8 layout_init[] = {true};
8779 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
8780 static int32_t param45_init[] = {3};
8781 model->setOperandValue(param45, param45_init, sizeof(int32_t) * 1);
8782 static int32_t param46_init[] = {3};
8783 model->setOperandValue(param46, param46_init, sizeof(int32_t) * 1);
8784 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores, roi, param32, param33, param34, param35, param36, param37, param38}, {scoresOut, roiOut, classesOut, batchSplitOut});
8785 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in8, roiOut, batchSplitOut, param39, param40, param41, param42, param43, param44, layout}, {featureMap});
8786 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap, param45, param46, layout}, {out8});
8787 // Phase 3, inputs and outputs
8788 model->identifyInputsAndOutputs(
8789 {in8},
8790 {scoresOut, classesOut, out8});
8791 assert(model->isValid());
8792 }
8793
is_ignored_zero_sized_nchw_float16(int i)8794 inline bool is_ignored_zero_sized_nchw_float16(int i) {
8795 static std::set<int> ignore = {};
8796 return ignore.find(i) != ignore.end();
8797 }
8798
CreateModel_zero_sized_dynamic_output_shape_nhwc(Model * model)8799 void CreateModel_zero_sized_dynamic_output_shape_nhwc(Model *model) {
8800 OperandType type0(Type::BOOL, {});
8801 OperandType type11(Type::TENSOR_FLOAT32, {1, 2});
8802 OperandType type12(Type::TENSOR_FLOAT32, {1, 8});
8803 OperandType type13(Type::TENSOR_FLOAT32, {0});
8804 OperandType type14(Type::TENSOR_INT32, {0});
8805 OperandType type15(Type::TENSOR_FLOAT32, {0, 4});
8806 OperandType type16(Type::TENSOR_INT32, {1});
8807 OperandType type17(Type::TENSOR_FLOAT32, {0, 2, 2, 1});
8808 OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 1});
8809 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
8810 OperandType type3(Type::INT32, {});
8811 OperandType type4(Type::FLOAT32, {});
8812 // Phase 1, operands
8813 auto scores = model->addOperand(&type11);
8814 auto roi = model->addOperand(&type12);
8815 auto param32 = model->addOperand(&type16);
8816 auto param33 = model->addOperand(&type4);
8817 auto param34 = model->addOperand(&type3);
8818 auto param35 = model->addOperand(&type3);
8819 auto param36 = model->addOperand(&type4);
8820 auto param37 = model->addOperand(&type4);
8821 auto param38 = model->addOperand(&type4);
8822 auto scoresOut = model->addOperand(&type13);
8823 auto roiOut = model->addOperand(&type15);
8824 auto classesOut = model->addOperand(&type14);
8825 auto batchSplitOut = model->addOperand(&type14);
8826 auto in8 = model->addOperand(&type2);
8827 auto param39 = model->addOperand(&type3);
8828 auto param40 = model->addOperand(&type3);
8829 auto param41 = model->addOperand(&type4);
8830 auto param42 = model->addOperand(&type4);
8831 auto param43 = model->addOperand(&type3);
8832 auto param44 = model->addOperand(&type3);
8833 auto layout = model->addOperand(&type0);
8834 auto featureMap = model->addOperand(&type17);
8835 auto param45 = model->addOperand(&type3);
8836 auto param46 = model->addOperand(&type3);
8837 auto out8 = model->addOperand(&type26);
8838 // Phase 2, operations
8839 static float scores_init[] = {0.9f, 0.1f};
8840 model->setOperandValue(scores, scores_init, sizeof(float) * 2);
8841 static float roi_init[] = {1.0f, 1.0f, 10.0f, 10.0f, 0.0f, 0.0f, 10.0f, 10.0f};
8842 model->setOperandValue(roi, roi_init, sizeof(float) * 8);
8843 static int32_t param32_init[] = {0};
8844 model->setOperandValue(param32, param32_init, sizeof(int32_t) * 1);
8845 static float param33_init[] = {0.3f};
8846 model->setOperandValue(param33, param33_init, sizeof(float) * 1);
8847 static int32_t param34_init[] = {-1};
8848 model->setOperandValue(param34, param34_init, sizeof(int32_t) * 1);
8849 static int32_t param35_init[] = {0};
8850 model->setOperandValue(param35, param35_init, sizeof(int32_t) * 1);
8851 static float param36_init[] = {0.4f};
8852 model->setOperandValue(param36, param36_init, sizeof(float) * 1);
8853 static float param37_init[] = {1.0f};
8854 model->setOperandValue(param37, param37_init, sizeof(float) * 1);
8855 static float param38_init[] = {0.3f};
8856 model->setOperandValue(param38, param38_init, sizeof(float) * 1);
8857 static int32_t param39_init[] = {2};
8858 model->setOperandValue(param39, param39_init, sizeof(int32_t) * 1);
8859 static int32_t param40_init[] = {2};
8860 model->setOperandValue(param40, param40_init, sizeof(int32_t) * 1);
8861 static float param41_init[] = {2.0f};
8862 model->setOperandValue(param41, param41_init, sizeof(float) * 1);
8863 static float param42_init[] = {2.0f};
8864 model->setOperandValue(param42, param42_init, sizeof(float) * 1);
8865 static int32_t param43_init[] = {4};
8866 model->setOperandValue(param43, param43_init, sizeof(int32_t) * 1);
8867 static int32_t param44_init[] = {4};
8868 model->setOperandValue(param44, param44_init, sizeof(int32_t) * 1);
8869 static bool8 layout_init[] = {false};
8870 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
8871 static int32_t param45_init[] = {3};
8872 model->setOperandValue(param45, param45_init, sizeof(int32_t) * 1);
8873 static int32_t param46_init[] = {3};
8874 model->setOperandValue(param46, param46_init, sizeof(int32_t) * 1);
8875 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores, roi, param32, param33, param34, param35, param36, param37, param38}, {scoresOut, roiOut, classesOut, batchSplitOut});
8876 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in8, roiOut, batchSplitOut, param39, param40, param41, param42, param43, param44, layout}, {featureMap});
8877 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap, param45, param46, layout}, {out8});
8878 // Phase 3, inputs and outputs
8879 model->identifyInputsAndOutputs(
8880 {in8},
8881 {scoresOut, classesOut, out8});
8882 assert(model->isValid());
8883 }
8884
is_ignored_zero_sized_dynamic_output_shape_nhwc(int i)8885 inline bool is_ignored_zero_sized_dynamic_output_shape_nhwc(int i) {
8886 static std::set<int> ignore = {};
8887 return ignore.find(i) != ignore.end();
8888 }
8889
CreateModel_zero_sized_dynamic_output_shape_nhwc_relaxed(Model * model)8890 void CreateModel_zero_sized_dynamic_output_shape_nhwc_relaxed(Model *model) {
8891 OperandType type0(Type::BOOL, {});
8892 OperandType type11(Type::TENSOR_FLOAT32, {1, 2});
8893 OperandType type12(Type::TENSOR_FLOAT32, {1, 8});
8894 OperandType type13(Type::TENSOR_FLOAT32, {0});
8895 OperandType type14(Type::TENSOR_INT32, {0});
8896 OperandType type15(Type::TENSOR_FLOAT32, {0, 4});
8897 OperandType type16(Type::TENSOR_INT32, {1});
8898 OperandType type17(Type::TENSOR_FLOAT32, {0, 2, 2, 1});
8899 OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 1});
8900 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
8901 OperandType type3(Type::INT32, {});
8902 OperandType type4(Type::FLOAT32, {});
8903 // Phase 1, operands
8904 auto scores = model->addOperand(&type11);
8905 auto roi = model->addOperand(&type12);
8906 auto param32 = model->addOperand(&type16);
8907 auto param33 = model->addOperand(&type4);
8908 auto param34 = model->addOperand(&type3);
8909 auto param35 = model->addOperand(&type3);
8910 auto param36 = model->addOperand(&type4);
8911 auto param37 = model->addOperand(&type4);
8912 auto param38 = model->addOperand(&type4);
8913 auto scoresOut = model->addOperand(&type13);
8914 auto roiOut = model->addOperand(&type15);
8915 auto classesOut = model->addOperand(&type14);
8916 auto batchSplitOut = model->addOperand(&type14);
8917 auto in8 = model->addOperand(&type2);
8918 auto param39 = model->addOperand(&type3);
8919 auto param40 = model->addOperand(&type3);
8920 auto param41 = model->addOperand(&type4);
8921 auto param42 = model->addOperand(&type4);
8922 auto param43 = model->addOperand(&type3);
8923 auto param44 = model->addOperand(&type3);
8924 auto layout = model->addOperand(&type0);
8925 auto featureMap = model->addOperand(&type17);
8926 auto param45 = model->addOperand(&type3);
8927 auto param46 = model->addOperand(&type3);
8928 auto out8 = model->addOperand(&type26);
8929 // Phase 2, operations
8930 static float scores_init[] = {0.9f, 0.1f};
8931 model->setOperandValue(scores, scores_init, sizeof(float) * 2);
8932 static float roi_init[] = {1.0f, 1.0f, 10.0f, 10.0f, 0.0f, 0.0f, 10.0f, 10.0f};
8933 model->setOperandValue(roi, roi_init, sizeof(float) * 8);
8934 static int32_t param32_init[] = {0};
8935 model->setOperandValue(param32, param32_init, sizeof(int32_t) * 1);
8936 static float param33_init[] = {0.3f};
8937 model->setOperandValue(param33, param33_init, sizeof(float) * 1);
8938 static int32_t param34_init[] = {-1};
8939 model->setOperandValue(param34, param34_init, sizeof(int32_t) * 1);
8940 static int32_t param35_init[] = {0};
8941 model->setOperandValue(param35, param35_init, sizeof(int32_t) * 1);
8942 static float param36_init[] = {0.4f};
8943 model->setOperandValue(param36, param36_init, sizeof(float) * 1);
8944 static float param37_init[] = {1.0f};
8945 model->setOperandValue(param37, param37_init, sizeof(float) * 1);
8946 static float param38_init[] = {0.3f};
8947 model->setOperandValue(param38, param38_init, sizeof(float) * 1);
8948 static int32_t param39_init[] = {2};
8949 model->setOperandValue(param39, param39_init, sizeof(int32_t) * 1);
8950 static int32_t param40_init[] = {2};
8951 model->setOperandValue(param40, param40_init, sizeof(int32_t) * 1);
8952 static float param41_init[] = {2.0f};
8953 model->setOperandValue(param41, param41_init, sizeof(float) * 1);
8954 static float param42_init[] = {2.0f};
8955 model->setOperandValue(param42, param42_init, sizeof(float) * 1);
8956 static int32_t param43_init[] = {4};
8957 model->setOperandValue(param43, param43_init, sizeof(int32_t) * 1);
8958 static int32_t param44_init[] = {4};
8959 model->setOperandValue(param44, param44_init, sizeof(int32_t) * 1);
8960 static bool8 layout_init[] = {false};
8961 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
8962 static int32_t param45_init[] = {3};
8963 model->setOperandValue(param45, param45_init, sizeof(int32_t) * 1);
8964 static int32_t param46_init[] = {3};
8965 model->setOperandValue(param46, param46_init, sizeof(int32_t) * 1);
8966 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores, roi, param32, param33, param34, param35, param36, param37, param38}, {scoresOut, roiOut, classesOut, batchSplitOut});
8967 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in8, roiOut, batchSplitOut, param39, param40, param41, param42, param43, param44, layout}, {featureMap});
8968 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap, param45, param46, layout}, {out8});
8969 // Phase 3, inputs and outputs
8970 model->identifyInputsAndOutputs(
8971 {in8},
8972 {scoresOut, classesOut, out8});
8973 // Phase 4: set relaxed execution
8974 model->relaxComputationFloat32toFloat16(true);
8975 assert(model->isValid());
8976 }
8977
is_ignored_zero_sized_dynamic_output_shape_nhwc_relaxed(int i)8978 inline bool is_ignored_zero_sized_dynamic_output_shape_nhwc_relaxed(int i) {
8979 static std::set<int> ignore = {};
8980 return ignore.find(i) != ignore.end();
8981 }
8982
CreateModel_zero_sized_dynamic_output_shape_nhwc_quant8(Model * model)8983 void CreateModel_zero_sized_dynamic_output_shape_nhwc_quant8(Model *model) {
8984 OperandType type0(Type::BOOL, {});
8985 OperandType type14(Type::TENSOR_INT32, {0});
8986 OperandType type16(Type::TENSOR_INT32, {1});
8987 OperandType type3(Type::INT32, {});
8988 OperandType type4(Type::FLOAT32, {});
8989 OperandType type65(Type::TENSOR_QUANT8_ASYMM, {0, 2, 2, 1}, 0.1f, 128);
8990 OperandType type66(Type::TENSOR_QUANT8_ASYMM, {1, 1, 1, 1}, 0.1f, 128);
8991 OperandType type68(Type::TENSOR_QUANT16_ASYMM, {1, 8}, 0.125f, 0);
8992 OperandType type69(Type::TENSOR_QUANT16_ASYMM, {0, 4}, 0.125f, 0);
8993 OperandType type70(Type::TENSOR_QUANT8_ASYMM, {1, 2}, 0.1f, 128);
8994 OperandType type71(Type::TENSOR_QUANT8_ASYMM, {0}, 0.1f, 128);
8995 OperandType type84(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.1f, 128);
8996 // Phase 1, operands
8997 auto scores = model->addOperand(&type70);
8998 auto roi = model->addOperand(&type68);
8999 auto param32 = model->addOperand(&type16);
9000 auto param33 = model->addOperand(&type4);
9001 auto param34 = model->addOperand(&type3);
9002 auto param35 = model->addOperand(&type3);
9003 auto param36 = model->addOperand(&type4);
9004 auto param37 = model->addOperand(&type4);
9005 auto param38 = model->addOperand(&type4);
9006 auto scoresOut = model->addOperand(&type71);
9007 auto roiOut = model->addOperand(&type69);
9008 auto classesOut = model->addOperand(&type14);
9009 auto batchSplitOut = model->addOperand(&type14);
9010 auto in8 = model->addOperand(&type66);
9011 auto param39 = model->addOperand(&type3);
9012 auto param40 = model->addOperand(&type3);
9013 auto param41 = model->addOperand(&type4);
9014 auto param42 = model->addOperand(&type4);
9015 auto param43 = model->addOperand(&type3);
9016 auto param44 = model->addOperand(&type3);
9017 auto layout = model->addOperand(&type0);
9018 auto featureMap = model->addOperand(&type65);
9019 auto param45 = model->addOperand(&type3);
9020 auto param46 = model->addOperand(&type3);
9021 auto out8 = model->addOperand(&type84);
9022 // Phase 2, operations
9023 static uint8_t scores_init[] = {137, 129};
9024 model->setOperandValue(scores, scores_init, sizeof(uint8_t) * 2);
9025 static uint16_t roi_init[] = {8, 8, 80, 80, 0, 0, 80, 80};
9026 model->setOperandValue(roi, roi_init, sizeof(uint16_t) * 8);
9027 static int32_t param32_init[] = {0};
9028 model->setOperandValue(param32, param32_init, sizeof(int32_t) * 1);
9029 static float param33_init[] = {0.3f};
9030 model->setOperandValue(param33, param33_init, sizeof(float) * 1);
9031 static int32_t param34_init[] = {-1};
9032 model->setOperandValue(param34, param34_init, sizeof(int32_t) * 1);
9033 static int32_t param35_init[] = {0};
9034 model->setOperandValue(param35, param35_init, sizeof(int32_t) * 1);
9035 static float param36_init[] = {0.4f};
9036 model->setOperandValue(param36, param36_init, sizeof(float) * 1);
9037 static float param37_init[] = {1.0f};
9038 model->setOperandValue(param37, param37_init, sizeof(float) * 1);
9039 static float param38_init[] = {0.3f};
9040 model->setOperandValue(param38, param38_init, sizeof(float) * 1);
9041 static int32_t param39_init[] = {2};
9042 model->setOperandValue(param39, param39_init, sizeof(int32_t) * 1);
9043 static int32_t param40_init[] = {2};
9044 model->setOperandValue(param40, param40_init, sizeof(int32_t) * 1);
9045 static float param41_init[] = {2.0f};
9046 model->setOperandValue(param41, param41_init, sizeof(float) * 1);
9047 static float param42_init[] = {2.0f};
9048 model->setOperandValue(param42, param42_init, sizeof(float) * 1);
9049 static int32_t param43_init[] = {4};
9050 model->setOperandValue(param43, param43_init, sizeof(int32_t) * 1);
9051 static int32_t param44_init[] = {4};
9052 model->setOperandValue(param44, param44_init, sizeof(int32_t) * 1);
9053 static bool8 layout_init[] = {false};
9054 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
9055 static int32_t param45_init[] = {3};
9056 model->setOperandValue(param45, param45_init, sizeof(int32_t) * 1);
9057 static int32_t param46_init[] = {3};
9058 model->setOperandValue(param46, param46_init, sizeof(int32_t) * 1);
9059 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores, roi, param32, param33, param34, param35, param36, param37, param38}, {scoresOut, roiOut, classesOut, batchSplitOut});
9060 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in8, roiOut, batchSplitOut, param39, param40, param41, param42, param43, param44, layout}, {featureMap});
9061 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap, param45, param46, layout}, {out8});
9062 // Phase 3, inputs and outputs
9063 model->identifyInputsAndOutputs(
9064 {in8},
9065 {scoresOut, classesOut, out8});
9066 assert(model->isValid());
9067 }
9068
is_ignored_zero_sized_dynamic_output_shape_nhwc_quant8(int i)9069 inline bool is_ignored_zero_sized_dynamic_output_shape_nhwc_quant8(int i) {
9070 static std::set<int> ignore = {};
9071 return ignore.find(i) != ignore.end();
9072 }
9073
CreateModel_zero_sized_dynamic_output_shape_nhwc_float16(Model * model)9074 void CreateModel_zero_sized_dynamic_output_shape_nhwc_float16(Model *model) {
9075 OperandType type0(Type::BOOL, {});
9076 OperandType type14(Type::TENSOR_INT32, {0});
9077 OperandType type16(Type::TENSOR_INT32, {1});
9078 OperandType type22(Type::TENSOR_FLOAT16, {1, 1, 1, 1});
9079 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
9080 OperandType type29(Type::FLOAT16, {});
9081 OperandType type3(Type::INT32, {});
9082 OperandType type72(Type::TENSOR_FLOAT16, {0, 2, 2, 1});
9083 OperandType type74(Type::TENSOR_FLOAT16, {1, 8});
9084 OperandType type75(Type::TENSOR_FLOAT16, {0, 4});
9085 OperandType type76(Type::TENSOR_FLOAT16, {1, 2});
9086 OperandType type85(Type::TENSOR_FLOAT16, {0});
9087 // Phase 1, operands
9088 auto scores = model->addOperand(&type76);
9089 auto roi = model->addOperand(&type74);
9090 auto param32 = model->addOperand(&type16);
9091 auto param33 = model->addOperand(&type29);
9092 auto param34 = model->addOperand(&type3);
9093 auto param35 = model->addOperand(&type3);
9094 auto param36 = model->addOperand(&type29);
9095 auto param37 = model->addOperand(&type29);
9096 auto param38 = model->addOperand(&type29);
9097 auto scoresOut = model->addOperand(&type85);
9098 auto roiOut = model->addOperand(&type75);
9099 auto classesOut = model->addOperand(&type14);
9100 auto batchSplitOut = model->addOperand(&type14);
9101 auto in8 = model->addOperand(&type22);
9102 auto param39 = model->addOperand(&type3);
9103 auto param40 = model->addOperand(&type3);
9104 auto param41 = model->addOperand(&type29);
9105 auto param42 = model->addOperand(&type29);
9106 auto param43 = model->addOperand(&type3);
9107 auto param44 = model->addOperand(&type3);
9108 auto layout = model->addOperand(&type0);
9109 auto featureMap = model->addOperand(&type72);
9110 auto param45 = model->addOperand(&type3);
9111 auto param46 = model->addOperand(&type3);
9112 auto out8 = model->addOperand(&type28);
9113 // Phase 2, operations
9114 static _Float16 scores_init[] = {0.8999999761581421f, 0.10000000149011612f};
9115 model->setOperandValue(scores, scores_init, sizeof(_Float16) * 2);
9116 static _Float16 roi_init[] = {1.0f, 1.0f, 10.0f, 10.0f, 0.0f, 0.0f, 10.0f, 10.0f};
9117 model->setOperandValue(roi, roi_init, sizeof(_Float16) * 8);
9118 static int32_t param32_init[] = {0};
9119 model->setOperandValue(param32, param32_init, sizeof(int32_t) * 1);
9120 static _Float16 param33_init[] = {0.30000001192092896f};
9121 model->setOperandValue(param33, param33_init, sizeof(_Float16) * 1);
9122 static int32_t param34_init[] = {-1};
9123 model->setOperandValue(param34, param34_init, sizeof(int32_t) * 1);
9124 static int32_t param35_init[] = {0};
9125 model->setOperandValue(param35, param35_init, sizeof(int32_t) * 1);
9126 static _Float16 param36_init[] = {0.4000000059604645f};
9127 model->setOperandValue(param36, param36_init, sizeof(_Float16) * 1);
9128 static _Float16 param37_init[] = {1.0f};
9129 model->setOperandValue(param37, param37_init, sizeof(_Float16) * 1);
9130 static _Float16 param38_init[] = {0.30000001192092896f};
9131 model->setOperandValue(param38, param38_init, sizeof(_Float16) * 1);
9132 static int32_t param39_init[] = {2};
9133 model->setOperandValue(param39, param39_init, sizeof(int32_t) * 1);
9134 static int32_t param40_init[] = {2};
9135 model->setOperandValue(param40, param40_init, sizeof(int32_t) * 1);
9136 static _Float16 param41_init[] = {2.0f};
9137 model->setOperandValue(param41, param41_init, sizeof(_Float16) * 1);
9138 static _Float16 param42_init[] = {2.0f};
9139 model->setOperandValue(param42, param42_init, sizeof(_Float16) * 1);
9140 static int32_t param43_init[] = {4};
9141 model->setOperandValue(param43, param43_init, sizeof(int32_t) * 1);
9142 static int32_t param44_init[] = {4};
9143 model->setOperandValue(param44, param44_init, sizeof(int32_t) * 1);
9144 static bool8 layout_init[] = {false};
9145 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
9146 static int32_t param45_init[] = {3};
9147 model->setOperandValue(param45, param45_init, sizeof(int32_t) * 1);
9148 static int32_t param46_init[] = {3};
9149 model->setOperandValue(param46, param46_init, sizeof(int32_t) * 1);
9150 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores, roi, param32, param33, param34, param35, param36, param37, param38}, {scoresOut, roiOut, classesOut, batchSplitOut});
9151 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in8, roiOut, batchSplitOut, param39, param40, param41, param42, param43, param44, layout}, {featureMap});
9152 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap, param45, param46, layout}, {out8});
9153 // Phase 3, inputs and outputs
9154 model->identifyInputsAndOutputs(
9155 {in8},
9156 {scoresOut, classesOut, out8});
9157 assert(model->isValid());
9158 }
9159
is_ignored_zero_sized_dynamic_output_shape_nhwc_float16(int i)9160 inline bool is_ignored_zero_sized_dynamic_output_shape_nhwc_float16(int i) {
9161 static std::set<int> ignore = {};
9162 return ignore.find(i) != ignore.end();
9163 }
9164
CreateModel_zero_sized_dynamic_output_shape_nchw(Model * model)9165 void CreateModel_zero_sized_dynamic_output_shape_nchw(Model *model) {
9166 OperandType type0(Type::BOOL, {});
9167 OperandType type11(Type::TENSOR_FLOAT32, {1, 2});
9168 OperandType type12(Type::TENSOR_FLOAT32, {1, 8});
9169 OperandType type13(Type::TENSOR_FLOAT32, {0});
9170 OperandType type14(Type::TENSOR_INT32, {0});
9171 OperandType type15(Type::TENSOR_FLOAT32, {0, 4});
9172 OperandType type16(Type::TENSOR_INT32, {1});
9173 OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 1});
9174 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
9175 OperandType type3(Type::INT32, {});
9176 OperandType type4(Type::FLOAT32, {});
9177 OperandType type78(Type::TENSOR_FLOAT32, {0, 1, 2, 2});
9178 // Phase 1, operands
9179 auto scores = model->addOperand(&type11);
9180 auto roi = model->addOperand(&type12);
9181 auto param32 = model->addOperand(&type16);
9182 auto param33 = model->addOperand(&type4);
9183 auto param34 = model->addOperand(&type3);
9184 auto param35 = model->addOperand(&type3);
9185 auto param36 = model->addOperand(&type4);
9186 auto param37 = model->addOperand(&type4);
9187 auto param38 = model->addOperand(&type4);
9188 auto scoresOut = model->addOperand(&type13);
9189 auto roiOut = model->addOperand(&type15);
9190 auto classesOut = model->addOperand(&type14);
9191 auto batchSplitOut = model->addOperand(&type14);
9192 auto in8 = model->addOperand(&type2);
9193 auto param39 = model->addOperand(&type3);
9194 auto param40 = model->addOperand(&type3);
9195 auto param41 = model->addOperand(&type4);
9196 auto param42 = model->addOperand(&type4);
9197 auto param43 = model->addOperand(&type3);
9198 auto param44 = model->addOperand(&type3);
9199 auto layout = model->addOperand(&type0);
9200 auto featureMap = model->addOperand(&type78);
9201 auto param45 = model->addOperand(&type3);
9202 auto param46 = model->addOperand(&type3);
9203 auto out8 = model->addOperand(&type26);
9204 // Phase 2, operations
9205 static float scores_init[] = {0.9f, 0.1f};
9206 model->setOperandValue(scores, scores_init, sizeof(float) * 2);
9207 static float roi_init[] = {1.0f, 1.0f, 10.0f, 10.0f, 0.0f, 0.0f, 10.0f, 10.0f};
9208 model->setOperandValue(roi, roi_init, sizeof(float) * 8);
9209 static int32_t param32_init[] = {0};
9210 model->setOperandValue(param32, param32_init, sizeof(int32_t) * 1);
9211 static float param33_init[] = {0.3f};
9212 model->setOperandValue(param33, param33_init, sizeof(float) * 1);
9213 static int32_t param34_init[] = {-1};
9214 model->setOperandValue(param34, param34_init, sizeof(int32_t) * 1);
9215 static int32_t param35_init[] = {0};
9216 model->setOperandValue(param35, param35_init, sizeof(int32_t) * 1);
9217 static float param36_init[] = {0.4f};
9218 model->setOperandValue(param36, param36_init, sizeof(float) * 1);
9219 static float param37_init[] = {1.0f};
9220 model->setOperandValue(param37, param37_init, sizeof(float) * 1);
9221 static float param38_init[] = {0.3f};
9222 model->setOperandValue(param38, param38_init, sizeof(float) * 1);
9223 static int32_t param39_init[] = {2};
9224 model->setOperandValue(param39, param39_init, sizeof(int32_t) * 1);
9225 static int32_t param40_init[] = {2};
9226 model->setOperandValue(param40, param40_init, sizeof(int32_t) * 1);
9227 static float param41_init[] = {2.0f};
9228 model->setOperandValue(param41, param41_init, sizeof(float) * 1);
9229 static float param42_init[] = {2.0f};
9230 model->setOperandValue(param42, param42_init, sizeof(float) * 1);
9231 static int32_t param43_init[] = {4};
9232 model->setOperandValue(param43, param43_init, sizeof(int32_t) * 1);
9233 static int32_t param44_init[] = {4};
9234 model->setOperandValue(param44, param44_init, sizeof(int32_t) * 1);
9235 static bool8 layout_init[] = {true};
9236 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
9237 static int32_t param45_init[] = {3};
9238 model->setOperandValue(param45, param45_init, sizeof(int32_t) * 1);
9239 static int32_t param46_init[] = {3};
9240 model->setOperandValue(param46, param46_init, sizeof(int32_t) * 1);
9241 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores, roi, param32, param33, param34, param35, param36, param37, param38}, {scoresOut, roiOut, classesOut, batchSplitOut});
9242 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in8, roiOut, batchSplitOut, param39, param40, param41, param42, param43, param44, layout}, {featureMap});
9243 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap, param45, param46, layout}, {out8});
9244 // Phase 3, inputs and outputs
9245 model->identifyInputsAndOutputs(
9246 {in8},
9247 {scoresOut, classesOut, out8});
9248 assert(model->isValid());
9249 }
9250
is_ignored_zero_sized_dynamic_output_shape_nchw(int i)9251 inline bool is_ignored_zero_sized_dynamic_output_shape_nchw(int i) {
9252 static std::set<int> ignore = {};
9253 return ignore.find(i) != ignore.end();
9254 }
9255
CreateModel_zero_sized_dynamic_output_shape_nchw_relaxed(Model * model)9256 void CreateModel_zero_sized_dynamic_output_shape_nchw_relaxed(Model *model) {
9257 OperandType type0(Type::BOOL, {});
9258 OperandType type11(Type::TENSOR_FLOAT32, {1, 2});
9259 OperandType type12(Type::TENSOR_FLOAT32, {1, 8});
9260 OperandType type13(Type::TENSOR_FLOAT32, {0});
9261 OperandType type14(Type::TENSOR_INT32, {0});
9262 OperandType type15(Type::TENSOR_FLOAT32, {0, 4});
9263 OperandType type16(Type::TENSOR_INT32, {1});
9264 OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 1});
9265 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
9266 OperandType type3(Type::INT32, {});
9267 OperandType type4(Type::FLOAT32, {});
9268 OperandType type78(Type::TENSOR_FLOAT32, {0, 1, 2, 2});
9269 // Phase 1, operands
9270 auto scores = model->addOperand(&type11);
9271 auto roi = model->addOperand(&type12);
9272 auto param32 = model->addOperand(&type16);
9273 auto param33 = model->addOperand(&type4);
9274 auto param34 = model->addOperand(&type3);
9275 auto param35 = model->addOperand(&type3);
9276 auto param36 = model->addOperand(&type4);
9277 auto param37 = model->addOperand(&type4);
9278 auto param38 = model->addOperand(&type4);
9279 auto scoresOut = model->addOperand(&type13);
9280 auto roiOut = model->addOperand(&type15);
9281 auto classesOut = model->addOperand(&type14);
9282 auto batchSplitOut = model->addOperand(&type14);
9283 auto in8 = model->addOperand(&type2);
9284 auto param39 = model->addOperand(&type3);
9285 auto param40 = model->addOperand(&type3);
9286 auto param41 = model->addOperand(&type4);
9287 auto param42 = model->addOperand(&type4);
9288 auto param43 = model->addOperand(&type3);
9289 auto param44 = model->addOperand(&type3);
9290 auto layout = model->addOperand(&type0);
9291 auto featureMap = model->addOperand(&type78);
9292 auto param45 = model->addOperand(&type3);
9293 auto param46 = model->addOperand(&type3);
9294 auto out8 = model->addOperand(&type26);
9295 // Phase 2, operations
9296 static float scores_init[] = {0.9f, 0.1f};
9297 model->setOperandValue(scores, scores_init, sizeof(float) * 2);
9298 static float roi_init[] = {1.0f, 1.0f, 10.0f, 10.0f, 0.0f, 0.0f, 10.0f, 10.0f};
9299 model->setOperandValue(roi, roi_init, sizeof(float) * 8);
9300 static int32_t param32_init[] = {0};
9301 model->setOperandValue(param32, param32_init, sizeof(int32_t) * 1);
9302 static float param33_init[] = {0.3f};
9303 model->setOperandValue(param33, param33_init, sizeof(float) * 1);
9304 static int32_t param34_init[] = {-1};
9305 model->setOperandValue(param34, param34_init, sizeof(int32_t) * 1);
9306 static int32_t param35_init[] = {0};
9307 model->setOperandValue(param35, param35_init, sizeof(int32_t) * 1);
9308 static float param36_init[] = {0.4f};
9309 model->setOperandValue(param36, param36_init, sizeof(float) * 1);
9310 static float param37_init[] = {1.0f};
9311 model->setOperandValue(param37, param37_init, sizeof(float) * 1);
9312 static float param38_init[] = {0.3f};
9313 model->setOperandValue(param38, param38_init, sizeof(float) * 1);
9314 static int32_t param39_init[] = {2};
9315 model->setOperandValue(param39, param39_init, sizeof(int32_t) * 1);
9316 static int32_t param40_init[] = {2};
9317 model->setOperandValue(param40, param40_init, sizeof(int32_t) * 1);
9318 static float param41_init[] = {2.0f};
9319 model->setOperandValue(param41, param41_init, sizeof(float) * 1);
9320 static float param42_init[] = {2.0f};
9321 model->setOperandValue(param42, param42_init, sizeof(float) * 1);
9322 static int32_t param43_init[] = {4};
9323 model->setOperandValue(param43, param43_init, sizeof(int32_t) * 1);
9324 static int32_t param44_init[] = {4};
9325 model->setOperandValue(param44, param44_init, sizeof(int32_t) * 1);
9326 static bool8 layout_init[] = {true};
9327 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
9328 static int32_t param45_init[] = {3};
9329 model->setOperandValue(param45, param45_init, sizeof(int32_t) * 1);
9330 static int32_t param46_init[] = {3};
9331 model->setOperandValue(param46, param46_init, sizeof(int32_t) * 1);
9332 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores, roi, param32, param33, param34, param35, param36, param37, param38}, {scoresOut, roiOut, classesOut, batchSplitOut});
9333 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in8, roiOut, batchSplitOut, param39, param40, param41, param42, param43, param44, layout}, {featureMap});
9334 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap, param45, param46, layout}, {out8});
9335 // Phase 3, inputs and outputs
9336 model->identifyInputsAndOutputs(
9337 {in8},
9338 {scoresOut, classesOut, out8});
9339 // Phase 4: set relaxed execution
9340 model->relaxComputationFloat32toFloat16(true);
9341 assert(model->isValid());
9342 }
9343
is_ignored_zero_sized_dynamic_output_shape_nchw_relaxed(int i)9344 inline bool is_ignored_zero_sized_dynamic_output_shape_nchw_relaxed(int i) {
9345 static std::set<int> ignore = {};
9346 return ignore.find(i) != ignore.end();
9347 }
9348
CreateModel_zero_sized_dynamic_output_shape_nchw_quant8(Model * model)9349 void CreateModel_zero_sized_dynamic_output_shape_nchw_quant8(Model *model) {
9350 OperandType type0(Type::BOOL, {});
9351 OperandType type14(Type::TENSOR_INT32, {0});
9352 OperandType type16(Type::TENSOR_INT32, {1});
9353 OperandType type3(Type::INT32, {});
9354 OperandType type4(Type::FLOAT32, {});
9355 OperandType type66(Type::TENSOR_QUANT8_ASYMM, {1, 1, 1, 1}, 0.1f, 128);
9356 OperandType type68(Type::TENSOR_QUANT16_ASYMM, {1, 8}, 0.125f, 0);
9357 OperandType type69(Type::TENSOR_QUANT16_ASYMM, {0, 4}, 0.125f, 0);
9358 OperandType type70(Type::TENSOR_QUANT8_ASYMM, {1, 2}, 0.1f, 128);
9359 OperandType type71(Type::TENSOR_QUANT8_ASYMM, {0}, 0.1f, 128);
9360 OperandType type80(Type::TENSOR_QUANT8_ASYMM, {0, 1, 2, 2}, 0.1f, 128);
9361 OperandType type84(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.1f, 128);
9362 // Phase 1, operands
9363 auto scores = model->addOperand(&type70);
9364 auto roi = model->addOperand(&type68);
9365 auto param32 = model->addOperand(&type16);
9366 auto param33 = model->addOperand(&type4);
9367 auto param34 = model->addOperand(&type3);
9368 auto param35 = model->addOperand(&type3);
9369 auto param36 = model->addOperand(&type4);
9370 auto param37 = model->addOperand(&type4);
9371 auto param38 = model->addOperand(&type4);
9372 auto scoresOut = model->addOperand(&type71);
9373 auto roiOut = model->addOperand(&type69);
9374 auto classesOut = model->addOperand(&type14);
9375 auto batchSplitOut = model->addOperand(&type14);
9376 auto in8 = model->addOperand(&type66);
9377 auto param39 = model->addOperand(&type3);
9378 auto param40 = model->addOperand(&type3);
9379 auto param41 = model->addOperand(&type4);
9380 auto param42 = model->addOperand(&type4);
9381 auto param43 = model->addOperand(&type3);
9382 auto param44 = model->addOperand(&type3);
9383 auto layout = model->addOperand(&type0);
9384 auto featureMap = model->addOperand(&type80);
9385 auto param45 = model->addOperand(&type3);
9386 auto param46 = model->addOperand(&type3);
9387 auto out8 = model->addOperand(&type84);
9388 // Phase 2, operations
9389 static uint8_t scores_init[] = {137, 129};
9390 model->setOperandValue(scores, scores_init, sizeof(uint8_t) * 2);
9391 static uint16_t roi_init[] = {8, 8, 80, 80, 0, 0, 80, 80};
9392 model->setOperandValue(roi, roi_init, sizeof(uint16_t) * 8);
9393 static int32_t param32_init[] = {0};
9394 model->setOperandValue(param32, param32_init, sizeof(int32_t) * 1);
9395 static float param33_init[] = {0.3f};
9396 model->setOperandValue(param33, param33_init, sizeof(float) * 1);
9397 static int32_t param34_init[] = {-1};
9398 model->setOperandValue(param34, param34_init, sizeof(int32_t) * 1);
9399 static int32_t param35_init[] = {0};
9400 model->setOperandValue(param35, param35_init, sizeof(int32_t) * 1);
9401 static float param36_init[] = {0.4f};
9402 model->setOperandValue(param36, param36_init, sizeof(float) * 1);
9403 static float param37_init[] = {1.0f};
9404 model->setOperandValue(param37, param37_init, sizeof(float) * 1);
9405 static float param38_init[] = {0.3f};
9406 model->setOperandValue(param38, param38_init, sizeof(float) * 1);
9407 static int32_t param39_init[] = {2};
9408 model->setOperandValue(param39, param39_init, sizeof(int32_t) * 1);
9409 static int32_t param40_init[] = {2};
9410 model->setOperandValue(param40, param40_init, sizeof(int32_t) * 1);
9411 static float param41_init[] = {2.0f};
9412 model->setOperandValue(param41, param41_init, sizeof(float) * 1);
9413 static float param42_init[] = {2.0f};
9414 model->setOperandValue(param42, param42_init, sizeof(float) * 1);
9415 static int32_t param43_init[] = {4};
9416 model->setOperandValue(param43, param43_init, sizeof(int32_t) * 1);
9417 static int32_t param44_init[] = {4};
9418 model->setOperandValue(param44, param44_init, sizeof(int32_t) * 1);
9419 static bool8 layout_init[] = {true};
9420 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
9421 static int32_t param45_init[] = {3};
9422 model->setOperandValue(param45, param45_init, sizeof(int32_t) * 1);
9423 static int32_t param46_init[] = {3};
9424 model->setOperandValue(param46, param46_init, sizeof(int32_t) * 1);
9425 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores, roi, param32, param33, param34, param35, param36, param37, param38}, {scoresOut, roiOut, classesOut, batchSplitOut});
9426 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in8, roiOut, batchSplitOut, param39, param40, param41, param42, param43, param44, layout}, {featureMap});
9427 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap, param45, param46, layout}, {out8});
9428 // Phase 3, inputs and outputs
9429 model->identifyInputsAndOutputs(
9430 {in8},
9431 {scoresOut, classesOut, out8});
9432 assert(model->isValid());
9433 }
9434
is_ignored_zero_sized_dynamic_output_shape_nchw_quant8(int i)9435 inline bool is_ignored_zero_sized_dynamic_output_shape_nchw_quant8(int i) {
9436 static std::set<int> ignore = {};
9437 return ignore.find(i) != ignore.end();
9438 }
9439
CreateModel_zero_sized_dynamic_output_shape_nchw_float16(Model * model)9440 void CreateModel_zero_sized_dynamic_output_shape_nchw_float16(Model *model) {
9441 OperandType type0(Type::BOOL, {});
9442 OperandType type14(Type::TENSOR_INT32, {0});
9443 OperandType type16(Type::TENSOR_INT32, {1});
9444 OperandType type22(Type::TENSOR_FLOAT16, {1, 1, 1, 1});
9445 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
9446 OperandType type29(Type::FLOAT16, {});
9447 OperandType type3(Type::INT32, {});
9448 OperandType type74(Type::TENSOR_FLOAT16, {1, 8});
9449 OperandType type75(Type::TENSOR_FLOAT16, {0, 4});
9450 OperandType type76(Type::TENSOR_FLOAT16, {1, 2});
9451 OperandType type82(Type::TENSOR_FLOAT16, {0, 1, 2, 2});
9452 OperandType type85(Type::TENSOR_FLOAT16, {0});
9453 // Phase 1, operands
9454 auto scores = model->addOperand(&type76);
9455 auto roi = model->addOperand(&type74);
9456 auto param32 = model->addOperand(&type16);
9457 auto param33 = model->addOperand(&type29);
9458 auto param34 = model->addOperand(&type3);
9459 auto param35 = model->addOperand(&type3);
9460 auto param36 = model->addOperand(&type29);
9461 auto param37 = model->addOperand(&type29);
9462 auto param38 = model->addOperand(&type29);
9463 auto scoresOut = model->addOperand(&type85);
9464 auto roiOut = model->addOperand(&type75);
9465 auto classesOut = model->addOperand(&type14);
9466 auto batchSplitOut = model->addOperand(&type14);
9467 auto in8 = model->addOperand(&type22);
9468 auto param39 = model->addOperand(&type3);
9469 auto param40 = model->addOperand(&type3);
9470 auto param41 = model->addOperand(&type29);
9471 auto param42 = model->addOperand(&type29);
9472 auto param43 = model->addOperand(&type3);
9473 auto param44 = model->addOperand(&type3);
9474 auto layout = model->addOperand(&type0);
9475 auto featureMap = model->addOperand(&type82);
9476 auto param45 = model->addOperand(&type3);
9477 auto param46 = model->addOperand(&type3);
9478 auto out8 = model->addOperand(&type28);
9479 // Phase 2, operations
9480 static _Float16 scores_init[] = {0.8999999761581421f, 0.10000000149011612f};
9481 model->setOperandValue(scores, scores_init, sizeof(_Float16) * 2);
9482 static _Float16 roi_init[] = {1.0f, 1.0f, 10.0f, 10.0f, 0.0f, 0.0f, 10.0f, 10.0f};
9483 model->setOperandValue(roi, roi_init, sizeof(_Float16) * 8);
9484 static int32_t param32_init[] = {0};
9485 model->setOperandValue(param32, param32_init, sizeof(int32_t) * 1);
9486 static _Float16 param33_init[] = {0.30000001192092896f};
9487 model->setOperandValue(param33, param33_init, sizeof(_Float16) * 1);
9488 static int32_t param34_init[] = {-1};
9489 model->setOperandValue(param34, param34_init, sizeof(int32_t) * 1);
9490 static int32_t param35_init[] = {0};
9491 model->setOperandValue(param35, param35_init, sizeof(int32_t) * 1);
9492 static _Float16 param36_init[] = {0.4000000059604645f};
9493 model->setOperandValue(param36, param36_init, sizeof(_Float16) * 1);
9494 static _Float16 param37_init[] = {1.0f};
9495 model->setOperandValue(param37, param37_init, sizeof(_Float16) * 1);
9496 static _Float16 param38_init[] = {0.30000001192092896f};
9497 model->setOperandValue(param38, param38_init, sizeof(_Float16) * 1);
9498 static int32_t param39_init[] = {2};
9499 model->setOperandValue(param39, param39_init, sizeof(int32_t) * 1);
9500 static int32_t param40_init[] = {2};
9501 model->setOperandValue(param40, param40_init, sizeof(int32_t) * 1);
9502 static _Float16 param41_init[] = {2.0f};
9503 model->setOperandValue(param41, param41_init, sizeof(_Float16) * 1);
9504 static _Float16 param42_init[] = {2.0f};
9505 model->setOperandValue(param42, param42_init, sizeof(_Float16) * 1);
9506 static int32_t param43_init[] = {4};
9507 model->setOperandValue(param43, param43_init, sizeof(int32_t) * 1);
9508 static int32_t param44_init[] = {4};
9509 model->setOperandValue(param44, param44_init, sizeof(int32_t) * 1);
9510 static bool8 layout_init[] = {true};
9511 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
9512 static int32_t param45_init[] = {3};
9513 model->setOperandValue(param45, param45_init, sizeof(int32_t) * 1);
9514 static int32_t param46_init[] = {3};
9515 model->setOperandValue(param46, param46_init, sizeof(int32_t) * 1);
9516 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores, roi, param32, param33, param34, param35, param36, param37, param38}, {scoresOut, roiOut, classesOut, batchSplitOut});
9517 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in8, roiOut, batchSplitOut, param39, param40, param41, param42, param43, param44, layout}, {featureMap});
9518 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap, param45, param46, layout}, {out8});
9519 // Phase 3, inputs and outputs
9520 model->identifyInputsAndOutputs(
9521 {in8},
9522 {scoresOut, classesOut, out8});
9523 assert(model->isValid());
9524 }
9525
is_ignored_zero_sized_dynamic_output_shape_nchw_float16(int i)9526 inline bool is_ignored_zero_sized_dynamic_output_shape_nchw_float16(int i) {
9527 static std::set<int> ignore = {};
9528 return ignore.find(i) != ignore.end();
9529 }
9530
CreateModel_zero_sized_nhwc_2(Model * model)9531 void CreateModel_zero_sized_nhwc_2(Model *model) {
9532 OperandType type0(Type::BOOL, {});
9533 OperandType type11(Type::TENSOR_FLOAT32, {1, 2});
9534 OperandType type12(Type::TENSOR_FLOAT32, {1, 8});
9535 OperandType type13(Type::TENSOR_FLOAT32, {0});
9536 OperandType type14(Type::TENSOR_INT32, {0});
9537 OperandType type15(Type::TENSOR_FLOAT32, {0, 4});
9538 OperandType type16(Type::TENSOR_INT32, {1});
9539 OperandType type17(Type::TENSOR_FLOAT32, {0, 2, 2, 1});
9540 OperandType type18(Type::TENSOR_FLOAT32, {0, 3, 3, 1});
9541 OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 1});
9542 OperandType type3(Type::INT32, {});
9543 OperandType type4(Type::FLOAT32, {});
9544 // Phase 1, operands
9545 auto scores1 = model->addOperand(&type11);
9546 auto roi1 = model->addOperand(&type12);
9547 auto param47 = model->addOperand(&type16);
9548 auto param48 = model->addOperand(&type4);
9549 auto param49 = model->addOperand(&type3);
9550 auto param50 = model->addOperand(&type3);
9551 auto param51 = model->addOperand(&type4);
9552 auto param52 = model->addOperand(&type4);
9553 auto param53 = model->addOperand(&type4);
9554 auto scoresOut1 = model->addOperand(&type13);
9555 auto roiOut1 = model->addOperand(&type15);
9556 auto classesOut1 = model->addOperand(&type14);
9557 auto batchSplitOut1 = model->addOperand(&type14);
9558 auto in9 = model->addOperand(&type2);
9559 auto param54 = model->addOperand(&type3);
9560 auto param55 = model->addOperand(&type3);
9561 auto param56 = model->addOperand(&type4);
9562 auto param57 = model->addOperand(&type4);
9563 auto param58 = model->addOperand(&type3);
9564 auto param59 = model->addOperand(&type3);
9565 auto layout = model->addOperand(&type0);
9566 auto featureMap1 = model->addOperand(&type17);
9567 auto param60 = model->addOperand(&type4);
9568 auto param61 = model->addOperand(&type4);
9569 auto out9 = model->addOperand(&type18);
9570 // Phase 2, operations
9571 static float scores1_init[] = {0.9f, 0.1f};
9572 model->setOperandValue(scores1, scores1_init, sizeof(float) * 2);
9573 static float roi1_init[] = {1.0f, 1.0f, 10.0f, 10.0f, 0.0f, 0.0f, 10.0f, 10.0f};
9574 model->setOperandValue(roi1, roi1_init, sizeof(float) * 8);
9575 static int32_t param47_init[] = {0};
9576 model->setOperandValue(param47, param47_init, sizeof(int32_t) * 1);
9577 static float param48_init[] = {0.3f};
9578 model->setOperandValue(param48, param48_init, sizeof(float) * 1);
9579 static int32_t param49_init[] = {-1};
9580 model->setOperandValue(param49, param49_init, sizeof(int32_t) * 1);
9581 static int32_t param50_init[] = {0};
9582 model->setOperandValue(param50, param50_init, sizeof(int32_t) * 1);
9583 static float param51_init[] = {0.4f};
9584 model->setOperandValue(param51, param51_init, sizeof(float) * 1);
9585 static float param52_init[] = {1.0f};
9586 model->setOperandValue(param52, param52_init, sizeof(float) * 1);
9587 static float param53_init[] = {0.3f};
9588 model->setOperandValue(param53, param53_init, sizeof(float) * 1);
9589 static int32_t param54_init[] = {2};
9590 model->setOperandValue(param54, param54_init, sizeof(int32_t) * 1);
9591 static int32_t param55_init[] = {2};
9592 model->setOperandValue(param55, param55_init, sizeof(int32_t) * 1);
9593 static float param56_init[] = {2.0f};
9594 model->setOperandValue(param56, param56_init, sizeof(float) * 1);
9595 static float param57_init[] = {2.0f};
9596 model->setOperandValue(param57, param57_init, sizeof(float) * 1);
9597 static int32_t param58_init[] = {4};
9598 model->setOperandValue(param58, param58_init, sizeof(int32_t) * 1);
9599 static int32_t param59_init[] = {4};
9600 model->setOperandValue(param59, param59_init, sizeof(int32_t) * 1);
9601 static bool8 layout_init[] = {false};
9602 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
9603 static float param60_init[] = {1.6f};
9604 model->setOperandValue(param60, param60_init, sizeof(float) * 1);
9605 static float param61_init[] = {1.6f};
9606 model->setOperandValue(param61, param61_init, sizeof(float) * 1);
9607 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores1, roi1, param47, param48, param49, param50, param51, param52, param53}, {scoresOut1, roiOut1, classesOut1, batchSplitOut1});
9608 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in9, roiOut1, batchSplitOut1, param54, param55, param56, param57, param58, param59, layout}, {featureMap1});
9609 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap1, param60, param61, layout}, {out9});
9610 // Phase 3, inputs and outputs
9611 model->identifyInputsAndOutputs(
9612 {in9},
9613 {scoresOut1, classesOut1, out9});
9614 assert(model->isValid());
9615 }
9616
is_ignored_zero_sized_nhwc_2(int i)9617 inline bool is_ignored_zero_sized_nhwc_2(int i) {
9618 static std::set<int> ignore = {};
9619 return ignore.find(i) != ignore.end();
9620 }
9621
CreateModel_zero_sized_nhwc_relaxed_2(Model * model)9622 void CreateModel_zero_sized_nhwc_relaxed_2(Model *model) {
9623 OperandType type0(Type::BOOL, {});
9624 OperandType type11(Type::TENSOR_FLOAT32, {1, 2});
9625 OperandType type12(Type::TENSOR_FLOAT32, {1, 8});
9626 OperandType type13(Type::TENSOR_FLOAT32, {0});
9627 OperandType type14(Type::TENSOR_INT32, {0});
9628 OperandType type15(Type::TENSOR_FLOAT32, {0, 4});
9629 OperandType type16(Type::TENSOR_INT32, {1});
9630 OperandType type17(Type::TENSOR_FLOAT32, {0, 2, 2, 1});
9631 OperandType type18(Type::TENSOR_FLOAT32, {0, 3, 3, 1});
9632 OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 1});
9633 OperandType type3(Type::INT32, {});
9634 OperandType type4(Type::FLOAT32, {});
9635 // Phase 1, operands
9636 auto scores1 = model->addOperand(&type11);
9637 auto roi1 = model->addOperand(&type12);
9638 auto param47 = model->addOperand(&type16);
9639 auto param48 = model->addOperand(&type4);
9640 auto param49 = model->addOperand(&type3);
9641 auto param50 = model->addOperand(&type3);
9642 auto param51 = model->addOperand(&type4);
9643 auto param52 = model->addOperand(&type4);
9644 auto param53 = model->addOperand(&type4);
9645 auto scoresOut1 = model->addOperand(&type13);
9646 auto roiOut1 = model->addOperand(&type15);
9647 auto classesOut1 = model->addOperand(&type14);
9648 auto batchSplitOut1 = model->addOperand(&type14);
9649 auto in9 = model->addOperand(&type2);
9650 auto param54 = model->addOperand(&type3);
9651 auto param55 = model->addOperand(&type3);
9652 auto param56 = model->addOperand(&type4);
9653 auto param57 = model->addOperand(&type4);
9654 auto param58 = model->addOperand(&type3);
9655 auto param59 = model->addOperand(&type3);
9656 auto layout = model->addOperand(&type0);
9657 auto featureMap1 = model->addOperand(&type17);
9658 auto param60 = model->addOperand(&type4);
9659 auto param61 = model->addOperand(&type4);
9660 auto out9 = model->addOperand(&type18);
9661 // Phase 2, operations
9662 static float scores1_init[] = {0.9f, 0.1f};
9663 model->setOperandValue(scores1, scores1_init, sizeof(float) * 2);
9664 static float roi1_init[] = {1.0f, 1.0f, 10.0f, 10.0f, 0.0f, 0.0f, 10.0f, 10.0f};
9665 model->setOperandValue(roi1, roi1_init, sizeof(float) * 8);
9666 static int32_t param47_init[] = {0};
9667 model->setOperandValue(param47, param47_init, sizeof(int32_t) * 1);
9668 static float param48_init[] = {0.3f};
9669 model->setOperandValue(param48, param48_init, sizeof(float) * 1);
9670 static int32_t param49_init[] = {-1};
9671 model->setOperandValue(param49, param49_init, sizeof(int32_t) * 1);
9672 static int32_t param50_init[] = {0};
9673 model->setOperandValue(param50, param50_init, sizeof(int32_t) * 1);
9674 static float param51_init[] = {0.4f};
9675 model->setOperandValue(param51, param51_init, sizeof(float) * 1);
9676 static float param52_init[] = {1.0f};
9677 model->setOperandValue(param52, param52_init, sizeof(float) * 1);
9678 static float param53_init[] = {0.3f};
9679 model->setOperandValue(param53, param53_init, sizeof(float) * 1);
9680 static int32_t param54_init[] = {2};
9681 model->setOperandValue(param54, param54_init, sizeof(int32_t) * 1);
9682 static int32_t param55_init[] = {2};
9683 model->setOperandValue(param55, param55_init, sizeof(int32_t) * 1);
9684 static float param56_init[] = {2.0f};
9685 model->setOperandValue(param56, param56_init, sizeof(float) * 1);
9686 static float param57_init[] = {2.0f};
9687 model->setOperandValue(param57, param57_init, sizeof(float) * 1);
9688 static int32_t param58_init[] = {4};
9689 model->setOperandValue(param58, param58_init, sizeof(int32_t) * 1);
9690 static int32_t param59_init[] = {4};
9691 model->setOperandValue(param59, param59_init, sizeof(int32_t) * 1);
9692 static bool8 layout_init[] = {false};
9693 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
9694 static float param60_init[] = {1.6f};
9695 model->setOperandValue(param60, param60_init, sizeof(float) * 1);
9696 static float param61_init[] = {1.6f};
9697 model->setOperandValue(param61, param61_init, sizeof(float) * 1);
9698 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores1, roi1, param47, param48, param49, param50, param51, param52, param53}, {scoresOut1, roiOut1, classesOut1, batchSplitOut1});
9699 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in9, roiOut1, batchSplitOut1, param54, param55, param56, param57, param58, param59, layout}, {featureMap1});
9700 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap1, param60, param61, layout}, {out9});
9701 // Phase 3, inputs and outputs
9702 model->identifyInputsAndOutputs(
9703 {in9},
9704 {scoresOut1, classesOut1, out9});
9705 // Phase 4: set relaxed execution
9706 model->relaxComputationFloat32toFloat16(true);
9707 assert(model->isValid());
9708 }
9709
is_ignored_zero_sized_nhwc_relaxed_2(int i)9710 inline bool is_ignored_zero_sized_nhwc_relaxed_2(int i) {
9711 static std::set<int> ignore = {};
9712 return ignore.find(i) != ignore.end();
9713 }
9714
CreateModel_zero_sized_nhwc_quant8_2(Model * model)9715 void CreateModel_zero_sized_nhwc_quant8_2(Model *model) {
9716 OperandType type0(Type::BOOL, {});
9717 OperandType type14(Type::TENSOR_INT32, {0});
9718 OperandType type16(Type::TENSOR_INT32, {1});
9719 OperandType type3(Type::INT32, {});
9720 OperandType type4(Type::FLOAT32, {});
9721 OperandType type65(Type::TENSOR_QUANT8_ASYMM, {0, 2, 2, 1}, 0.1f, 128);
9722 OperandType type66(Type::TENSOR_QUANT8_ASYMM, {1, 1, 1, 1}, 0.1f, 128);
9723 OperandType type67(Type::TENSOR_QUANT8_ASYMM, {0, 3, 3, 1}, 0.1f, 128);
9724 OperandType type68(Type::TENSOR_QUANT16_ASYMM, {1, 8}, 0.125f, 0);
9725 OperandType type69(Type::TENSOR_QUANT16_ASYMM, {0, 4}, 0.125f, 0);
9726 OperandType type70(Type::TENSOR_QUANT8_ASYMM, {1, 2}, 0.1f, 128);
9727 OperandType type71(Type::TENSOR_QUANT8_ASYMM, {0}, 0.1f, 128);
9728 // Phase 1, operands
9729 auto scores1 = model->addOperand(&type70);
9730 auto roi1 = model->addOperand(&type68);
9731 auto param47 = model->addOperand(&type16);
9732 auto param48 = model->addOperand(&type4);
9733 auto param49 = model->addOperand(&type3);
9734 auto param50 = model->addOperand(&type3);
9735 auto param51 = model->addOperand(&type4);
9736 auto param52 = model->addOperand(&type4);
9737 auto param53 = model->addOperand(&type4);
9738 auto scoresOut1 = model->addOperand(&type71);
9739 auto roiOut1 = model->addOperand(&type69);
9740 auto classesOut1 = model->addOperand(&type14);
9741 auto batchSplitOut1 = model->addOperand(&type14);
9742 auto in9 = model->addOperand(&type66);
9743 auto param54 = model->addOperand(&type3);
9744 auto param55 = model->addOperand(&type3);
9745 auto param56 = model->addOperand(&type4);
9746 auto param57 = model->addOperand(&type4);
9747 auto param58 = model->addOperand(&type3);
9748 auto param59 = model->addOperand(&type3);
9749 auto layout = model->addOperand(&type0);
9750 auto featureMap1 = model->addOperand(&type65);
9751 auto param60 = model->addOperand(&type4);
9752 auto param61 = model->addOperand(&type4);
9753 auto out9 = model->addOperand(&type67);
9754 // Phase 2, operations
9755 static uint8_t scores1_init[] = {137, 129};
9756 model->setOperandValue(scores1, scores1_init, sizeof(uint8_t) * 2);
9757 static uint16_t roi1_init[] = {8, 8, 80, 80, 0, 0, 80, 80};
9758 model->setOperandValue(roi1, roi1_init, sizeof(uint16_t) * 8);
9759 static int32_t param47_init[] = {0};
9760 model->setOperandValue(param47, param47_init, sizeof(int32_t) * 1);
9761 static float param48_init[] = {0.3f};
9762 model->setOperandValue(param48, param48_init, sizeof(float) * 1);
9763 static int32_t param49_init[] = {-1};
9764 model->setOperandValue(param49, param49_init, sizeof(int32_t) * 1);
9765 static int32_t param50_init[] = {0};
9766 model->setOperandValue(param50, param50_init, sizeof(int32_t) * 1);
9767 static float param51_init[] = {0.4f};
9768 model->setOperandValue(param51, param51_init, sizeof(float) * 1);
9769 static float param52_init[] = {1.0f};
9770 model->setOperandValue(param52, param52_init, sizeof(float) * 1);
9771 static float param53_init[] = {0.3f};
9772 model->setOperandValue(param53, param53_init, sizeof(float) * 1);
9773 static int32_t param54_init[] = {2};
9774 model->setOperandValue(param54, param54_init, sizeof(int32_t) * 1);
9775 static int32_t param55_init[] = {2};
9776 model->setOperandValue(param55, param55_init, sizeof(int32_t) * 1);
9777 static float param56_init[] = {2.0f};
9778 model->setOperandValue(param56, param56_init, sizeof(float) * 1);
9779 static float param57_init[] = {2.0f};
9780 model->setOperandValue(param57, param57_init, sizeof(float) * 1);
9781 static int32_t param58_init[] = {4};
9782 model->setOperandValue(param58, param58_init, sizeof(int32_t) * 1);
9783 static int32_t param59_init[] = {4};
9784 model->setOperandValue(param59, param59_init, sizeof(int32_t) * 1);
9785 static bool8 layout_init[] = {false};
9786 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
9787 static float param60_init[] = {1.6f};
9788 model->setOperandValue(param60, param60_init, sizeof(float) * 1);
9789 static float param61_init[] = {1.6f};
9790 model->setOperandValue(param61, param61_init, sizeof(float) * 1);
9791 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores1, roi1, param47, param48, param49, param50, param51, param52, param53}, {scoresOut1, roiOut1, classesOut1, batchSplitOut1});
9792 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in9, roiOut1, batchSplitOut1, param54, param55, param56, param57, param58, param59, layout}, {featureMap1});
9793 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap1, param60, param61, layout}, {out9});
9794 // Phase 3, inputs and outputs
9795 model->identifyInputsAndOutputs(
9796 {in9},
9797 {scoresOut1, classesOut1, out9});
9798 assert(model->isValid());
9799 }
9800
is_ignored_zero_sized_nhwc_quant8_2(int i)9801 inline bool is_ignored_zero_sized_nhwc_quant8_2(int i) {
9802 static std::set<int> ignore = {};
9803 return ignore.find(i) != ignore.end();
9804 }
9805
CreateModel_zero_sized_nhwc_float16_2(Model * model)9806 void CreateModel_zero_sized_nhwc_float16_2(Model *model) {
9807 OperandType type0(Type::BOOL, {});
9808 OperandType type14(Type::TENSOR_INT32, {0});
9809 OperandType type16(Type::TENSOR_INT32, {1});
9810 OperandType type22(Type::TENSOR_FLOAT16, {1, 1, 1, 1});
9811 OperandType type29(Type::FLOAT16, {});
9812 OperandType type3(Type::INT32, {});
9813 OperandType type72(Type::TENSOR_FLOAT16, {0, 2, 2, 1});
9814 OperandType type73(Type::TENSOR_FLOAT16, {0, 3, 3, 1});
9815 OperandType type74(Type::TENSOR_FLOAT16, {1, 8});
9816 OperandType type75(Type::TENSOR_FLOAT16, {0, 4});
9817 OperandType type76(Type::TENSOR_FLOAT16, {1, 2});
9818 OperandType type77(Type::TENSOR_FLOAT16, {0});
9819 // Phase 1, operands
9820 auto scores1 = model->addOperand(&type76);
9821 auto roi1 = model->addOperand(&type74);
9822 auto param47 = model->addOperand(&type16);
9823 auto param48 = model->addOperand(&type29);
9824 auto param49 = model->addOperand(&type3);
9825 auto param50 = model->addOperand(&type3);
9826 auto param51 = model->addOperand(&type29);
9827 auto param52 = model->addOperand(&type29);
9828 auto param53 = model->addOperand(&type29);
9829 auto scoresOut1 = model->addOperand(&type77);
9830 auto roiOut1 = model->addOperand(&type75);
9831 auto classesOut1 = model->addOperand(&type14);
9832 auto batchSplitOut1 = model->addOperand(&type14);
9833 auto in9 = model->addOperand(&type22);
9834 auto param54 = model->addOperand(&type3);
9835 auto param55 = model->addOperand(&type3);
9836 auto param56 = model->addOperand(&type29);
9837 auto param57 = model->addOperand(&type29);
9838 auto param58 = model->addOperand(&type3);
9839 auto param59 = model->addOperand(&type3);
9840 auto layout = model->addOperand(&type0);
9841 auto featureMap1 = model->addOperand(&type72);
9842 auto param60 = model->addOperand(&type29);
9843 auto param61 = model->addOperand(&type29);
9844 auto out9 = model->addOperand(&type73);
9845 // Phase 2, operations
9846 static _Float16 scores1_init[] = {0.8999999761581421f, 0.10000000149011612f};
9847 model->setOperandValue(scores1, scores1_init, sizeof(_Float16) * 2);
9848 static _Float16 roi1_init[] = {1.0f, 1.0f, 10.0f, 10.0f, 0.0f, 0.0f, 10.0f, 10.0f};
9849 model->setOperandValue(roi1, roi1_init, sizeof(_Float16) * 8);
9850 static int32_t param47_init[] = {0};
9851 model->setOperandValue(param47, param47_init, sizeof(int32_t) * 1);
9852 static _Float16 param48_init[] = {0.30000001192092896f};
9853 model->setOperandValue(param48, param48_init, sizeof(_Float16) * 1);
9854 static int32_t param49_init[] = {-1};
9855 model->setOperandValue(param49, param49_init, sizeof(int32_t) * 1);
9856 static int32_t param50_init[] = {0};
9857 model->setOperandValue(param50, param50_init, sizeof(int32_t) * 1);
9858 static _Float16 param51_init[] = {0.4000000059604645f};
9859 model->setOperandValue(param51, param51_init, sizeof(_Float16) * 1);
9860 static _Float16 param52_init[] = {1.0f};
9861 model->setOperandValue(param52, param52_init, sizeof(_Float16) * 1);
9862 static _Float16 param53_init[] = {0.30000001192092896f};
9863 model->setOperandValue(param53, param53_init, sizeof(_Float16) * 1);
9864 static int32_t param54_init[] = {2};
9865 model->setOperandValue(param54, param54_init, sizeof(int32_t) * 1);
9866 static int32_t param55_init[] = {2};
9867 model->setOperandValue(param55, param55_init, sizeof(int32_t) * 1);
9868 static _Float16 param56_init[] = {2.0f};
9869 model->setOperandValue(param56, param56_init, sizeof(_Float16) * 1);
9870 static _Float16 param57_init[] = {2.0f};
9871 model->setOperandValue(param57, param57_init, sizeof(_Float16) * 1);
9872 static int32_t param58_init[] = {4};
9873 model->setOperandValue(param58, param58_init, sizeof(int32_t) * 1);
9874 static int32_t param59_init[] = {4};
9875 model->setOperandValue(param59, param59_init, sizeof(int32_t) * 1);
9876 static bool8 layout_init[] = {false};
9877 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
9878 static _Float16 param60_init[] = {1.600000023841858f};
9879 model->setOperandValue(param60, param60_init, sizeof(_Float16) * 1);
9880 static _Float16 param61_init[] = {1.600000023841858f};
9881 model->setOperandValue(param61, param61_init, sizeof(_Float16) * 1);
9882 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores1, roi1, param47, param48, param49, param50, param51, param52, param53}, {scoresOut1, roiOut1, classesOut1, batchSplitOut1});
9883 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in9, roiOut1, batchSplitOut1, param54, param55, param56, param57, param58, param59, layout}, {featureMap1});
9884 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap1, param60, param61, layout}, {out9});
9885 // Phase 3, inputs and outputs
9886 model->identifyInputsAndOutputs(
9887 {in9},
9888 {scoresOut1, classesOut1, out9});
9889 assert(model->isValid());
9890 }
9891
is_ignored_zero_sized_nhwc_float16_2(int i)9892 inline bool is_ignored_zero_sized_nhwc_float16_2(int i) {
9893 static std::set<int> ignore = {};
9894 return ignore.find(i) != ignore.end();
9895 }
9896
CreateModel_zero_sized_nchw_2(Model * model)9897 void CreateModel_zero_sized_nchw_2(Model *model) {
9898 OperandType type0(Type::BOOL, {});
9899 OperandType type11(Type::TENSOR_FLOAT32, {1, 2});
9900 OperandType type12(Type::TENSOR_FLOAT32, {1, 8});
9901 OperandType type13(Type::TENSOR_FLOAT32, {0});
9902 OperandType type14(Type::TENSOR_INT32, {0});
9903 OperandType type15(Type::TENSOR_FLOAT32, {0, 4});
9904 OperandType type16(Type::TENSOR_INT32, {1});
9905 OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 1});
9906 OperandType type3(Type::INT32, {});
9907 OperandType type4(Type::FLOAT32, {});
9908 OperandType type78(Type::TENSOR_FLOAT32, {0, 1, 2, 2});
9909 OperandType type79(Type::TENSOR_FLOAT32, {0, 1, 3, 3});
9910 // Phase 1, operands
9911 auto scores1 = model->addOperand(&type11);
9912 auto roi1 = model->addOperand(&type12);
9913 auto param47 = model->addOperand(&type16);
9914 auto param48 = model->addOperand(&type4);
9915 auto param49 = model->addOperand(&type3);
9916 auto param50 = model->addOperand(&type3);
9917 auto param51 = model->addOperand(&type4);
9918 auto param52 = model->addOperand(&type4);
9919 auto param53 = model->addOperand(&type4);
9920 auto scoresOut1 = model->addOperand(&type13);
9921 auto roiOut1 = model->addOperand(&type15);
9922 auto classesOut1 = model->addOperand(&type14);
9923 auto batchSplitOut1 = model->addOperand(&type14);
9924 auto in9 = model->addOperand(&type2);
9925 auto param54 = model->addOperand(&type3);
9926 auto param55 = model->addOperand(&type3);
9927 auto param56 = model->addOperand(&type4);
9928 auto param57 = model->addOperand(&type4);
9929 auto param58 = model->addOperand(&type3);
9930 auto param59 = model->addOperand(&type3);
9931 auto layout = model->addOperand(&type0);
9932 auto featureMap1 = model->addOperand(&type78);
9933 auto param60 = model->addOperand(&type4);
9934 auto param61 = model->addOperand(&type4);
9935 auto out9 = model->addOperand(&type79);
9936 // Phase 2, operations
9937 static float scores1_init[] = {0.9f, 0.1f};
9938 model->setOperandValue(scores1, scores1_init, sizeof(float) * 2);
9939 static float roi1_init[] = {1.0f, 1.0f, 10.0f, 10.0f, 0.0f, 0.0f, 10.0f, 10.0f};
9940 model->setOperandValue(roi1, roi1_init, sizeof(float) * 8);
9941 static int32_t param47_init[] = {0};
9942 model->setOperandValue(param47, param47_init, sizeof(int32_t) * 1);
9943 static float param48_init[] = {0.3f};
9944 model->setOperandValue(param48, param48_init, sizeof(float) * 1);
9945 static int32_t param49_init[] = {-1};
9946 model->setOperandValue(param49, param49_init, sizeof(int32_t) * 1);
9947 static int32_t param50_init[] = {0};
9948 model->setOperandValue(param50, param50_init, sizeof(int32_t) * 1);
9949 static float param51_init[] = {0.4f};
9950 model->setOperandValue(param51, param51_init, sizeof(float) * 1);
9951 static float param52_init[] = {1.0f};
9952 model->setOperandValue(param52, param52_init, sizeof(float) * 1);
9953 static float param53_init[] = {0.3f};
9954 model->setOperandValue(param53, param53_init, sizeof(float) * 1);
9955 static int32_t param54_init[] = {2};
9956 model->setOperandValue(param54, param54_init, sizeof(int32_t) * 1);
9957 static int32_t param55_init[] = {2};
9958 model->setOperandValue(param55, param55_init, sizeof(int32_t) * 1);
9959 static float param56_init[] = {2.0f};
9960 model->setOperandValue(param56, param56_init, sizeof(float) * 1);
9961 static float param57_init[] = {2.0f};
9962 model->setOperandValue(param57, param57_init, sizeof(float) * 1);
9963 static int32_t param58_init[] = {4};
9964 model->setOperandValue(param58, param58_init, sizeof(int32_t) * 1);
9965 static int32_t param59_init[] = {4};
9966 model->setOperandValue(param59, param59_init, sizeof(int32_t) * 1);
9967 static bool8 layout_init[] = {true};
9968 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
9969 static float param60_init[] = {1.6f};
9970 model->setOperandValue(param60, param60_init, sizeof(float) * 1);
9971 static float param61_init[] = {1.6f};
9972 model->setOperandValue(param61, param61_init, sizeof(float) * 1);
9973 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores1, roi1, param47, param48, param49, param50, param51, param52, param53}, {scoresOut1, roiOut1, classesOut1, batchSplitOut1});
9974 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in9, roiOut1, batchSplitOut1, param54, param55, param56, param57, param58, param59, layout}, {featureMap1});
9975 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap1, param60, param61, layout}, {out9});
9976 // Phase 3, inputs and outputs
9977 model->identifyInputsAndOutputs(
9978 {in9},
9979 {scoresOut1, classesOut1, out9});
9980 assert(model->isValid());
9981 }
9982
is_ignored_zero_sized_nchw_2(int i)9983 inline bool is_ignored_zero_sized_nchw_2(int i) {
9984 static std::set<int> ignore = {};
9985 return ignore.find(i) != ignore.end();
9986 }
9987
CreateModel_zero_sized_nchw_relaxed_2(Model * model)9988 void CreateModel_zero_sized_nchw_relaxed_2(Model *model) {
9989 OperandType type0(Type::BOOL, {});
9990 OperandType type11(Type::TENSOR_FLOAT32, {1, 2});
9991 OperandType type12(Type::TENSOR_FLOAT32, {1, 8});
9992 OperandType type13(Type::TENSOR_FLOAT32, {0});
9993 OperandType type14(Type::TENSOR_INT32, {0});
9994 OperandType type15(Type::TENSOR_FLOAT32, {0, 4});
9995 OperandType type16(Type::TENSOR_INT32, {1});
9996 OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 1});
9997 OperandType type3(Type::INT32, {});
9998 OperandType type4(Type::FLOAT32, {});
9999 OperandType type78(Type::TENSOR_FLOAT32, {0, 1, 2, 2});
10000 OperandType type79(Type::TENSOR_FLOAT32, {0, 1, 3, 3});
10001 // Phase 1, operands
10002 auto scores1 = model->addOperand(&type11);
10003 auto roi1 = model->addOperand(&type12);
10004 auto param47 = model->addOperand(&type16);
10005 auto param48 = model->addOperand(&type4);
10006 auto param49 = model->addOperand(&type3);
10007 auto param50 = model->addOperand(&type3);
10008 auto param51 = model->addOperand(&type4);
10009 auto param52 = model->addOperand(&type4);
10010 auto param53 = model->addOperand(&type4);
10011 auto scoresOut1 = model->addOperand(&type13);
10012 auto roiOut1 = model->addOperand(&type15);
10013 auto classesOut1 = model->addOperand(&type14);
10014 auto batchSplitOut1 = model->addOperand(&type14);
10015 auto in9 = model->addOperand(&type2);
10016 auto param54 = model->addOperand(&type3);
10017 auto param55 = model->addOperand(&type3);
10018 auto param56 = model->addOperand(&type4);
10019 auto param57 = model->addOperand(&type4);
10020 auto param58 = model->addOperand(&type3);
10021 auto param59 = model->addOperand(&type3);
10022 auto layout = model->addOperand(&type0);
10023 auto featureMap1 = model->addOperand(&type78);
10024 auto param60 = model->addOperand(&type4);
10025 auto param61 = model->addOperand(&type4);
10026 auto out9 = model->addOperand(&type79);
10027 // Phase 2, operations
10028 static float scores1_init[] = {0.9f, 0.1f};
10029 model->setOperandValue(scores1, scores1_init, sizeof(float) * 2);
10030 static float roi1_init[] = {1.0f, 1.0f, 10.0f, 10.0f, 0.0f, 0.0f, 10.0f, 10.0f};
10031 model->setOperandValue(roi1, roi1_init, sizeof(float) * 8);
10032 static int32_t param47_init[] = {0};
10033 model->setOperandValue(param47, param47_init, sizeof(int32_t) * 1);
10034 static float param48_init[] = {0.3f};
10035 model->setOperandValue(param48, param48_init, sizeof(float) * 1);
10036 static int32_t param49_init[] = {-1};
10037 model->setOperandValue(param49, param49_init, sizeof(int32_t) * 1);
10038 static int32_t param50_init[] = {0};
10039 model->setOperandValue(param50, param50_init, sizeof(int32_t) * 1);
10040 static float param51_init[] = {0.4f};
10041 model->setOperandValue(param51, param51_init, sizeof(float) * 1);
10042 static float param52_init[] = {1.0f};
10043 model->setOperandValue(param52, param52_init, sizeof(float) * 1);
10044 static float param53_init[] = {0.3f};
10045 model->setOperandValue(param53, param53_init, sizeof(float) * 1);
10046 static int32_t param54_init[] = {2};
10047 model->setOperandValue(param54, param54_init, sizeof(int32_t) * 1);
10048 static int32_t param55_init[] = {2};
10049 model->setOperandValue(param55, param55_init, sizeof(int32_t) * 1);
10050 static float param56_init[] = {2.0f};
10051 model->setOperandValue(param56, param56_init, sizeof(float) * 1);
10052 static float param57_init[] = {2.0f};
10053 model->setOperandValue(param57, param57_init, sizeof(float) * 1);
10054 static int32_t param58_init[] = {4};
10055 model->setOperandValue(param58, param58_init, sizeof(int32_t) * 1);
10056 static int32_t param59_init[] = {4};
10057 model->setOperandValue(param59, param59_init, sizeof(int32_t) * 1);
10058 static bool8 layout_init[] = {true};
10059 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
10060 static float param60_init[] = {1.6f};
10061 model->setOperandValue(param60, param60_init, sizeof(float) * 1);
10062 static float param61_init[] = {1.6f};
10063 model->setOperandValue(param61, param61_init, sizeof(float) * 1);
10064 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores1, roi1, param47, param48, param49, param50, param51, param52, param53}, {scoresOut1, roiOut1, classesOut1, batchSplitOut1});
10065 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in9, roiOut1, batchSplitOut1, param54, param55, param56, param57, param58, param59, layout}, {featureMap1});
10066 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap1, param60, param61, layout}, {out9});
10067 // Phase 3, inputs and outputs
10068 model->identifyInputsAndOutputs(
10069 {in9},
10070 {scoresOut1, classesOut1, out9});
10071 // Phase 4: set relaxed execution
10072 model->relaxComputationFloat32toFloat16(true);
10073 assert(model->isValid());
10074 }
10075
is_ignored_zero_sized_nchw_relaxed_2(int i)10076 inline bool is_ignored_zero_sized_nchw_relaxed_2(int i) {
10077 static std::set<int> ignore = {};
10078 return ignore.find(i) != ignore.end();
10079 }
10080
CreateModel_zero_sized_nchw_quant8_2(Model * model)10081 void CreateModel_zero_sized_nchw_quant8_2(Model *model) {
10082 OperandType type0(Type::BOOL, {});
10083 OperandType type14(Type::TENSOR_INT32, {0});
10084 OperandType type16(Type::TENSOR_INT32, {1});
10085 OperandType type3(Type::INT32, {});
10086 OperandType type4(Type::FLOAT32, {});
10087 OperandType type66(Type::TENSOR_QUANT8_ASYMM, {1, 1, 1, 1}, 0.1f, 128);
10088 OperandType type68(Type::TENSOR_QUANT16_ASYMM, {1, 8}, 0.125f, 0);
10089 OperandType type69(Type::TENSOR_QUANT16_ASYMM, {0, 4}, 0.125f, 0);
10090 OperandType type70(Type::TENSOR_QUANT8_ASYMM, {1, 2}, 0.1f, 128);
10091 OperandType type71(Type::TENSOR_QUANT8_ASYMM, {0}, 0.1f, 128);
10092 OperandType type80(Type::TENSOR_QUANT8_ASYMM, {0, 1, 2, 2}, 0.1f, 128);
10093 OperandType type81(Type::TENSOR_QUANT8_ASYMM, {0, 1, 3, 3}, 0.1f, 128);
10094 // Phase 1, operands
10095 auto scores1 = model->addOperand(&type70);
10096 auto roi1 = model->addOperand(&type68);
10097 auto param47 = model->addOperand(&type16);
10098 auto param48 = model->addOperand(&type4);
10099 auto param49 = model->addOperand(&type3);
10100 auto param50 = model->addOperand(&type3);
10101 auto param51 = model->addOperand(&type4);
10102 auto param52 = model->addOperand(&type4);
10103 auto param53 = model->addOperand(&type4);
10104 auto scoresOut1 = model->addOperand(&type71);
10105 auto roiOut1 = model->addOperand(&type69);
10106 auto classesOut1 = model->addOperand(&type14);
10107 auto batchSplitOut1 = model->addOperand(&type14);
10108 auto in9 = model->addOperand(&type66);
10109 auto param54 = model->addOperand(&type3);
10110 auto param55 = model->addOperand(&type3);
10111 auto param56 = model->addOperand(&type4);
10112 auto param57 = model->addOperand(&type4);
10113 auto param58 = model->addOperand(&type3);
10114 auto param59 = model->addOperand(&type3);
10115 auto layout = model->addOperand(&type0);
10116 auto featureMap1 = model->addOperand(&type80);
10117 auto param60 = model->addOperand(&type4);
10118 auto param61 = model->addOperand(&type4);
10119 auto out9 = model->addOperand(&type81);
10120 // Phase 2, operations
10121 static uint8_t scores1_init[] = {137, 129};
10122 model->setOperandValue(scores1, scores1_init, sizeof(uint8_t) * 2);
10123 static uint16_t roi1_init[] = {8, 8, 80, 80, 0, 0, 80, 80};
10124 model->setOperandValue(roi1, roi1_init, sizeof(uint16_t) * 8);
10125 static int32_t param47_init[] = {0};
10126 model->setOperandValue(param47, param47_init, sizeof(int32_t) * 1);
10127 static float param48_init[] = {0.3f};
10128 model->setOperandValue(param48, param48_init, sizeof(float) * 1);
10129 static int32_t param49_init[] = {-1};
10130 model->setOperandValue(param49, param49_init, sizeof(int32_t) * 1);
10131 static int32_t param50_init[] = {0};
10132 model->setOperandValue(param50, param50_init, sizeof(int32_t) * 1);
10133 static float param51_init[] = {0.4f};
10134 model->setOperandValue(param51, param51_init, sizeof(float) * 1);
10135 static float param52_init[] = {1.0f};
10136 model->setOperandValue(param52, param52_init, sizeof(float) * 1);
10137 static float param53_init[] = {0.3f};
10138 model->setOperandValue(param53, param53_init, sizeof(float) * 1);
10139 static int32_t param54_init[] = {2};
10140 model->setOperandValue(param54, param54_init, sizeof(int32_t) * 1);
10141 static int32_t param55_init[] = {2};
10142 model->setOperandValue(param55, param55_init, sizeof(int32_t) * 1);
10143 static float param56_init[] = {2.0f};
10144 model->setOperandValue(param56, param56_init, sizeof(float) * 1);
10145 static float param57_init[] = {2.0f};
10146 model->setOperandValue(param57, param57_init, sizeof(float) * 1);
10147 static int32_t param58_init[] = {4};
10148 model->setOperandValue(param58, param58_init, sizeof(int32_t) * 1);
10149 static int32_t param59_init[] = {4};
10150 model->setOperandValue(param59, param59_init, sizeof(int32_t) * 1);
10151 static bool8 layout_init[] = {true};
10152 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
10153 static float param60_init[] = {1.6f};
10154 model->setOperandValue(param60, param60_init, sizeof(float) * 1);
10155 static float param61_init[] = {1.6f};
10156 model->setOperandValue(param61, param61_init, sizeof(float) * 1);
10157 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores1, roi1, param47, param48, param49, param50, param51, param52, param53}, {scoresOut1, roiOut1, classesOut1, batchSplitOut1});
10158 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in9, roiOut1, batchSplitOut1, param54, param55, param56, param57, param58, param59, layout}, {featureMap1});
10159 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap1, param60, param61, layout}, {out9});
10160 // Phase 3, inputs and outputs
10161 model->identifyInputsAndOutputs(
10162 {in9},
10163 {scoresOut1, classesOut1, out9});
10164 assert(model->isValid());
10165 }
10166
is_ignored_zero_sized_nchw_quant8_2(int i)10167 inline bool is_ignored_zero_sized_nchw_quant8_2(int i) {
10168 static std::set<int> ignore = {};
10169 return ignore.find(i) != ignore.end();
10170 }
10171
CreateModel_zero_sized_nchw_float16_2(Model * model)10172 void CreateModel_zero_sized_nchw_float16_2(Model *model) {
10173 OperandType type0(Type::BOOL, {});
10174 OperandType type14(Type::TENSOR_INT32, {0});
10175 OperandType type16(Type::TENSOR_INT32, {1});
10176 OperandType type22(Type::TENSOR_FLOAT16, {1, 1, 1, 1});
10177 OperandType type29(Type::FLOAT16, {});
10178 OperandType type3(Type::INT32, {});
10179 OperandType type74(Type::TENSOR_FLOAT16, {1, 8});
10180 OperandType type75(Type::TENSOR_FLOAT16, {0, 4});
10181 OperandType type76(Type::TENSOR_FLOAT16, {1, 2});
10182 OperandType type77(Type::TENSOR_FLOAT16, {0});
10183 OperandType type82(Type::TENSOR_FLOAT16, {0, 1, 2, 2});
10184 OperandType type83(Type::TENSOR_FLOAT16, {0, 1, 3, 3});
10185 // Phase 1, operands
10186 auto scores1 = model->addOperand(&type76);
10187 auto roi1 = model->addOperand(&type74);
10188 auto param47 = model->addOperand(&type16);
10189 auto param48 = model->addOperand(&type29);
10190 auto param49 = model->addOperand(&type3);
10191 auto param50 = model->addOperand(&type3);
10192 auto param51 = model->addOperand(&type29);
10193 auto param52 = model->addOperand(&type29);
10194 auto param53 = model->addOperand(&type29);
10195 auto scoresOut1 = model->addOperand(&type77);
10196 auto roiOut1 = model->addOperand(&type75);
10197 auto classesOut1 = model->addOperand(&type14);
10198 auto batchSplitOut1 = model->addOperand(&type14);
10199 auto in9 = model->addOperand(&type22);
10200 auto param54 = model->addOperand(&type3);
10201 auto param55 = model->addOperand(&type3);
10202 auto param56 = model->addOperand(&type29);
10203 auto param57 = model->addOperand(&type29);
10204 auto param58 = model->addOperand(&type3);
10205 auto param59 = model->addOperand(&type3);
10206 auto layout = model->addOperand(&type0);
10207 auto featureMap1 = model->addOperand(&type82);
10208 auto param60 = model->addOperand(&type29);
10209 auto param61 = model->addOperand(&type29);
10210 auto out9 = model->addOperand(&type83);
10211 // Phase 2, operations
10212 static _Float16 scores1_init[] = {0.8999999761581421f, 0.10000000149011612f};
10213 model->setOperandValue(scores1, scores1_init, sizeof(_Float16) * 2);
10214 static _Float16 roi1_init[] = {1.0f, 1.0f, 10.0f, 10.0f, 0.0f, 0.0f, 10.0f, 10.0f};
10215 model->setOperandValue(roi1, roi1_init, sizeof(_Float16) * 8);
10216 static int32_t param47_init[] = {0};
10217 model->setOperandValue(param47, param47_init, sizeof(int32_t) * 1);
10218 static _Float16 param48_init[] = {0.30000001192092896f};
10219 model->setOperandValue(param48, param48_init, sizeof(_Float16) * 1);
10220 static int32_t param49_init[] = {-1};
10221 model->setOperandValue(param49, param49_init, sizeof(int32_t) * 1);
10222 static int32_t param50_init[] = {0};
10223 model->setOperandValue(param50, param50_init, sizeof(int32_t) * 1);
10224 static _Float16 param51_init[] = {0.4000000059604645f};
10225 model->setOperandValue(param51, param51_init, sizeof(_Float16) * 1);
10226 static _Float16 param52_init[] = {1.0f};
10227 model->setOperandValue(param52, param52_init, sizeof(_Float16) * 1);
10228 static _Float16 param53_init[] = {0.30000001192092896f};
10229 model->setOperandValue(param53, param53_init, sizeof(_Float16) * 1);
10230 static int32_t param54_init[] = {2};
10231 model->setOperandValue(param54, param54_init, sizeof(int32_t) * 1);
10232 static int32_t param55_init[] = {2};
10233 model->setOperandValue(param55, param55_init, sizeof(int32_t) * 1);
10234 static _Float16 param56_init[] = {2.0f};
10235 model->setOperandValue(param56, param56_init, sizeof(_Float16) * 1);
10236 static _Float16 param57_init[] = {2.0f};
10237 model->setOperandValue(param57, param57_init, sizeof(_Float16) * 1);
10238 static int32_t param58_init[] = {4};
10239 model->setOperandValue(param58, param58_init, sizeof(int32_t) * 1);
10240 static int32_t param59_init[] = {4};
10241 model->setOperandValue(param59, param59_init, sizeof(int32_t) * 1);
10242 static bool8 layout_init[] = {true};
10243 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
10244 static _Float16 param60_init[] = {1.600000023841858f};
10245 model->setOperandValue(param60, param60_init, sizeof(_Float16) * 1);
10246 static _Float16 param61_init[] = {1.600000023841858f};
10247 model->setOperandValue(param61, param61_init, sizeof(_Float16) * 1);
10248 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores1, roi1, param47, param48, param49, param50, param51, param52, param53}, {scoresOut1, roiOut1, classesOut1, batchSplitOut1});
10249 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in9, roiOut1, batchSplitOut1, param54, param55, param56, param57, param58, param59, layout}, {featureMap1});
10250 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap1, param60, param61, layout}, {out9});
10251 // Phase 3, inputs and outputs
10252 model->identifyInputsAndOutputs(
10253 {in9},
10254 {scoresOut1, classesOut1, out9});
10255 assert(model->isValid());
10256 }
10257
is_ignored_zero_sized_nchw_float16_2(int i)10258 inline bool is_ignored_zero_sized_nchw_float16_2(int i) {
10259 static std::set<int> ignore = {};
10260 return ignore.find(i) != ignore.end();
10261 }
10262
CreateModel_zero_sized_dynamic_output_shape_nhwc_2(Model * model)10263 void CreateModel_zero_sized_dynamic_output_shape_nhwc_2(Model *model) {
10264 OperandType type0(Type::BOOL, {});
10265 OperandType type11(Type::TENSOR_FLOAT32, {1, 2});
10266 OperandType type12(Type::TENSOR_FLOAT32, {1, 8});
10267 OperandType type13(Type::TENSOR_FLOAT32, {0});
10268 OperandType type14(Type::TENSOR_INT32, {0});
10269 OperandType type15(Type::TENSOR_FLOAT32, {0, 4});
10270 OperandType type16(Type::TENSOR_INT32, {1});
10271 OperandType type17(Type::TENSOR_FLOAT32, {0, 2, 2, 1});
10272 OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 1});
10273 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
10274 OperandType type3(Type::INT32, {});
10275 OperandType type4(Type::FLOAT32, {});
10276 // Phase 1, operands
10277 auto scores1 = model->addOperand(&type11);
10278 auto roi1 = model->addOperand(&type12);
10279 auto param47 = model->addOperand(&type16);
10280 auto param48 = model->addOperand(&type4);
10281 auto param49 = model->addOperand(&type3);
10282 auto param50 = model->addOperand(&type3);
10283 auto param51 = model->addOperand(&type4);
10284 auto param52 = model->addOperand(&type4);
10285 auto param53 = model->addOperand(&type4);
10286 auto scoresOut1 = model->addOperand(&type13);
10287 auto roiOut1 = model->addOperand(&type15);
10288 auto classesOut1 = model->addOperand(&type14);
10289 auto batchSplitOut1 = model->addOperand(&type14);
10290 auto in9 = model->addOperand(&type2);
10291 auto param54 = model->addOperand(&type3);
10292 auto param55 = model->addOperand(&type3);
10293 auto param56 = model->addOperand(&type4);
10294 auto param57 = model->addOperand(&type4);
10295 auto param58 = model->addOperand(&type3);
10296 auto param59 = model->addOperand(&type3);
10297 auto layout = model->addOperand(&type0);
10298 auto featureMap1 = model->addOperand(&type17);
10299 auto param60 = model->addOperand(&type4);
10300 auto param61 = model->addOperand(&type4);
10301 auto out9 = model->addOperand(&type26);
10302 // Phase 2, operations
10303 static float scores1_init[] = {0.9f, 0.1f};
10304 model->setOperandValue(scores1, scores1_init, sizeof(float) * 2);
10305 static float roi1_init[] = {1.0f, 1.0f, 10.0f, 10.0f, 0.0f, 0.0f, 10.0f, 10.0f};
10306 model->setOperandValue(roi1, roi1_init, sizeof(float) * 8);
10307 static int32_t param47_init[] = {0};
10308 model->setOperandValue(param47, param47_init, sizeof(int32_t) * 1);
10309 static float param48_init[] = {0.3f};
10310 model->setOperandValue(param48, param48_init, sizeof(float) * 1);
10311 static int32_t param49_init[] = {-1};
10312 model->setOperandValue(param49, param49_init, sizeof(int32_t) * 1);
10313 static int32_t param50_init[] = {0};
10314 model->setOperandValue(param50, param50_init, sizeof(int32_t) * 1);
10315 static float param51_init[] = {0.4f};
10316 model->setOperandValue(param51, param51_init, sizeof(float) * 1);
10317 static float param52_init[] = {1.0f};
10318 model->setOperandValue(param52, param52_init, sizeof(float) * 1);
10319 static float param53_init[] = {0.3f};
10320 model->setOperandValue(param53, param53_init, sizeof(float) * 1);
10321 static int32_t param54_init[] = {2};
10322 model->setOperandValue(param54, param54_init, sizeof(int32_t) * 1);
10323 static int32_t param55_init[] = {2};
10324 model->setOperandValue(param55, param55_init, sizeof(int32_t) * 1);
10325 static float param56_init[] = {2.0f};
10326 model->setOperandValue(param56, param56_init, sizeof(float) * 1);
10327 static float param57_init[] = {2.0f};
10328 model->setOperandValue(param57, param57_init, sizeof(float) * 1);
10329 static int32_t param58_init[] = {4};
10330 model->setOperandValue(param58, param58_init, sizeof(int32_t) * 1);
10331 static int32_t param59_init[] = {4};
10332 model->setOperandValue(param59, param59_init, sizeof(int32_t) * 1);
10333 static bool8 layout_init[] = {false};
10334 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
10335 static float param60_init[] = {1.6f};
10336 model->setOperandValue(param60, param60_init, sizeof(float) * 1);
10337 static float param61_init[] = {1.6f};
10338 model->setOperandValue(param61, param61_init, sizeof(float) * 1);
10339 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores1, roi1, param47, param48, param49, param50, param51, param52, param53}, {scoresOut1, roiOut1, classesOut1, batchSplitOut1});
10340 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in9, roiOut1, batchSplitOut1, param54, param55, param56, param57, param58, param59, layout}, {featureMap1});
10341 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap1, param60, param61, layout}, {out9});
10342 // Phase 3, inputs and outputs
10343 model->identifyInputsAndOutputs(
10344 {in9},
10345 {scoresOut1, classesOut1, out9});
10346 assert(model->isValid());
10347 }
10348
is_ignored_zero_sized_dynamic_output_shape_nhwc_2(int i)10349 inline bool is_ignored_zero_sized_dynamic_output_shape_nhwc_2(int i) {
10350 static std::set<int> ignore = {};
10351 return ignore.find(i) != ignore.end();
10352 }
10353
CreateModel_zero_sized_dynamic_output_shape_nhwc_relaxed_2(Model * model)10354 void CreateModel_zero_sized_dynamic_output_shape_nhwc_relaxed_2(Model *model) {
10355 OperandType type0(Type::BOOL, {});
10356 OperandType type11(Type::TENSOR_FLOAT32, {1, 2});
10357 OperandType type12(Type::TENSOR_FLOAT32, {1, 8});
10358 OperandType type13(Type::TENSOR_FLOAT32, {0});
10359 OperandType type14(Type::TENSOR_INT32, {0});
10360 OperandType type15(Type::TENSOR_FLOAT32, {0, 4});
10361 OperandType type16(Type::TENSOR_INT32, {1});
10362 OperandType type17(Type::TENSOR_FLOAT32, {0, 2, 2, 1});
10363 OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 1});
10364 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
10365 OperandType type3(Type::INT32, {});
10366 OperandType type4(Type::FLOAT32, {});
10367 // Phase 1, operands
10368 auto scores1 = model->addOperand(&type11);
10369 auto roi1 = model->addOperand(&type12);
10370 auto param47 = model->addOperand(&type16);
10371 auto param48 = model->addOperand(&type4);
10372 auto param49 = model->addOperand(&type3);
10373 auto param50 = model->addOperand(&type3);
10374 auto param51 = model->addOperand(&type4);
10375 auto param52 = model->addOperand(&type4);
10376 auto param53 = model->addOperand(&type4);
10377 auto scoresOut1 = model->addOperand(&type13);
10378 auto roiOut1 = model->addOperand(&type15);
10379 auto classesOut1 = model->addOperand(&type14);
10380 auto batchSplitOut1 = model->addOperand(&type14);
10381 auto in9 = model->addOperand(&type2);
10382 auto param54 = model->addOperand(&type3);
10383 auto param55 = model->addOperand(&type3);
10384 auto param56 = model->addOperand(&type4);
10385 auto param57 = model->addOperand(&type4);
10386 auto param58 = model->addOperand(&type3);
10387 auto param59 = model->addOperand(&type3);
10388 auto layout = model->addOperand(&type0);
10389 auto featureMap1 = model->addOperand(&type17);
10390 auto param60 = model->addOperand(&type4);
10391 auto param61 = model->addOperand(&type4);
10392 auto out9 = model->addOperand(&type26);
10393 // Phase 2, operations
10394 static float scores1_init[] = {0.9f, 0.1f};
10395 model->setOperandValue(scores1, scores1_init, sizeof(float) * 2);
10396 static float roi1_init[] = {1.0f, 1.0f, 10.0f, 10.0f, 0.0f, 0.0f, 10.0f, 10.0f};
10397 model->setOperandValue(roi1, roi1_init, sizeof(float) * 8);
10398 static int32_t param47_init[] = {0};
10399 model->setOperandValue(param47, param47_init, sizeof(int32_t) * 1);
10400 static float param48_init[] = {0.3f};
10401 model->setOperandValue(param48, param48_init, sizeof(float) * 1);
10402 static int32_t param49_init[] = {-1};
10403 model->setOperandValue(param49, param49_init, sizeof(int32_t) * 1);
10404 static int32_t param50_init[] = {0};
10405 model->setOperandValue(param50, param50_init, sizeof(int32_t) * 1);
10406 static float param51_init[] = {0.4f};
10407 model->setOperandValue(param51, param51_init, sizeof(float) * 1);
10408 static float param52_init[] = {1.0f};
10409 model->setOperandValue(param52, param52_init, sizeof(float) * 1);
10410 static float param53_init[] = {0.3f};
10411 model->setOperandValue(param53, param53_init, sizeof(float) * 1);
10412 static int32_t param54_init[] = {2};
10413 model->setOperandValue(param54, param54_init, sizeof(int32_t) * 1);
10414 static int32_t param55_init[] = {2};
10415 model->setOperandValue(param55, param55_init, sizeof(int32_t) * 1);
10416 static float param56_init[] = {2.0f};
10417 model->setOperandValue(param56, param56_init, sizeof(float) * 1);
10418 static float param57_init[] = {2.0f};
10419 model->setOperandValue(param57, param57_init, sizeof(float) * 1);
10420 static int32_t param58_init[] = {4};
10421 model->setOperandValue(param58, param58_init, sizeof(int32_t) * 1);
10422 static int32_t param59_init[] = {4};
10423 model->setOperandValue(param59, param59_init, sizeof(int32_t) * 1);
10424 static bool8 layout_init[] = {false};
10425 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
10426 static float param60_init[] = {1.6f};
10427 model->setOperandValue(param60, param60_init, sizeof(float) * 1);
10428 static float param61_init[] = {1.6f};
10429 model->setOperandValue(param61, param61_init, sizeof(float) * 1);
10430 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores1, roi1, param47, param48, param49, param50, param51, param52, param53}, {scoresOut1, roiOut1, classesOut1, batchSplitOut1});
10431 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in9, roiOut1, batchSplitOut1, param54, param55, param56, param57, param58, param59, layout}, {featureMap1});
10432 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap1, param60, param61, layout}, {out9});
10433 // Phase 3, inputs and outputs
10434 model->identifyInputsAndOutputs(
10435 {in9},
10436 {scoresOut1, classesOut1, out9});
10437 // Phase 4: set relaxed execution
10438 model->relaxComputationFloat32toFloat16(true);
10439 assert(model->isValid());
10440 }
10441
is_ignored_zero_sized_dynamic_output_shape_nhwc_relaxed_2(int i)10442 inline bool is_ignored_zero_sized_dynamic_output_shape_nhwc_relaxed_2(int i) {
10443 static std::set<int> ignore = {};
10444 return ignore.find(i) != ignore.end();
10445 }
10446
CreateModel_zero_sized_dynamic_output_shape_nhwc_quant8_2(Model * model)10447 void CreateModel_zero_sized_dynamic_output_shape_nhwc_quant8_2(Model *model) {
10448 OperandType type0(Type::BOOL, {});
10449 OperandType type14(Type::TENSOR_INT32, {0});
10450 OperandType type16(Type::TENSOR_INT32, {1});
10451 OperandType type3(Type::INT32, {});
10452 OperandType type4(Type::FLOAT32, {});
10453 OperandType type65(Type::TENSOR_QUANT8_ASYMM, {0, 2, 2, 1}, 0.1f, 128);
10454 OperandType type66(Type::TENSOR_QUANT8_ASYMM, {1, 1, 1, 1}, 0.1f, 128);
10455 OperandType type68(Type::TENSOR_QUANT16_ASYMM, {1, 8}, 0.125f, 0);
10456 OperandType type69(Type::TENSOR_QUANT16_ASYMM, {0, 4}, 0.125f, 0);
10457 OperandType type70(Type::TENSOR_QUANT8_ASYMM, {1, 2}, 0.1f, 128);
10458 OperandType type71(Type::TENSOR_QUANT8_ASYMM, {0}, 0.1f, 128);
10459 OperandType type84(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.1f, 128);
10460 // Phase 1, operands
10461 auto scores1 = model->addOperand(&type70);
10462 auto roi1 = model->addOperand(&type68);
10463 auto param47 = model->addOperand(&type16);
10464 auto param48 = model->addOperand(&type4);
10465 auto param49 = model->addOperand(&type3);
10466 auto param50 = model->addOperand(&type3);
10467 auto param51 = model->addOperand(&type4);
10468 auto param52 = model->addOperand(&type4);
10469 auto param53 = model->addOperand(&type4);
10470 auto scoresOut1 = model->addOperand(&type71);
10471 auto roiOut1 = model->addOperand(&type69);
10472 auto classesOut1 = model->addOperand(&type14);
10473 auto batchSplitOut1 = model->addOperand(&type14);
10474 auto in9 = model->addOperand(&type66);
10475 auto param54 = model->addOperand(&type3);
10476 auto param55 = model->addOperand(&type3);
10477 auto param56 = model->addOperand(&type4);
10478 auto param57 = model->addOperand(&type4);
10479 auto param58 = model->addOperand(&type3);
10480 auto param59 = model->addOperand(&type3);
10481 auto layout = model->addOperand(&type0);
10482 auto featureMap1 = model->addOperand(&type65);
10483 auto param60 = model->addOperand(&type4);
10484 auto param61 = model->addOperand(&type4);
10485 auto out9 = model->addOperand(&type84);
10486 // Phase 2, operations
10487 static uint8_t scores1_init[] = {137, 129};
10488 model->setOperandValue(scores1, scores1_init, sizeof(uint8_t) * 2);
10489 static uint16_t roi1_init[] = {8, 8, 80, 80, 0, 0, 80, 80};
10490 model->setOperandValue(roi1, roi1_init, sizeof(uint16_t) * 8);
10491 static int32_t param47_init[] = {0};
10492 model->setOperandValue(param47, param47_init, sizeof(int32_t) * 1);
10493 static float param48_init[] = {0.3f};
10494 model->setOperandValue(param48, param48_init, sizeof(float) * 1);
10495 static int32_t param49_init[] = {-1};
10496 model->setOperandValue(param49, param49_init, sizeof(int32_t) * 1);
10497 static int32_t param50_init[] = {0};
10498 model->setOperandValue(param50, param50_init, sizeof(int32_t) * 1);
10499 static float param51_init[] = {0.4f};
10500 model->setOperandValue(param51, param51_init, sizeof(float) * 1);
10501 static float param52_init[] = {1.0f};
10502 model->setOperandValue(param52, param52_init, sizeof(float) * 1);
10503 static float param53_init[] = {0.3f};
10504 model->setOperandValue(param53, param53_init, sizeof(float) * 1);
10505 static int32_t param54_init[] = {2};
10506 model->setOperandValue(param54, param54_init, sizeof(int32_t) * 1);
10507 static int32_t param55_init[] = {2};
10508 model->setOperandValue(param55, param55_init, sizeof(int32_t) * 1);
10509 static float param56_init[] = {2.0f};
10510 model->setOperandValue(param56, param56_init, sizeof(float) * 1);
10511 static float param57_init[] = {2.0f};
10512 model->setOperandValue(param57, param57_init, sizeof(float) * 1);
10513 static int32_t param58_init[] = {4};
10514 model->setOperandValue(param58, param58_init, sizeof(int32_t) * 1);
10515 static int32_t param59_init[] = {4};
10516 model->setOperandValue(param59, param59_init, sizeof(int32_t) * 1);
10517 static bool8 layout_init[] = {false};
10518 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
10519 static float param60_init[] = {1.6f};
10520 model->setOperandValue(param60, param60_init, sizeof(float) * 1);
10521 static float param61_init[] = {1.6f};
10522 model->setOperandValue(param61, param61_init, sizeof(float) * 1);
10523 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores1, roi1, param47, param48, param49, param50, param51, param52, param53}, {scoresOut1, roiOut1, classesOut1, batchSplitOut1});
10524 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in9, roiOut1, batchSplitOut1, param54, param55, param56, param57, param58, param59, layout}, {featureMap1});
10525 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap1, param60, param61, layout}, {out9});
10526 // Phase 3, inputs and outputs
10527 model->identifyInputsAndOutputs(
10528 {in9},
10529 {scoresOut1, classesOut1, out9});
10530 assert(model->isValid());
10531 }
10532
is_ignored_zero_sized_dynamic_output_shape_nhwc_quant8_2(int i)10533 inline bool is_ignored_zero_sized_dynamic_output_shape_nhwc_quant8_2(int i) {
10534 static std::set<int> ignore = {};
10535 return ignore.find(i) != ignore.end();
10536 }
10537
CreateModel_zero_sized_dynamic_output_shape_nhwc_float16_2(Model * model)10538 void CreateModel_zero_sized_dynamic_output_shape_nhwc_float16_2(Model *model) {
10539 OperandType type0(Type::BOOL, {});
10540 OperandType type14(Type::TENSOR_INT32, {0});
10541 OperandType type16(Type::TENSOR_INT32, {1});
10542 OperandType type22(Type::TENSOR_FLOAT16, {1, 1, 1, 1});
10543 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
10544 OperandType type29(Type::FLOAT16, {});
10545 OperandType type3(Type::INT32, {});
10546 OperandType type72(Type::TENSOR_FLOAT16, {0, 2, 2, 1});
10547 OperandType type74(Type::TENSOR_FLOAT16, {1, 8});
10548 OperandType type75(Type::TENSOR_FLOAT16, {0, 4});
10549 OperandType type76(Type::TENSOR_FLOAT16, {1, 2});
10550 OperandType type85(Type::TENSOR_FLOAT16, {0});
10551 // Phase 1, operands
10552 auto scores1 = model->addOperand(&type76);
10553 auto roi1 = model->addOperand(&type74);
10554 auto param47 = model->addOperand(&type16);
10555 auto param48 = model->addOperand(&type29);
10556 auto param49 = model->addOperand(&type3);
10557 auto param50 = model->addOperand(&type3);
10558 auto param51 = model->addOperand(&type29);
10559 auto param52 = model->addOperand(&type29);
10560 auto param53 = model->addOperand(&type29);
10561 auto scoresOut1 = model->addOperand(&type85);
10562 auto roiOut1 = model->addOperand(&type75);
10563 auto classesOut1 = model->addOperand(&type14);
10564 auto batchSplitOut1 = model->addOperand(&type14);
10565 auto in9 = model->addOperand(&type22);
10566 auto param54 = model->addOperand(&type3);
10567 auto param55 = model->addOperand(&type3);
10568 auto param56 = model->addOperand(&type29);
10569 auto param57 = model->addOperand(&type29);
10570 auto param58 = model->addOperand(&type3);
10571 auto param59 = model->addOperand(&type3);
10572 auto layout = model->addOperand(&type0);
10573 auto featureMap1 = model->addOperand(&type72);
10574 auto param60 = model->addOperand(&type29);
10575 auto param61 = model->addOperand(&type29);
10576 auto out9 = model->addOperand(&type28);
10577 // Phase 2, operations
10578 static _Float16 scores1_init[] = {0.8999999761581421f, 0.10000000149011612f};
10579 model->setOperandValue(scores1, scores1_init, sizeof(_Float16) * 2);
10580 static _Float16 roi1_init[] = {1.0f, 1.0f, 10.0f, 10.0f, 0.0f, 0.0f, 10.0f, 10.0f};
10581 model->setOperandValue(roi1, roi1_init, sizeof(_Float16) * 8);
10582 static int32_t param47_init[] = {0};
10583 model->setOperandValue(param47, param47_init, sizeof(int32_t) * 1);
10584 static _Float16 param48_init[] = {0.30000001192092896f};
10585 model->setOperandValue(param48, param48_init, sizeof(_Float16) * 1);
10586 static int32_t param49_init[] = {-1};
10587 model->setOperandValue(param49, param49_init, sizeof(int32_t) * 1);
10588 static int32_t param50_init[] = {0};
10589 model->setOperandValue(param50, param50_init, sizeof(int32_t) * 1);
10590 static _Float16 param51_init[] = {0.4000000059604645f};
10591 model->setOperandValue(param51, param51_init, sizeof(_Float16) * 1);
10592 static _Float16 param52_init[] = {1.0f};
10593 model->setOperandValue(param52, param52_init, sizeof(_Float16) * 1);
10594 static _Float16 param53_init[] = {0.30000001192092896f};
10595 model->setOperandValue(param53, param53_init, sizeof(_Float16) * 1);
10596 static int32_t param54_init[] = {2};
10597 model->setOperandValue(param54, param54_init, sizeof(int32_t) * 1);
10598 static int32_t param55_init[] = {2};
10599 model->setOperandValue(param55, param55_init, sizeof(int32_t) * 1);
10600 static _Float16 param56_init[] = {2.0f};
10601 model->setOperandValue(param56, param56_init, sizeof(_Float16) * 1);
10602 static _Float16 param57_init[] = {2.0f};
10603 model->setOperandValue(param57, param57_init, sizeof(_Float16) * 1);
10604 static int32_t param58_init[] = {4};
10605 model->setOperandValue(param58, param58_init, sizeof(int32_t) * 1);
10606 static int32_t param59_init[] = {4};
10607 model->setOperandValue(param59, param59_init, sizeof(int32_t) * 1);
10608 static bool8 layout_init[] = {false};
10609 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
10610 static _Float16 param60_init[] = {1.600000023841858f};
10611 model->setOperandValue(param60, param60_init, sizeof(_Float16) * 1);
10612 static _Float16 param61_init[] = {1.600000023841858f};
10613 model->setOperandValue(param61, param61_init, sizeof(_Float16) * 1);
10614 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores1, roi1, param47, param48, param49, param50, param51, param52, param53}, {scoresOut1, roiOut1, classesOut1, batchSplitOut1});
10615 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in9, roiOut1, batchSplitOut1, param54, param55, param56, param57, param58, param59, layout}, {featureMap1});
10616 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap1, param60, param61, layout}, {out9});
10617 // Phase 3, inputs and outputs
10618 model->identifyInputsAndOutputs(
10619 {in9},
10620 {scoresOut1, classesOut1, out9});
10621 assert(model->isValid());
10622 }
10623
is_ignored_zero_sized_dynamic_output_shape_nhwc_float16_2(int i)10624 inline bool is_ignored_zero_sized_dynamic_output_shape_nhwc_float16_2(int i) {
10625 static std::set<int> ignore = {};
10626 return ignore.find(i) != ignore.end();
10627 }
10628
CreateModel_zero_sized_dynamic_output_shape_nchw_2(Model * model)10629 void CreateModel_zero_sized_dynamic_output_shape_nchw_2(Model *model) {
10630 OperandType type0(Type::BOOL, {});
10631 OperandType type11(Type::TENSOR_FLOAT32, {1, 2});
10632 OperandType type12(Type::TENSOR_FLOAT32, {1, 8});
10633 OperandType type13(Type::TENSOR_FLOAT32, {0});
10634 OperandType type14(Type::TENSOR_INT32, {0});
10635 OperandType type15(Type::TENSOR_FLOAT32, {0, 4});
10636 OperandType type16(Type::TENSOR_INT32, {1});
10637 OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 1});
10638 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
10639 OperandType type3(Type::INT32, {});
10640 OperandType type4(Type::FLOAT32, {});
10641 OperandType type78(Type::TENSOR_FLOAT32, {0, 1, 2, 2});
10642 // Phase 1, operands
10643 auto scores1 = model->addOperand(&type11);
10644 auto roi1 = model->addOperand(&type12);
10645 auto param47 = model->addOperand(&type16);
10646 auto param48 = model->addOperand(&type4);
10647 auto param49 = model->addOperand(&type3);
10648 auto param50 = model->addOperand(&type3);
10649 auto param51 = model->addOperand(&type4);
10650 auto param52 = model->addOperand(&type4);
10651 auto param53 = model->addOperand(&type4);
10652 auto scoresOut1 = model->addOperand(&type13);
10653 auto roiOut1 = model->addOperand(&type15);
10654 auto classesOut1 = model->addOperand(&type14);
10655 auto batchSplitOut1 = model->addOperand(&type14);
10656 auto in9 = model->addOperand(&type2);
10657 auto param54 = model->addOperand(&type3);
10658 auto param55 = model->addOperand(&type3);
10659 auto param56 = model->addOperand(&type4);
10660 auto param57 = model->addOperand(&type4);
10661 auto param58 = model->addOperand(&type3);
10662 auto param59 = model->addOperand(&type3);
10663 auto layout = model->addOperand(&type0);
10664 auto featureMap1 = model->addOperand(&type78);
10665 auto param60 = model->addOperand(&type4);
10666 auto param61 = model->addOperand(&type4);
10667 auto out9 = model->addOperand(&type26);
10668 // Phase 2, operations
10669 static float scores1_init[] = {0.9f, 0.1f};
10670 model->setOperandValue(scores1, scores1_init, sizeof(float) * 2);
10671 static float roi1_init[] = {1.0f, 1.0f, 10.0f, 10.0f, 0.0f, 0.0f, 10.0f, 10.0f};
10672 model->setOperandValue(roi1, roi1_init, sizeof(float) * 8);
10673 static int32_t param47_init[] = {0};
10674 model->setOperandValue(param47, param47_init, sizeof(int32_t) * 1);
10675 static float param48_init[] = {0.3f};
10676 model->setOperandValue(param48, param48_init, sizeof(float) * 1);
10677 static int32_t param49_init[] = {-1};
10678 model->setOperandValue(param49, param49_init, sizeof(int32_t) * 1);
10679 static int32_t param50_init[] = {0};
10680 model->setOperandValue(param50, param50_init, sizeof(int32_t) * 1);
10681 static float param51_init[] = {0.4f};
10682 model->setOperandValue(param51, param51_init, sizeof(float) * 1);
10683 static float param52_init[] = {1.0f};
10684 model->setOperandValue(param52, param52_init, sizeof(float) * 1);
10685 static float param53_init[] = {0.3f};
10686 model->setOperandValue(param53, param53_init, sizeof(float) * 1);
10687 static int32_t param54_init[] = {2};
10688 model->setOperandValue(param54, param54_init, sizeof(int32_t) * 1);
10689 static int32_t param55_init[] = {2};
10690 model->setOperandValue(param55, param55_init, sizeof(int32_t) * 1);
10691 static float param56_init[] = {2.0f};
10692 model->setOperandValue(param56, param56_init, sizeof(float) * 1);
10693 static float param57_init[] = {2.0f};
10694 model->setOperandValue(param57, param57_init, sizeof(float) * 1);
10695 static int32_t param58_init[] = {4};
10696 model->setOperandValue(param58, param58_init, sizeof(int32_t) * 1);
10697 static int32_t param59_init[] = {4};
10698 model->setOperandValue(param59, param59_init, sizeof(int32_t) * 1);
10699 static bool8 layout_init[] = {true};
10700 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
10701 static float param60_init[] = {1.6f};
10702 model->setOperandValue(param60, param60_init, sizeof(float) * 1);
10703 static float param61_init[] = {1.6f};
10704 model->setOperandValue(param61, param61_init, sizeof(float) * 1);
10705 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores1, roi1, param47, param48, param49, param50, param51, param52, param53}, {scoresOut1, roiOut1, classesOut1, batchSplitOut1});
10706 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in9, roiOut1, batchSplitOut1, param54, param55, param56, param57, param58, param59, layout}, {featureMap1});
10707 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap1, param60, param61, layout}, {out9});
10708 // Phase 3, inputs and outputs
10709 model->identifyInputsAndOutputs(
10710 {in9},
10711 {scoresOut1, classesOut1, out9});
10712 assert(model->isValid());
10713 }
10714
is_ignored_zero_sized_dynamic_output_shape_nchw_2(int i)10715 inline bool is_ignored_zero_sized_dynamic_output_shape_nchw_2(int i) {
10716 static std::set<int> ignore = {};
10717 return ignore.find(i) != ignore.end();
10718 }
10719
CreateModel_zero_sized_dynamic_output_shape_nchw_relaxed_2(Model * model)10720 void CreateModel_zero_sized_dynamic_output_shape_nchw_relaxed_2(Model *model) {
10721 OperandType type0(Type::BOOL, {});
10722 OperandType type11(Type::TENSOR_FLOAT32, {1, 2});
10723 OperandType type12(Type::TENSOR_FLOAT32, {1, 8});
10724 OperandType type13(Type::TENSOR_FLOAT32, {0});
10725 OperandType type14(Type::TENSOR_INT32, {0});
10726 OperandType type15(Type::TENSOR_FLOAT32, {0, 4});
10727 OperandType type16(Type::TENSOR_INT32, {1});
10728 OperandType type2(Type::TENSOR_FLOAT32, {1, 1, 1, 1});
10729 OperandType type26(Type::TENSOR_FLOAT32, {0, 0, 0, 0});
10730 OperandType type3(Type::INT32, {});
10731 OperandType type4(Type::FLOAT32, {});
10732 OperandType type78(Type::TENSOR_FLOAT32, {0, 1, 2, 2});
10733 // Phase 1, operands
10734 auto scores1 = model->addOperand(&type11);
10735 auto roi1 = model->addOperand(&type12);
10736 auto param47 = model->addOperand(&type16);
10737 auto param48 = model->addOperand(&type4);
10738 auto param49 = model->addOperand(&type3);
10739 auto param50 = model->addOperand(&type3);
10740 auto param51 = model->addOperand(&type4);
10741 auto param52 = model->addOperand(&type4);
10742 auto param53 = model->addOperand(&type4);
10743 auto scoresOut1 = model->addOperand(&type13);
10744 auto roiOut1 = model->addOperand(&type15);
10745 auto classesOut1 = model->addOperand(&type14);
10746 auto batchSplitOut1 = model->addOperand(&type14);
10747 auto in9 = model->addOperand(&type2);
10748 auto param54 = model->addOperand(&type3);
10749 auto param55 = model->addOperand(&type3);
10750 auto param56 = model->addOperand(&type4);
10751 auto param57 = model->addOperand(&type4);
10752 auto param58 = model->addOperand(&type3);
10753 auto param59 = model->addOperand(&type3);
10754 auto layout = model->addOperand(&type0);
10755 auto featureMap1 = model->addOperand(&type78);
10756 auto param60 = model->addOperand(&type4);
10757 auto param61 = model->addOperand(&type4);
10758 auto out9 = model->addOperand(&type26);
10759 // Phase 2, operations
10760 static float scores1_init[] = {0.9f, 0.1f};
10761 model->setOperandValue(scores1, scores1_init, sizeof(float) * 2);
10762 static float roi1_init[] = {1.0f, 1.0f, 10.0f, 10.0f, 0.0f, 0.0f, 10.0f, 10.0f};
10763 model->setOperandValue(roi1, roi1_init, sizeof(float) * 8);
10764 static int32_t param47_init[] = {0};
10765 model->setOperandValue(param47, param47_init, sizeof(int32_t) * 1);
10766 static float param48_init[] = {0.3f};
10767 model->setOperandValue(param48, param48_init, sizeof(float) * 1);
10768 static int32_t param49_init[] = {-1};
10769 model->setOperandValue(param49, param49_init, sizeof(int32_t) * 1);
10770 static int32_t param50_init[] = {0};
10771 model->setOperandValue(param50, param50_init, sizeof(int32_t) * 1);
10772 static float param51_init[] = {0.4f};
10773 model->setOperandValue(param51, param51_init, sizeof(float) * 1);
10774 static float param52_init[] = {1.0f};
10775 model->setOperandValue(param52, param52_init, sizeof(float) * 1);
10776 static float param53_init[] = {0.3f};
10777 model->setOperandValue(param53, param53_init, sizeof(float) * 1);
10778 static int32_t param54_init[] = {2};
10779 model->setOperandValue(param54, param54_init, sizeof(int32_t) * 1);
10780 static int32_t param55_init[] = {2};
10781 model->setOperandValue(param55, param55_init, sizeof(int32_t) * 1);
10782 static float param56_init[] = {2.0f};
10783 model->setOperandValue(param56, param56_init, sizeof(float) * 1);
10784 static float param57_init[] = {2.0f};
10785 model->setOperandValue(param57, param57_init, sizeof(float) * 1);
10786 static int32_t param58_init[] = {4};
10787 model->setOperandValue(param58, param58_init, sizeof(int32_t) * 1);
10788 static int32_t param59_init[] = {4};
10789 model->setOperandValue(param59, param59_init, sizeof(int32_t) * 1);
10790 static bool8 layout_init[] = {true};
10791 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
10792 static float param60_init[] = {1.6f};
10793 model->setOperandValue(param60, param60_init, sizeof(float) * 1);
10794 static float param61_init[] = {1.6f};
10795 model->setOperandValue(param61, param61_init, sizeof(float) * 1);
10796 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores1, roi1, param47, param48, param49, param50, param51, param52, param53}, {scoresOut1, roiOut1, classesOut1, batchSplitOut1});
10797 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in9, roiOut1, batchSplitOut1, param54, param55, param56, param57, param58, param59, layout}, {featureMap1});
10798 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap1, param60, param61, layout}, {out9});
10799 // Phase 3, inputs and outputs
10800 model->identifyInputsAndOutputs(
10801 {in9},
10802 {scoresOut1, classesOut1, out9});
10803 // Phase 4: set relaxed execution
10804 model->relaxComputationFloat32toFloat16(true);
10805 assert(model->isValid());
10806 }
10807
is_ignored_zero_sized_dynamic_output_shape_nchw_relaxed_2(int i)10808 inline bool is_ignored_zero_sized_dynamic_output_shape_nchw_relaxed_2(int i) {
10809 static std::set<int> ignore = {};
10810 return ignore.find(i) != ignore.end();
10811 }
10812
CreateModel_zero_sized_dynamic_output_shape_nchw_quant8_2(Model * model)10813 void CreateModel_zero_sized_dynamic_output_shape_nchw_quant8_2(Model *model) {
10814 OperandType type0(Type::BOOL, {});
10815 OperandType type14(Type::TENSOR_INT32, {0});
10816 OperandType type16(Type::TENSOR_INT32, {1});
10817 OperandType type3(Type::INT32, {});
10818 OperandType type4(Type::FLOAT32, {});
10819 OperandType type66(Type::TENSOR_QUANT8_ASYMM, {1, 1, 1, 1}, 0.1f, 128);
10820 OperandType type68(Type::TENSOR_QUANT16_ASYMM, {1, 8}, 0.125f, 0);
10821 OperandType type69(Type::TENSOR_QUANT16_ASYMM, {0, 4}, 0.125f, 0);
10822 OperandType type70(Type::TENSOR_QUANT8_ASYMM, {1, 2}, 0.1f, 128);
10823 OperandType type71(Type::TENSOR_QUANT8_ASYMM, {0}, 0.1f, 128);
10824 OperandType type80(Type::TENSOR_QUANT8_ASYMM, {0, 1, 2, 2}, 0.1f, 128);
10825 OperandType type84(Type::TENSOR_QUANT8_ASYMM, {0, 0, 0, 0}, 0.1f, 128);
10826 // Phase 1, operands
10827 auto scores1 = model->addOperand(&type70);
10828 auto roi1 = model->addOperand(&type68);
10829 auto param47 = model->addOperand(&type16);
10830 auto param48 = model->addOperand(&type4);
10831 auto param49 = model->addOperand(&type3);
10832 auto param50 = model->addOperand(&type3);
10833 auto param51 = model->addOperand(&type4);
10834 auto param52 = model->addOperand(&type4);
10835 auto param53 = model->addOperand(&type4);
10836 auto scoresOut1 = model->addOperand(&type71);
10837 auto roiOut1 = model->addOperand(&type69);
10838 auto classesOut1 = model->addOperand(&type14);
10839 auto batchSplitOut1 = model->addOperand(&type14);
10840 auto in9 = model->addOperand(&type66);
10841 auto param54 = model->addOperand(&type3);
10842 auto param55 = model->addOperand(&type3);
10843 auto param56 = model->addOperand(&type4);
10844 auto param57 = model->addOperand(&type4);
10845 auto param58 = model->addOperand(&type3);
10846 auto param59 = model->addOperand(&type3);
10847 auto layout = model->addOperand(&type0);
10848 auto featureMap1 = model->addOperand(&type80);
10849 auto param60 = model->addOperand(&type4);
10850 auto param61 = model->addOperand(&type4);
10851 auto out9 = model->addOperand(&type84);
10852 // Phase 2, operations
10853 static uint8_t scores1_init[] = {137, 129};
10854 model->setOperandValue(scores1, scores1_init, sizeof(uint8_t) * 2);
10855 static uint16_t roi1_init[] = {8, 8, 80, 80, 0, 0, 80, 80};
10856 model->setOperandValue(roi1, roi1_init, sizeof(uint16_t) * 8);
10857 static int32_t param47_init[] = {0};
10858 model->setOperandValue(param47, param47_init, sizeof(int32_t) * 1);
10859 static float param48_init[] = {0.3f};
10860 model->setOperandValue(param48, param48_init, sizeof(float) * 1);
10861 static int32_t param49_init[] = {-1};
10862 model->setOperandValue(param49, param49_init, sizeof(int32_t) * 1);
10863 static int32_t param50_init[] = {0};
10864 model->setOperandValue(param50, param50_init, sizeof(int32_t) * 1);
10865 static float param51_init[] = {0.4f};
10866 model->setOperandValue(param51, param51_init, sizeof(float) * 1);
10867 static float param52_init[] = {1.0f};
10868 model->setOperandValue(param52, param52_init, sizeof(float) * 1);
10869 static float param53_init[] = {0.3f};
10870 model->setOperandValue(param53, param53_init, sizeof(float) * 1);
10871 static int32_t param54_init[] = {2};
10872 model->setOperandValue(param54, param54_init, sizeof(int32_t) * 1);
10873 static int32_t param55_init[] = {2};
10874 model->setOperandValue(param55, param55_init, sizeof(int32_t) * 1);
10875 static float param56_init[] = {2.0f};
10876 model->setOperandValue(param56, param56_init, sizeof(float) * 1);
10877 static float param57_init[] = {2.0f};
10878 model->setOperandValue(param57, param57_init, sizeof(float) * 1);
10879 static int32_t param58_init[] = {4};
10880 model->setOperandValue(param58, param58_init, sizeof(int32_t) * 1);
10881 static int32_t param59_init[] = {4};
10882 model->setOperandValue(param59, param59_init, sizeof(int32_t) * 1);
10883 static bool8 layout_init[] = {true};
10884 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
10885 static float param60_init[] = {1.6f};
10886 model->setOperandValue(param60, param60_init, sizeof(float) * 1);
10887 static float param61_init[] = {1.6f};
10888 model->setOperandValue(param61, param61_init, sizeof(float) * 1);
10889 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores1, roi1, param47, param48, param49, param50, param51, param52, param53}, {scoresOut1, roiOut1, classesOut1, batchSplitOut1});
10890 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in9, roiOut1, batchSplitOut1, param54, param55, param56, param57, param58, param59, layout}, {featureMap1});
10891 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap1, param60, param61, layout}, {out9});
10892 // Phase 3, inputs and outputs
10893 model->identifyInputsAndOutputs(
10894 {in9},
10895 {scoresOut1, classesOut1, out9});
10896 assert(model->isValid());
10897 }
10898
is_ignored_zero_sized_dynamic_output_shape_nchw_quant8_2(int i)10899 inline bool is_ignored_zero_sized_dynamic_output_shape_nchw_quant8_2(int i) {
10900 static std::set<int> ignore = {};
10901 return ignore.find(i) != ignore.end();
10902 }
10903
CreateModel_zero_sized_dynamic_output_shape_nchw_float16_2(Model * model)10904 void CreateModel_zero_sized_dynamic_output_shape_nchw_float16_2(Model *model) {
10905 OperandType type0(Type::BOOL, {});
10906 OperandType type14(Type::TENSOR_INT32, {0});
10907 OperandType type16(Type::TENSOR_INT32, {1});
10908 OperandType type22(Type::TENSOR_FLOAT16, {1, 1, 1, 1});
10909 OperandType type28(Type::TENSOR_FLOAT16, {0, 0, 0, 0});
10910 OperandType type29(Type::FLOAT16, {});
10911 OperandType type3(Type::INT32, {});
10912 OperandType type74(Type::TENSOR_FLOAT16, {1, 8});
10913 OperandType type75(Type::TENSOR_FLOAT16, {0, 4});
10914 OperandType type76(Type::TENSOR_FLOAT16, {1, 2});
10915 OperandType type82(Type::TENSOR_FLOAT16, {0, 1, 2, 2});
10916 OperandType type85(Type::TENSOR_FLOAT16, {0});
10917 // Phase 1, operands
10918 auto scores1 = model->addOperand(&type76);
10919 auto roi1 = model->addOperand(&type74);
10920 auto param47 = model->addOperand(&type16);
10921 auto param48 = model->addOperand(&type29);
10922 auto param49 = model->addOperand(&type3);
10923 auto param50 = model->addOperand(&type3);
10924 auto param51 = model->addOperand(&type29);
10925 auto param52 = model->addOperand(&type29);
10926 auto param53 = model->addOperand(&type29);
10927 auto scoresOut1 = model->addOperand(&type85);
10928 auto roiOut1 = model->addOperand(&type75);
10929 auto classesOut1 = model->addOperand(&type14);
10930 auto batchSplitOut1 = model->addOperand(&type14);
10931 auto in9 = model->addOperand(&type22);
10932 auto param54 = model->addOperand(&type3);
10933 auto param55 = model->addOperand(&type3);
10934 auto param56 = model->addOperand(&type29);
10935 auto param57 = model->addOperand(&type29);
10936 auto param58 = model->addOperand(&type3);
10937 auto param59 = model->addOperand(&type3);
10938 auto layout = model->addOperand(&type0);
10939 auto featureMap1 = model->addOperand(&type82);
10940 auto param60 = model->addOperand(&type29);
10941 auto param61 = model->addOperand(&type29);
10942 auto out9 = model->addOperand(&type28);
10943 // Phase 2, operations
10944 static _Float16 scores1_init[] = {0.8999999761581421f, 0.10000000149011612f};
10945 model->setOperandValue(scores1, scores1_init, sizeof(_Float16) * 2);
10946 static _Float16 roi1_init[] = {1.0f, 1.0f, 10.0f, 10.0f, 0.0f, 0.0f, 10.0f, 10.0f};
10947 model->setOperandValue(roi1, roi1_init, sizeof(_Float16) * 8);
10948 static int32_t param47_init[] = {0};
10949 model->setOperandValue(param47, param47_init, sizeof(int32_t) * 1);
10950 static _Float16 param48_init[] = {0.30000001192092896f};
10951 model->setOperandValue(param48, param48_init, sizeof(_Float16) * 1);
10952 static int32_t param49_init[] = {-1};
10953 model->setOperandValue(param49, param49_init, sizeof(int32_t) * 1);
10954 static int32_t param50_init[] = {0};
10955 model->setOperandValue(param50, param50_init, sizeof(int32_t) * 1);
10956 static _Float16 param51_init[] = {0.4000000059604645f};
10957 model->setOperandValue(param51, param51_init, sizeof(_Float16) * 1);
10958 static _Float16 param52_init[] = {1.0f};
10959 model->setOperandValue(param52, param52_init, sizeof(_Float16) * 1);
10960 static _Float16 param53_init[] = {0.30000001192092896f};
10961 model->setOperandValue(param53, param53_init, sizeof(_Float16) * 1);
10962 static int32_t param54_init[] = {2};
10963 model->setOperandValue(param54, param54_init, sizeof(int32_t) * 1);
10964 static int32_t param55_init[] = {2};
10965 model->setOperandValue(param55, param55_init, sizeof(int32_t) * 1);
10966 static _Float16 param56_init[] = {2.0f};
10967 model->setOperandValue(param56, param56_init, sizeof(_Float16) * 1);
10968 static _Float16 param57_init[] = {2.0f};
10969 model->setOperandValue(param57, param57_init, sizeof(_Float16) * 1);
10970 static int32_t param58_init[] = {4};
10971 model->setOperandValue(param58, param58_init, sizeof(int32_t) * 1);
10972 static int32_t param59_init[] = {4};
10973 model->setOperandValue(param59, param59_init, sizeof(int32_t) * 1);
10974 static bool8 layout_init[] = {true};
10975 model->setOperandValue(layout, layout_init, sizeof(bool8) * 1);
10976 static _Float16 param60_init[] = {1.600000023841858f};
10977 model->setOperandValue(param60, param60_init, sizeof(_Float16) * 1);
10978 static _Float16 param61_init[] = {1.600000023841858f};
10979 model->setOperandValue(param61, param61_init, sizeof(_Float16) * 1);
10980 model->addOperation(ANEURALNETWORKS_BOX_WITH_NMS_LIMIT, {scores1, roi1, param47, param48, param49, param50, param51, param52, param53}, {scoresOut1, roiOut1, classesOut1, batchSplitOut1});
10981 model->addOperation(ANEURALNETWORKS_ROI_ALIGN, {in9, roiOut1, batchSplitOut1, param54, param55, param56, param57, param58, param59, layout}, {featureMap1});
10982 model->addOperation(ANEURALNETWORKS_RESIZE_NEAREST_NEIGHBOR, {featureMap1, param60, param61, layout}, {out9});
10983 // Phase 3, inputs and outputs
10984 model->identifyInputsAndOutputs(
10985 {in9},
10986 {scoresOut1, classesOut1, out9});
10987 assert(model->isValid());
10988 }
10989
is_ignored_zero_sized_dynamic_output_shape_nchw_float16_2(int i)10990 inline bool is_ignored_zero_sized_dynamic_output_shape_nchw_float16_2(int i) {
10991 static std::set<int> ignore = {};
10992 return ignore.find(i) != ignore.end();
10993 }
10994
10995