1 // clang-format off
2 // Generated file (from: reduce_all.mod.py). Do not edit
CreateModel(Model * model)3 void CreateModel(Model *model) {
4 OperandType type0(Type::TENSOR_BOOL8, {1});
5 OperandType type1(Type::TENSOR_INT32, {1});
6 OperandType type2(Type::BOOL, {});
7 // Phase 1, operands
8 auto input0 = model->addOperand(&type0);
9 auto param = model->addOperand(&type1);
10 auto param1 = model->addOperand(&type2);
11 auto output0 = model->addOperand(&type0);
12 // Phase 2, operations
13 static int32_t param_init[] = {0};
14 model->setOperandValue(param, param_init, sizeof(int32_t) * 1);
15 static bool8 param1_init[] = {true};
16 model->setOperandValue(param1, param1_init, sizeof(bool8) * 1);
17 model->addOperation(ANEURALNETWORKS_REDUCE_ALL, {input0, param, param1}, {output0});
18 // Phase 3, inputs and outputs
19 model->identifyInputsAndOutputs(
20 {input0},
21 {output0});
22 assert(model->isValid());
23 }
24
is_ignored(int i)25 inline bool is_ignored(int i) {
26 static std::set<int> ignore = {};
27 return ignore.find(i) != ignore.end();
28 }
29
CreateModel_dynamic_output_shape(Model * model)30 void CreateModel_dynamic_output_shape(Model *model) {
31 OperandType type0(Type::TENSOR_BOOL8, {1});
32 OperandType type1(Type::TENSOR_INT32, {1});
33 OperandType type2(Type::BOOL, {});
34 OperandType type8(Type::TENSOR_BOOL8, {0});
35 // Phase 1, operands
36 auto input0 = model->addOperand(&type0);
37 auto param = model->addOperand(&type1);
38 auto param1 = model->addOperand(&type2);
39 auto output0 = model->addOperand(&type8);
40 // Phase 2, operations
41 static int32_t param_init[] = {0};
42 model->setOperandValue(param, param_init, sizeof(int32_t) * 1);
43 static bool8 param1_init[] = {true};
44 model->setOperandValue(param1, param1_init, sizeof(bool8) * 1);
45 model->addOperation(ANEURALNETWORKS_REDUCE_ALL, {input0, param, param1}, {output0});
46 // Phase 3, inputs and outputs
47 model->identifyInputsAndOutputs(
48 {input0},
49 {output0});
50 assert(model->isValid());
51 }
52
is_ignored_dynamic_output_shape(int i)53 inline bool is_ignored_dynamic_output_shape(int i) {
54 static std::set<int> ignore = {};
55 return ignore.find(i) != ignore.end();
56 }
57
CreateModel_2(Model * model)58 void CreateModel_2(Model *model) {
59 OperandType type2(Type::BOOL, {});
60 OperandType type3(Type::TENSOR_BOOL8, {2, 3, 2});
61 OperandType type4(Type::TENSOR_BOOL8, {2});
62 OperandType type5(Type::TENSOR_INT32, {4});
63 // Phase 1, operands
64 auto input01 = model->addOperand(&type3);
65 auto param2 = model->addOperand(&type5);
66 auto param3 = model->addOperand(&type2);
67 auto output01 = model->addOperand(&type4);
68 // Phase 2, operations
69 static int32_t param2_init[] = {1, 0, -3, -3};
70 model->setOperandValue(param2, param2_init, sizeof(int32_t) * 4);
71 static bool8 param3_init[] = {false};
72 model->setOperandValue(param3, param3_init, sizeof(bool8) * 1);
73 model->addOperation(ANEURALNETWORKS_REDUCE_ALL, {input01, param2, param3}, {output01});
74 // Phase 3, inputs and outputs
75 model->identifyInputsAndOutputs(
76 {input01},
77 {output01});
78 assert(model->isValid());
79 }
80
is_ignored_2(int i)81 inline bool is_ignored_2(int i) {
82 static std::set<int> ignore = {};
83 return ignore.find(i) != ignore.end();
84 }
85
CreateModel_dynamic_output_shape_2(Model * model)86 void CreateModel_dynamic_output_shape_2(Model *model) {
87 OperandType type2(Type::BOOL, {});
88 OperandType type3(Type::TENSOR_BOOL8, {2, 3, 2});
89 OperandType type5(Type::TENSOR_INT32, {4});
90 OperandType type8(Type::TENSOR_BOOL8, {0});
91 // Phase 1, operands
92 auto input01 = model->addOperand(&type3);
93 auto param2 = model->addOperand(&type5);
94 auto param3 = model->addOperand(&type2);
95 auto output01 = model->addOperand(&type8);
96 // Phase 2, operations
97 static int32_t param2_init[] = {1, 0, -3, -3};
98 model->setOperandValue(param2, param2_init, sizeof(int32_t) * 4);
99 static bool8 param3_init[] = {false};
100 model->setOperandValue(param3, param3_init, sizeof(bool8) * 1);
101 model->addOperation(ANEURALNETWORKS_REDUCE_ALL, {input01, param2, param3}, {output01});
102 // Phase 3, inputs and outputs
103 model->identifyInputsAndOutputs(
104 {input01},
105 {output01});
106 assert(model->isValid());
107 }
108
is_ignored_dynamic_output_shape_2(int i)109 inline bool is_ignored_dynamic_output_shape_2(int i) {
110 static std::set<int> ignore = {};
111 return ignore.find(i) != ignore.end();
112 }
113
CreateModel_3(Model * model)114 void CreateModel_3(Model *model) {
115 OperandType type2(Type::BOOL, {});
116 OperandType type3(Type::TENSOR_BOOL8, {2, 3, 2});
117 OperandType type6(Type::TENSOR_BOOL8, {1, 3, 1});
118 OperandType type7(Type::TENSOR_INT32, {2});
119 // Phase 1, operands
120 auto input02 = model->addOperand(&type3);
121 auto param4 = model->addOperand(&type7);
122 auto param5 = model->addOperand(&type2);
123 auto output02 = model->addOperand(&type6);
124 // Phase 2, operations
125 static int32_t param4_init[] = {0, 2};
126 model->setOperandValue(param4, param4_init, sizeof(int32_t) * 2);
127 static bool8 param5_init[] = {true};
128 model->setOperandValue(param5, param5_init, sizeof(bool8) * 1);
129 model->addOperation(ANEURALNETWORKS_REDUCE_ALL, {input02, param4, param5}, {output02});
130 // Phase 3, inputs and outputs
131 model->identifyInputsAndOutputs(
132 {input02},
133 {output02});
134 assert(model->isValid());
135 }
136
is_ignored_3(int i)137 inline bool is_ignored_3(int i) {
138 static std::set<int> ignore = {};
139 return ignore.find(i) != ignore.end();
140 }
141
CreateModel_dynamic_output_shape_3(Model * model)142 void CreateModel_dynamic_output_shape_3(Model *model) {
143 OperandType type2(Type::BOOL, {});
144 OperandType type3(Type::TENSOR_BOOL8, {2, 3, 2});
145 OperandType type7(Type::TENSOR_INT32, {2});
146 OperandType type9(Type::TENSOR_BOOL8, {0, 0, 0});
147 // Phase 1, operands
148 auto input02 = model->addOperand(&type3);
149 auto param4 = model->addOperand(&type7);
150 auto param5 = model->addOperand(&type2);
151 auto output02 = model->addOperand(&type9);
152 // Phase 2, operations
153 static int32_t param4_init[] = {0, 2};
154 model->setOperandValue(param4, param4_init, sizeof(int32_t) * 2);
155 static bool8 param5_init[] = {true};
156 model->setOperandValue(param5, param5_init, sizeof(bool8) * 1);
157 model->addOperation(ANEURALNETWORKS_REDUCE_ALL, {input02, param4, param5}, {output02});
158 // Phase 3, inputs and outputs
159 model->identifyInputsAndOutputs(
160 {input02},
161 {output02});
162 assert(model->isValid());
163 }
164
is_ignored_dynamic_output_shape_3(int i)165 inline bool is_ignored_dynamic_output_shape_3(int i) {
166 static std::set<int> ignore = {};
167 return ignore.find(i) != ignore.end();
168 }
169
170