blob: f2c94595a64aaa93020b319a479ebe75394cd391 [file] [log] [blame]
Eric Kunze2364dcd2021-04-26 11:06:57 -07001// automatically generated by the FlatBuffers compiler, do not modify
2
3
4#ifndef FLATBUFFERS_GENERATED_TOSA_TOSA_H_
5#define FLATBUFFERS_GENERATED_TOSA_TOSA_H_
6
7#include "flatbuffers/flatbuffers.h"
8
9namespace tosa {
10
Kevin Cheng79a41992021-08-31 16:04:40 -070011struct PoolAttribute;
12struct PoolAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070013
Kevin Cheng79a41992021-08-31 16:04:40 -070014struct ConvAttribute;
15struct ConvAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070016
Kevin Cheng79a41992021-08-31 16:04:40 -070017struct TransposeConvAttribute;
18struct TransposeConvAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070019
Kevin Cheng38d214c2021-10-15 15:49:19 -070020struct PadAttribute;
21struct PadAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070022
23struct AxisAttribute;
24struct AxisAttributeBuilder;
25
26struct ReshapeAttribute;
27struct ReshapeAttributeBuilder;
28
29struct SliceAttribute;
30struct SliceAttributeBuilder;
31
32struct TileAttribute;
33struct TileAttributeBuilder;
34
35struct ResizeAttribute;
36struct ResizeAttributeBuilder;
37
38struct ClampAttribute;
39struct ClampAttributeBuilder;
40
41struct RescaleAttribute;
42struct RescaleAttributeBuilder;
43
44struct MulAttribute;
45struct MulAttributeBuilder;
46
47struct ArithmeticRightShiftAttribute;
48struct ArithmeticRightShiftAttributeBuilder;
49
50struct CondIfAttribute;
51struct CondIfAttributeBuilder;
52
53struct WhileLoopAttribute;
54struct WhileLoopAttributeBuilder;
55
Kevin Cheng38d214c2021-10-15 15:49:19 -070056struct TransposeAttribute;
57struct TransposeAttributeBuilder;
58
59struct TableAttribute;
60struct TableAttributeBuilder;
61
Eric Kunzebdcc3fe2022-06-07 05:17:37 +000062struct MatMulAttribute;
63struct MatMulAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070064
Eric Kunzebdcc3fe2022-06-07 05:17:37 +000065struct FullyConnectedAttribute;
66struct FullyConnectedAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070067
Eric Kunzebdcc3fe2022-06-07 05:17:37 +000068struct NegateAttribute;
69struct NegateAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070070
71struct Version;
72struct VersionBuilder;
73
74struct TosaTensor;
75struct TosaTensorBuilder;
76
77struct TosaOperator;
78struct TosaOperatorBuilder;
79
80struct TosaBasicBlock;
81struct TosaBasicBlockBuilder;
82
83struct TosaGraph;
84struct TosaGraphBuilder;
85
Eric Kunze4381b3d2022-08-22 18:15:41 +000086enum DType : uint32_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -070087 DType_UNKNOWN = 0,
88 DType_BOOL = 1,
89 DType_UINT8 = 2,
90 DType_INT4 = 3,
91 DType_INT8 = 4,
92 DType_INT16 = 5,
93 DType_INT32 = 6,
94 DType_INT48 = 7,
Jeremy Johnsone1072a92022-09-27 12:44:11 +010095 DType_FP32 = 8,
Jeremy Johnson41027732022-05-25 17:52:29 +010096 DType_UINT16 = 9,
James Ward485a11d2022-08-05 13:48:37 +010097 DType_FP16 = 10,
James Ward34a62792022-10-18 17:27:40 +010098 DType_BF16 = 11,
Eric Kunze2364dcd2021-04-26 11:06:57 -070099 DType_MIN = DType_UNKNOWN,
James Ward34a62792022-10-18 17:27:40 +0100100 DType_MAX = DType_BF16
Eric Kunze2364dcd2021-04-26 11:06:57 -0700101};
102
James Ward34a62792022-10-18 17:27:40 +0100103inline const DType (&EnumValuesDType())[12] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700104 static const DType values[] = {
105 DType_UNKNOWN,
106 DType_BOOL,
107 DType_UINT8,
108 DType_INT4,
109 DType_INT8,
110 DType_INT16,
111 DType_INT32,
112 DType_INT48,
Jeremy Johnsone1072a92022-09-27 12:44:11 +0100113 DType_FP32,
James Ward485a11d2022-08-05 13:48:37 +0100114 DType_UINT16,
James Ward34a62792022-10-18 17:27:40 +0100115 DType_FP16,
116 DType_BF16
Eric Kunze2364dcd2021-04-26 11:06:57 -0700117 };
118 return values;
119}
120
121inline const char * const *EnumNamesDType() {
James Ward34a62792022-10-18 17:27:40 +0100122 static const char * const names[13] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700123 "UNKNOWN",
124 "BOOL",
125 "UINT8",
126 "INT4",
127 "INT8",
128 "INT16",
129 "INT32",
130 "INT48",
Jeremy Johnsone1072a92022-09-27 12:44:11 +0100131 "FP32",
Jeremy Johnson41027732022-05-25 17:52:29 +0100132 "UINT16",
James Ward485a11d2022-08-05 13:48:37 +0100133 "FP16",
James Ward34a62792022-10-18 17:27:40 +0100134 "BF16",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700135 nullptr
136 };
137 return names;
138}
139
140inline const char *EnumNameDType(DType e) {
James Ward34a62792022-10-18 17:27:40 +0100141 if (flatbuffers::IsOutRange(e, DType_UNKNOWN, DType_BF16)) return "";
Eric Kunze2364dcd2021-04-26 11:06:57 -0700142 const size_t index = static_cast<size_t>(e);
143 return EnumNamesDType()[index];
144}
145
Eric Kunze4381b3d2022-08-22 18:15:41 +0000146enum ResizeMode : uint32_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700147 ResizeMode_UNKNOWN = 0,
148 ResizeMode_NEAREST = 1,
149 ResizeMode_BILINEAR = 2,
150 ResizeMode_MIN = ResizeMode_UNKNOWN,
151 ResizeMode_MAX = ResizeMode_BILINEAR
152};
153
154inline const ResizeMode (&EnumValuesResizeMode())[3] {
155 static const ResizeMode values[] = {
156 ResizeMode_UNKNOWN,
157 ResizeMode_NEAREST,
158 ResizeMode_BILINEAR
159 };
160 return values;
161}
162
163inline const char * const *EnumNamesResizeMode() {
164 static const char * const names[4] = {
165 "UNKNOWN",
166 "NEAREST",
167 "BILINEAR",
168 nullptr
169 };
170 return names;
171}
172
173inline const char *EnumNameResizeMode(ResizeMode e) {
174 if (flatbuffers::IsOutRange(e, ResizeMode_UNKNOWN, ResizeMode_BILINEAR)) return "";
175 const size_t index = static_cast<size_t>(e);
176 return EnumNamesResizeMode()[index];
177}
178
Eric Kunze4381b3d2022-08-22 18:15:41 +0000179enum Op : uint32_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700180 Op_UNKNOWN = 0,
181 Op_ARGMAX = 1,
182 Op_AVG_POOL2D = 2,
183 Op_CONV2D = 3,
184 Op_CONV3D = 4,
185 Op_DEPTHWISE_CONV2D = 5,
186 Op_FULLY_CONNECTED = 6,
187 Op_MATMUL = 7,
188 Op_MAX_POOL2D = 8,
189 Op_TRANSPOSE_CONV2D = 9,
190 Op_CLAMP = 10,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700191 Op_RESERVED = 11,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700192 Op_SIGMOID = 12,
193 Op_TANH = 13,
194 Op_ADD = 14,
195 Op_ARITHMETIC_RIGHT_SHIFT = 15,
196 Op_BITWISE_AND = 16,
197 Op_BITWISE_OR = 17,
198 Op_BITWISE_XOR = 18,
Matthew Haddonab905ec2021-08-23 16:40:57 +0100199 Op_INTDIV = 19,
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700200 Op_LOGICAL_AND = 20,
201 Op_LOGICAL_LEFT_SHIFT = 21,
202 Op_LOGICAL_RIGHT_SHIFT = 22,
203 Op_LOGICAL_OR = 23,
204 Op_LOGICAL_XOR = 24,
205 Op_MAXIMUM = 25,
206 Op_MINIMUM = 26,
207 Op_MUL = 27,
208 Op_POW = 28,
209 Op_SUB = 29,
210 Op_TABLE = 30,
211 Op_ABS = 31,
212 Op_BITWISE_NOT = 32,
213 Op_CEIL = 33,
214 Op_CLZ = 34,
215 Op_EXP = 35,
216 Op_FLOOR = 36,
217 Op_LOG = 37,
218 Op_LOGICAL_NOT = 38,
219 Op_NEGATE = 39,
220 Op_RECIPROCAL = 40,
221 Op_RSQRT = 41,
222 Op_SELECT = 42,
223 Op_EQUAL = 43,
224 Op_GREATER = 44,
225 Op_GREATER_EQUAL = 45,
226 Op_REDUCE_ANY = 46,
227 Op_REDUCE_ALL = 47,
228 Op_REDUCE_MAX = 48,
229 Op_REDUCE_MIN = 49,
230 Op_REDUCE_PRODUCT = 50,
231 Op_REDUCE_SUM = 51,
232 Op_CONCAT = 52,
233 Op_PAD = 53,
234 Op_RESHAPE = 54,
235 Op_REVERSE = 55,
236 Op_SLICE = 56,
237 Op_TILE = 57,
238 Op_TRANSPOSE = 58,
239 Op_GATHER = 59,
240 Op_SCATTER = 60,
241 Op_RESIZE = 61,
242 Op_CAST = 62,
243 Op_RESCALE = 63,
244 Op_CONST = 64,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700245 Op_IDENTITY = 65,
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700246 Op_CUSTOM = 66,
247 Op_COND_IF = 67,
248 Op_WHILE_LOOP = 68,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700249 Op_MIN = Op_UNKNOWN,
250 Op_MAX = Op_WHILE_LOOP
251};
252
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700253inline const Op (&EnumValuesOp())[69] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700254 static const Op values[] = {
255 Op_UNKNOWN,
256 Op_ARGMAX,
257 Op_AVG_POOL2D,
258 Op_CONV2D,
259 Op_CONV3D,
260 Op_DEPTHWISE_CONV2D,
261 Op_FULLY_CONNECTED,
262 Op_MATMUL,
263 Op_MAX_POOL2D,
264 Op_TRANSPOSE_CONV2D,
265 Op_CLAMP,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700266 Op_RESERVED,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700267 Op_SIGMOID,
268 Op_TANH,
269 Op_ADD,
270 Op_ARITHMETIC_RIGHT_SHIFT,
271 Op_BITWISE_AND,
272 Op_BITWISE_OR,
273 Op_BITWISE_XOR,
Matthew Haddonab905ec2021-08-23 16:40:57 +0100274 Op_INTDIV,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700275 Op_LOGICAL_AND,
276 Op_LOGICAL_LEFT_SHIFT,
277 Op_LOGICAL_RIGHT_SHIFT,
278 Op_LOGICAL_OR,
279 Op_LOGICAL_XOR,
280 Op_MAXIMUM,
281 Op_MINIMUM,
282 Op_MUL,
283 Op_POW,
284 Op_SUB,
285 Op_TABLE,
286 Op_ABS,
287 Op_BITWISE_NOT,
288 Op_CEIL,
289 Op_CLZ,
290 Op_EXP,
291 Op_FLOOR,
292 Op_LOG,
293 Op_LOGICAL_NOT,
294 Op_NEGATE,
295 Op_RECIPROCAL,
296 Op_RSQRT,
297 Op_SELECT,
298 Op_EQUAL,
299 Op_GREATER,
300 Op_GREATER_EQUAL,
301 Op_REDUCE_ANY,
302 Op_REDUCE_ALL,
303 Op_REDUCE_MAX,
304 Op_REDUCE_MIN,
305 Op_REDUCE_PRODUCT,
306 Op_REDUCE_SUM,
307 Op_CONCAT,
308 Op_PAD,
309 Op_RESHAPE,
310 Op_REVERSE,
311 Op_SLICE,
312 Op_TILE,
313 Op_TRANSPOSE,
314 Op_GATHER,
315 Op_SCATTER,
316 Op_RESIZE,
317 Op_CAST,
318 Op_RESCALE,
319 Op_CONST,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700320 Op_IDENTITY,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700321 Op_CUSTOM,
322 Op_COND_IF,
323 Op_WHILE_LOOP
324 };
325 return values;
326}
327
328inline const char * const *EnumNamesOp() {
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700329 static const char * const names[70] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700330 "UNKNOWN",
331 "ARGMAX",
332 "AVG_POOL2D",
333 "CONV2D",
334 "CONV3D",
335 "DEPTHWISE_CONV2D",
336 "FULLY_CONNECTED",
337 "MATMUL",
338 "MAX_POOL2D",
339 "TRANSPOSE_CONV2D",
340 "CLAMP",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700341 "RESERVED",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700342 "SIGMOID",
343 "TANH",
344 "ADD",
345 "ARITHMETIC_RIGHT_SHIFT",
346 "BITWISE_AND",
347 "BITWISE_OR",
348 "BITWISE_XOR",
Matthew Haddonab905ec2021-08-23 16:40:57 +0100349 "INTDIV",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700350 "LOGICAL_AND",
351 "LOGICAL_LEFT_SHIFT",
352 "LOGICAL_RIGHT_SHIFT",
353 "LOGICAL_OR",
354 "LOGICAL_XOR",
355 "MAXIMUM",
356 "MINIMUM",
357 "MUL",
358 "POW",
359 "SUB",
360 "TABLE",
361 "ABS",
362 "BITWISE_NOT",
363 "CEIL",
364 "CLZ",
365 "EXP",
366 "FLOOR",
367 "LOG",
368 "LOGICAL_NOT",
369 "NEGATE",
370 "RECIPROCAL",
371 "RSQRT",
372 "SELECT",
373 "EQUAL",
374 "GREATER",
375 "GREATER_EQUAL",
376 "REDUCE_ANY",
377 "REDUCE_ALL",
378 "REDUCE_MAX",
379 "REDUCE_MIN",
380 "REDUCE_PRODUCT",
381 "REDUCE_SUM",
382 "CONCAT",
383 "PAD",
384 "RESHAPE",
385 "REVERSE",
386 "SLICE",
387 "TILE",
388 "TRANSPOSE",
389 "GATHER",
390 "SCATTER",
391 "RESIZE",
392 "CAST",
393 "RESCALE",
394 "CONST",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700395 "IDENTITY",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700396 "CUSTOM",
397 "COND_IF",
398 "WHILE_LOOP",
399 nullptr
400 };
401 return names;
402}
403
404inline const char *EnumNameOp(Op e) {
405 if (flatbuffers::IsOutRange(e, Op_UNKNOWN, Op_WHILE_LOOP)) return "";
406 const size_t index = static_cast<size_t>(e);
407 return EnumNamesOp()[index];
408}
409
Eric Kunze4381b3d2022-08-22 18:15:41 +0000410enum Attribute : uint8_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700411 Attribute_NONE = 0,
Kevin Cheng79a41992021-08-31 16:04:40 -0700412 Attribute_PoolAttribute = 1,
413 Attribute_ConvAttribute = 2,
414 Attribute_TransposeConvAttribute = 3,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700415 Attribute_PadAttribute = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700416 Attribute_AxisAttribute = 5,
417 Attribute_ReshapeAttribute = 6,
418 Attribute_SliceAttribute = 7,
419 Attribute_TileAttribute = 8,
420 Attribute_ResizeAttribute = 9,
421 Attribute_ClampAttribute = 10,
422 Attribute_RescaleAttribute = 11,
423 Attribute_MulAttribute = 12,
424 Attribute_ArithmeticRightShiftAttribute = 13,
425 Attribute_CondIfAttribute = 14,
426 Attribute_WhileLoopAttribute = 15,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700427 Attribute_TransposeAttribute = 16,
428 Attribute_TableAttribute = 17,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000429 Attribute_MatMulAttribute = 18,
430 Attribute_FullyConnectedAttribute = 19,
431 Attribute_NegateAttribute = 20,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700432 Attribute_MIN = Attribute_NONE,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000433 Attribute_MAX = Attribute_NegateAttribute
Eric Kunze2364dcd2021-04-26 11:06:57 -0700434};
435
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000436inline const Attribute (&EnumValuesAttribute())[21] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700437 static const Attribute values[] = {
438 Attribute_NONE,
Kevin Cheng79a41992021-08-31 16:04:40 -0700439 Attribute_PoolAttribute,
440 Attribute_ConvAttribute,
441 Attribute_TransposeConvAttribute,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700442 Attribute_PadAttribute,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700443 Attribute_AxisAttribute,
444 Attribute_ReshapeAttribute,
445 Attribute_SliceAttribute,
446 Attribute_TileAttribute,
447 Attribute_ResizeAttribute,
448 Attribute_ClampAttribute,
449 Attribute_RescaleAttribute,
450 Attribute_MulAttribute,
451 Attribute_ArithmeticRightShiftAttribute,
452 Attribute_CondIfAttribute,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700453 Attribute_WhileLoopAttribute,
454 Attribute_TransposeAttribute,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000455 Attribute_TableAttribute,
456 Attribute_MatMulAttribute,
457 Attribute_FullyConnectedAttribute,
458 Attribute_NegateAttribute
Eric Kunze2364dcd2021-04-26 11:06:57 -0700459 };
460 return values;
461}
462
463inline const char * const *EnumNamesAttribute() {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000464 static const char * const names[22] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700465 "NONE",
Kevin Cheng79a41992021-08-31 16:04:40 -0700466 "PoolAttribute",
467 "ConvAttribute",
468 "TransposeConvAttribute",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700469 "PadAttribute",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700470 "AxisAttribute",
471 "ReshapeAttribute",
472 "SliceAttribute",
473 "TileAttribute",
474 "ResizeAttribute",
475 "ClampAttribute",
476 "RescaleAttribute",
477 "MulAttribute",
478 "ArithmeticRightShiftAttribute",
479 "CondIfAttribute",
480 "WhileLoopAttribute",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700481 "TransposeAttribute",
482 "TableAttribute",
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000483 "MatMulAttribute",
484 "FullyConnectedAttribute",
485 "NegateAttribute",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700486 nullptr
487 };
488 return names;
489}
490
491inline const char *EnumNameAttribute(Attribute e) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000492 if (flatbuffers::IsOutRange(e, Attribute_NONE, Attribute_NegateAttribute)) return "";
Eric Kunze2364dcd2021-04-26 11:06:57 -0700493 const size_t index = static_cast<size_t>(e);
494 return EnumNamesAttribute()[index];
495}
496
497template<typename T> struct AttributeTraits {
498 static const Attribute enum_value = Attribute_NONE;
499};
500
Kevin Cheng79a41992021-08-31 16:04:40 -0700501template<> struct AttributeTraits<tosa::PoolAttribute> {
502 static const Attribute enum_value = Attribute_PoolAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700503};
504
Kevin Cheng79a41992021-08-31 16:04:40 -0700505template<> struct AttributeTraits<tosa::ConvAttribute> {
506 static const Attribute enum_value = Attribute_ConvAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700507};
508
Kevin Cheng79a41992021-08-31 16:04:40 -0700509template<> struct AttributeTraits<tosa::TransposeConvAttribute> {
510 static const Attribute enum_value = Attribute_TransposeConvAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700511};
512
Kevin Cheng38d214c2021-10-15 15:49:19 -0700513template<> struct AttributeTraits<tosa::PadAttribute> {
514 static const Attribute enum_value = Attribute_PadAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700515};
516
517template<> struct AttributeTraits<tosa::AxisAttribute> {
518 static const Attribute enum_value = Attribute_AxisAttribute;
519};
520
521template<> struct AttributeTraits<tosa::ReshapeAttribute> {
522 static const Attribute enum_value = Attribute_ReshapeAttribute;
523};
524
525template<> struct AttributeTraits<tosa::SliceAttribute> {
526 static const Attribute enum_value = Attribute_SliceAttribute;
527};
528
529template<> struct AttributeTraits<tosa::TileAttribute> {
530 static const Attribute enum_value = Attribute_TileAttribute;
531};
532
533template<> struct AttributeTraits<tosa::ResizeAttribute> {
534 static const Attribute enum_value = Attribute_ResizeAttribute;
535};
536
537template<> struct AttributeTraits<tosa::ClampAttribute> {
538 static const Attribute enum_value = Attribute_ClampAttribute;
539};
540
541template<> struct AttributeTraits<tosa::RescaleAttribute> {
542 static const Attribute enum_value = Attribute_RescaleAttribute;
543};
544
545template<> struct AttributeTraits<tosa::MulAttribute> {
546 static const Attribute enum_value = Attribute_MulAttribute;
547};
548
549template<> struct AttributeTraits<tosa::ArithmeticRightShiftAttribute> {
550 static const Attribute enum_value = Attribute_ArithmeticRightShiftAttribute;
551};
552
553template<> struct AttributeTraits<tosa::CondIfAttribute> {
554 static const Attribute enum_value = Attribute_CondIfAttribute;
555};
556
557template<> struct AttributeTraits<tosa::WhileLoopAttribute> {
558 static const Attribute enum_value = Attribute_WhileLoopAttribute;
559};
560
Kevin Cheng38d214c2021-10-15 15:49:19 -0700561template<> struct AttributeTraits<tosa::TransposeAttribute> {
562 static const Attribute enum_value = Attribute_TransposeAttribute;
563};
564
565template<> struct AttributeTraits<tosa::TableAttribute> {
566 static const Attribute enum_value = Attribute_TableAttribute;
567};
568
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000569template<> struct AttributeTraits<tosa::MatMulAttribute> {
570 static const Attribute enum_value = Attribute_MatMulAttribute;
571};
572
573template<> struct AttributeTraits<tosa::FullyConnectedAttribute> {
574 static const Attribute enum_value = Attribute_FullyConnectedAttribute;
575};
576
577template<> struct AttributeTraits<tosa::NegateAttribute> {
578 static const Attribute enum_value = Attribute_NegateAttribute;
579};
580
Eric Kunze2364dcd2021-04-26 11:06:57 -0700581bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type);
582bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types);
583
Kevin Cheng79a41992021-08-31 16:04:40 -0700584struct PoolAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
585 typedef PoolAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700586 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -0700587 VT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700588 VT_KERNEL = 6,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000589 VT_STRIDE = 8,
590 VT_INPUT_ZP = 10,
James Ward485a11d2022-08-05 13:48:37 +0100591 VT_OUTPUT_ZP = 12,
592 VT_ACCUM_DTYPE = 14
Eric Kunze2364dcd2021-04-26 11:06:57 -0700593 };
TatWai Chong7be71652022-05-10 17:26:20 -0700594 const flatbuffers::Vector<int32_t> *pad() const {
595 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700596 }
597 const flatbuffers::Vector<int32_t> *kernel() const {
598 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_KERNEL);
599 }
600 const flatbuffers::Vector<int32_t> *stride() const {
601 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
602 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000603 int32_t input_zp() const {
604 return GetField<int32_t>(VT_INPUT_ZP, 0);
605 }
606 int32_t output_zp() const {
607 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
608 }
James Ward485a11d2022-08-05 13:48:37 +0100609 tosa::DType accum_dtype() const {
610 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
611 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700612 bool Verify(flatbuffers::Verifier &verifier) const {
613 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -0700614 VerifyOffset(verifier, VT_PAD) &&
615 verifier.VerifyVector(pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700616 VerifyOffset(verifier, VT_KERNEL) &&
617 verifier.VerifyVector(kernel()) &&
618 VerifyOffset(verifier, VT_STRIDE) &&
619 verifier.VerifyVector(stride()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000620 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
621 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +0100622 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700623 verifier.EndTable();
624 }
625};
626
Kevin Cheng79a41992021-08-31 16:04:40 -0700627struct PoolAttributeBuilder {
628 typedef PoolAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700629 flatbuffers::FlatBufferBuilder &fbb_;
630 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -0700631 void add_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad) {
632 fbb_.AddOffset(PoolAttribute::VT_PAD, pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700633 }
634 void add_kernel(flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700635 fbb_.AddOffset(PoolAttribute::VT_KERNEL, kernel);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700636 }
637 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700638 fbb_.AddOffset(PoolAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700639 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000640 void add_input_zp(int32_t input_zp) {
641 fbb_.AddElement<int32_t>(PoolAttribute::VT_INPUT_ZP, input_zp, 0);
642 }
643 void add_output_zp(int32_t output_zp) {
644 fbb_.AddElement<int32_t>(PoolAttribute::VT_OUTPUT_ZP, output_zp, 0);
645 }
James Ward485a11d2022-08-05 13:48:37 +0100646 void add_accum_dtype(tosa::DType accum_dtype) {
647 fbb_.AddElement<uint32_t>(PoolAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
648 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700649 explicit PoolAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700650 : fbb_(_fbb) {
651 start_ = fbb_.StartTable();
652 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700653 flatbuffers::Offset<PoolAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700654 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700655 auto o = flatbuffers::Offset<PoolAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700656 return o;
657 }
658};
659
Kevin Cheng79a41992021-08-31 16:04:40 -0700660inline flatbuffers::Offset<PoolAttribute> CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700661 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700662 flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700663 flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000664 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
665 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100666 int32_t output_zp = 0,
667 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700668 PoolAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +0100669 builder_.add_accum_dtype(accum_dtype);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000670 builder_.add_output_zp(output_zp);
671 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700672 builder_.add_stride(stride);
673 builder_.add_kernel(kernel);
TatWai Chong7be71652022-05-10 17:26:20 -0700674 builder_.add_pad(pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700675 return builder_.Finish();
676}
677
Kevin Cheng79a41992021-08-31 16:04:40 -0700678inline flatbuffers::Offset<PoolAttribute> CreatePoolAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700679 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700680 const std::vector<int32_t> *pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700681 const std::vector<int32_t> *kernel = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000682 const std::vector<int32_t> *stride = nullptr,
683 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100684 int32_t output_zp = 0,
685 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
TatWai Chong7be71652022-05-10 17:26:20 -0700686 auto pad__ = pad ? _fbb.CreateVector<int32_t>(*pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700687 auto kernel__ = kernel ? _fbb.CreateVector<int32_t>(*kernel) : 0;
688 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700689 return tosa::CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700690 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700691 pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700692 kernel__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000693 stride__,
694 input_zp,
James Ward485a11d2022-08-05 13:48:37 +0100695 output_zp,
696 accum_dtype);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700697}
698
Kevin Cheng79a41992021-08-31 16:04:40 -0700699struct ConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
700 typedef ConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700701 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -0700702 VT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700703 VT_STRIDE = 6,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000704 VT_DILATION = 8,
705 VT_INPUT_ZP = 10,
James Ward485a11d2022-08-05 13:48:37 +0100706 VT_WEIGHT_ZP = 12,
707 VT_ACCUM_DTYPE = 14
Eric Kunze2364dcd2021-04-26 11:06:57 -0700708 };
TatWai Chong7be71652022-05-10 17:26:20 -0700709 const flatbuffers::Vector<int32_t> *pad() const {
710 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700711 }
712 const flatbuffers::Vector<int32_t> *stride() const {
713 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
714 }
715 const flatbuffers::Vector<int32_t> *dilation() const {
716 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_DILATION);
717 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000718 int32_t input_zp() const {
719 return GetField<int32_t>(VT_INPUT_ZP, 0);
720 }
721 int32_t weight_zp() const {
722 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
723 }
James Ward485a11d2022-08-05 13:48:37 +0100724 tosa::DType accum_dtype() const {
725 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
726 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700727 bool Verify(flatbuffers::Verifier &verifier) const {
728 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -0700729 VerifyOffset(verifier, VT_PAD) &&
730 verifier.VerifyVector(pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700731 VerifyOffset(verifier, VT_STRIDE) &&
732 verifier.VerifyVector(stride()) &&
733 VerifyOffset(verifier, VT_DILATION) &&
734 verifier.VerifyVector(dilation()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000735 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
736 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +0100737 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700738 verifier.EndTable();
739 }
740};
741
Kevin Cheng79a41992021-08-31 16:04:40 -0700742struct ConvAttributeBuilder {
743 typedef ConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700744 flatbuffers::FlatBufferBuilder &fbb_;
745 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -0700746 void add_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad) {
747 fbb_.AddOffset(ConvAttribute::VT_PAD, pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700748 }
749 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700750 fbb_.AddOffset(ConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700751 }
752 void add_dilation(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700753 fbb_.AddOffset(ConvAttribute::VT_DILATION, dilation);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700754 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000755 void add_input_zp(int32_t input_zp) {
756 fbb_.AddElement<int32_t>(ConvAttribute::VT_INPUT_ZP, input_zp, 0);
757 }
758 void add_weight_zp(int32_t weight_zp) {
759 fbb_.AddElement<int32_t>(ConvAttribute::VT_WEIGHT_ZP, weight_zp, 0);
760 }
James Ward485a11d2022-08-05 13:48:37 +0100761 void add_accum_dtype(tosa::DType accum_dtype) {
762 fbb_.AddElement<uint32_t>(ConvAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
763 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700764 explicit ConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700765 : fbb_(_fbb) {
766 start_ = fbb_.StartTable();
767 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700768 flatbuffers::Offset<ConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700769 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700770 auto o = flatbuffers::Offset<ConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700771 return o;
772 }
773};
774
Kevin Cheng79a41992021-08-31 16:04:40 -0700775inline flatbuffers::Offset<ConvAttribute> CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700776 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700777 flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700778 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000779 flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation = 0,
780 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100781 int32_t weight_zp = 0,
782 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700783 ConvAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +0100784 builder_.add_accum_dtype(accum_dtype);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000785 builder_.add_weight_zp(weight_zp);
786 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700787 builder_.add_dilation(dilation);
788 builder_.add_stride(stride);
TatWai Chong7be71652022-05-10 17:26:20 -0700789 builder_.add_pad(pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700790 return builder_.Finish();
791}
792
Kevin Cheng79a41992021-08-31 16:04:40 -0700793inline flatbuffers::Offset<ConvAttribute> CreateConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700794 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700795 const std::vector<int32_t> *pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700796 const std::vector<int32_t> *stride = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000797 const std::vector<int32_t> *dilation = nullptr,
798 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100799 int32_t weight_zp = 0,
800 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
TatWai Chong7be71652022-05-10 17:26:20 -0700801 auto pad__ = pad ? _fbb.CreateVector<int32_t>(*pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700802 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
803 auto dilation__ = dilation ? _fbb.CreateVector<int32_t>(*dilation) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700804 return tosa::CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700805 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700806 pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700807 stride__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000808 dilation__,
809 input_zp,
James Ward485a11d2022-08-05 13:48:37 +0100810 weight_zp,
811 accum_dtype);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700812}
813
Kevin Cheng79a41992021-08-31 16:04:40 -0700814struct TransposeConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
815 typedef TransposeConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700816 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700817 VT_OUT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700818 VT_STRIDE = 6,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000819 VT_OUTPUT_SHAPE = 8,
820 VT_INPUT_ZP = 10,
James Ward485a11d2022-08-05 13:48:37 +0100821 VT_WEIGHT_ZP = 12,
822 VT_ACCUM_DTYPE = 14
Eric Kunze2364dcd2021-04-26 11:06:57 -0700823 };
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700824 const flatbuffers::Vector<int32_t> *out_pad() const {
825 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700826 }
827 const flatbuffers::Vector<int32_t> *stride() const {
828 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
829 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700830 const flatbuffers::Vector<int32_t> *output_shape() const {
831 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUT_SHAPE);
832 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000833 int32_t input_zp() const {
834 return GetField<int32_t>(VT_INPUT_ZP, 0);
835 }
836 int32_t weight_zp() const {
837 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
838 }
James Ward485a11d2022-08-05 13:48:37 +0100839 tosa::DType accum_dtype() const {
840 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
841 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700842 bool Verify(flatbuffers::Verifier &verifier) const {
843 return VerifyTableStart(verifier) &&
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700844 VerifyOffset(verifier, VT_OUT_PAD) &&
845 verifier.VerifyVector(out_pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700846 VerifyOffset(verifier, VT_STRIDE) &&
847 verifier.VerifyVector(stride()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700848 VerifyOffset(verifier, VT_OUTPUT_SHAPE) &&
849 verifier.VerifyVector(output_shape()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000850 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
851 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +0100852 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700853 verifier.EndTable();
854 }
855};
856
Kevin Cheng79a41992021-08-31 16:04:40 -0700857struct TransposeConvAttributeBuilder {
858 typedef TransposeConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700859 flatbuffers::FlatBufferBuilder &fbb_;
860 flatbuffers::uoffset_t start_;
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700861 void add_out_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> out_pad) {
862 fbb_.AddOffset(TransposeConvAttribute::VT_OUT_PAD, out_pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700863 }
864 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700865 fbb_.AddOffset(TransposeConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700866 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700867 void add_output_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700868 fbb_.AddOffset(TransposeConvAttribute::VT_OUTPUT_SHAPE, output_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700869 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000870 void add_input_zp(int32_t input_zp) {
871 fbb_.AddElement<int32_t>(TransposeConvAttribute::VT_INPUT_ZP, input_zp, 0);
872 }
873 void add_weight_zp(int32_t weight_zp) {
874 fbb_.AddElement<int32_t>(TransposeConvAttribute::VT_WEIGHT_ZP, weight_zp, 0);
875 }
James Ward485a11d2022-08-05 13:48:37 +0100876 void add_accum_dtype(tosa::DType accum_dtype) {
877 fbb_.AddElement<uint32_t>(TransposeConvAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
878 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700879 explicit TransposeConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700880 : fbb_(_fbb) {
881 start_ = fbb_.StartTable();
882 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700883 flatbuffers::Offset<TransposeConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700884 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700885 auto o = flatbuffers::Offset<TransposeConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700886 return o;
887 }
888};
889
Kevin Cheng79a41992021-08-31 16:04:40 -0700890inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700891 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700892 flatbuffers::Offset<flatbuffers::Vector<int32_t>> out_pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700893 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000894 flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape = 0,
895 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100896 int32_t weight_zp = 0,
897 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700898 TransposeConvAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +0100899 builder_.add_accum_dtype(accum_dtype);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000900 builder_.add_weight_zp(weight_zp);
901 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700902 builder_.add_output_shape(output_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700903 builder_.add_stride(stride);
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700904 builder_.add_out_pad(out_pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700905 return builder_.Finish();
906}
907
Kevin Cheng79a41992021-08-31 16:04:40 -0700908inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700909 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700910 const std::vector<int32_t> *out_pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700911 const std::vector<int32_t> *stride = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000912 const std::vector<int32_t> *output_shape = nullptr,
913 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100914 int32_t weight_zp = 0,
915 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700916 auto out_pad__ = out_pad ? _fbb.CreateVector<int32_t>(*out_pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700917 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700918 auto output_shape__ = output_shape ? _fbb.CreateVector<int32_t>(*output_shape) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700919 return tosa::CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700920 _fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700921 out_pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700922 stride__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000923 output_shape__,
924 input_zp,
James Ward485a11d2022-08-05 13:48:37 +0100925 weight_zp,
926 accum_dtype);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700927}
928
Kevin Cheng38d214c2021-10-15 15:49:19 -0700929struct PadAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
930 typedef PadAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700931 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Kevin Cheng38d214c2021-10-15 15:49:19 -0700932 VT_PADDING = 4,
933 VT_PAD_CONST_INT = 6,
934 VT_PAD_CONST_FP = 8
Eric Kunze2364dcd2021-04-26 11:06:57 -0700935 };
Kevin Cheng38d214c2021-10-15 15:49:19 -0700936 const flatbuffers::Vector<int32_t> *padding() const {
937 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PADDING);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700938 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700939 int32_t pad_const_int() const {
940 return GetField<int32_t>(VT_PAD_CONST_INT, 0);
941 }
942 float pad_const_fp() const {
943 return GetField<float>(VT_PAD_CONST_FP, 0.0f);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700944 }
945 bool Verify(flatbuffers::Verifier &verifier) const {
946 return VerifyTableStart(verifier) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -0700947 VerifyOffset(verifier, VT_PADDING) &&
948 verifier.VerifyVector(padding()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000949 VerifyField<int32_t>(verifier, VT_PAD_CONST_INT, 4) &&
950 VerifyField<float>(verifier, VT_PAD_CONST_FP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700951 verifier.EndTable();
952 }
953};
954
Kevin Cheng38d214c2021-10-15 15:49:19 -0700955struct PadAttributeBuilder {
956 typedef PadAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700957 flatbuffers::FlatBufferBuilder &fbb_;
958 flatbuffers::uoffset_t start_;
Kevin Cheng38d214c2021-10-15 15:49:19 -0700959 void add_padding(flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding) {
960 fbb_.AddOffset(PadAttribute::VT_PADDING, padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700961 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700962 void add_pad_const_int(int32_t pad_const_int) {
963 fbb_.AddElement<int32_t>(PadAttribute::VT_PAD_CONST_INT, pad_const_int, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700964 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700965 void add_pad_const_fp(float pad_const_fp) {
966 fbb_.AddElement<float>(PadAttribute::VT_PAD_CONST_FP, pad_const_fp, 0.0f);
967 }
968 explicit PadAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700969 : fbb_(_fbb) {
970 start_ = fbb_.StartTable();
971 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700972 flatbuffers::Offset<PadAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700973 const auto end = fbb_.EndTable(start_);
Kevin Cheng38d214c2021-10-15 15:49:19 -0700974 auto o = flatbuffers::Offset<PadAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700975 return o;
976 }
977};
978
Kevin Cheng38d214c2021-10-15 15:49:19 -0700979inline flatbuffers::Offset<PadAttribute> CreatePadAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700980 flatbuffers::FlatBufferBuilder &_fbb,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700981 flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding = 0,
982 int32_t pad_const_int = 0,
983 float pad_const_fp = 0.0f) {
984 PadAttributeBuilder builder_(_fbb);
985 builder_.add_pad_const_fp(pad_const_fp);
986 builder_.add_pad_const_int(pad_const_int);
987 builder_.add_padding(padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700988 return builder_.Finish();
989}
990
Kevin Cheng38d214c2021-10-15 15:49:19 -0700991inline flatbuffers::Offset<PadAttribute> CreatePadAttributeDirect(
992 flatbuffers::FlatBufferBuilder &_fbb,
993 const std::vector<int32_t> *padding = nullptr,
994 int32_t pad_const_int = 0,
995 float pad_const_fp = 0.0f) {
996 auto padding__ = padding ? _fbb.CreateVector<int32_t>(*padding) : 0;
997 return tosa::CreatePadAttribute(
998 _fbb,
999 padding__,
1000 pad_const_int,
1001 pad_const_fp);
1002}
1003
Eric Kunze2364dcd2021-04-26 11:06:57 -07001004struct AxisAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1005 typedef AxisAttributeBuilder Builder;
1006 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1007 VT_AXIS = 4
1008 };
1009 int32_t axis() const {
1010 return GetField<int32_t>(VT_AXIS, 0);
1011 }
1012 bool Verify(flatbuffers::Verifier &verifier) const {
1013 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001014 VerifyField<int32_t>(verifier, VT_AXIS, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001015 verifier.EndTable();
1016 }
1017};
1018
1019struct AxisAttributeBuilder {
1020 typedef AxisAttribute Table;
1021 flatbuffers::FlatBufferBuilder &fbb_;
1022 flatbuffers::uoffset_t start_;
1023 void add_axis(int32_t axis) {
1024 fbb_.AddElement<int32_t>(AxisAttribute::VT_AXIS, axis, 0);
1025 }
1026 explicit AxisAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1027 : fbb_(_fbb) {
1028 start_ = fbb_.StartTable();
1029 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001030 flatbuffers::Offset<AxisAttribute> Finish() {
1031 const auto end = fbb_.EndTable(start_);
1032 auto o = flatbuffers::Offset<AxisAttribute>(end);
1033 return o;
1034 }
1035};
1036
1037inline flatbuffers::Offset<AxisAttribute> CreateAxisAttribute(
1038 flatbuffers::FlatBufferBuilder &_fbb,
1039 int32_t axis = 0) {
1040 AxisAttributeBuilder builder_(_fbb);
1041 builder_.add_axis(axis);
1042 return builder_.Finish();
1043}
1044
1045struct ReshapeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1046 typedef ReshapeAttributeBuilder Builder;
1047 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001048 VT_NEW_SHAPE = 4
Eric Kunze2364dcd2021-04-26 11:06:57 -07001049 };
TatWai Chong7be71652022-05-10 17:26:20 -07001050 const flatbuffers::Vector<int32_t> *new_shape() const {
1051 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_NEW_SHAPE);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001052 }
1053 bool Verify(flatbuffers::Verifier &verifier) const {
1054 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001055 VerifyOffset(verifier, VT_NEW_SHAPE) &&
1056 verifier.VerifyVector(new_shape()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001057 verifier.EndTable();
1058 }
1059};
1060
1061struct ReshapeAttributeBuilder {
1062 typedef ReshapeAttribute Table;
1063 flatbuffers::FlatBufferBuilder &fbb_;
1064 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001065 void add_new_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> new_shape) {
1066 fbb_.AddOffset(ReshapeAttribute::VT_NEW_SHAPE, new_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001067 }
1068 explicit ReshapeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1069 : fbb_(_fbb) {
1070 start_ = fbb_.StartTable();
1071 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001072 flatbuffers::Offset<ReshapeAttribute> Finish() {
1073 const auto end = fbb_.EndTable(start_);
1074 auto o = flatbuffers::Offset<ReshapeAttribute>(end);
1075 return o;
1076 }
1077};
1078
1079inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttribute(
1080 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001081 flatbuffers::Offset<flatbuffers::Vector<int32_t>> new_shape = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001082 ReshapeAttributeBuilder builder_(_fbb);
TatWai Chong7be71652022-05-10 17:26:20 -07001083 builder_.add_new_shape(new_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001084 return builder_.Finish();
1085}
1086
1087inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttributeDirect(
1088 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001089 const std::vector<int32_t> *new_shape = nullptr) {
1090 auto new_shape__ = new_shape ? _fbb.CreateVector<int32_t>(*new_shape) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001091 return tosa::CreateReshapeAttribute(
1092 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001093 new_shape__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001094}
1095
1096struct SliceAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1097 typedef SliceAttributeBuilder Builder;
1098 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001099 VT_START = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001100 VT_SIZE = 6
1101 };
TatWai Chong7be71652022-05-10 17:26:20 -07001102 const flatbuffers::Vector<int32_t> *start() const {
1103 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_START);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001104 }
1105 const flatbuffers::Vector<int32_t> *size() const {
1106 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SIZE);
1107 }
1108 bool Verify(flatbuffers::Verifier &verifier) const {
1109 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001110 VerifyOffset(verifier, VT_START) &&
1111 verifier.VerifyVector(start()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001112 VerifyOffset(verifier, VT_SIZE) &&
1113 verifier.VerifyVector(size()) &&
1114 verifier.EndTable();
1115 }
1116};
1117
1118struct SliceAttributeBuilder {
1119 typedef SliceAttribute Table;
1120 flatbuffers::FlatBufferBuilder &fbb_;
1121 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001122 void add_start(flatbuffers::Offset<flatbuffers::Vector<int32_t>> start) {
1123 fbb_.AddOffset(SliceAttribute::VT_START, start);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001124 }
1125 void add_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> size) {
1126 fbb_.AddOffset(SliceAttribute::VT_SIZE, size);
1127 }
1128 explicit SliceAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1129 : fbb_(_fbb) {
1130 start_ = fbb_.StartTable();
1131 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001132 flatbuffers::Offset<SliceAttribute> Finish() {
1133 const auto end = fbb_.EndTable(start_);
1134 auto o = flatbuffers::Offset<SliceAttribute>(end);
1135 return o;
1136 }
1137};
1138
1139inline flatbuffers::Offset<SliceAttribute> CreateSliceAttribute(
1140 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001141 flatbuffers::Offset<flatbuffers::Vector<int32_t>> start = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001142 flatbuffers::Offset<flatbuffers::Vector<int32_t>> size = 0) {
1143 SliceAttributeBuilder builder_(_fbb);
1144 builder_.add_size(size);
TatWai Chong7be71652022-05-10 17:26:20 -07001145 builder_.add_start(start);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001146 return builder_.Finish();
1147}
1148
1149inline flatbuffers::Offset<SliceAttribute> CreateSliceAttributeDirect(
1150 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001151 const std::vector<int32_t> *start = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001152 const std::vector<int32_t> *size = nullptr) {
TatWai Chong7be71652022-05-10 17:26:20 -07001153 auto start__ = start ? _fbb.CreateVector<int32_t>(*start) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001154 auto size__ = size ? _fbb.CreateVector<int32_t>(*size) : 0;
1155 return tosa::CreateSliceAttribute(
1156 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001157 start__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001158 size__);
1159}
1160
1161struct TileAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1162 typedef TileAttributeBuilder Builder;
1163 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1164 VT_MULTIPLES = 4
1165 };
1166 const flatbuffers::Vector<int32_t> *multiples() const {
1167 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLES);
1168 }
1169 bool Verify(flatbuffers::Verifier &verifier) const {
1170 return VerifyTableStart(verifier) &&
1171 VerifyOffset(verifier, VT_MULTIPLES) &&
1172 verifier.VerifyVector(multiples()) &&
1173 verifier.EndTable();
1174 }
1175};
1176
1177struct TileAttributeBuilder {
1178 typedef TileAttribute Table;
1179 flatbuffers::FlatBufferBuilder &fbb_;
1180 flatbuffers::uoffset_t start_;
1181 void add_multiples(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples) {
1182 fbb_.AddOffset(TileAttribute::VT_MULTIPLES, multiples);
1183 }
1184 explicit TileAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1185 : fbb_(_fbb) {
1186 start_ = fbb_.StartTable();
1187 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001188 flatbuffers::Offset<TileAttribute> Finish() {
1189 const auto end = fbb_.EndTable(start_);
1190 auto o = flatbuffers::Offset<TileAttribute>(end);
1191 return o;
1192 }
1193};
1194
1195inline flatbuffers::Offset<TileAttribute> CreateTileAttribute(
1196 flatbuffers::FlatBufferBuilder &_fbb,
1197 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples = 0) {
1198 TileAttributeBuilder builder_(_fbb);
1199 builder_.add_multiples(multiples);
1200 return builder_.Finish();
1201}
1202
1203inline flatbuffers::Offset<TileAttribute> CreateTileAttributeDirect(
1204 flatbuffers::FlatBufferBuilder &_fbb,
1205 const std::vector<int32_t> *multiples = nullptr) {
1206 auto multiples__ = multiples ? _fbb.CreateVector<int32_t>(*multiples) : 0;
1207 return tosa::CreateTileAttribute(
1208 _fbb,
1209 multiples__);
1210}
1211
1212struct ResizeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1213 typedef ResizeAttributeBuilder Builder;
1214 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong49b1ca62022-06-10 01:49:13 -07001215 VT_SCALE = 4,
1216 VT_OFFSET = 6,
1217 VT_BORDER = 8,
1218 VT_MODE = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07001219 };
TatWai Chong49b1ca62022-06-10 01:49:13 -07001220 const flatbuffers::Vector<int16_t> *scale() const {
1221 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_SCALE);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001222 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001223 const flatbuffers::Vector<int16_t> *offset() const {
1224 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_OFFSET);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001225 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001226 const flatbuffers::Vector<int16_t> *border() const {
1227 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_BORDER);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001228 }
1229 tosa::ResizeMode mode() const {
1230 return static_cast<tosa::ResizeMode>(GetField<uint32_t>(VT_MODE, 0));
1231 }
1232 bool Verify(flatbuffers::Verifier &verifier) const {
1233 return VerifyTableStart(verifier) &&
TatWai Chong49b1ca62022-06-10 01:49:13 -07001234 VerifyOffset(verifier, VT_SCALE) &&
1235 verifier.VerifyVector(scale()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001236 VerifyOffset(verifier, VT_OFFSET) &&
1237 verifier.VerifyVector(offset()) &&
TatWai Chong49b1ca62022-06-10 01:49:13 -07001238 VerifyOffset(verifier, VT_BORDER) &&
1239 verifier.VerifyVector(border()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001240 VerifyField<uint32_t>(verifier, VT_MODE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001241 verifier.EndTable();
1242 }
1243};
1244
1245struct ResizeAttributeBuilder {
1246 typedef ResizeAttribute Table;
1247 flatbuffers::FlatBufferBuilder &fbb_;
1248 flatbuffers::uoffset_t start_;
TatWai Chong49b1ca62022-06-10 01:49:13 -07001249 void add_scale(flatbuffers::Offset<flatbuffers::Vector<int16_t>> scale) {
1250 fbb_.AddOffset(ResizeAttribute::VT_SCALE, scale);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001251 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001252 void add_offset(flatbuffers::Offset<flatbuffers::Vector<int16_t>> offset) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001253 fbb_.AddOffset(ResizeAttribute::VT_OFFSET, offset);
1254 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001255 void add_border(flatbuffers::Offset<flatbuffers::Vector<int16_t>> border) {
1256 fbb_.AddOffset(ResizeAttribute::VT_BORDER, border);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001257 }
1258 void add_mode(tosa::ResizeMode mode) {
1259 fbb_.AddElement<uint32_t>(ResizeAttribute::VT_MODE, static_cast<uint32_t>(mode), 0);
1260 }
1261 explicit ResizeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1262 : fbb_(_fbb) {
1263 start_ = fbb_.StartTable();
1264 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001265 flatbuffers::Offset<ResizeAttribute> Finish() {
1266 const auto end = fbb_.EndTable(start_);
1267 auto o = flatbuffers::Offset<ResizeAttribute>(end);
1268 return o;
1269 }
1270};
1271
1272inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttribute(
1273 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001274 flatbuffers::Offset<flatbuffers::Vector<int16_t>> scale = 0,
1275 flatbuffers::Offset<flatbuffers::Vector<int16_t>> offset = 0,
1276 flatbuffers::Offset<flatbuffers::Vector<int16_t>> border = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001277 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
1278 ResizeAttributeBuilder builder_(_fbb);
1279 builder_.add_mode(mode);
TatWai Chong49b1ca62022-06-10 01:49:13 -07001280 builder_.add_border(border);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001281 builder_.add_offset(offset);
TatWai Chong49b1ca62022-06-10 01:49:13 -07001282 builder_.add_scale(scale);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001283 return builder_.Finish();
1284}
1285
1286inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttributeDirect(
1287 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001288 const std::vector<int16_t> *scale = nullptr,
1289 const std::vector<int16_t> *offset = nullptr,
1290 const std::vector<int16_t> *border = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001291 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
TatWai Chong49b1ca62022-06-10 01:49:13 -07001292 auto scale__ = scale ? _fbb.CreateVector<int16_t>(*scale) : 0;
1293 auto offset__ = offset ? _fbb.CreateVector<int16_t>(*offset) : 0;
1294 auto border__ = border ? _fbb.CreateVector<int16_t>(*border) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001295 return tosa::CreateResizeAttribute(
1296 _fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001297 scale__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001298 offset__,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001299 border__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001300 mode);
1301}
1302
1303struct ClampAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1304 typedef ClampAttributeBuilder Builder;
1305 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1306 VT_MIN_INT = 4,
1307 VT_MAX_INT = 6,
1308 VT_MIN_FP = 8,
1309 VT_MAX_FP = 10
1310 };
1311 int32_t min_int() const {
1312 return GetField<int32_t>(VT_MIN_INT, 0);
1313 }
1314 int32_t max_int() const {
1315 return GetField<int32_t>(VT_MAX_INT, 0);
1316 }
1317 float min_fp() const {
1318 return GetField<float>(VT_MIN_FP, 0.0f);
1319 }
1320 float max_fp() const {
1321 return GetField<float>(VT_MAX_FP, 0.0f);
1322 }
1323 bool Verify(flatbuffers::Verifier &verifier) const {
1324 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001325 VerifyField<int32_t>(verifier, VT_MIN_INT, 4) &&
1326 VerifyField<int32_t>(verifier, VT_MAX_INT, 4) &&
1327 VerifyField<float>(verifier, VT_MIN_FP, 4) &&
1328 VerifyField<float>(verifier, VT_MAX_FP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001329 verifier.EndTable();
1330 }
1331};
1332
1333struct ClampAttributeBuilder {
1334 typedef ClampAttribute Table;
1335 flatbuffers::FlatBufferBuilder &fbb_;
1336 flatbuffers::uoffset_t start_;
1337 void add_min_int(int32_t min_int) {
1338 fbb_.AddElement<int32_t>(ClampAttribute::VT_MIN_INT, min_int, 0);
1339 }
1340 void add_max_int(int32_t max_int) {
1341 fbb_.AddElement<int32_t>(ClampAttribute::VT_MAX_INT, max_int, 0);
1342 }
1343 void add_min_fp(float min_fp) {
1344 fbb_.AddElement<float>(ClampAttribute::VT_MIN_FP, min_fp, 0.0f);
1345 }
1346 void add_max_fp(float max_fp) {
1347 fbb_.AddElement<float>(ClampAttribute::VT_MAX_FP, max_fp, 0.0f);
1348 }
1349 explicit ClampAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1350 : fbb_(_fbb) {
1351 start_ = fbb_.StartTable();
1352 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001353 flatbuffers::Offset<ClampAttribute> Finish() {
1354 const auto end = fbb_.EndTable(start_);
1355 auto o = flatbuffers::Offset<ClampAttribute>(end);
1356 return o;
1357 }
1358};
1359
1360inline flatbuffers::Offset<ClampAttribute> CreateClampAttribute(
1361 flatbuffers::FlatBufferBuilder &_fbb,
1362 int32_t min_int = 0,
1363 int32_t max_int = 0,
1364 float min_fp = 0.0f,
1365 float max_fp = 0.0f) {
1366 ClampAttributeBuilder builder_(_fbb);
1367 builder_.add_max_fp(max_fp);
1368 builder_.add_min_fp(min_fp);
1369 builder_.add_max_int(max_int);
1370 builder_.add_min_int(min_int);
1371 return builder_.Finish();
1372}
1373
1374struct RescaleAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1375 typedef RescaleAttributeBuilder Builder;
1376 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1377 VT_INPUT_ZP = 4,
1378 VT_OUTPUT_ZP = 6,
1379 VT_MULTIPLIER = 8,
1380 VT_SHIFT = 10,
1381 VT_SCALE32 = 12,
1382 VT_DOUBLE_ROUND = 14,
1383 VT_PER_CHANNEL = 16
1384 };
1385 int32_t input_zp() const {
1386 return GetField<int32_t>(VT_INPUT_ZP, 0);
1387 }
1388 int32_t output_zp() const {
1389 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1390 }
1391 const flatbuffers::Vector<int32_t> *multiplier() const {
1392 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLIER);
1393 }
1394 const flatbuffers::Vector<int32_t> *shift() const {
1395 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHIFT);
1396 }
1397 bool scale32() const {
1398 return GetField<uint8_t>(VT_SCALE32, 0) != 0;
1399 }
1400 bool double_round() const {
1401 return GetField<uint8_t>(VT_DOUBLE_ROUND, 0) != 0;
1402 }
1403 bool per_channel() const {
1404 return GetField<uint8_t>(VT_PER_CHANNEL, 0) != 0;
1405 }
1406 bool Verify(flatbuffers::Verifier &verifier) const {
1407 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001408 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
1409 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001410 VerifyOffset(verifier, VT_MULTIPLIER) &&
1411 verifier.VerifyVector(multiplier()) &&
1412 VerifyOffset(verifier, VT_SHIFT) &&
1413 verifier.VerifyVector(shift()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001414 VerifyField<uint8_t>(verifier, VT_SCALE32, 1) &&
1415 VerifyField<uint8_t>(verifier, VT_DOUBLE_ROUND, 1) &&
1416 VerifyField<uint8_t>(verifier, VT_PER_CHANNEL, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001417 verifier.EndTable();
1418 }
1419};
1420
1421struct RescaleAttributeBuilder {
1422 typedef RescaleAttribute Table;
1423 flatbuffers::FlatBufferBuilder &fbb_;
1424 flatbuffers::uoffset_t start_;
1425 void add_input_zp(int32_t input_zp) {
1426 fbb_.AddElement<int32_t>(RescaleAttribute::VT_INPUT_ZP, input_zp, 0);
1427 }
1428 void add_output_zp(int32_t output_zp) {
1429 fbb_.AddElement<int32_t>(RescaleAttribute::VT_OUTPUT_ZP, output_zp, 0);
1430 }
1431 void add_multiplier(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier) {
1432 fbb_.AddOffset(RescaleAttribute::VT_MULTIPLIER, multiplier);
1433 }
1434 void add_shift(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift) {
1435 fbb_.AddOffset(RescaleAttribute::VT_SHIFT, shift);
1436 }
1437 void add_scale32(bool scale32) {
1438 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_SCALE32, static_cast<uint8_t>(scale32), 0);
1439 }
1440 void add_double_round(bool double_round) {
1441 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_DOUBLE_ROUND, static_cast<uint8_t>(double_round), 0);
1442 }
1443 void add_per_channel(bool per_channel) {
1444 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_PER_CHANNEL, static_cast<uint8_t>(per_channel), 0);
1445 }
1446 explicit RescaleAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1447 : fbb_(_fbb) {
1448 start_ = fbb_.StartTable();
1449 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001450 flatbuffers::Offset<RescaleAttribute> Finish() {
1451 const auto end = fbb_.EndTable(start_);
1452 auto o = flatbuffers::Offset<RescaleAttribute>(end);
1453 return o;
1454 }
1455};
1456
1457inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttribute(
1458 flatbuffers::FlatBufferBuilder &_fbb,
1459 int32_t input_zp = 0,
1460 int32_t output_zp = 0,
1461 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier = 0,
1462 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift = 0,
1463 bool scale32 = false,
1464 bool double_round = false,
1465 bool per_channel = false) {
1466 RescaleAttributeBuilder builder_(_fbb);
1467 builder_.add_shift(shift);
1468 builder_.add_multiplier(multiplier);
1469 builder_.add_output_zp(output_zp);
1470 builder_.add_input_zp(input_zp);
1471 builder_.add_per_channel(per_channel);
1472 builder_.add_double_round(double_round);
1473 builder_.add_scale32(scale32);
1474 return builder_.Finish();
1475}
1476
1477inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttributeDirect(
1478 flatbuffers::FlatBufferBuilder &_fbb,
1479 int32_t input_zp = 0,
1480 int32_t output_zp = 0,
1481 const std::vector<int32_t> *multiplier = nullptr,
1482 const std::vector<int32_t> *shift = nullptr,
1483 bool scale32 = false,
1484 bool double_round = false,
1485 bool per_channel = false) {
1486 auto multiplier__ = multiplier ? _fbb.CreateVector<int32_t>(*multiplier) : 0;
1487 auto shift__ = shift ? _fbb.CreateVector<int32_t>(*shift) : 0;
1488 return tosa::CreateRescaleAttribute(
1489 _fbb,
1490 input_zp,
1491 output_zp,
1492 multiplier__,
1493 shift__,
1494 scale32,
1495 double_round,
1496 per_channel);
1497}
1498
1499struct MulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1500 typedef MulAttributeBuilder Builder;
1501 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1502 VT_SHIFT = 4
1503 };
1504 int32_t shift() const {
1505 return GetField<int32_t>(VT_SHIFT, 0);
1506 }
1507 bool Verify(flatbuffers::Verifier &verifier) const {
1508 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001509 VerifyField<int32_t>(verifier, VT_SHIFT, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001510 verifier.EndTable();
1511 }
1512};
1513
1514struct MulAttributeBuilder {
1515 typedef MulAttribute Table;
1516 flatbuffers::FlatBufferBuilder &fbb_;
1517 flatbuffers::uoffset_t start_;
1518 void add_shift(int32_t shift) {
1519 fbb_.AddElement<int32_t>(MulAttribute::VT_SHIFT, shift, 0);
1520 }
1521 explicit MulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1522 : fbb_(_fbb) {
1523 start_ = fbb_.StartTable();
1524 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001525 flatbuffers::Offset<MulAttribute> Finish() {
1526 const auto end = fbb_.EndTable(start_);
1527 auto o = flatbuffers::Offset<MulAttribute>(end);
1528 return o;
1529 }
1530};
1531
1532inline flatbuffers::Offset<MulAttribute> CreateMulAttribute(
1533 flatbuffers::FlatBufferBuilder &_fbb,
1534 int32_t shift = 0) {
1535 MulAttributeBuilder builder_(_fbb);
1536 builder_.add_shift(shift);
1537 return builder_.Finish();
1538}
1539
1540struct ArithmeticRightShiftAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1541 typedef ArithmeticRightShiftAttributeBuilder Builder;
1542 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1543 VT_ROUND = 4
1544 };
1545 bool round() const {
1546 return GetField<uint8_t>(VT_ROUND, 0) != 0;
1547 }
1548 bool Verify(flatbuffers::Verifier &verifier) const {
1549 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001550 VerifyField<uint8_t>(verifier, VT_ROUND, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001551 verifier.EndTable();
1552 }
1553};
1554
1555struct ArithmeticRightShiftAttributeBuilder {
1556 typedef ArithmeticRightShiftAttribute Table;
1557 flatbuffers::FlatBufferBuilder &fbb_;
1558 flatbuffers::uoffset_t start_;
1559 void add_round(bool round) {
1560 fbb_.AddElement<uint8_t>(ArithmeticRightShiftAttribute::VT_ROUND, static_cast<uint8_t>(round), 0);
1561 }
1562 explicit ArithmeticRightShiftAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1563 : fbb_(_fbb) {
1564 start_ = fbb_.StartTable();
1565 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001566 flatbuffers::Offset<ArithmeticRightShiftAttribute> Finish() {
1567 const auto end = fbb_.EndTable(start_);
1568 auto o = flatbuffers::Offset<ArithmeticRightShiftAttribute>(end);
1569 return o;
1570 }
1571};
1572
1573inline flatbuffers::Offset<ArithmeticRightShiftAttribute> CreateArithmeticRightShiftAttribute(
1574 flatbuffers::FlatBufferBuilder &_fbb,
1575 bool round = false) {
1576 ArithmeticRightShiftAttributeBuilder builder_(_fbb);
1577 builder_.add_round(round);
1578 return builder_.Finish();
1579}
1580
1581struct CondIfAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1582 typedef CondIfAttributeBuilder Builder;
1583 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1584 VT_THEN_BRANCH = 4,
1585 VT_ELSE_BRANCH = 6
1586 };
1587 const flatbuffers::String *then_branch() const {
1588 return GetPointer<const flatbuffers::String *>(VT_THEN_BRANCH);
1589 }
1590 const flatbuffers::String *else_branch() const {
1591 return GetPointer<const flatbuffers::String *>(VT_ELSE_BRANCH);
1592 }
1593 bool Verify(flatbuffers::Verifier &verifier) const {
1594 return VerifyTableStart(verifier) &&
1595 VerifyOffset(verifier, VT_THEN_BRANCH) &&
1596 verifier.VerifyString(then_branch()) &&
1597 VerifyOffset(verifier, VT_ELSE_BRANCH) &&
1598 verifier.VerifyString(else_branch()) &&
1599 verifier.EndTable();
1600 }
1601};
1602
1603struct CondIfAttributeBuilder {
1604 typedef CondIfAttribute Table;
1605 flatbuffers::FlatBufferBuilder &fbb_;
1606 flatbuffers::uoffset_t start_;
1607 void add_then_branch(flatbuffers::Offset<flatbuffers::String> then_branch) {
1608 fbb_.AddOffset(CondIfAttribute::VT_THEN_BRANCH, then_branch);
1609 }
1610 void add_else_branch(flatbuffers::Offset<flatbuffers::String> else_branch) {
1611 fbb_.AddOffset(CondIfAttribute::VT_ELSE_BRANCH, else_branch);
1612 }
1613 explicit CondIfAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1614 : fbb_(_fbb) {
1615 start_ = fbb_.StartTable();
1616 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001617 flatbuffers::Offset<CondIfAttribute> Finish() {
1618 const auto end = fbb_.EndTable(start_);
1619 auto o = flatbuffers::Offset<CondIfAttribute>(end);
1620 return o;
1621 }
1622};
1623
1624inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttribute(
1625 flatbuffers::FlatBufferBuilder &_fbb,
1626 flatbuffers::Offset<flatbuffers::String> then_branch = 0,
1627 flatbuffers::Offset<flatbuffers::String> else_branch = 0) {
1628 CondIfAttributeBuilder builder_(_fbb);
1629 builder_.add_else_branch(else_branch);
1630 builder_.add_then_branch(then_branch);
1631 return builder_.Finish();
1632}
1633
1634inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttributeDirect(
1635 flatbuffers::FlatBufferBuilder &_fbb,
1636 const char *then_branch = nullptr,
1637 const char *else_branch = nullptr) {
1638 auto then_branch__ = then_branch ? _fbb.CreateString(then_branch) : 0;
1639 auto else_branch__ = else_branch ? _fbb.CreateString(else_branch) : 0;
1640 return tosa::CreateCondIfAttribute(
1641 _fbb,
1642 then_branch__,
1643 else_branch__);
1644}
1645
1646struct WhileLoopAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1647 typedef WhileLoopAttributeBuilder Builder;
1648 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1649 VT_COND_BRANCH = 4,
1650 VT_BODY_BRANCH = 6
1651 };
1652 const flatbuffers::String *cond_branch() const {
1653 return GetPointer<const flatbuffers::String *>(VT_COND_BRANCH);
1654 }
1655 const flatbuffers::String *body_branch() const {
1656 return GetPointer<const flatbuffers::String *>(VT_BODY_BRANCH);
1657 }
1658 bool Verify(flatbuffers::Verifier &verifier) const {
1659 return VerifyTableStart(verifier) &&
1660 VerifyOffset(verifier, VT_COND_BRANCH) &&
1661 verifier.VerifyString(cond_branch()) &&
1662 VerifyOffset(verifier, VT_BODY_BRANCH) &&
1663 verifier.VerifyString(body_branch()) &&
1664 verifier.EndTable();
1665 }
1666};
1667
1668struct WhileLoopAttributeBuilder {
1669 typedef WhileLoopAttribute Table;
1670 flatbuffers::FlatBufferBuilder &fbb_;
1671 flatbuffers::uoffset_t start_;
1672 void add_cond_branch(flatbuffers::Offset<flatbuffers::String> cond_branch) {
1673 fbb_.AddOffset(WhileLoopAttribute::VT_COND_BRANCH, cond_branch);
1674 }
1675 void add_body_branch(flatbuffers::Offset<flatbuffers::String> body_branch) {
1676 fbb_.AddOffset(WhileLoopAttribute::VT_BODY_BRANCH, body_branch);
1677 }
1678 explicit WhileLoopAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1679 : fbb_(_fbb) {
1680 start_ = fbb_.StartTable();
1681 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001682 flatbuffers::Offset<WhileLoopAttribute> Finish() {
1683 const auto end = fbb_.EndTable(start_);
1684 auto o = flatbuffers::Offset<WhileLoopAttribute>(end);
1685 return o;
1686 }
1687};
1688
1689inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttribute(
1690 flatbuffers::FlatBufferBuilder &_fbb,
1691 flatbuffers::Offset<flatbuffers::String> cond_branch = 0,
1692 flatbuffers::Offset<flatbuffers::String> body_branch = 0) {
1693 WhileLoopAttributeBuilder builder_(_fbb);
1694 builder_.add_body_branch(body_branch);
1695 builder_.add_cond_branch(cond_branch);
1696 return builder_.Finish();
1697}
1698
1699inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttributeDirect(
1700 flatbuffers::FlatBufferBuilder &_fbb,
1701 const char *cond_branch = nullptr,
1702 const char *body_branch = nullptr) {
1703 auto cond_branch__ = cond_branch ? _fbb.CreateString(cond_branch) : 0;
1704 auto body_branch__ = body_branch ? _fbb.CreateString(body_branch) : 0;
1705 return tosa::CreateWhileLoopAttribute(
1706 _fbb,
1707 cond_branch__,
1708 body_branch__);
1709}
1710
Kevin Cheng38d214c2021-10-15 15:49:19 -07001711struct TransposeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1712 typedef TransposeAttributeBuilder Builder;
1713 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001714 VT_PERMS = 4
Kevin Cheng38d214c2021-10-15 15:49:19 -07001715 };
TatWai Chong7be71652022-05-10 17:26:20 -07001716 const flatbuffers::Vector<int32_t> *perms() const {
1717 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PERMS);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001718 }
1719 bool Verify(flatbuffers::Verifier &verifier) const {
1720 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001721 VerifyOffset(verifier, VT_PERMS) &&
1722 verifier.VerifyVector(perms()) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -07001723 verifier.EndTable();
1724 }
1725};
1726
1727struct TransposeAttributeBuilder {
1728 typedef TransposeAttribute Table;
1729 flatbuffers::FlatBufferBuilder &fbb_;
1730 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001731 void add_perms(flatbuffers::Offset<flatbuffers::Vector<int32_t>> perms) {
1732 fbb_.AddOffset(TransposeAttribute::VT_PERMS, perms);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001733 }
1734 explicit TransposeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1735 : fbb_(_fbb) {
1736 start_ = fbb_.StartTable();
1737 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07001738 flatbuffers::Offset<TransposeAttribute> Finish() {
1739 const auto end = fbb_.EndTable(start_);
1740 auto o = flatbuffers::Offset<TransposeAttribute>(end);
1741 return o;
1742 }
1743};
1744
1745inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttribute(
1746 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001747 flatbuffers::Offset<flatbuffers::Vector<int32_t>> perms = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001748 TransposeAttributeBuilder builder_(_fbb);
TatWai Chong7be71652022-05-10 17:26:20 -07001749 builder_.add_perms(perms);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001750 return builder_.Finish();
1751}
1752
1753inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttributeDirect(
1754 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001755 const std::vector<int32_t> *perms = nullptr) {
1756 auto perms__ = perms ? _fbb.CreateVector<int32_t>(*perms) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001757 return tosa::CreateTransposeAttribute(
1758 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001759 perms__);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001760}
1761
1762struct TableAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1763 typedef TableAttributeBuilder Builder;
1764 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1765 VT_TABLE = 4
1766 };
TatWai Chong7be71652022-05-10 17:26:20 -07001767 const flatbuffers::Vector<int16_t> *table() const {
1768 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_TABLE);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001769 }
1770 bool Verify(flatbuffers::Verifier &verifier) const {
1771 return VerifyTableStart(verifier) &&
1772 VerifyOffset(verifier, VT_TABLE) &&
1773 verifier.VerifyVector(table()) &&
1774 verifier.EndTable();
1775 }
1776};
1777
1778struct TableAttributeBuilder {
1779 typedef TableAttribute Table;
1780 flatbuffers::FlatBufferBuilder &fbb_;
1781 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001782 void add_table(flatbuffers::Offset<flatbuffers::Vector<int16_t>> table) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001783 fbb_.AddOffset(TableAttribute::VT_TABLE, table);
1784 }
1785 explicit TableAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1786 : fbb_(_fbb) {
1787 start_ = fbb_.StartTable();
1788 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07001789 flatbuffers::Offset<TableAttribute> Finish() {
1790 const auto end = fbb_.EndTable(start_);
1791 auto o = flatbuffers::Offset<TableAttribute>(end);
1792 return o;
1793 }
1794};
1795
1796inline flatbuffers::Offset<TableAttribute> CreateTableAttribute(
1797 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001798 flatbuffers::Offset<flatbuffers::Vector<int16_t>> table = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001799 TableAttributeBuilder builder_(_fbb);
1800 builder_.add_table(table);
1801 return builder_.Finish();
1802}
1803
1804inline flatbuffers::Offset<TableAttribute> CreateTableAttributeDirect(
1805 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001806 const std::vector<int16_t> *table = nullptr) {
1807 auto table__ = table ? _fbb.CreateVector<int16_t>(*table) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001808 return tosa::CreateTableAttribute(
1809 _fbb,
1810 table__);
1811}
1812
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001813struct MatMulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1814 typedef MatMulAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001815 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1816 VT_A_ZP = 4,
James Ward485a11d2022-08-05 13:48:37 +01001817 VT_B_ZP = 6,
1818 VT_ACCUM_DTYPE = 8
Eric Kunze2364dcd2021-04-26 11:06:57 -07001819 };
1820 int32_t a_zp() const {
1821 return GetField<int32_t>(VT_A_ZP, 0);
1822 }
1823 int32_t b_zp() const {
1824 return GetField<int32_t>(VT_B_ZP, 0);
1825 }
James Ward485a11d2022-08-05 13:48:37 +01001826 tosa::DType accum_dtype() const {
1827 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
1828 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001829 bool Verify(flatbuffers::Verifier &verifier) const {
1830 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001831 VerifyField<int32_t>(verifier, VT_A_ZP, 4) &&
1832 VerifyField<int32_t>(verifier, VT_B_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +01001833 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001834 verifier.EndTable();
1835 }
1836};
1837
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001838struct MatMulAttributeBuilder {
1839 typedef MatMulAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001840 flatbuffers::FlatBufferBuilder &fbb_;
1841 flatbuffers::uoffset_t start_;
1842 void add_a_zp(int32_t a_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001843 fbb_.AddElement<int32_t>(MatMulAttribute::VT_A_ZP, a_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001844 }
1845 void add_b_zp(int32_t b_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001846 fbb_.AddElement<int32_t>(MatMulAttribute::VT_B_ZP, b_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001847 }
James Ward485a11d2022-08-05 13:48:37 +01001848 void add_accum_dtype(tosa::DType accum_dtype) {
1849 fbb_.AddElement<uint32_t>(MatMulAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
1850 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001851 explicit MatMulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -07001852 : fbb_(_fbb) {
1853 start_ = fbb_.StartTable();
1854 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001855 flatbuffers::Offset<MatMulAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001856 const auto end = fbb_.EndTable(start_);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001857 auto o = flatbuffers::Offset<MatMulAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001858 return o;
1859 }
1860};
1861
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001862inline flatbuffers::Offset<MatMulAttribute> CreateMatMulAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -07001863 flatbuffers::FlatBufferBuilder &_fbb,
1864 int32_t a_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +01001865 int32_t b_zp = 0,
1866 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001867 MatMulAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +01001868 builder_.add_accum_dtype(accum_dtype);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001869 builder_.add_b_zp(b_zp);
1870 builder_.add_a_zp(a_zp);
1871 return builder_.Finish();
1872}
1873
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001874struct FullyConnectedAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1875 typedef FullyConnectedAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001876 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001877 VT_INPUT_ZP = 4,
James Ward485a11d2022-08-05 13:48:37 +01001878 VT_WEIGHT_ZP = 6,
1879 VT_ACCUM_DTYPE = 8
Eric Kunze2364dcd2021-04-26 11:06:57 -07001880 };
1881 int32_t input_zp() const {
1882 return GetField<int32_t>(VT_INPUT_ZP, 0);
1883 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001884 int32_t weight_zp() const {
1885 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
1886 }
James Ward485a11d2022-08-05 13:48:37 +01001887 tosa::DType accum_dtype() const {
1888 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
1889 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001890 bool Verify(flatbuffers::Verifier &verifier) const {
1891 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001892 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
1893 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +01001894 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001895 verifier.EndTable();
1896 }
1897};
1898
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001899struct FullyConnectedAttributeBuilder {
1900 typedef FullyConnectedAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001901 flatbuffers::FlatBufferBuilder &fbb_;
1902 flatbuffers::uoffset_t start_;
1903 void add_input_zp(int32_t input_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001904 fbb_.AddElement<int32_t>(FullyConnectedAttribute::VT_INPUT_ZP, input_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001905 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001906 void add_weight_zp(int32_t weight_zp) {
1907 fbb_.AddElement<int32_t>(FullyConnectedAttribute::VT_WEIGHT_ZP, weight_zp, 0);
1908 }
James Ward485a11d2022-08-05 13:48:37 +01001909 void add_accum_dtype(tosa::DType accum_dtype) {
1910 fbb_.AddElement<uint32_t>(FullyConnectedAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
1911 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001912 explicit FullyConnectedAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -07001913 : fbb_(_fbb) {
1914 start_ = fbb_.StartTable();
1915 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001916 flatbuffers::Offset<FullyConnectedAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001917 const auto end = fbb_.EndTable(start_);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001918 auto o = flatbuffers::Offset<FullyConnectedAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001919 return o;
1920 }
1921};
1922
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001923inline flatbuffers::Offset<FullyConnectedAttribute> CreateFullyConnectedAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -07001924 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001925 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +01001926 int32_t weight_zp = 0,
1927 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001928 FullyConnectedAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +01001929 builder_.add_accum_dtype(accum_dtype);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001930 builder_.add_weight_zp(weight_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001931 builder_.add_input_zp(input_zp);
1932 return builder_.Finish();
1933}
1934
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001935struct NegateAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1936 typedef NegateAttributeBuilder Builder;
1937 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1938 VT_INPUT1_ZP = 4,
1939 VT_OUTPUT_ZP = 6
1940 };
1941 int32_t input1_zp() const {
1942 return GetField<int32_t>(VT_INPUT1_ZP, 0);
1943 }
1944 int32_t output_zp() const {
1945 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1946 }
1947 bool Verify(flatbuffers::Verifier &verifier) const {
1948 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001949 VerifyField<int32_t>(verifier, VT_INPUT1_ZP, 4) &&
1950 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP, 4) &&
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001951 verifier.EndTable();
1952 }
1953};
1954
1955struct NegateAttributeBuilder {
1956 typedef NegateAttribute Table;
1957 flatbuffers::FlatBufferBuilder &fbb_;
1958 flatbuffers::uoffset_t start_;
1959 void add_input1_zp(int32_t input1_zp) {
1960 fbb_.AddElement<int32_t>(NegateAttribute::VT_INPUT1_ZP, input1_zp, 0);
1961 }
1962 void add_output_zp(int32_t output_zp) {
1963 fbb_.AddElement<int32_t>(NegateAttribute::VT_OUTPUT_ZP, output_zp, 0);
1964 }
1965 explicit NegateAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1966 : fbb_(_fbb) {
1967 start_ = fbb_.StartTable();
1968 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001969 flatbuffers::Offset<NegateAttribute> Finish() {
1970 const auto end = fbb_.EndTable(start_);
1971 auto o = flatbuffers::Offset<NegateAttribute>(end);
1972 return o;
1973 }
1974};
1975
1976inline flatbuffers::Offset<NegateAttribute> CreateNegateAttribute(
1977 flatbuffers::FlatBufferBuilder &_fbb,
1978 int32_t input1_zp = 0,
1979 int32_t output_zp = 0) {
1980 NegateAttributeBuilder builder_(_fbb);
1981 builder_.add_output_zp(output_zp);
1982 builder_.add_input1_zp(input1_zp);
1983 return builder_.Finish();
1984}
1985
Eric Kunze2364dcd2021-04-26 11:06:57 -07001986struct Version FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1987 typedef VersionBuilder Builder;
1988 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1989 VT__MAJOR = 4,
1990 VT__MINOR = 6,
1991 VT__PATCH = 8,
Kevin Chengb97cb1d2021-10-14 11:53:39 -07001992 VT__DRAFT = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07001993 };
1994 int32_t _major() const {
1995 return GetField<int32_t>(VT__MAJOR, 0);
1996 }
1997 int32_t _minor() const {
Eric Kunze9e2e0bb2022-12-05 23:23:54 +00001998 return GetField<int32_t>(VT__MINOR, 50);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001999 }
2000 int32_t _patch() const {
2001 return GetField<int32_t>(VT__PATCH, 0);
2002 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002003 bool _draft() const {
Eric Kunze9e2e0bb2022-12-05 23:23:54 +00002004 return GetField<uint8_t>(VT__DRAFT, 0) != 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002005 }
2006 bool Verify(flatbuffers::Verifier &verifier) const {
2007 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00002008 VerifyField<int32_t>(verifier, VT__MAJOR, 4) &&
2009 VerifyField<int32_t>(verifier, VT__MINOR, 4) &&
2010 VerifyField<int32_t>(verifier, VT__PATCH, 4) &&
2011 VerifyField<uint8_t>(verifier, VT__DRAFT, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002012 verifier.EndTable();
2013 }
2014};
2015
2016struct VersionBuilder {
2017 typedef Version Table;
2018 flatbuffers::FlatBufferBuilder &fbb_;
2019 flatbuffers::uoffset_t start_;
2020 void add__major(int32_t _major) {
2021 fbb_.AddElement<int32_t>(Version::VT__MAJOR, _major, 0);
2022 }
2023 void add__minor(int32_t _minor) {
Eric Kunze9e2e0bb2022-12-05 23:23:54 +00002024 fbb_.AddElement<int32_t>(Version::VT__MINOR, _minor, 50);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002025 }
2026 void add__patch(int32_t _patch) {
2027 fbb_.AddElement<int32_t>(Version::VT__PATCH, _patch, 0);
2028 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002029 void add__draft(bool _draft) {
Eric Kunze9e2e0bb2022-12-05 23:23:54 +00002030 fbb_.AddElement<uint8_t>(Version::VT__DRAFT, static_cast<uint8_t>(_draft), 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002031 }
2032 explicit VersionBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2033 : fbb_(_fbb) {
2034 start_ = fbb_.StartTable();
2035 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002036 flatbuffers::Offset<Version> Finish() {
2037 const auto end = fbb_.EndTable(start_);
2038 auto o = flatbuffers::Offset<Version>(end);
2039 return o;
2040 }
2041};
2042
2043inline flatbuffers::Offset<Version> CreateVersion(
2044 flatbuffers::FlatBufferBuilder &_fbb,
2045 int32_t _major = 0,
Eric Kunze9e2e0bb2022-12-05 23:23:54 +00002046 int32_t _minor = 50,
Eric Kunze2364dcd2021-04-26 11:06:57 -07002047 int32_t _patch = 0,
Eric Kunze9e2e0bb2022-12-05 23:23:54 +00002048 bool _draft = false) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002049 VersionBuilder builder_(_fbb);
2050 builder_.add__patch(_patch);
2051 builder_.add__minor(_minor);
2052 builder_.add__major(_major);
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002053 builder_.add__draft(_draft);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002054 return builder_.Finish();
2055}
2056
2057struct TosaTensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2058 typedef TosaTensorBuilder Builder;
2059 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2060 VT_NAME = 4,
2061 VT_SHAPE = 6,
2062 VT_TYPE = 8,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002063 VT_DATA = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07002064 };
2065 const flatbuffers::String *name() const {
2066 return GetPointer<const flatbuffers::String *>(VT_NAME);
2067 }
2068 const flatbuffers::Vector<int32_t> *shape() const {
2069 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHAPE);
2070 }
2071 tosa::DType type() const {
2072 return static_cast<tosa::DType>(GetField<uint32_t>(VT_TYPE, 0));
2073 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002074 const flatbuffers::Vector<uint8_t> *data() const {
2075 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_DATA);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002076 }
2077 bool Verify(flatbuffers::Verifier &verifier) const {
2078 return VerifyTableStart(verifier) &&
2079 VerifyOffset(verifier, VT_NAME) &&
2080 verifier.VerifyString(name()) &&
2081 VerifyOffset(verifier, VT_SHAPE) &&
2082 verifier.VerifyVector(shape()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00002083 VerifyField<uint32_t>(verifier, VT_TYPE, 4) &&
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002084 VerifyOffset(verifier, VT_DATA) &&
2085 verifier.VerifyVector(data()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002086 verifier.EndTable();
2087 }
2088};
2089
2090struct TosaTensorBuilder {
2091 typedef TosaTensor Table;
2092 flatbuffers::FlatBufferBuilder &fbb_;
2093 flatbuffers::uoffset_t start_;
2094 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2095 fbb_.AddOffset(TosaTensor::VT_NAME, name);
2096 }
2097 void add_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape) {
2098 fbb_.AddOffset(TosaTensor::VT_SHAPE, shape);
2099 }
2100 void add_type(tosa::DType type) {
2101 fbb_.AddElement<uint32_t>(TosaTensor::VT_TYPE, static_cast<uint32_t>(type), 0);
2102 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002103 void add_data(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data) {
2104 fbb_.AddOffset(TosaTensor::VT_DATA, data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002105 }
2106 explicit TosaTensorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2107 : fbb_(_fbb) {
2108 start_ = fbb_.StartTable();
2109 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002110 flatbuffers::Offset<TosaTensor> Finish() {
2111 const auto end = fbb_.EndTable(start_);
2112 auto o = flatbuffers::Offset<TosaTensor>(end);
2113 return o;
2114 }
2115};
2116
2117inline flatbuffers::Offset<TosaTensor> CreateTosaTensor(
2118 flatbuffers::FlatBufferBuilder &_fbb,
2119 flatbuffers::Offset<flatbuffers::String> name = 0,
2120 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape = 0,
2121 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002122 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002123 TosaTensorBuilder builder_(_fbb);
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002124 builder_.add_data(data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002125 builder_.add_type(type);
2126 builder_.add_shape(shape);
2127 builder_.add_name(name);
2128 return builder_.Finish();
2129}
2130
2131inline flatbuffers::Offset<TosaTensor> CreateTosaTensorDirect(
2132 flatbuffers::FlatBufferBuilder &_fbb,
2133 const char *name = nullptr,
2134 const std::vector<int32_t> *shape = nullptr,
2135 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002136 const std::vector<uint8_t> *data = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002137 auto name__ = name ? _fbb.CreateString(name) : 0;
2138 auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0;
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002139 if (data) { _fbb.ForceVectorAlignment(data->size(), sizeof(uint8_t), 8); }
2140 auto data__ = data ? _fbb.CreateVector<uint8_t>(*data) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002141 return tosa::CreateTosaTensor(
2142 _fbb,
2143 name__,
2144 shape__,
2145 type,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002146 data__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002147}
2148
2149struct TosaOperator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2150 typedef TosaOperatorBuilder Builder;
2151 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2152 VT_OP = 4,
2153 VT_ATTRIBUTE_TYPE = 6,
2154 VT_ATTRIBUTE = 8,
2155 VT_INPUTS = 10,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002156 VT_OUTPUTS = 12
Eric Kunze2364dcd2021-04-26 11:06:57 -07002157 };
2158 tosa::Op op() const {
2159 return static_cast<tosa::Op>(GetField<uint32_t>(VT_OP, 0));
2160 }
2161 tosa::Attribute attribute_type() const {
2162 return static_cast<tosa::Attribute>(GetField<uint8_t>(VT_ATTRIBUTE_TYPE, 0));
2163 }
2164 const void *attribute() const {
2165 return GetPointer<const void *>(VT_ATTRIBUTE);
2166 }
2167 template<typename T> const T *attribute_as() const;
Kevin Cheng79a41992021-08-31 16:04:40 -07002168 const tosa::PoolAttribute *attribute_as_PoolAttribute() const {
2169 return attribute_type() == tosa::Attribute_PoolAttribute ? static_cast<const tosa::PoolAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002170 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002171 const tosa::ConvAttribute *attribute_as_ConvAttribute() const {
2172 return attribute_type() == tosa::Attribute_ConvAttribute ? static_cast<const tosa::ConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002173 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002174 const tosa::TransposeConvAttribute *attribute_as_TransposeConvAttribute() const {
2175 return attribute_type() == tosa::Attribute_TransposeConvAttribute ? static_cast<const tosa::TransposeConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002176 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002177 const tosa::PadAttribute *attribute_as_PadAttribute() const {
2178 return attribute_type() == tosa::Attribute_PadAttribute ? static_cast<const tosa::PadAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002179 }
2180 const tosa::AxisAttribute *attribute_as_AxisAttribute() const {
2181 return attribute_type() == tosa::Attribute_AxisAttribute ? static_cast<const tosa::AxisAttribute *>(attribute()) : nullptr;
2182 }
2183 const tosa::ReshapeAttribute *attribute_as_ReshapeAttribute() const {
2184 return attribute_type() == tosa::Attribute_ReshapeAttribute ? static_cast<const tosa::ReshapeAttribute *>(attribute()) : nullptr;
2185 }
2186 const tosa::SliceAttribute *attribute_as_SliceAttribute() const {
2187 return attribute_type() == tosa::Attribute_SliceAttribute ? static_cast<const tosa::SliceAttribute *>(attribute()) : nullptr;
2188 }
2189 const tosa::TileAttribute *attribute_as_TileAttribute() const {
2190 return attribute_type() == tosa::Attribute_TileAttribute ? static_cast<const tosa::TileAttribute *>(attribute()) : nullptr;
2191 }
2192 const tosa::ResizeAttribute *attribute_as_ResizeAttribute() const {
2193 return attribute_type() == tosa::Attribute_ResizeAttribute ? static_cast<const tosa::ResizeAttribute *>(attribute()) : nullptr;
2194 }
2195 const tosa::ClampAttribute *attribute_as_ClampAttribute() const {
2196 return attribute_type() == tosa::Attribute_ClampAttribute ? static_cast<const tosa::ClampAttribute *>(attribute()) : nullptr;
2197 }
2198 const tosa::RescaleAttribute *attribute_as_RescaleAttribute() const {
2199 return attribute_type() == tosa::Attribute_RescaleAttribute ? static_cast<const tosa::RescaleAttribute *>(attribute()) : nullptr;
2200 }
2201 const tosa::MulAttribute *attribute_as_MulAttribute() const {
2202 return attribute_type() == tosa::Attribute_MulAttribute ? static_cast<const tosa::MulAttribute *>(attribute()) : nullptr;
2203 }
2204 const tosa::ArithmeticRightShiftAttribute *attribute_as_ArithmeticRightShiftAttribute() const {
2205 return attribute_type() == tosa::Attribute_ArithmeticRightShiftAttribute ? static_cast<const tosa::ArithmeticRightShiftAttribute *>(attribute()) : nullptr;
2206 }
2207 const tosa::CondIfAttribute *attribute_as_CondIfAttribute() const {
2208 return attribute_type() == tosa::Attribute_CondIfAttribute ? static_cast<const tosa::CondIfAttribute *>(attribute()) : nullptr;
2209 }
2210 const tosa::WhileLoopAttribute *attribute_as_WhileLoopAttribute() const {
2211 return attribute_type() == tosa::Attribute_WhileLoopAttribute ? static_cast<const tosa::WhileLoopAttribute *>(attribute()) : nullptr;
2212 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002213 const tosa::TransposeAttribute *attribute_as_TransposeAttribute() const {
2214 return attribute_type() == tosa::Attribute_TransposeAttribute ? static_cast<const tosa::TransposeAttribute *>(attribute()) : nullptr;
2215 }
2216 const tosa::TableAttribute *attribute_as_TableAttribute() const {
2217 return attribute_type() == tosa::Attribute_TableAttribute ? static_cast<const tosa::TableAttribute *>(attribute()) : nullptr;
2218 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002219 const tosa::MatMulAttribute *attribute_as_MatMulAttribute() const {
2220 return attribute_type() == tosa::Attribute_MatMulAttribute ? static_cast<const tosa::MatMulAttribute *>(attribute()) : nullptr;
2221 }
2222 const tosa::FullyConnectedAttribute *attribute_as_FullyConnectedAttribute() const {
2223 return attribute_type() == tosa::Attribute_FullyConnectedAttribute ? static_cast<const tosa::FullyConnectedAttribute *>(attribute()) : nullptr;
2224 }
2225 const tosa::NegateAttribute *attribute_as_NegateAttribute() const {
2226 return attribute_type() == tosa::Attribute_NegateAttribute ? static_cast<const tosa::NegateAttribute *>(attribute()) : nullptr;
2227 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002228 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2229 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2230 }
2231 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2232 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2233 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002234 bool Verify(flatbuffers::Verifier &verifier) const {
2235 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00002236 VerifyField<uint32_t>(verifier, VT_OP, 4) &&
2237 VerifyField<uint8_t>(verifier, VT_ATTRIBUTE_TYPE, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002238 VerifyOffset(verifier, VT_ATTRIBUTE) &&
2239 VerifyAttribute(verifier, attribute(), attribute_type()) &&
2240 VerifyOffset(verifier, VT_INPUTS) &&
2241 verifier.VerifyVector(inputs()) &&
2242 verifier.VerifyVectorOfStrings(inputs()) &&
2243 VerifyOffset(verifier, VT_OUTPUTS) &&
2244 verifier.VerifyVector(outputs()) &&
2245 verifier.VerifyVectorOfStrings(outputs()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002246 verifier.EndTable();
2247 }
2248};
2249
Kevin Cheng79a41992021-08-31 16:04:40 -07002250template<> inline const tosa::PoolAttribute *TosaOperator::attribute_as<tosa::PoolAttribute>() const {
2251 return attribute_as_PoolAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002252}
2253
Kevin Cheng79a41992021-08-31 16:04:40 -07002254template<> inline const tosa::ConvAttribute *TosaOperator::attribute_as<tosa::ConvAttribute>() const {
2255 return attribute_as_ConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002256}
2257
Kevin Cheng79a41992021-08-31 16:04:40 -07002258template<> inline const tosa::TransposeConvAttribute *TosaOperator::attribute_as<tosa::TransposeConvAttribute>() const {
2259 return attribute_as_TransposeConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002260}
2261
Kevin Cheng38d214c2021-10-15 15:49:19 -07002262template<> inline const tosa::PadAttribute *TosaOperator::attribute_as<tosa::PadAttribute>() const {
2263 return attribute_as_PadAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002264}
2265
2266template<> inline const tosa::AxisAttribute *TosaOperator::attribute_as<tosa::AxisAttribute>() const {
2267 return attribute_as_AxisAttribute();
2268}
2269
2270template<> inline const tosa::ReshapeAttribute *TosaOperator::attribute_as<tosa::ReshapeAttribute>() const {
2271 return attribute_as_ReshapeAttribute();
2272}
2273
2274template<> inline const tosa::SliceAttribute *TosaOperator::attribute_as<tosa::SliceAttribute>() const {
2275 return attribute_as_SliceAttribute();
2276}
2277
2278template<> inline const tosa::TileAttribute *TosaOperator::attribute_as<tosa::TileAttribute>() const {
2279 return attribute_as_TileAttribute();
2280}
2281
2282template<> inline const tosa::ResizeAttribute *TosaOperator::attribute_as<tosa::ResizeAttribute>() const {
2283 return attribute_as_ResizeAttribute();
2284}
2285
2286template<> inline const tosa::ClampAttribute *TosaOperator::attribute_as<tosa::ClampAttribute>() const {
2287 return attribute_as_ClampAttribute();
2288}
2289
2290template<> inline const tosa::RescaleAttribute *TosaOperator::attribute_as<tosa::RescaleAttribute>() const {
2291 return attribute_as_RescaleAttribute();
2292}
2293
2294template<> inline const tosa::MulAttribute *TosaOperator::attribute_as<tosa::MulAttribute>() const {
2295 return attribute_as_MulAttribute();
2296}
2297
2298template<> inline const tosa::ArithmeticRightShiftAttribute *TosaOperator::attribute_as<tosa::ArithmeticRightShiftAttribute>() const {
2299 return attribute_as_ArithmeticRightShiftAttribute();
2300}
2301
2302template<> inline const tosa::CondIfAttribute *TosaOperator::attribute_as<tosa::CondIfAttribute>() const {
2303 return attribute_as_CondIfAttribute();
2304}
2305
2306template<> inline const tosa::WhileLoopAttribute *TosaOperator::attribute_as<tosa::WhileLoopAttribute>() const {
2307 return attribute_as_WhileLoopAttribute();
2308}
2309
Kevin Cheng38d214c2021-10-15 15:49:19 -07002310template<> inline const tosa::TransposeAttribute *TosaOperator::attribute_as<tosa::TransposeAttribute>() const {
2311 return attribute_as_TransposeAttribute();
2312}
2313
2314template<> inline const tosa::TableAttribute *TosaOperator::attribute_as<tosa::TableAttribute>() const {
2315 return attribute_as_TableAttribute();
2316}
2317
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002318template<> inline const tosa::MatMulAttribute *TosaOperator::attribute_as<tosa::MatMulAttribute>() const {
2319 return attribute_as_MatMulAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002320}
2321
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002322template<> inline const tosa::FullyConnectedAttribute *TosaOperator::attribute_as<tosa::FullyConnectedAttribute>() const {
2323 return attribute_as_FullyConnectedAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002324}
2325
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002326template<> inline const tosa::NegateAttribute *TosaOperator::attribute_as<tosa::NegateAttribute>() const {
2327 return attribute_as_NegateAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002328}
2329
2330struct TosaOperatorBuilder {
2331 typedef TosaOperator Table;
2332 flatbuffers::FlatBufferBuilder &fbb_;
2333 flatbuffers::uoffset_t start_;
2334 void add_op(tosa::Op op) {
2335 fbb_.AddElement<uint32_t>(TosaOperator::VT_OP, static_cast<uint32_t>(op), 0);
2336 }
2337 void add_attribute_type(tosa::Attribute attribute_type) {
2338 fbb_.AddElement<uint8_t>(TosaOperator::VT_ATTRIBUTE_TYPE, static_cast<uint8_t>(attribute_type), 0);
2339 }
2340 void add_attribute(flatbuffers::Offset<void> attribute) {
2341 fbb_.AddOffset(TosaOperator::VT_ATTRIBUTE, attribute);
2342 }
2343 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2344 fbb_.AddOffset(TosaOperator::VT_INPUTS, inputs);
2345 }
2346 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2347 fbb_.AddOffset(TosaOperator::VT_OUTPUTS, outputs);
2348 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002349 explicit TosaOperatorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2350 : fbb_(_fbb) {
2351 start_ = fbb_.StartTable();
2352 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002353 flatbuffers::Offset<TosaOperator> Finish() {
2354 const auto end = fbb_.EndTable(start_);
2355 auto o = flatbuffers::Offset<TosaOperator>(end);
2356 return o;
2357 }
2358};
2359
2360inline flatbuffers::Offset<TosaOperator> CreateTosaOperator(
2361 flatbuffers::FlatBufferBuilder &_fbb,
2362 tosa::Op op = tosa::Op_UNKNOWN,
2363 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2364 flatbuffers::Offset<void> attribute = 0,
2365 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002366 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002367 TosaOperatorBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002368 builder_.add_outputs(outputs);
2369 builder_.add_inputs(inputs);
2370 builder_.add_attribute(attribute);
2371 builder_.add_op(op);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002372 builder_.add_attribute_type(attribute_type);
2373 return builder_.Finish();
2374}
2375
2376inline flatbuffers::Offset<TosaOperator> CreateTosaOperatorDirect(
2377 flatbuffers::FlatBufferBuilder &_fbb,
2378 tosa::Op op = tosa::Op_UNKNOWN,
2379 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2380 flatbuffers::Offset<void> attribute = 0,
2381 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002382 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002383 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2384 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2385 return tosa::CreateTosaOperator(
2386 _fbb,
2387 op,
2388 attribute_type,
2389 attribute,
2390 inputs__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002391 outputs__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002392}
2393
2394struct TosaBasicBlock FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2395 typedef TosaBasicBlockBuilder Builder;
2396 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2397 VT_NAME = 4,
2398 VT_OPERATORS = 6,
2399 VT_TENSORS = 8,
2400 VT_INPUTS = 10,
2401 VT_OUTPUTS = 12
2402 };
2403 const flatbuffers::String *name() const {
2404 return GetPointer<const flatbuffers::String *>(VT_NAME);
2405 }
2406 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *operators() const {
2407 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *>(VT_OPERATORS);
2408 }
2409 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors() const {
2410 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *>(VT_TENSORS);
2411 }
2412 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2413 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2414 }
2415 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2416 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2417 }
2418 bool Verify(flatbuffers::Verifier &verifier) const {
2419 return VerifyTableStart(verifier) &&
2420 VerifyOffset(verifier, VT_NAME) &&
2421 verifier.VerifyString(name()) &&
2422 VerifyOffset(verifier, VT_OPERATORS) &&
2423 verifier.VerifyVector(operators()) &&
2424 verifier.VerifyVectorOfTables(operators()) &&
2425 VerifyOffset(verifier, VT_TENSORS) &&
2426 verifier.VerifyVector(tensors()) &&
2427 verifier.VerifyVectorOfTables(tensors()) &&
2428 VerifyOffset(verifier, VT_INPUTS) &&
2429 verifier.VerifyVector(inputs()) &&
2430 verifier.VerifyVectorOfStrings(inputs()) &&
2431 VerifyOffset(verifier, VT_OUTPUTS) &&
2432 verifier.VerifyVector(outputs()) &&
2433 verifier.VerifyVectorOfStrings(outputs()) &&
2434 verifier.EndTable();
2435 }
2436};
2437
2438struct TosaBasicBlockBuilder {
2439 typedef TosaBasicBlock Table;
2440 flatbuffers::FlatBufferBuilder &fbb_;
2441 flatbuffers::uoffset_t start_;
2442 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2443 fbb_.AddOffset(TosaBasicBlock::VT_NAME, name);
2444 }
2445 void add_operators(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators) {
2446 fbb_.AddOffset(TosaBasicBlock::VT_OPERATORS, operators);
2447 }
2448 void add_tensors(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors) {
2449 fbb_.AddOffset(TosaBasicBlock::VT_TENSORS, tensors);
2450 }
2451 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2452 fbb_.AddOffset(TosaBasicBlock::VT_INPUTS, inputs);
2453 }
2454 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2455 fbb_.AddOffset(TosaBasicBlock::VT_OUTPUTS, outputs);
2456 }
2457 explicit TosaBasicBlockBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2458 : fbb_(_fbb) {
2459 start_ = fbb_.StartTable();
2460 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002461 flatbuffers::Offset<TosaBasicBlock> Finish() {
2462 const auto end = fbb_.EndTable(start_);
2463 auto o = flatbuffers::Offset<TosaBasicBlock>(end);
2464 return o;
2465 }
2466};
2467
2468inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlock(
2469 flatbuffers::FlatBufferBuilder &_fbb,
2470 flatbuffers::Offset<flatbuffers::String> name = 0,
2471 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators = 0,
2472 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors = 0,
2473 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
2474 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
2475 TosaBasicBlockBuilder builder_(_fbb);
2476 builder_.add_outputs(outputs);
2477 builder_.add_inputs(inputs);
2478 builder_.add_tensors(tensors);
2479 builder_.add_operators(operators);
2480 builder_.add_name(name);
2481 return builder_.Finish();
2482}
2483
2484inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlockDirect(
2485 flatbuffers::FlatBufferBuilder &_fbb,
2486 const char *name = nullptr,
2487 const std::vector<flatbuffers::Offset<tosa::TosaOperator>> *operators = nullptr,
2488 const std::vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors = nullptr,
2489 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
2490 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
2491 auto name__ = name ? _fbb.CreateString(name) : 0;
2492 auto operators__ = operators ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaOperator>>(*operators) : 0;
2493 auto tensors__ = tensors ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaTensor>>(*tensors) : 0;
2494 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2495 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2496 return tosa::CreateTosaBasicBlock(
2497 _fbb,
2498 name__,
2499 operators__,
2500 tensors__,
2501 inputs__,
2502 outputs__);
2503}
2504
2505struct TosaGraph FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2506 typedef TosaGraphBuilder Builder;
2507 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2508 VT_VERSION = 4,
2509 VT_BLOCKS = 6
2510 };
2511 const tosa::Version *version() const {
2512 return GetPointer<const tosa::Version *>(VT_VERSION);
2513 }
2514 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks() const {
2515 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *>(VT_BLOCKS);
2516 }
2517 bool Verify(flatbuffers::Verifier &verifier) const {
2518 return VerifyTableStart(verifier) &&
2519 VerifyOffset(verifier, VT_VERSION) &&
2520 verifier.VerifyTable(version()) &&
2521 VerifyOffset(verifier, VT_BLOCKS) &&
2522 verifier.VerifyVector(blocks()) &&
2523 verifier.VerifyVectorOfTables(blocks()) &&
2524 verifier.EndTable();
2525 }
2526};
2527
2528struct TosaGraphBuilder {
2529 typedef TosaGraph Table;
2530 flatbuffers::FlatBufferBuilder &fbb_;
2531 flatbuffers::uoffset_t start_;
2532 void add_version(flatbuffers::Offset<tosa::Version> version) {
2533 fbb_.AddOffset(TosaGraph::VT_VERSION, version);
2534 }
2535 void add_blocks(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks) {
2536 fbb_.AddOffset(TosaGraph::VT_BLOCKS, blocks);
2537 }
2538 explicit TosaGraphBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2539 : fbb_(_fbb) {
2540 start_ = fbb_.StartTable();
2541 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002542 flatbuffers::Offset<TosaGraph> Finish() {
2543 const auto end = fbb_.EndTable(start_);
2544 auto o = flatbuffers::Offset<TosaGraph>(end);
2545 return o;
2546 }
2547};
2548
2549inline flatbuffers::Offset<TosaGraph> CreateTosaGraph(
2550 flatbuffers::FlatBufferBuilder &_fbb,
2551 flatbuffers::Offset<tosa::Version> version = 0,
2552 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks = 0) {
2553 TosaGraphBuilder builder_(_fbb);
2554 builder_.add_blocks(blocks);
2555 builder_.add_version(version);
2556 return builder_.Finish();
2557}
2558
2559inline flatbuffers::Offset<TosaGraph> CreateTosaGraphDirect(
2560 flatbuffers::FlatBufferBuilder &_fbb,
2561 flatbuffers::Offset<tosa::Version> version = 0,
2562 const std::vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks = nullptr) {
2563 auto blocks__ = blocks ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaBasicBlock>>(*blocks) : 0;
2564 return tosa::CreateTosaGraph(
2565 _fbb,
2566 version,
2567 blocks__);
2568}
2569
2570inline bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type) {
2571 switch (type) {
2572 case Attribute_NONE: {
2573 return true;
2574 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002575 case Attribute_PoolAttribute: {
2576 auto ptr = reinterpret_cast<const tosa::PoolAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002577 return verifier.VerifyTable(ptr);
2578 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002579 case Attribute_ConvAttribute: {
2580 auto ptr = reinterpret_cast<const tosa::ConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002581 return verifier.VerifyTable(ptr);
2582 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002583 case Attribute_TransposeConvAttribute: {
2584 auto ptr = reinterpret_cast<const tosa::TransposeConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002585 return verifier.VerifyTable(ptr);
2586 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002587 case Attribute_PadAttribute: {
2588 auto ptr = reinterpret_cast<const tosa::PadAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002589 return verifier.VerifyTable(ptr);
2590 }
2591 case Attribute_AxisAttribute: {
2592 auto ptr = reinterpret_cast<const tosa::AxisAttribute *>(obj);
2593 return verifier.VerifyTable(ptr);
2594 }
2595 case Attribute_ReshapeAttribute: {
2596 auto ptr = reinterpret_cast<const tosa::ReshapeAttribute *>(obj);
2597 return verifier.VerifyTable(ptr);
2598 }
2599 case Attribute_SliceAttribute: {
2600 auto ptr = reinterpret_cast<const tosa::SliceAttribute *>(obj);
2601 return verifier.VerifyTable(ptr);
2602 }
2603 case Attribute_TileAttribute: {
2604 auto ptr = reinterpret_cast<const tosa::TileAttribute *>(obj);
2605 return verifier.VerifyTable(ptr);
2606 }
2607 case Attribute_ResizeAttribute: {
2608 auto ptr = reinterpret_cast<const tosa::ResizeAttribute *>(obj);
2609 return verifier.VerifyTable(ptr);
2610 }
2611 case Attribute_ClampAttribute: {
2612 auto ptr = reinterpret_cast<const tosa::ClampAttribute *>(obj);
2613 return verifier.VerifyTable(ptr);
2614 }
2615 case Attribute_RescaleAttribute: {
2616 auto ptr = reinterpret_cast<const tosa::RescaleAttribute *>(obj);
2617 return verifier.VerifyTable(ptr);
2618 }
2619 case Attribute_MulAttribute: {
2620 auto ptr = reinterpret_cast<const tosa::MulAttribute *>(obj);
2621 return verifier.VerifyTable(ptr);
2622 }
2623 case Attribute_ArithmeticRightShiftAttribute: {
2624 auto ptr = reinterpret_cast<const tosa::ArithmeticRightShiftAttribute *>(obj);
2625 return verifier.VerifyTable(ptr);
2626 }
2627 case Attribute_CondIfAttribute: {
2628 auto ptr = reinterpret_cast<const tosa::CondIfAttribute *>(obj);
2629 return verifier.VerifyTable(ptr);
2630 }
2631 case Attribute_WhileLoopAttribute: {
2632 auto ptr = reinterpret_cast<const tosa::WhileLoopAttribute *>(obj);
2633 return verifier.VerifyTable(ptr);
2634 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002635 case Attribute_TransposeAttribute: {
2636 auto ptr = reinterpret_cast<const tosa::TransposeAttribute *>(obj);
2637 return verifier.VerifyTable(ptr);
2638 }
2639 case Attribute_TableAttribute: {
2640 auto ptr = reinterpret_cast<const tosa::TableAttribute *>(obj);
2641 return verifier.VerifyTable(ptr);
2642 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002643 case Attribute_MatMulAttribute: {
2644 auto ptr = reinterpret_cast<const tosa::MatMulAttribute *>(obj);
2645 return verifier.VerifyTable(ptr);
2646 }
2647 case Attribute_FullyConnectedAttribute: {
2648 auto ptr = reinterpret_cast<const tosa::FullyConnectedAttribute *>(obj);
2649 return verifier.VerifyTable(ptr);
2650 }
2651 case Attribute_NegateAttribute: {
2652 auto ptr = reinterpret_cast<const tosa::NegateAttribute *>(obj);
2653 return verifier.VerifyTable(ptr);
2654 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002655 default: return true;
2656 }
2657}
2658
2659inline bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
2660 if (!values || !types) return !values && !types;
2661 if (values->size() != types->size()) return false;
2662 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
2663 if (!VerifyAttribute(
2664 verifier, values->Get(i), types->GetEnum<Attribute>(i))) {
2665 return false;
2666 }
2667 }
2668 return true;
2669}
2670
Eric Kunze2364dcd2021-04-26 11:06:57 -07002671inline const tosa::TosaGraph *GetTosaGraph(const void *buf) {
2672 return flatbuffers::GetRoot<tosa::TosaGraph>(buf);
2673}
2674
2675inline const tosa::TosaGraph *GetSizePrefixedTosaGraph(const void *buf) {
2676 return flatbuffers::GetSizePrefixedRoot<tosa::TosaGraph>(buf);
2677}
2678
2679inline const char *TosaGraphIdentifier() {
2680 return "TOSA";
2681}
2682
2683inline bool TosaGraphBufferHasIdentifier(const void *buf) {
2684 return flatbuffers::BufferHasIdentifier(
2685 buf, TosaGraphIdentifier());
2686}
2687
Eric Kunze4381b3d2022-08-22 18:15:41 +00002688inline bool SizePrefixedTosaGraphBufferHasIdentifier(const void *buf) {
2689 return flatbuffers::BufferHasIdentifier(
2690 buf, TosaGraphIdentifier(), true);
2691}
2692
Eric Kunze2364dcd2021-04-26 11:06:57 -07002693inline bool VerifyTosaGraphBuffer(
2694 flatbuffers::Verifier &verifier) {
2695 return verifier.VerifyBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2696}
2697
2698inline bool VerifySizePrefixedTosaGraphBuffer(
2699 flatbuffers::Verifier &verifier) {
2700 return verifier.VerifySizePrefixedBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2701}
2702
2703inline const char *TosaGraphExtension() {
2704 return "tosa";
2705}
2706
2707inline void FinishTosaGraphBuffer(
2708 flatbuffers::FlatBufferBuilder &fbb,
2709 flatbuffers::Offset<tosa::TosaGraph> root) {
2710 fbb.Finish(root, TosaGraphIdentifier());
2711}
2712
2713inline void FinishSizePrefixedTosaGraphBuffer(
2714 flatbuffers::FlatBufferBuilder &fbb,
2715 flatbuffers::Offset<tosa::TosaGraph> root) {
2716 fbb.FinishSizePrefixed(root, TosaGraphIdentifier());
2717}
2718
2719} // namespace tosa
2720
2721#endif // FLATBUFFERS_GENERATED_TOSA_TOSA_H_