summaryrefslogtreecommitdiff
path: root/runtimes/tests/neural_networks_test/generated/models
diff options
context:
space:
mode:
Diffstat (limited to 'runtimes/tests/neural_networks_test/generated/models')
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/batch_to_space.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/batch_to_space_float_1.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/batch_to_space_quant8_1.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/cast_ex_float32_to_int32.model.cpp20
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/cast_ex_int32_to_float32.model.cpp20
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/concat_float_4D_axis3_1_nnfw.model.cpp26
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_large_2_weights_as_inputs.model.cpp23
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/div.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/div_.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/div_broadcast_float.model.cpp25
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/embedding_lookup_2d_nnfw.model.cpp21
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/embedding_lookup_4d_nnfw.model.cpp22
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/floor_.model.cpp19
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/fully_connected_float_1_nnfw.model.cpp32
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/fully_connected_float_3.model.cpp32
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/fully_connected_float_4d_simple.model.cpp32
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/gather_1D_float.model.cpp26
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/gather_1D_int32.model.cpp25
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/gather_1D_quant8.model.cpp26
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/gather_2D_float.model.cpp26
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/gather_2D_int32.model.cpp26
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/gather_2D_quant8.model.cpp26
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/mean.model.cpp28
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/mean_axis01_1_nnfw.model.cpp28
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/mean_axis01_2_nnfw.model.cpp28
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/mean_float_1.model.cpp28
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/mean_float_2.model.cpp28
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/mean_quant8_1.model.cpp28
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/mean_quant8_2.model.cpp28
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/mul_broadcast_3D_1D_1_nnfw.model.cpp25
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/mul_broadcast_3D_1D_2_nnfw.model.cpp25
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/pad.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/pad_float_1.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/space_to_batch.model.cpp28
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/space_to_batch_float_1.model.cpp28
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/space_to_batch_float_2.model.cpp28
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/space_to_batch_float_3.model.cpp28
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/space_to_batch_quant8_1.model.cpp28
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/space_to_batch_quant8_2.model.cpp28
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/space_to_batch_quant8_3.model.cpp28
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/squeeze.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/squeeze_2D_float_1_nnfw.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/squeeze_float_1.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/squeeze_quant8_1.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_1.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_10.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_2.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_3.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_4.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_5.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_6.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_7.model.cpp39
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_8.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_9.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_float_1.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_float_10.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_float_11.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_float_2.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_float_3.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_float_4.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_float_5.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_float_6.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_float_7.model.cpp39
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_float_8.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_float_9.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_qaunt8_10.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_qaunt8_11.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_1.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_2.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_3.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_4.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_5.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_6.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_7.model.cpp39
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_8.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_9.model.cpp40
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/sub.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/sub_broadcast_float.model.cpp25
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/tanh_.model.cpp19
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/tensorflowmax_ex_2D_float.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/tensorflowmax_ex_2D_int32.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/topk_v2_1D_float.model.cpp26
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/topk_v2_1D_int32.model.cpp25
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/topk_v2_1D_quant8.model.cpp26
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/topk_v2_2D_float.model.cpp26
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/topk_v2_2D_int32.model.cpp25
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/topk_v2_2D_quant8.model.cpp26
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/transpose.model.cpp23
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/transpose_float_1.model.cpp24
-rw-r--r--runtimes/tests/neural_networks_test/generated/models/transpose_quant8_1.model.cpp24
91 files changed, 2779 insertions, 12 deletions
diff --git a/runtimes/tests/neural_networks_test/generated/models/batch_to_space.model.cpp b/runtimes/tests/neural_networks_test/generated/models/batch_to_space.model.cpp
new file mode 100644
index 000000000..6c6d5900c
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/batch_to_space.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: batch_to_space.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::TENSOR_FLOAT32, {1, 2, 2, 2});
+ OperandType type0(Type::TENSOR_FLOAT32, {4, 1, 1, 2});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto block_size = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t block_size_init[] = {2, 2};
+ model->setOperandValue(block_size, block_size_init, sizeof(int32_t) * 2);
+ model->addOperation(ANEURALNETWORKS_BATCH_TO_SPACE_ND, {input, block_size}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/batch_to_space_float_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/batch_to_space_float_1.model.cpp
new file mode 100644
index 000000000..e074783e5
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/batch_to_space_float_1.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: batch_to_space_float_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::TENSOR_FLOAT32, {1, 4, 4, 1});
+ OperandType type0(Type::TENSOR_FLOAT32, {4, 2, 2, 1});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto block_size = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t block_size_init[] = {2, 2};
+ model->setOperandValue(block_size, block_size_init, sizeof(int32_t) * 2);
+ model->addOperation(ANEURALNETWORKS_BATCH_TO_SPACE_ND, {input, block_size}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/batch_to_space_quant8_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/batch_to_space_quant8_1.model.cpp
new file mode 100644
index 000000000..892274029
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/batch_to_space_quant8_1.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: batch_to_space_quant8_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::TENSOR_INT32, {2});
+ OperandType type2(Type::TENSOR_QUANT8_ASYMM, {1, 4, 4, 1}, 1.0, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {4, 2, 2, 1}, 1.0, 0);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto block_size = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t block_size_init[] = {2, 2};
+ model->setOperandValue(block_size, block_size_init, sizeof(int32_t) * 2);
+ model->addOperation(ANEURALNETWORKS_BATCH_TO_SPACE_ND, {input, block_size}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/cast_ex_float32_to_int32.model.cpp b/runtimes/tests/neural_networks_test/generated/models/cast_ex_float32_to_int32.model.cpp
new file mode 100644
index 000000000..d28671b22
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/cast_ex_float32_to_int32.model.cpp
@@ -0,0 +1,20 @@
+// Generated file (from: cast_ex_float32_to_int32.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 3});
+ OperandType type1(Type::TENSOR_INT32, {2, 3});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ // Phase 2, operations
+ model->addOperationEx(ANEURALNETWORKS_CAST_EX, {op1}, {op2});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op2});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/cast_ex_int32_to_float32.model.cpp b/runtimes/tests/neural_networks_test/generated/models/cast_ex_int32_to_float32.model.cpp
new file mode 100644
index 000000000..af435bff8
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/cast_ex_int32_to_float32.model.cpp
@@ -0,0 +1,20 @@
+// Generated file (from: cast_ex_int32_to_float32.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::TENSOR_FLOAT32, {2, 3});
+ OperandType type0(Type::TENSOR_INT32, {2, 3});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ // Phase 2, operations
+ model->addOperationEx(ANEURALNETWORKS_CAST_EX, {op1}, {op2});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op2});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/concat_float_4D_axis3_1_nnfw.model.cpp b/runtimes/tests/neural_networks_test/generated/models/concat_float_4D_axis3_1_nnfw.model.cpp
new file mode 100644
index 000000000..82ef41dc9
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/concat_float_4D_axis3_1_nnfw.model.cpp
@@ -0,0 +1,26 @@
+// Generated file (from: concat_float_4D_axis3_1_nnfw.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 3, 2});
+ OperandType type2(Type::TENSOR_FLOAT32, {1, 2, 3, 6});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ auto op3 = model->addOperand(&type0);
+ auto axis0 = model->addOperand(&type1);
+ auto result = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t axis0_init[] = {3};
+ model->setOperandValue(axis0, axis0_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_CONCATENATION, {op1, op2, op3, axis0}, {result});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2, op3},
+ {result});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_large_2_weights_as_inputs.model.cpp b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_large_2_weights_as_inputs.model.cpp
index 19de70509..38e56eaad 100644
--- a/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_large_2_weights_as_inputs.model.cpp
+++ b/runtimes/tests/neural_networks_test/generated/models/depthwise_conv2d_float_large_2_weights_as_inputs.model.cpp
@@ -1,19 +1,18 @@
// Generated file (from: depthwise_conv2d_float_large_2_weights_as_inputs.mod.py). Do not edit
void CreateModel(Model *model) {
- OperandType type3(Type::INT32, {});
- OperandType type4(Type::TENSOR_FLOAT32, {1, 1, 1, 4});
- OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 3});
- OperandType type1(Type::TENSOR_FLOAT32, {1, 2, 2, 4});
- OperandType type2(Type::TENSOR_FLOAT32, {4});
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {1, 1, 1, 4});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 4});
+ OperandType type1(Type::TENSOR_FLOAT32, {4});
// Phase 1, operands
auto op1 = model->addOperand(&type0);
- auto op2 = model->addOperand(&type1);
- auto op3 = model->addOperand(&type2);
- auto pad0 = model->addOperand(&type3);
- auto act = model->addOperand(&type3);
- auto stride = model->addOperand(&type3);
- auto channelMultiplier = model->addOperand(&type3);
- auto op4 = model->addOperand(&type4);
+ auto op2 = model->addOperand(&type0);
+ auto op3 = model->addOperand(&type1);
+ auto pad0 = model->addOperand(&type2);
+ auto act = model->addOperand(&type2);
+ auto stride = model->addOperand(&type2);
+ auto channelMultiplier = model->addOperand(&type2);
+ auto op4 = model->addOperand(&type3);
// Phase 2, operations
static int32_t pad0_init[] = {0};
model->setOperandValue(pad0, pad0_init, sizeof(int32_t) * 1);
diff --git a/runtimes/tests/neural_networks_test/generated/models/div.model.cpp b/runtimes/tests/neural_networks_test/generated/models/div.model.cpp
new file mode 100644
index 000000000..31213de0f
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/div.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: div.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ auto act = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type0);
+ // Phase 2, operations
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_DIV, {op1, op2, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/div_.model.cpp b/runtimes/tests/neural_networks_test/generated/models/div_.model.cpp
new file mode 100644
index 000000000..137a8b90b
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/div_.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: div_.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ auto act = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type0);
+ // Phase 2, operations
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_DIV, {op1, op2, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/div_broadcast_float.model.cpp b/runtimes/tests/neural_networks_test/generated/models/div_broadcast_float.model.cpp
new file mode 100644
index 000000000..e6f442d09
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/div_broadcast_float.model.cpp
@@ -0,0 +1,25 @@
+// Generated file (from: div_broadcast_float.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2});
+ OperandType type1(Type::TENSOR_FLOAT32, {2, 2});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto act = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type1);
+ // Phase 2, operations
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_DIV, {op1, op2, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/embedding_lookup_2d_nnfw.model.cpp b/runtimes/tests/neural_networks_test/generated/models/embedding_lookup_2d_nnfw.model.cpp
new file mode 100644
index 000000000..0234e403f
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/embedding_lookup_2d_nnfw.model.cpp
@@ -0,0 +1,21 @@
+// Generated file (from: embedding_lookup_2d_nnfw.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::TENSOR_FLOAT32, {3, 2});
+ OperandType type0(Type::TENSOR_INT32, {3});
+ // Phase 1, operands
+ auto index = model->addOperand(&type0);
+ auto value = model->addOperand(&type1);
+ auto output = model->addOperand(&type1);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_EMBEDDING_LOOKUP, {index, value}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {index, value},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/embedding_lookup_4d_nnfw.model.cpp b/runtimes/tests/neural_networks_test/generated/models/embedding_lookup_4d_nnfw.model.cpp
new file mode 100644
index 000000000..2acd291ae
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/embedding_lookup_4d_nnfw.model.cpp
@@ -0,0 +1,22 @@
+// Generated file (from: embedding_lookup_4d_nnfw.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::TENSOR_INT32, {3, 2, 4, 2});
+ OperandType type0(Type::TENSOR_INT32, {3});
+ OperandType type1(Type::TENSOR_INT32, {5, 2, 4, 2});
+ // Phase 1, operands
+ auto index = model->addOperand(&type0);
+ auto value = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_EMBEDDING_LOOKUP, {index, value}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {index, value},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/floor_.model.cpp b/runtimes/tests/neural_networks_test/generated/models/floor_.model.cpp
new file mode 100644
index 000000000..b54e9fc8f
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/floor_.model.cpp
@@ -0,0 +1,19 @@
+// Generated file (from: floor_.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 2});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_FLOOR, {op1}, {op2});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op2});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/fully_connected_float_1_nnfw.model.cpp b/runtimes/tests/neural_networks_test/generated/models/fully_connected_float_1_nnfw.model.cpp
new file mode 100644
index 000000000..04c4efece
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/fully_connected_float_1_nnfw.model.cpp
@@ -0,0 +1,32 @@
+// Generated file (from: fully_connected_float_1_nnfw.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type4(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {1, 1});
+ OperandType type1(Type::TENSOR_FLOAT32, {1, 24});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 3, 4, 2});
+ OperandType type2(Type::TENSOR_FLOAT32, {1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto b0 = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type3);
+ auto act_relu = model->addOperand(&type4);
+ // Phase 2, operations
+ static float op2_init[] = {-0.25449711f, 0.0f, -2.1247749f, 0.0f, -1.143796f, 0.0f, -1.0299346f, 0.0f, -2.2373879f, 0.0f, -0.083096743f, 0.0f, -1.3230739f, 0.0f, 0.15294921f, 0.0f, -0.53045893f, 0.0f, -0.46075189f, 0.0f, -1.4482396f, 0.0f, -1.609534f, 0.0f};
+ model->setOperandValue(op2, op2_init, sizeof(float) * 24);
+ static float b0_init[] = {0.70098364f};
+ model->setOperandValue(b0, b0_init, sizeof(float) * 1);
+ static int32_t act_relu_init[] = {0};
+ model->setOperandValue(act_relu, act_relu_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_FULLY_CONNECTED, {op1, op2, b0, act_relu}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/fully_connected_float_3.model.cpp b/runtimes/tests/neural_networks_test/generated/models/fully_connected_float_3.model.cpp
new file mode 100644
index 000000000..15275251f
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/fully_connected_float_3.model.cpp
@@ -0,0 +1,32 @@
+// Generated file (from: fully_connected_float_3.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type4(Type::INT32, {});
+ OperandType type1(Type::TENSOR_FLOAT32, {1, 2});
+ OperandType type2(Type::TENSOR_FLOAT32, {1});
+ OperandType type3(Type::TENSOR_FLOAT32, {2, 1});
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 2});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto b0 = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type3);
+ auto act = model->addOperand(&type4);
+ // Phase 2, operations
+ static float op2_init[] = {2.0f, 4.0f};
+ model->setOperandValue(op2, op2_init, sizeof(float) * 2);
+ static float b0_init[] = {1.0f};
+ model->setOperandValue(b0, b0_init, sizeof(float) * 1);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_FULLY_CONNECTED, {op1, op2, b0, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/fully_connected_float_4d_simple.model.cpp b/runtimes/tests/neural_networks_test/generated/models/fully_connected_float_4d_simple.model.cpp
new file mode 100644
index 000000000..aa645d966
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/fully_connected_float_4d_simple.model.cpp
@@ -0,0 +1,32 @@
+// Generated file (from: fully_connected_float_4d_simple.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type4(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {2, 3});
+ OperandType type1(Type::TENSOR_FLOAT32, {3, 10});
+ OperandType type2(Type::TENSOR_FLOAT32, {3});
+ OperandType type0(Type::TENSOR_FLOAT32, {4, 1, 5, 1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto b0 = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type3);
+ auto act = model->addOperand(&type4);
+ // Phase 2, operations
+ static float op2_init[] = {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f};
+ model->setOperandValue(op2, op2_init, sizeof(float) * 30);
+ static float b0_init[] = {1.0f, 2.0f, 3.0f};
+ model->setOperandValue(b0, b0_init, sizeof(float) * 3);
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_FULLY_CONNECTED, {op1, op2, b0, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/gather_1D_float.model.cpp b/runtimes/tests/neural_networks_test/generated/models/gather_1D_float.model.cpp
new file mode 100644
index 000000000..8ad160990
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/gather_1D_float.model.cpp
@@ -0,0 +1,26 @@
+// Generated file (from: gather_1D_float.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {2});
+ OperandType type0(Type::TENSOR_FLOAT32, {4});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto axis = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t axis_init[] = {0};
+ model->setOperandValue(axis, axis_init, sizeof(int32_t) * 1);
+ model->addOperationEx(ANEURALNETWORKS_GATHER_EX, {op1, op2, axis}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/gather_1D_int32.model.cpp b/runtimes/tests/neural_networks_test/generated/models/gather_1D_int32.model.cpp
new file mode 100644
index 000000000..ae7fa6685
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/gather_1D_int32.model.cpp
@@ -0,0 +1,25 @@
+// Generated file (from: gather_1D_int32.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ OperandType type0(Type::TENSOR_INT32, {4});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto axis = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type1);
+ // Phase 2, operations
+ static int32_t axis_init[] = {0};
+ model->setOperandValue(axis, axis_init, sizeof(int32_t) * 1);
+ model->addOperationEx(ANEURALNETWORKS_GATHER_EX, {op1, op2, axis}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/gather_1D_quant8.model.cpp b/runtimes/tests/neural_networks_test/generated/models/gather_1D_quant8.model.cpp
new file mode 100644
index 000000000..4984c167b
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/gather_1D_quant8.model.cpp
@@ -0,0 +1,26 @@
+// Generated file (from: gather_1D_uint8.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {2}, 0.5f, 1);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {4}, 0.5f, 1);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto axis = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t axis_init[] = {0};
+ model->setOperandValue(axis, axis_init, sizeof(int32_t) * 1);
+ model->addOperationEx(ANEURALNETWORKS_GATHER_EX, {op1, op2, axis}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/gather_2D_float.model.cpp b/runtimes/tests/neural_networks_test/generated/models/gather_2D_float.model.cpp
new file mode 100644
index 000000000..3d80c4496
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/gather_2D_float.model.cpp
@@ -0,0 +1,26 @@
+// Generated file (from: gather_2D_float.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {2,4});
+ OperandType type0(Type::TENSOR_FLOAT32, {3,4});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto axis = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t axis_init[] = {0};
+ model->setOperandValue(axis, axis_init, sizeof(int32_t) * 1);
+ model->addOperationEx(ANEURALNETWORKS_GATHER_EX, {op1, op2, axis}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/gather_2D_int32.model.cpp b/runtimes/tests/neural_networks_test/generated/models/gather_2D_int32.model.cpp
new file mode 100644
index 000000000..50411d5a7
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/gather_2D_int32.model.cpp
@@ -0,0 +1,26 @@
+// Generated file (from: gather_2D_int32.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_INT32, {2,4});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ OperandType type0(Type::TENSOR_INT32, {3,4});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto axis = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t axis_init[] = {0};
+ model->setOperandValue(axis, axis_init, sizeof(int32_t) * 1);
+ model->addOperationEx(ANEURALNETWORKS_GATHER_EX, {op1, op2, axis}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/gather_2D_quant8.model.cpp b/runtimes/tests/neural_networks_test/generated/models/gather_2D_quant8.model.cpp
new file mode 100644
index 000000000..d7aa0aba7
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/gather_2D_quant8.model.cpp
@@ -0,0 +1,26 @@
+// Generated file (from: gather_2D_uint8.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {2,4}, 0.5f, 1);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {3,4}, 0.5f, 1);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto axis = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t axis_init[] = {0};
+ model->setOperandValue(axis, axis_init, sizeof(int32_t) * 1);
+ model->addOperationEx(ANEURALNETWORKS_GATHER_EX, {op1, op2, axis}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/mean.model.cpp b/runtimes/tests/neural_networks_test/generated/models/mean.model.cpp
new file mode 100644
index 000000000..7d26f9fa8
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/mean.model.cpp
@@ -0,0 +1,28 @@
+// Generated file (from: mean.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {1, 2, 1});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto axis = model->addOperand(&type1);
+ auto keepDims = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t axis_init[] = {2};
+ model->setOperandValue(axis, axis_init, sizeof(int32_t) * 1);
+ static int32_t keepDims_init[] = {0};
+ model->setOperandValue(keepDims, keepDims_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_MEAN, {input, axis, keepDims}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/mean_axis01_1_nnfw.model.cpp b/runtimes/tests/neural_networks_test/generated/models/mean_axis01_1_nnfw.model.cpp
new file mode 100644
index 000000000..e14f6888a
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/mean_axis01_1_nnfw.model.cpp
@@ -0,0 +1,28 @@
+// Generated file (from: mean_axis01_1_nnfw.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {1, 1, 1, 2});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 4, 3, 2});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto axis = model->addOperand(&type1);
+ auto keepDims = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t axis_init[] = {1, 2};
+ model->setOperandValue(axis, axis_init, sizeof(int32_t) * 2);
+ static int32_t keepDims_init[] = {1};
+ model->setOperandValue(keepDims, keepDims_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_MEAN, {input, axis, keepDims}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/mean_axis01_2_nnfw.model.cpp b/runtimes/tests/neural_networks_test/generated/models/mean_axis01_2_nnfw.model.cpp
new file mode 100644
index 000000000..26afa5aa5
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/mean_axis01_2_nnfw.model.cpp
@@ -0,0 +1,28 @@
+// Generated file (from: mean_axis01_2_nnfw.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {1, 1, 1, 2});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 4, 3, 2});
+ OperandType type1(Type::TENSOR_INT32, {4});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto axis = model->addOperand(&type1);
+ auto keepDims = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t axis_init[] = {1, 2, -3, -3};
+ model->setOperandValue(axis, axis_init, sizeof(int32_t) * 4);
+ static int32_t keepDims_init[] = {1};
+ model->setOperandValue(keepDims, keepDims_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_MEAN, {input, axis, keepDims}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/mean_float_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/mean_float_1.model.cpp
new file mode 100644
index 000000000..7a3ce25a5
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/mean_float_1.model.cpp
@@ -0,0 +1,28 @@
+// Generated file (from: mean_float_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {2});
+ OperandType type0(Type::TENSOR_FLOAT32, {4, 3, 2});
+ OperandType type1(Type::TENSOR_INT32, {4});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto axis = model->addOperand(&type1);
+ auto keepDims = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t axis_init[] = {1, 0, -3, -3};
+ model->setOperandValue(axis, axis_init, sizeof(int32_t) * 4);
+ static int32_t keepDims_init[] = {0};
+ model->setOperandValue(keepDims, keepDims_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_MEAN, {input, axis, keepDims}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/mean_float_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/mean_float_2.model.cpp
new file mode 100644
index 000000000..9838db48b
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/mean_float_2.model.cpp
@@ -0,0 +1,28 @@
+// Generated file (from: mean_float_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {1, 3, 1});
+ OperandType type0(Type::TENSOR_FLOAT32, {4, 3, 2});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto axis = model->addOperand(&type1);
+ auto keepDims = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t axis_init[] = {0, 2};
+ model->setOperandValue(axis, axis_init, sizeof(int32_t) * 2);
+ static int32_t keepDims_init[] = {1};
+ model->setOperandValue(keepDims, keepDims_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_MEAN, {input, axis, keepDims}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/mean_quant8_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/mean_quant8_1.model.cpp
new file mode 100644
index 000000000..bbc6c101e
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/mean_quant8_1.model.cpp
@@ -0,0 +1,28 @@
+// Generated file (from: mean_quant8_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type1(Type::TENSOR_INT32, {4});
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {2}, 0.8, 5);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {4, 3, 2}, 0.8, 5);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto axis = model->addOperand(&type1);
+ auto keepDims = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t axis_init[] = {1, 0, -3, -3};
+ model->setOperandValue(axis, axis_init, sizeof(int32_t) * 4);
+ static int32_t keepDims_init[] = {0};
+ model->setOperandValue(keepDims, keepDims_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_MEAN, {input, axis, keepDims}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/mean_quant8_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/mean_quant8_2.model.cpp
new file mode 100644
index 000000000..dec9d81ca
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/mean_quant8_2.model.cpp
@@ -0,0 +1,28 @@
+// Generated file (from: mean_quant8_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {1, 3, 1}, 0.8, 5);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {4, 3, 2}, 0.8, 5);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto axis = model->addOperand(&type1);
+ auto keepDims = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t axis_init[] = {0, 2};
+ model->setOperandValue(axis, axis_init, sizeof(int32_t) * 2);
+ static int32_t keepDims_init[] = {1};
+ model->setOperandValue(keepDims, keepDims_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_MEAN, {input, axis, keepDims}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/mul_broadcast_3D_1D_1_nnfw.model.cpp b/runtimes/tests/neural_networks_test/generated/models/mul_broadcast_3D_1D_1_nnfw.model.cpp
new file mode 100644
index 000000000..b8a4120f1
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/mul_broadcast_3D_1D_1_nnfw.model.cpp
@@ -0,0 +1,25 @@
+// Generated file (from: mul_broadcast_3D_1D_1_nnfw.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {3, 1, 4});
+ OperandType type1(Type::TENSOR_FLOAT32, {4});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto act = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type0);
+ // Phase 2, operations
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_MUL, {op1, op2, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/mul_broadcast_3D_1D_2_nnfw.model.cpp b/runtimes/tests/neural_networks_test/generated/models/mul_broadcast_3D_1D_2_nnfw.model.cpp
new file mode 100644
index 000000000..c5d215fb8
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/mul_broadcast_3D_1D_2_nnfw.model.cpp
@@ -0,0 +1,25 @@
+// Generated file (from: mul_broadcast_3D_1D_2_nnfw.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {3, 2, 4});
+ OperandType type1(Type::TENSOR_FLOAT32, {4});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto act = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type0);
+ // Phase 2, operations
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_MUL, {op1, op2, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/pad.model.cpp b/runtimes/tests/neural_networks_test/generated/models/pad.model.cpp
new file mode 100644
index 000000000..97e173e21
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/pad.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: pad.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
+ OperandType type2(Type::TENSOR_FLOAT32, {1, 4, 4, 1});
+ OperandType type1(Type::TENSOR_INT32, {4, 2});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t op2_init[] = {0, 0, 1, 1, 1, 1, 0, 0};
+ model->setOperandValue(op2, op2_init, sizeof(int32_t) * 8);
+ model->addOperation(ANEURALNETWORKS_PAD, {op1, op2}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/pad_float_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/pad_float_1.model.cpp
new file mode 100644
index 000000000..61ae0b766
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/pad_float_1.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: pad_float_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 3, 1});
+ OperandType type2(Type::TENSOR_FLOAT32, {1, 4, 7, 1});
+ OperandType type1(Type::TENSOR_INT32, {4, 2});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t op2_init[] = {0, 0, 0, 2, 1, 3, 0, 0};
+ model->setOperandValue(op2, op2_init, sizeof(int32_t) * 8);
+ model->addOperation(ANEURALNETWORKS_PAD, {op1, op2}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/space_to_batch.model.cpp b/runtimes/tests/neural_networks_test/generated/models/space_to_batch.model.cpp
new file mode 100644
index 000000000..4064c94a9
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/space_to_batch.model.cpp
@@ -0,0 +1,28 @@
+// Generated file (from: space_to_batch.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 2});
+ OperandType type3(Type::TENSOR_FLOAT32, {4, 1, 1, 2});
+ OperandType type2(Type::TENSOR_INT32, {2, 2});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto block_size = model->addOperand(&type1);
+ auto paddings = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t block_size_init[] = {2, 2};
+ model->setOperandValue(block_size, block_size_init, sizeof(int32_t) * 2);
+ static int32_t paddings_init[] = {0, 0, 0, 0};
+ model->setOperandValue(paddings, paddings_init, sizeof(int32_t) * 4);
+ model->addOperation(ANEURALNETWORKS_SPACE_TO_BATCH_ND, {input, block_size, paddings}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/space_to_batch_float_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/space_to_batch_float_1.model.cpp
new file mode 100644
index 000000000..f4dfab99f
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/space_to_batch_float_1.model.cpp
@@ -0,0 +1,28 @@
+// Generated file (from: space_to_batch_float_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 4, 4, 1});
+ OperandType type3(Type::TENSOR_FLOAT32, {4, 2, 2, 1});
+ OperandType type2(Type::TENSOR_INT32, {2, 2});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto block_size = model->addOperand(&type1);
+ auto paddings = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t block_size_init[] = {2, 2};
+ model->setOperandValue(block_size, block_size_init, sizeof(int32_t) * 2);
+ static int32_t paddings_init[] = {0, 0, 0, 0};
+ model->setOperandValue(paddings, paddings_init, sizeof(int32_t) * 4);
+ model->addOperation(ANEURALNETWORKS_SPACE_TO_BATCH_ND, {input, block_size, paddings}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/space_to_batch_float_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/space_to_batch_float_2.model.cpp
new file mode 100644
index 000000000..44dee00ce
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/space_to_batch_float_2.model.cpp
@@ -0,0 +1,28 @@
+// Generated file (from: space_to_batch_float_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 5, 2, 1});
+ OperandType type3(Type::TENSOR_FLOAT32, {6, 2, 2, 1});
+ OperandType type2(Type::TENSOR_INT32, {2, 2});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto block_size = model->addOperand(&type1);
+ auto paddings = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t block_size_init[] = {3, 2};
+ model->setOperandValue(block_size, block_size_init, sizeof(int32_t) * 2);
+ static int32_t paddings_init[] = {1, 0, 2, 0};
+ model->setOperandValue(paddings, paddings_init, sizeof(int32_t) * 4);
+ model->addOperation(ANEURALNETWORKS_SPACE_TO_BATCH_ND, {input, block_size, paddings}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/space_to_batch_float_3.model.cpp b/runtimes/tests/neural_networks_test/generated/models/space_to_batch_float_3.model.cpp
new file mode 100644
index 000000000..f2fa99042
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/space_to_batch_float_3.model.cpp
@@ -0,0 +1,28 @@
+// Generated file (from: space_to_batch_float_3.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 4, 2, 1});
+ OperandType type3(Type::TENSOR_FLOAT32, {6, 2, 4, 1});
+ OperandType type2(Type::TENSOR_INT32, {2, 2});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto block_size = model->addOperand(&type1);
+ auto paddings = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t block_size_init[] = {3, 2};
+ model->setOperandValue(block_size, block_size_init, sizeof(int32_t) * 2);
+ static int32_t paddings_init[] = {1, 1, 2, 4};
+ model->setOperandValue(paddings, paddings_init, sizeof(int32_t) * 4);
+ model->addOperation(ANEURALNETWORKS_SPACE_TO_BATCH_ND, {input, block_size, paddings}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/space_to_batch_quant8_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/space_to_batch_quant8_1.model.cpp
new file mode 100644
index 000000000..cfd56c2e7
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/space_to_batch_quant8_1.model.cpp
@@ -0,0 +1,28 @@
+// Generated file (from: space_to_batch_quant8_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::TENSOR_INT32, {2, 2});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 4, 4, 1}, 1.0, 0);
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {4, 2, 2, 1}, 1.0, 0);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto block_size = model->addOperand(&type1);
+ auto paddings = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t block_size_init[] = {2, 2};
+ model->setOperandValue(block_size, block_size_init, sizeof(int32_t) * 2);
+ static int32_t paddings_init[] = {0, 0, 0, 0};
+ model->setOperandValue(paddings, paddings_init, sizeof(int32_t) * 4);
+ model->addOperation(ANEURALNETWORKS_SPACE_TO_BATCH_ND, {input, block_size, paddings}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/space_to_batch_quant8_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/space_to_batch_quant8_2.model.cpp
new file mode 100644
index 000000000..8ab61a116
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/space_to_batch_quant8_2.model.cpp
@@ -0,0 +1,28 @@
+// Generated file (from: space_to_batch_quant8_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::TENSOR_INT32, {2, 2});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 5, 2, 1}, 1.0, 0);
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {6, 2, 2, 1}, 1.0, 0);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto block_size = model->addOperand(&type1);
+ auto paddings = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t block_size_init[] = {3, 2};
+ model->setOperandValue(block_size, block_size_init, sizeof(int32_t) * 2);
+ static int32_t paddings_init[] = {1, 0, 2, 0};
+ model->setOperandValue(paddings, paddings_init, sizeof(int32_t) * 4);
+ model->addOperation(ANEURALNETWORKS_SPACE_TO_BATCH_ND, {input, block_size, paddings}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/space_to_batch_quant8_3.model.cpp b/runtimes/tests/neural_networks_test/generated/models/space_to_batch_quant8_3.model.cpp
new file mode 100644
index 000000000..7ee388441
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/space_to_batch_quant8_3.model.cpp
@@ -0,0 +1,28 @@
+// Generated file (from: space_to_batch_quant8_3.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::TENSOR_INT32, {2, 2});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 4, 2, 1}, 1.0, 0);
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {6, 2, 4, 1}, 1.0, 0);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto block_size = model->addOperand(&type1);
+ auto paddings = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t block_size_init[] = {3, 2};
+ model->setOperandValue(block_size, block_size_init, sizeof(int32_t) * 2);
+ static int32_t paddings_init[] = {1, 1, 2, 4};
+ model->setOperandValue(paddings, paddings_init, sizeof(int32_t) * 4);
+ model->addOperation(ANEURALNETWORKS_SPACE_TO_BATCH_ND, {input, block_size, paddings}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/squeeze.model.cpp b/runtimes/tests/neural_networks_test/generated/models/squeeze.model.cpp
new file mode 100644
index 000000000..806a10c61
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/squeeze.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: squeeze.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {4, 1, 1, 2});
+ OperandType type2(Type::TENSOR_FLOAT32, {4, 2});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto squeezeDims = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t squeezeDims_init[] = {1, 2};
+ model->setOperandValue(squeezeDims, squeezeDims_init, sizeof(int32_t) * 2);
+ model->addOperation(ANEURALNETWORKS_SQUEEZE, {input, squeezeDims}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/squeeze_2D_float_1_nnfw.model.cpp b/runtimes/tests/neural_networks_test/generated/models/squeeze_2D_float_1_nnfw.model.cpp
new file mode 100644
index 000000000..4d6621e21
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/squeeze_2D_float_1_nnfw.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: squeeze_2D_float_1_nnfw.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {4, 1});
+ OperandType type2(Type::TENSOR_FLOAT32, {4});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto squeezeDims = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t squeezeDims_init[] = {1};
+ model->setOperandValue(squeezeDims, squeezeDims_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_SQUEEZE, {input, squeezeDims}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/squeeze_float_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/squeeze_float_1.model.cpp
new file mode 100644
index 000000000..2277e38e6
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/squeeze_float_1.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: squeeze_float_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 24, 1});
+ OperandType type2(Type::TENSOR_FLOAT32, {1, 24});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto squeezeDims = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t squeezeDims_init[] = {2};
+ model->setOperandValue(squeezeDims, squeezeDims_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_SQUEEZE, {input, squeezeDims}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/squeeze_quant8_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/squeeze_quant8_1.model.cpp
new file mode 100644
index 000000000..f122d43f5
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/squeeze_quant8_1.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: squeeze_quant8_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::TENSOR_INT32, {1});
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {1, 24, 1}, 1.0, 0);
+ OperandType type2(Type::TENSOR_QUANT8_ASYMM, {1, 24}, 1.0, 0);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto squeezeDims = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t squeezeDims_init[] = {2};
+ model->setOperandValue(squeezeDims, squeezeDims_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_SQUEEZE, {input, squeezeDims}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice.model.cpp
new file mode 100644
index 000000000..5f1b875c2
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {1, 2});
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 3});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {0, 0};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 2);
+ static int32_t ends_init[] = {2, 3};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 2);
+ static int32_t strides_init[] = {2, 2};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 2);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_STRIDED_SLICE, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_1.model.cpp
new file mode 100644
index 000000000..1385693c8
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_1.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_ex_float_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {2});
+ OperandType type0(Type::TENSOR_FLOAT32, {4});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {1};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 1);
+ static int32_t ends_init[] = {3};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 1);
+ static int32_t strides_init[] = {1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 1);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperationEx(ANEURALNETWORKS_STRIDED_SLICE_EX, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_10.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_10.model.cpp
new file mode 100644
index 000000000..5da568959
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_10.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_ex_float_10.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {1, 3});
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 3});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {1, 0};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 2);
+ static int32_t ends_init[] = {2, 2};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 2);
+ static int32_t strides_init[] = {1, 1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 2);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {2};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperationEx(ANEURALNETWORKS_STRIDED_SLICE_EX, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_2.model.cpp
new file mode 100644
index 000000000..84c3fe65d
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_2.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_ex_float_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {2});
+ OperandType type0(Type::TENSOR_FLOAT32, {4});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {-3};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 1);
+ static int32_t ends_init[] = {3};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 1);
+ static int32_t strides_init[] = {1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 1);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperationEx(ANEURALNETWORKS_STRIDED_SLICE_EX, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_3.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_3.model.cpp
new file mode 100644
index 000000000..a6067409d
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_3.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_ex_float_3.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {3});
+ OperandType type0(Type::TENSOR_FLOAT32, {4});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {-5};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 1);
+ static int32_t ends_init[] = {3};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 1);
+ static int32_t strides_init[] = {1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 1);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperationEx(ANEURALNETWORKS_STRIDED_SLICE_EX, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_4.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_4.model.cpp
new file mode 100644
index 000000000..497ed4ba7
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_4.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_ex_float_4.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {1});
+ OperandType type0(Type::TENSOR_FLOAT32, {4});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {1};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 1);
+ static int32_t ends_init[] = {-2};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 1);
+ static int32_t strides_init[] = {1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 1);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperationEx(ANEURALNETWORKS_STRIDED_SLICE_EX, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_5.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_5.model.cpp
new file mode 100644
index 000000000..568e03013
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_5.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_ex_float_5.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {3});
+ OperandType type0(Type::TENSOR_FLOAT32, {4});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {1};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 1);
+ static int32_t ends_init[] = {3};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 1);
+ static int32_t strides_init[] = {1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 1);
+ static int32_t beginMask_init[] = {1};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperationEx(ANEURALNETWORKS_STRIDED_SLICE_EX, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_6.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_6.model.cpp
new file mode 100644
index 000000000..8333a4334
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_6.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_ex_float_6.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {3});
+ OperandType type0(Type::TENSOR_FLOAT32, {4});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {1};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 1);
+ static int32_t ends_init[] = {3};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 1);
+ static int32_t strides_init[] = {1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 1);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {1};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperationEx(ANEURALNETWORKS_STRIDED_SLICE_EX, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_7.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_7.model.cpp
new file mode 100644
index 000000000..34f2d13fa
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_7.model.cpp
@@ -0,0 +1,39 @@
+// Generated file (from: strided_slice_ex_float_7.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {3});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type0);
+ // Phase 2, operations
+ static int32_t begins_init[] = {-1};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 1);
+ static int32_t ends_init[] = {-4};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 1);
+ static int32_t strides_init[] = {-1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 1);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperationEx(ANEURALNETWORKS_STRIDED_SLICE_EX, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_8.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_8.model.cpp
new file mode 100644
index 000000000..6027abb1c
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_8.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_ex_float_8.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {1, 3});
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 3});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {1, -1};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 2);
+ static int32_t ends_init[] = {2, -4};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 2);
+ static int32_t strides_init[] = {2, -1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 2);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperationEx(ANEURALNETWORKS_STRIDED_SLICE_EX, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_9.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_9.model.cpp
new file mode 100644
index 000000000..de18b9d76
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_ex_float_9.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_ex_float_9.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {2, 2});
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 3});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {1, 0};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 2);
+ static int32_t ends_init[] = {2, 2};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 2);
+ static int32_t strides_init[] = {1, 1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 2);
+ static int32_t beginMask_init[] = {1};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperationEx(ANEURALNETWORKS_STRIDED_SLICE_EX, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_1.model.cpp
new file mode 100644
index 000000000..fcd2f6dac
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_1.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_float_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {2});
+ OperandType type0(Type::TENSOR_FLOAT32, {4});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {1};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 1);
+ static int32_t ends_init[] = {3};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 1);
+ static int32_t strides_init[] = {1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 1);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_STRIDED_SLICE, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_10.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_10.model.cpp
new file mode 100644
index 000000000..1463f13ab
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_10.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_float_10.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {1, 3});
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 3});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {1, 0};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 2);
+ static int32_t ends_init[] = {2, 2};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 2);
+ static int32_t strides_init[] = {1, 1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 2);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {2};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_STRIDED_SLICE, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_11.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_11.model.cpp
new file mode 100644
index 000000000..2197b502a
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_11.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_float_11.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 3});
+ OperandType type3(Type::TENSOR_FLOAT32, {3});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {0, 0};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 2);
+ static int32_t ends_init[] = {1, 3};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 2);
+ static int32_t strides_init[] = {1, 1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 2);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {1};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_STRIDED_SLICE, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_2.model.cpp
new file mode 100644
index 000000000..47179ca53
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_2.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_float_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {2});
+ OperandType type0(Type::TENSOR_FLOAT32, {4});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {-3};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 1);
+ static int32_t ends_init[] = {3};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 1);
+ static int32_t strides_init[] = {1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 1);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_STRIDED_SLICE, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_3.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_3.model.cpp
new file mode 100644
index 000000000..113c775a3
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_3.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_float_3.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {3});
+ OperandType type0(Type::TENSOR_FLOAT32, {4});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {-5};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 1);
+ static int32_t ends_init[] = {3};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 1);
+ static int32_t strides_init[] = {1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 1);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_STRIDED_SLICE, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_4.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_4.model.cpp
new file mode 100644
index 000000000..af5ffa891
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_4.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_float_4.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {1});
+ OperandType type0(Type::TENSOR_FLOAT32, {4});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {1};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 1);
+ static int32_t ends_init[] = {-2};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 1);
+ static int32_t strides_init[] = {1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 1);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_STRIDED_SLICE, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_5.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_5.model.cpp
new file mode 100644
index 000000000..a0280d3a8
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_5.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_float_5.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {3});
+ OperandType type0(Type::TENSOR_FLOAT32, {4});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {1};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 1);
+ static int32_t ends_init[] = {3};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 1);
+ static int32_t strides_init[] = {1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 1);
+ static int32_t beginMask_init[] = {1};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_STRIDED_SLICE, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_6.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_6.model.cpp
new file mode 100644
index 000000000..cb40c8527
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_6.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_float_6.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {3});
+ OperandType type0(Type::TENSOR_FLOAT32, {4});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {1};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 1);
+ static int32_t ends_init[] = {3};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 1);
+ static int32_t strides_init[] = {1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 1);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {1};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_STRIDED_SLICE, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_7.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_7.model.cpp
new file mode 100644
index 000000000..1580128a1
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_7.model.cpp
@@ -0,0 +1,39 @@
+// Generated file (from: strided_slice_float_7.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {3});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type0);
+ // Phase 2, operations
+ static int32_t begins_init[] = {-1};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 1);
+ static int32_t ends_init[] = {-4};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 1);
+ static int32_t strides_init[] = {-1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 1);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_STRIDED_SLICE, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_8.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_8.model.cpp
new file mode 100644
index 000000000..0dd388435
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_8.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_float_8.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {1, 3});
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 3});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {1, -1};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 2);
+ static int32_t ends_init[] = {2, -4};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 2);
+ static int32_t strides_init[] = {2, -1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 2);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_STRIDED_SLICE, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_9.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_9.model.cpp
new file mode 100644
index 000000000..22e0e7028
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_float_9.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_float_9.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type3(Type::TENSOR_FLOAT32, {2, 2});
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 3});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {1, 0};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 2);
+ static int32_t ends_init[] = {2, 2};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 2);
+ static int32_t strides_init[] = {1, 1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 2);
+ static int32_t beginMask_init[] = {1};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_STRIDED_SLICE, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_qaunt8_10.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_qaunt8_10.model.cpp
new file mode 100644
index 000000000..a6eec78a4
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_qaunt8_10.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_qaunt8_10.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {1, 3}, 1.0, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {2, 3}, 1.0, 0);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {1, 0};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 2);
+ static int32_t ends_init[] = {2, 2};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 2);
+ static int32_t strides_init[] = {1, 1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 2);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {2};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_STRIDED_SLICE, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_qaunt8_11.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_qaunt8_11.model.cpp
new file mode 100644
index 000000000..170dc7e0f
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_qaunt8_11.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_qaunt8_11.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {2, 3}, 1.0, 0);
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {3}, 1.0, 0);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {0, 0};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 2);
+ static int32_t ends_init[] = {1, 3};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 2);
+ static int32_t strides_init[] = {1, 1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 2);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {1};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_STRIDED_SLICE, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_1.model.cpp
new file mode 100644
index 000000000..7f8e602eb
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_1.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_quant8_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {2}, 1.0, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {4}, 1.0, 0);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {1};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 1);
+ static int32_t ends_init[] = {3};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 1);
+ static int32_t strides_init[] = {1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 1);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_STRIDED_SLICE, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_2.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_2.model.cpp
new file mode 100644
index 000000000..e6042147e
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_2.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_quant8_2.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {2}, 1.0, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {4}, 1.0, 0);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {-3};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 1);
+ static int32_t ends_init[] = {3};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 1);
+ static int32_t strides_init[] = {1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 1);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_STRIDED_SLICE, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_3.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_3.model.cpp
new file mode 100644
index 000000000..2cc75a461
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_3.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_quant8_3.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {3}, 1.0, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {4}, 1.0, 0);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {-5};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 1);
+ static int32_t ends_init[] = {3};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 1);
+ static int32_t strides_init[] = {1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 1);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_STRIDED_SLICE, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_4.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_4.model.cpp
new file mode 100644
index 000000000..2fe2277d6
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_4.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_quant8_4.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {1}, 1.0, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {4}, 1.0, 0);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {1};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 1);
+ static int32_t ends_init[] = {-2};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 1);
+ static int32_t strides_init[] = {1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 1);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_STRIDED_SLICE, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_5.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_5.model.cpp
new file mode 100644
index 000000000..1ed3ed107
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_5.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_quant8_5.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {3}, 1.0, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {4}, 1.0, 0);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {1};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 1);
+ static int32_t ends_init[] = {3};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 1);
+ static int32_t strides_init[] = {1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 1);
+ static int32_t beginMask_init[] = {1};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_STRIDED_SLICE, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_6.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_6.model.cpp
new file mode 100644
index 000000000..73da2fc3a
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_6.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_quant8_6.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {3}, 1.0, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {4}, 1.0, 0);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {1};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 1);
+ static int32_t ends_init[] = {3};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 1);
+ static int32_t strides_init[] = {1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 1);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {1};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_STRIDED_SLICE, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_7.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_7.model.cpp
new file mode 100644
index 000000000..089388bf2
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_7.model.cpp
@@ -0,0 +1,39 @@
+// Generated file (from: strided_slice_quant8_7.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type1(Type::TENSOR_INT32, {1});
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {3}, 1.0, 0);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type0);
+ // Phase 2, operations
+ static int32_t begins_init[] = {-1};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 1);
+ static int32_t ends_init[] = {-4};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 1);
+ static int32_t strides_init[] = {-1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 1);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_STRIDED_SLICE, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_8.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_8.model.cpp
new file mode 100644
index 000000000..ef55fc15f
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_8.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_quant8_8.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {1, 3}, 1.0, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {2, 3}, 1.0, 0);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {1, -1};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 2);
+ static int32_t ends_init[] = {2, -4};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 2);
+ static int32_t strides_init[] = {2, -1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 2);
+ static int32_t beginMask_init[] = {0};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_STRIDED_SLICE, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_9.model.cpp b/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_9.model.cpp
new file mode 100644
index 000000000..37bb2898e
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/strided_slice_quant8_9.model.cpp
@@ -0,0 +1,40 @@
+// Generated file (from: strided_slice_quant8_9.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type1(Type::TENSOR_INT32, {2});
+ OperandType type3(Type::TENSOR_QUANT8_ASYMM, {2, 2}, 1.0, 0);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {2, 3}, 1.0, 0);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto begins = model->addOperand(&type1);
+ auto ends = model->addOperand(&type1);
+ auto strides = model->addOperand(&type1);
+ auto beginMask = model->addOperand(&type2);
+ auto endMask = model->addOperand(&type2);
+ auto shrinkAxisMask = model->addOperand(&type2);
+ auto output = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t begins_init[] = {1, 0};
+ model->setOperandValue(begins, begins_init, sizeof(int32_t) * 2);
+ static int32_t ends_init[] = {2, 2};
+ model->setOperandValue(ends, ends_init, sizeof(int32_t) * 2);
+ static int32_t strides_init[] = {1, 1};
+ model->setOperandValue(strides, strides_init, sizeof(int32_t) * 2);
+ static int32_t beginMask_init[] = {1};
+ model->setOperandValue(beginMask, beginMask_init, sizeof(int32_t) * 1);
+ static int32_t endMask_init[] = {0};
+ model->setOperandValue(endMask, endMask_init, sizeof(int32_t) * 1);
+ static int32_t shrinkAxisMask_init[] = {0};
+ model->setOperandValue(shrinkAxisMask, shrinkAxisMask_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_STRIDED_SLICE, {input, begins, ends, strides, beginMask, endMask, shrinkAxisMask}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/sub.model.cpp b/runtimes/tests/neural_networks_test/generated/models/sub.model.cpp
new file mode 100644
index 000000000..40a0247c8
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/sub.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: sub.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ auto act = model->addOperand(&type1);
+ auto op3 = model->addOperand(&type0);
+ // Phase 2, operations
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_SUB, {op1, op2, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/sub_broadcast_float.model.cpp b/runtimes/tests/neural_networks_test/generated/models/sub_broadcast_float.model.cpp
new file mode 100644
index 000000000..cf1f61a85
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/sub_broadcast_float.model.cpp
@@ -0,0 +1,25 @@
+// Generated file (from: sub_broadcast_float.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type2(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2});
+ OperandType type1(Type::TENSOR_FLOAT32, {2, 2});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type1);
+ auto act = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type1);
+ // Phase 2, operations
+ static int32_t act_init[] = {0};
+ model->setOperandValue(act, act_init, sizeof(int32_t) * 1);
+ model->addOperation(ANEURALNETWORKS_SUB, {op1, op2, act}, {op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1, op2},
+ {op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/tanh_.model.cpp b/runtimes/tests/neural_networks_test/generated/models/tanh_.model.cpp
new file mode 100644
index 000000000..c221ea627
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/tanh_.model.cpp
@@ -0,0 +1,19 @@
+// Generated file (from: tanh_.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto op2 = model->addOperand(&type0);
+ // Phase 2, operations
+ model->addOperation(ANEURALNETWORKS_TANH, {op1}, {op2});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op2});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/tensorflowmax_ex_2D_float.model.cpp b/runtimes/tests/neural_networks_test/generated/models/tensorflowmax_ex_2D_float.model.cpp
new file mode 100644
index 000000000..7d365de9e
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/tensorflowmax_ex_2D_float.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: tensorflowmax_ex_2D_float.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_FLOAT32, {3, 4});
+ OperandType type2(Type::TENSOR_FLOAT32, {3});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto axis = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t axis_init[] = {1};
+ model->setOperandValue(axis, axis_init, sizeof(int32_t) * 1);
+ model->addOperationEx(ANEURALNETWORKS_TENSORFLOW_MAX_EX, {input, axis}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/tensorflowmax_ex_2D_int32.model.cpp b/runtimes/tests/neural_networks_test/generated/models/tensorflowmax_ex_2D_int32.model.cpp
new file mode 100644
index 000000000..efb5923ae
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/tensorflowmax_ex_2D_int32.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: tensorflowmax_ex_2D_int32.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type0(Type::TENSOR_INT32, {3, 4});
+ OperandType type2(Type::TENSOR_INT32, {3});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto axis = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t axis_init[] = {1};
+ model->setOperandValue(axis, axis_init, sizeof(int32_t) * 1);
+ model->addOperationEx(ANEURALNETWORKS_TENSORFLOW_MAX_EX, {input, axis}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/topk_v2_1D_float.model.cpp b/runtimes/tests/neural_networks_test/generated/models/topk_v2_1D_float.model.cpp
new file mode 100644
index 000000000..23168320c
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/topk_v2_1D_float.model.cpp
@@ -0,0 +1,26 @@
+// Generated file (from: topk_v2_1D_float.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type2(Type::TENSOR_FLOAT32, {2});
+ OperandType type0(Type::TENSOR_FLOAT32, {4});
+ OperandType type3(Type::TENSOR_INT32, {2});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto k = model->addOperand(&type1);
+ auto op2 = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t k_init[] = {2};
+ model->setOperandValue(k, k_init, sizeof(int32_t) * 1);
+ model->addOperationEx(ANEURALNETWORKS_TOPK_V2_EX, {op1, k}, {op2, op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op2, op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/topk_v2_1D_int32.model.cpp b/runtimes/tests/neural_networks_test/generated/models/topk_v2_1D_int32.model.cpp
new file mode 100644
index 000000000..5d11fed89
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/topk_v2_1D_int32.model.cpp
@@ -0,0 +1,25 @@
+// Generated file (from: topk_v2_1D_int32.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type2(Type::TENSOR_INT32, {2});
+ OperandType type0(Type::TENSOR_INT32, {4});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto k = model->addOperand(&type1);
+ auto op2 = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t k_init[] = {2};
+ model->setOperandValue(k, k_init, sizeof(int32_t) * 1);
+ model->addOperationEx(ANEURALNETWORKS_TOPK_V2_EX, {op1, k}, {op2, op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op2, op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/topk_v2_1D_quant8.model.cpp b/runtimes/tests/neural_networks_test/generated/models/topk_v2_1D_quant8.model.cpp
new file mode 100644
index 000000000..ff60c1d74
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/topk_v2_1D_quant8.model.cpp
@@ -0,0 +1,26 @@
+// Generated file (from: topk_v2_1D_quant8.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type3(Type::TENSOR_INT32, {2});
+ OperandType type2(Type::TENSOR_QUANT8_ASYMM, {2}, 0.5f, 1);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {4}, 0.5f, 1);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto k = model->addOperand(&type1);
+ auto op2 = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t k_init[] = {2};
+ model->setOperandValue(k, k_init, sizeof(int32_t) * 1);
+ model->addOperationEx(ANEURALNETWORKS_TOPK_V2_EX, {op1, k}, {op2, op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op2, op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/topk_v2_2D_float.model.cpp b/runtimes/tests/neural_networks_test/generated/models/topk_v2_2D_float.model.cpp
new file mode 100644
index 000000000..17097cd11
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/topk_v2_2D_float.model.cpp
@@ -0,0 +1,26 @@
+// Generated file (from: topk_v2_2D_float.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type2(Type::TENSOR_FLOAT32, {3,2});
+ OperandType type0(Type::TENSOR_FLOAT32, {3,4});
+ OperandType type3(Type::TENSOR_INT32, {3,2});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto k = model->addOperand(&type1);
+ auto op2 = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t k_init[] = {2};
+ model->setOperandValue(k, k_init, sizeof(int32_t) * 1);
+ model->addOperationEx(ANEURALNETWORKS_TOPK_V2_EX, {op1, k}, {op2, op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op2, op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/topk_v2_2D_int32.model.cpp b/runtimes/tests/neural_networks_test/generated/models/topk_v2_2D_int32.model.cpp
new file mode 100644
index 000000000..36e137e46
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/topk_v2_2D_int32.model.cpp
@@ -0,0 +1,25 @@
+// Generated file (from: topk_v2_2D_int32.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type2(Type::TENSOR_INT32, {3,2});
+ OperandType type0(Type::TENSOR_INT32, {3,4});
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto k = model->addOperand(&type1);
+ auto op2 = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t k_init[] = {2};
+ model->setOperandValue(k, k_init, sizeof(int32_t) * 1);
+ model->addOperationEx(ANEURALNETWORKS_TOPK_V2_EX, {op1, k}, {op2, op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op2, op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/topk_v2_2D_quant8.model.cpp b/runtimes/tests/neural_networks_test/generated/models/topk_v2_2D_quant8.model.cpp
new file mode 100644
index 000000000..a0ffc8946
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/topk_v2_2D_quant8.model.cpp
@@ -0,0 +1,26 @@
+// Generated file (from: topk_v2_2D_quant8.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::INT32, {});
+ OperandType type3(Type::TENSOR_INT32, {3,2});
+ OperandType type2(Type::TENSOR_QUANT8_ASYMM, {3,2}, 0.5f, 1);
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {3,4}, 0.5f, 1);
+ // Phase 1, operands
+ auto op1 = model->addOperand(&type0);
+ auto k = model->addOperand(&type1);
+ auto op2 = model->addOperand(&type2);
+ auto op3 = model->addOperand(&type3);
+ // Phase 2, operations
+ static int32_t k_init[] = {2};
+ model->setOperandValue(k, k_init, sizeof(int32_t) * 1);
+ model->addOperationEx(ANEURALNETWORKS_TOPK_V2_EX, {op1, k}, {op2, op3});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {op1},
+ {op2, op3});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/transpose.model.cpp b/runtimes/tests/neural_networks_test/generated/models/transpose.model.cpp
new file mode 100644
index 000000000..e4c741456
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/transpose.model.cpp
@@ -0,0 +1,23 @@
+// Generated file (from: transpose.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {1, 2, 2, 1});
+ OperandType type1(Type::TENSOR_INT32, {4});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto perms = model->addOperand(&type1);
+ auto output = model->addOperand(&type0);
+ // Phase 2, operations
+ static int32_t perms_init[] = {0, 2, 1, 3};
+ model->setOperandValue(perms, perms_init, sizeof(int32_t) * 4);
+ model->addOperation(ANEURALNETWORKS_TRANSPOSE, {input, perms}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/transpose_float_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/transpose_float_1.model.cpp
new file mode 100644
index 000000000..f6d0d08e3
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/transpose_float_1.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: transpose_float_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type0(Type::TENSOR_FLOAT32, {2, 3, 4, 5});
+ OperandType type2(Type::TENSOR_FLOAT32, {4, 2, 3, 5});
+ OperandType type1(Type::TENSOR_INT32, {4});
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto perms = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t perms_init[] = {2, 0, 1, 3};
+ model->setOperandValue(perms, perms_init, sizeof(int32_t) * 4);
+ model->addOperation(ANEURALNETWORKS_TRANSPOSE, {input, perms}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}
diff --git a/runtimes/tests/neural_networks_test/generated/models/transpose_quant8_1.model.cpp b/runtimes/tests/neural_networks_test/generated/models/transpose_quant8_1.model.cpp
new file mode 100644
index 000000000..808ad2b38
--- /dev/null
+++ b/runtimes/tests/neural_networks_test/generated/models/transpose_quant8_1.model.cpp
@@ -0,0 +1,24 @@
+// Generated file (from: transpose_quant8_1.mod.py). Do not edit
+void CreateModel(Model *model) {
+ OperandType type1(Type::TENSOR_INT32, {4});
+ OperandType type0(Type::TENSOR_QUANT8_ASYMM, {2, 3, 4, 5}, 1.0, 0);
+ OperandType type2(Type::TENSOR_QUANT8_ASYMM, {4, 2, 3, 5}, 1.0, 0);
+ // Phase 1, operands
+ auto input = model->addOperand(&type0);
+ auto perms = model->addOperand(&type1);
+ auto output = model->addOperand(&type2);
+ // Phase 2, operations
+ static int32_t perms_init[] = {2, 0, 1, 3};
+ model->setOperandValue(perms, perms_init, sizeof(int32_t) * 4);
+ model->addOperation(ANEURALNETWORKS_TRANSPOSE, {input, perms}, {output});
+ // Phase 3, inputs and outputs
+ model->identifyInputsAndOutputs(
+ {input},
+ {output});
+ assert(model->isValid());
+}
+
+bool is_ignored(int i) {
+ static std::set<int> ignore = {};
+ return ignore.find(i) != ignore.end();
+}