blob: f0d04d00a9e99fea2e77d25586e1f2f9f904206a [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,
95 DType_FLOAT = 8,
Jeremy Johnson41027732022-05-25 17:52:29 +010096 DType_UINT16 = 9,
James Ward485a11d2022-08-05 13:48:37 +010097 DType_FP16 = 10,
Eric Kunze2364dcd2021-04-26 11:06:57 -070098 DType_MIN = DType_UNKNOWN,
James Ward485a11d2022-08-05 13:48:37 +010099 DType_MAX = DType_FP16
Eric Kunze2364dcd2021-04-26 11:06:57 -0700100};
101
James Ward485a11d2022-08-05 13:48:37 +0100102inline const DType (&EnumValuesDType())[11] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700103 static const DType values[] = {
104 DType_UNKNOWN,
105 DType_BOOL,
106 DType_UINT8,
107 DType_INT4,
108 DType_INT8,
109 DType_INT16,
110 DType_INT32,
111 DType_INT48,
Jeremy Johnson41027732022-05-25 17:52:29 +0100112 DType_FLOAT,
James Ward485a11d2022-08-05 13:48:37 +0100113 DType_UINT16,
114 DType_FP16
Eric Kunze2364dcd2021-04-26 11:06:57 -0700115 };
116 return values;
117}
118
119inline const char * const *EnumNamesDType() {
James Ward485a11d2022-08-05 13:48:37 +0100120 static const char * const names[12] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700121 "UNKNOWN",
122 "BOOL",
123 "UINT8",
124 "INT4",
125 "INT8",
126 "INT16",
127 "INT32",
128 "INT48",
129 "FLOAT",
Jeremy Johnson41027732022-05-25 17:52:29 +0100130 "UINT16",
James Ward485a11d2022-08-05 13:48:37 +0100131 "FP16",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700132 nullptr
133 };
134 return names;
135}
136
137inline const char *EnumNameDType(DType e) {
James Ward485a11d2022-08-05 13:48:37 +0100138 if (flatbuffers::IsOutRange(e, DType_UNKNOWN, DType_FP16)) return "";
Eric Kunze2364dcd2021-04-26 11:06:57 -0700139 const size_t index = static_cast<size_t>(e);
140 return EnumNamesDType()[index];
141}
142
Eric Kunze4381b3d2022-08-22 18:15:41 +0000143enum ResizeMode : uint32_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700144 ResizeMode_UNKNOWN = 0,
145 ResizeMode_NEAREST = 1,
146 ResizeMode_BILINEAR = 2,
147 ResizeMode_MIN = ResizeMode_UNKNOWN,
148 ResizeMode_MAX = ResizeMode_BILINEAR
149};
150
151inline const ResizeMode (&EnumValuesResizeMode())[3] {
152 static const ResizeMode values[] = {
153 ResizeMode_UNKNOWN,
154 ResizeMode_NEAREST,
155 ResizeMode_BILINEAR
156 };
157 return values;
158}
159
160inline const char * const *EnumNamesResizeMode() {
161 static const char * const names[4] = {
162 "UNKNOWN",
163 "NEAREST",
164 "BILINEAR",
165 nullptr
166 };
167 return names;
168}
169
170inline const char *EnumNameResizeMode(ResizeMode e) {
171 if (flatbuffers::IsOutRange(e, ResizeMode_UNKNOWN, ResizeMode_BILINEAR)) return "";
172 const size_t index = static_cast<size_t>(e);
173 return EnumNamesResizeMode()[index];
174}
175
Eric Kunze4381b3d2022-08-22 18:15:41 +0000176enum Op : uint32_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700177 Op_UNKNOWN = 0,
178 Op_ARGMAX = 1,
179 Op_AVG_POOL2D = 2,
180 Op_CONV2D = 3,
181 Op_CONV3D = 4,
182 Op_DEPTHWISE_CONV2D = 5,
183 Op_FULLY_CONNECTED = 6,
184 Op_MATMUL = 7,
185 Op_MAX_POOL2D = 8,
186 Op_TRANSPOSE_CONV2D = 9,
187 Op_CLAMP = 10,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700188 Op_RESERVED = 11,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700189 Op_SIGMOID = 12,
190 Op_TANH = 13,
191 Op_ADD = 14,
192 Op_ARITHMETIC_RIGHT_SHIFT = 15,
193 Op_BITWISE_AND = 16,
194 Op_BITWISE_OR = 17,
195 Op_BITWISE_XOR = 18,
Matthew Haddonab905ec2021-08-23 16:40:57 +0100196 Op_INTDIV = 19,
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700197 Op_LOGICAL_AND = 20,
198 Op_LOGICAL_LEFT_SHIFT = 21,
199 Op_LOGICAL_RIGHT_SHIFT = 22,
200 Op_LOGICAL_OR = 23,
201 Op_LOGICAL_XOR = 24,
202 Op_MAXIMUM = 25,
203 Op_MINIMUM = 26,
204 Op_MUL = 27,
205 Op_POW = 28,
206 Op_SUB = 29,
207 Op_TABLE = 30,
208 Op_ABS = 31,
209 Op_BITWISE_NOT = 32,
210 Op_CEIL = 33,
211 Op_CLZ = 34,
212 Op_EXP = 35,
213 Op_FLOOR = 36,
214 Op_LOG = 37,
215 Op_LOGICAL_NOT = 38,
216 Op_NEGATE = 39,
217 Op_RECIPROCAL = 40,
218 Op_RSQRT = 41,
219 Op_SELECT = 42,
220 Op_EQUAL = 43,
221 Op_GREATER = 44,
222 Op_GREATER_EQUAL = 45,
223 Op_REDUCE_ANY = 46,
224 Op_REDUCE_ALL = 47,
225 Op_REDUCE_MAX = 48,
226 Op_REDUCE_MIN = 49,
227 Op_REDUCE_PRODUCT = 50,
228 Op_REDUCE_SUM = 51,
229 Op_CONCAT = 52,
230 Op_PAD = 53,
231 Op_RESHAPE = 54,
232 Op_REVERSE = 55,
233 Op_SLICE = 56,
234 Op_TILE = 57,
235 Op_TRANSPOSE = 58,
236 Op_GATHER = 59,
237 Op_SCATTER = 60,
238 Op_RESIZE = 61,
239 Op_CAST = 62,
240 Op_RESCALE = 63,
241 Op_CONST = 64,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700242 Op_IDENTITY = 65,
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700243 Op_CUSTOM = 66,
244 Op_COND_IF = 67,
245 Op_WHILE_LOOP = 68,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700246 Op_MIN = Op_UNKNOWN,
247 Op_MAX = Op_WHILE_LOOP
248};
249
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700250inline const Op (&EnumValuesOp())[69] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700251 static const Op values[] = {
252 Op_UNKNOWN,
253 Op_ARGMAX,
254 Op_AVG_POOL2D,
255 Op_CONV2D,
256 Op_CONV3D,
257 Op_DEPTHWISE_CONV2D,
258 Op_FULLY_CONNECTED,
259 Op_MATMUL,
260 Op_MAX_POOL2D,
261 Op_TRANSPOSE_CONV2D,
262 Op_CLAMP,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700263 Op_RESERVED,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700264 Op_SIGMOID,
265 Op_TANH,
266 Op_ADD,
267 Op_ARITHMETIC_RIGHT_SHIFT,
268 Op_BITWISE_AND,
269 Op_BITWISE_OR,
270 Op_BITWISE_XOR,
Matthew Haddonab905ec2021-08-23 16:40:57 +0100271 Op_INTDIV,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700272 Op_LOGICAL_AND,
273 Op_LOGICAL_LEFT_SHIFT,
274 Op_LOGICAL_RIGHT_SHIFT,
275 Op_LOGICAL_OR,
276 Op_LOGICAL_XOR,
277 Op_MAXIMUM,
278 Op_MINIMUM,
279 Op_MUL,
280 Op_POW,
281 Op_SUB,
282 Op_TABLE,
283 Op_ABS,
284 Op_BITWISE_NOT,
285 Op_CEIL,
286 Op_CLZ,
287 Op_EXP,
288 Op_FLOOR,
289 Op_LOG,
290 Op_LOGICAL_NOT,
291 Op_NEGATE,
292 Op_RECIPROCAL,
293 Op_RSQRT,
294 Op_SELECT,
295 Op_EQUAL,
296 Op_GREATER,
297 Op_GREATER_EQUAL,
298 Op_REDUCE_ANY,
299 Op_REDUCE_ALL,
300 Op_REDUCE_MAX,
301 Op_REDUCE_MIN,
302 Op_REDUCE_PRODUCT,
303 Op_REDUCE_SUM,
304 Op_CONCAT,
305 Op_PAD,
306 Op_RESHAPE,
307 Op_REVERSE,
308 Op_SLICE,
309 Op_TILE,
310 Op_TRANSPOSE,
311 Op_GATHER,
312 Op_SCATTER,
313 Op_RESIZE,
314 Op_CAST,
315 Op_RESCALE,
316 Op_CONST,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700317 Op_IDENTITY,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700318 Op_CUSTOM,
319 Op_COND_IF,
320 Op_WHILE_LOOP
321 };
322 return values;
323}
324
325inline const char * const *EnumNamesOp() {
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700326 static const char * const names[70] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700327 "UNKNOWN",
328 "ARGMAX",
329 "AVG_POOL2D",
330 "CONV2D",
331 "CONV3D",
332 "DEPTHWISE_CONV2D",
333 "FULLY_CONNECTED",
334 "MATMUL",
335 "MAX_POOL2D",
336 "TRANSPOSE_CONV2D",
337 "CLAMP",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700338 "RESERVED",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700339 "SIGMOID",
340 "TANH",
341 "ADD",
342 "ARITHMETIC_RIGHT_SHIFT",
343 "BITWISE_AND",
344 "BITWISE_OR",
345 "BITWISE_XOR",
Matthew Haddonab905ec2021-08-23 16:40:57 +0100346 "INTDIV",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700347 "LOGICAL_AND",
348 "LOGICAL_LEFT_SHIFT",
349 "LOGICAL_RIGHT_SHIFT",
350 "LOGICAL_OR",
351 "LOGICAL_XOR",
352 "MAXIMUM",
353 "MINIMUM",
354 "MUL",
355 "POW",
356 "SUB",
357 "TABLE",
358 "ABS",
359 "BITWISE_NOT",
360 "CEIL",
361 "CLZ",
362 "EXP",
363 "FLOOR",
364 "LOG",
365 "LOGICAL_NOT",
366 "NEGATE",
367 "RECIPROCAL",
368 "RSQRT",
369 "SELECT",
370 "EQUAL",
371 "GREATER",
372 "GREATER_EQUAL",
373 "REDUCE_ANY",
374 "REDUCE_ALL",
375 "REDUCE_MAX",
376 "REDUCE_MIN",
377 "REDUCE_PRODUCT",
378 "REDUCE_SUM",
379 "CONCAT",
380 "PAD",
381 "RESHAPE",
382 "REVERSE",
383 "SLICE",
384 "TILE",
385 "TRANSPOSE",
386 "GATHER",
387 "SCATTER",
388 "RESIZE",
389 "CAST",
390 "RESCALE",
391 "CONST",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700392 "IDENTITY",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700393 "CUSTOM",
394 "COND_IF",
395 "WHILE_LOOP",
396 nullptr
397 };
398 return names;
399}
400
401inline const char *EnumNameOp(Op e) {
402 if (flatbuffers::IsOutRange(e, Op_UNKNOWN, Op_WHILE_LOOP)) return "";
403 const size_t index = static_cast<size_t>(e);
404 return EnumNamesOp()[index];
405}
406
Eric Kunze4381b3d2022-08-22 18:15:41 +0000407enum Attribute : uint8_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700408 Attribute_NONE = 0,
Kevin Cheng79a41992021-08-31 16:04:40 -0700409 Attribute_PoolAttribute = 1,
410 Attribute_ConvAttribute = 2,
411 Attribute_TransposeConvAttribute = 3,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700412 Attribute_PadAttribute = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700413 Attribute_AxisAttribute = 5,
414 Attribute_ReshapeAttribute = 6,
415 Attribute_SliceAttribute = 7,
416 Attribute_TileAttribute = 8,
417 Attribute_ResizeAttribute = 9,
418 Attribute_ClampAttribute = 10,
419 Attribute_RescaleAttribute = 11,
420 Attribute_MulAttribute = 12,
421 Attribute_ArithmeticRightShiftAttribute = 13,
422 Attribute_CondIfAttribute = 14,
423 Attribute_WhileLoopAttribute = 15,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700424 Attribute_TransposeAttribute = 16,
425 Attribute_TableAttribute = 17,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000426 Attribute_MatMulAttribute = 18,
427 Attribute_FullyConnectedAttribute = 19,
428 Attribute_NegateAttribute = 20,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700429 Attribute_MIN = Attribute_NONE,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000430 Attribute_MAX = Attribute_NegateAttribute
Eric Kunze2364dcd2021-04-26 11:06:57 -0700431};
432
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000433inline const Attribute (&EnumValuesAttribute())[21] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700434 static const Attribute values[] = {
435 Attribute_NONE,
Kevin Cheng79a41992021-08-31 16:04:40 -0700436 Attribute_PoolAttribute,
437 Attribute_ConvAttribute,
438 Attribute_TransposeConvAttribute,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700439 Attribute_PadAttribute,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700440 Attribute_AxisAttribute,
441 Attribute_ReshapeAttribute,
442 Attribute_SliceAttribute,
443 Attribute_TileAttribute,
444 Attribute_ResizeAttribute,
445 Attribute_ClampAttribute,
446 Attribute_RescaleAttribute,
447 Attribute_MulAttribute,
448 Attribute_ArithmeticRightShiftAttribute,
449 Attribute_CondIfAttribute,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700450 Attribute_WhileLoopAttribute,
451 Attribute_TransposeAttribute,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000452 Attribute_TableAttribute,
453 Attribute_MatMulAttribute,
454 Attribute_FullyConnectedAttribute,
455 Attribute_NegateAttribute
Eric Kunze2364dcd2021-04-26 11:06:57 -0700456 };
457 return values;
458}
459
460inline const char * const *EnumNamesAttribute() {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000461 static const char * const names[22] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700462 "NONE",
Kevin Cheng79a41992021-08-31 16:04:40 -0700463 "PoolAttribute",
464 "ConvAttribute",
465 "TransposeConvAttribute",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700466 "PadAttribute",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700467 "AxisAttribute",
468 "ReshapeAttribute",
469 "SliceAttribute",
470 "TileAttribute",
471 "ResizeAttribute",
472 "ClampAttribute",
473 "RescaleAttribute",
474 "MulAttribute",
475 "ArithmeticRightShiftAttribute",
476 "CondIfAttribute",
477 "WhileLoopAttribute",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700478 "TransposeAttribute",
479 "TableAttribute",
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000480 "MatMulAttribute",
481 "FullyConnectedAttribute",
482 "NegateAttribute",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700483 nullptr
484 };
485 return names;
486}
487
488inline const char *EnumNameAttribute(Attribute e) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000489 if (flatbuffers::IsOutRange(e, Attribute_NONE, Attribute_NegateAttribute)) return "";
Eric Kunze2364dcd2021-04-26 11:06:57 -0700490 const size_t index = static_cast<size_t>(e);
491 return EnumNamesAttribute()[index];
492}
493
494template<typename T> struct AttributeTraits {
495 static const Attribute enum_value = Attribute_NONE;
496};
497
Kevin Cheng79a41992021-08-31 16:04:40 -0700498template<> struct AttributeTraits<tosa::PoolAttribute> {
499 static const Attribute enum_value = Attribute_PoolAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700500};
501
Kevin Cheng79a41992021-08-31 16:04:40 -0700502template<> struct AttributeTraits<tosa::ConvAttribute> {
503 static const Attribute enum_value = Attribute_ConvAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700504};
505
Kevin Cheng79a41992021-08-31 16:04:40 -0700506template<> struct AttributeTraits<tosa::TransposeConvAttribute> {
507 static const Attribute enum_value = Attribute_TransposeConvAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700508};
509
Kevin Cheng38d214c2021-10-15 15:49:19 -0700510template<> struct AttributeTraits<tosa::PadAttribute> {
511 static const Attribute enum_value = Attribute_PadAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700512};
513
514template<> struct AttributeTraits<tosa::AxisAttribute> {
515 static const Attribute enum_value = Attribute_AxisAttribute;
516};
517
518template<> struct AttributeTraits<tosa::ReshapeAttribute> {
519 static const Attribute enum_value = Attribute_ReshapeAttribute;
520};
521
522template<> struct AttributeTraits<tosa::SliceAttribute> {
523 static const Attribute enum_value = Attribute_SliceAttribute;
524};
525
526template<> struct AttributeTraits<tosa::TileAttribute> {
527 static const Attribute enum_value = Attribute_TileAttribute;
528};
529
530template<> struct AttributeTraits<tosa::ResizeAttribute> {
531 static const Attribute enum_value = Attribute_ResizeAttribute;
532};
533
534template<> struct AttributeTraits<tosa::ClampAttribute> {
535 static const Attribute enum_value = Attribute_ClampAttribute;
536};
537
538template<> struct AttributeTraits<tosa::RescaleAttribute> {
539 static const Attribute enum_value = Attribute_RescaleAttribute;
540};
541
542template<> struct AttributeTraits<tosa::MulAttribute> {
543 static const Attribute enum_value = Attribute_MulAttribute;
544};
545
546template<> struct AttributeTraits<tosa::ArithmeticRightShiftAttribute> {
547 static const Attribute enum_value = Attribute_ArithmeticRightShiftAttribute;
548};
549
550template<> struct AttributeTraits<tosa::CondIfAttribute> {
551 static const Attribute enum_value = Attribute_CondIfAttribute;
552};
553
554template<> struct AttributeTraits<tosa::WhileLoopAttribute> {
555 static const Attribute enum_value = Attribute_WhileLoopAttribute;
556};
557
Kevin Cheng38d214c2021-10-15 15:49:19 -0700558template<> struct AttributeTraits<tosa::TransposeAttribute> {
559 static const Attribute enum_value = Attribute_TransposeAttribute;
560};
561
562template<> struct AttributeTraits<tosa::TableAttribute> {
563 static const Attribute enum_value = Attribute_TableAttribute;
564};
565
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000566template<> struct AttributeTraits<tosa::MatMulAttribute> {
567 static const Attribute enum_value = Attribute_MatMulAttribute;
568};
569
570template<> struct AttributeTraits<tosa::FullyConnectedAttribute> {
571 static const Attribute enum_value = Attribute_FullyConnectedAttribute;
572};
573
574template<> struct AttributeTraits<tosa::NegateAttribute> {
575 static const Attribute enum_value = Attribute_NegateAttribute;
576};
577
Eric Kunze2364dcd2021-04-26 11:06:57 -0700578bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type);
579bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types);
580
Kevin Cheng79a41992021-08-31 16:04:40 -0700581struct PoolAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
582 typedef PoolAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700583 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -0700584 VT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700585 VT_KERNEL = 6,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000586 VT_STRIDE = 8,
587 VT_INPUT_ZP = 10,
James Ward485a11d2022-08-05 13:48:37 +0100588 VT_OUTPUT_ZP = 12,
589 VT_ACCUM_DTYPE = 14
Eric Kunze2364dcd2021-04-26 11:06:57 -0700590 };
TatWai Chong7be71652022-05-10 17:26:20 -0700591 const flatbuffers::Vector<int32_t> *pad() const {
592 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700593 }
594 const flatbuffers::Vector<int32_t> *kernel() const {
595 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_KERNEL);
596 }
597 const flatbuffers::Vector<int32_t> *stride() const {
598 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
599 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000600 int32_t input_zp() const {
601 return GetField<int32_t>(VT_INPUT_ZP, 0);
602 }
603 int32_t output_zp() const {
604 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
605 }
James Ward485a11d2022-08-05 13:48:37 +0100606 tosa::DType accum_dtype() const {
607 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
608 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700609 bool Verify(flatbuffers::Verifier &verifier) const {
610 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -0700611 VerifyOffset(verifier, VT_PAD) &&
612 verifier.VerifyVector(pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700613 VerifyOffset(verifier, VT_KERNEL) &&
614 verifier.VerifyVector(kernel()) &&
615 VerifyOffset(verifier, VT_STRIDE) &&
616 verifier.VerifyVector(stride()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000617 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
618 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +0100619 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700620 verifier.EndTable();
621 }
622};
623
Kevin Cheng79a41992021-08-31 16:04:40 -0700624struct PoolAttributeBuilder {
625 typedef PoolAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700626 flatbuffers::FlatBufferBuilder &fbb_;
627 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -0700628 void add_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad) {
629 fbb_.AddOffset(PoolAttribute::VT_PAD, pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700630 }
631 void add_kernel(flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700632 fbb_.AddOffset(PoolAttribute::VT_KERNEL, kernel);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700633 }
634 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700635 fbb_.AddOffset(PoolAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700636 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000637 void add_input_zp(int32_t input_zp) {
638 fbb_.AddElement<int32_t>(PoolAttribute::VT_INPUT_ZP, input_zp, 0);
639 }
640 void add_output_zp(int32_t output_zp) {
641 fbb_.AddElement<int32_t>(PoolAttribute::VT_OUTPUT_ZP, output_zp, 0);
642 }
James Ward485a11d2022-08-05 13:48:37 +0100643 void add_accum_dtype(tosa::DType accum_dtype) {
644 fbb_.AddElement<uint32_t>(PoolAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
645 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700646 explicit PoolAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700647 : fbb_(_fbb) {
648 start_ = fbb_.StartTable();
649 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700650 flatbuffers::Offset<PoolAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700651 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700652 auto o = flatbuffers::Offset<PoolAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700653 return o;
654 }
655};
656
Kevin Cheng79a41992021-08-31 16:04:40 -0700657inline flatbuffers::Offset<PoolAttribute> CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700658 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700659 flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700660 flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000661 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
662 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100663 int32_t output_zp = 0,
664 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700665 PoolAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +0100666 builder_.add_accum_dtype(accum_dtype);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000667 builder_.add_output_zp(output_zp);
668 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700669 builder_.add_stride(stride);
670 builder_.add_kernel(kernel);
TatWai Chong7be71652022-05-10 17:26:20 -0700671 builder_.add_pad(pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700672 return builder_.Finish();
673}
674
Kevin Cheng79a41992021-08-31 16:04:40 -0700675inline flatbuffers::Offset<PoolAttribute> CreatePoolAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700676 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700677 const std::vector<int32_t> *pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700678 const std::vector<int32_t> *kernel = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000679 const std::vector<int32_t> *stride = nullptr,
680 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100681 int32_t output_zp = 0,
682 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
TatWai Chong7be71652022-05-10 17:26:20 -0700683 auto pad__ = pad ? _fbb.CreateVector<int32_t>(*pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700684 auto kernel__ = kernel ? _fbb.CreateVector<int32_t>(*kernel) : 0;
685 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700686 return tosa::CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700687 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700688 pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700689 kernel__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000690 stride__,
691 input_zp,
James Ward485a11d2022-08-05 13:48:37 +0100692 output_zp,
693 accum_dtype);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700694}
695
Kevin Cheng79a41992021-08-31 16:04:40 -0700696struct ConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
697 typedef ConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700698 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -0700699 VT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700700 VT_STRIDE = 6,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000701 VT_DILATION = 8,
702 VT_INPUT_ZP = 10,
James Ward485a11d2022-08-05 13:48:37 +0100703 VT_WEIGHT_ZP = 12,
704 VT_ACCUM_DTYPE = 14
Eric Kunze2364dcd2021-04-26 11:06:57 -0700705 };
TatWai Chong7be71652022-05-10 17:26:20 -0700706 const flatbuffers::Vector<int32_t> *pad() const {
707 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700708 }
709 const flatbuffers::Vector<int32_t> *stride() const {
710 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
711 }
712 const flatbuffers::Vector<int32_t> *dilation() const {
713 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_DILATION);
714 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000715 int32_t input_zp() const {
716 return GetField<int32_t>(VT_INPUT_ZP, 0);
717 }
718 int32_t weight_zp() const {
719 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
720 }
James Ward485a11d2022-08-05 13:48:37 +0100721 tosa::DType accum_dtype() const {
722 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
723 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700724 bool Verify(flatbuffers::Verifier &verifier) const {
725 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -0700726 VerifyOffset(verifier, VT_PAD) &&
727 verifier.VerifyVector(pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700728 VerifyOffset(verifier, VT_STRIDE) &&
729 verifier.VerifyVector(stride()) &&
730 VerifyOffset(verifier, VT_DILATION) &&
731 verifier.VerifyVector(dilation()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000732 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
733 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +0100734 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700735 verifier.EndTable();
736 }
737};
738
Kevin Cheng79a41992021-08-31 16:04:40 -0700739struct ConvAttributeBuilder {
740 typedef ConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700741 flatbuffers::FlatBufferBuilder &fbb_;
742 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -0700743 void add_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad) {
744 fbb_.AddOffset(ConvAttribute::VT_PAD, pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700745 }
746 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700747 fbb_.AddOffset(ConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700748 }
749 void add_dilation(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700750 fbb_.AddOffset(ConvAttribute::VT_DILATION, dilation);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700751 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000752 void add_input_zp(int32_t input_zp) {
753 fbb_.AddElement<int32_t>(ConvAttribute::VT_INPUT_ZP, input_zp, 0);
754 }
755 void add_weight_zp(int32_t weight_zp) {
756 fbb_.AddElement<int32_t>(ConvAttribute::VT_WEIGHT_ZP, weight_zp, 0);
757 }
James Ward485a11d2022-08-05 13:48:37 +0100758 void add_accum_dtype(tosa::DType accum_dtype) {
759 fbb_.AddElement<uint32_t>(ConvAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
760 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700761 explicit ConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700762 : fbb_(_fbb) {
763 start_ = fbb_.StartTable();
764 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700765 flatbuffers::Offset<ConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700766 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700767 auto o = flatbuffers::Offset<ConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700768 return o;
769 }
770};
771
Kevin Cheng79a41992021-08-31 16:04:40 -0700772inline flatbuffers::Offset<ConvAttribute> CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700773 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700774 flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700775 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000776 flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation = 0,
777 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100778 int32_t weight_zp = 0,
779 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700780 ConvAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +0100781 builder_.add_accum_dtype(accum_dtype);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000782 builder_.add_weight_zp(weight_zp);
783 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700784 builder_.add_dilation(dilation);
785 builder_.add_stride(stride);
TatWai Chong7be71652022-05-10 17:26:20 -0700786 builder_.add_pad(pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700787 return builder_.Finish();
788}
789
Kevin Cheng79a41992021-08-31 16:04:40 -0700790inline flatbuffers::Offset<ConvAttribute> CreateConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700791 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700792 const std::vector<int32_t> *pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700793 const std::vector<int32_t> *stride = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000794 const std::vector<int32_t> *dilation = nullptr,
795 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100796 int32_t weight_zp = 0,
797 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
TatWai Chong7be71652022-05-10 17:26:20 -0700798 auto pad__ = pad ? _fbb.CreateVector<int32_t>(*pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700799 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
800 auto dilation__ = dilation ? _fbb.CreateVector<int32_t>(*dilation) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700801 return tosa::CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700802 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700803 pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700804 stride__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000805 dilation__,
806 input_zp,
James Ward485a11d2022-08-05 13:48:37 +0100807 weight_zp,
808 accum_dtype);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700809}
810
Kevin Cheng79a41992021-08-31 16:04:40 -0700811struct TransposeConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
812 typedef TransposeConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700813 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700814 VT_OUT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700815 VT_STRIDE = 6,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000816 VT_OUTPUT_SHAPE = 8,
817 VT_INPUT_ZP = 10,
James Ward485a11d2022-08-05 13:48:37 +0100818 VT_WEIGHT_ZP = 12,
819 VT_ACCUM_DTYPE = 14
Eric Kunze2364dcd2021-04-26 11:06:57 -0700820 };
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700821 const flatbuffers::Vector<int32_t> *out_pad() const {
822 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700823 }
824 const flatbuffers::Vector<int32_t> *stride() const {
825 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
826 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700827 const flatbuffers::Vector<int32_t> *output_shape() const {
828 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUT_SHAPE);
829 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000830 int32_t input_zp() const {
831 return GetField<int32_t>(VT_INPUT_ZP, 0);
832 }
833 int32_t weight_zp() const {
834 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
835 }
James Ward485a11d2022-08-05 13:48:37 +0100836 tosa::DType accum_dtype() const {
837 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
838 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700839 bool Verify(flatbuffers::Verifier &verifier) const {
840 return VerifyTableStart(verifier) &&
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700841 VerifyOffset(verifier, VT_OUT_PAD) &&
842 verifier.VerifyVector(out_pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700843 VerifyOffset(verifier, VT_STRIDE) &&
844 verifier.VerifyVector(stride()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700845 VerifyOffset(verifier, VT_OUTPUT_SHAPE) &&
846 verifier.VerifyVector(output_shape()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000847 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
848 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +0100849 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700850 verifier.EndTable();
851 }
852};
853
Kevin Cheng79a41992021-08-31 16:04:40 -0700854struct TransposeConvAttributeBuilder {
855 typedef TransposeConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700856 flatbuffers::FlatBufferBuilder &fbb_;
857 flatbuffers::uoffset_t start_;
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700858 void add_out_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> out_pad) {
859 fbb_.AddOffset(TransposeConvAttribute::VT_OUT_PAD, out_pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700860 }
861 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700862 fbb_.AddOffset(TransposeConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700863 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700864 void add_output_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700865 fbb_.AddOffset(TransposeConvAttribute::VT_OUTPUT_SHAPE, output_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700866 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000867 void add_input_zp(int32_t input_zp) {
868 fbb_.AddElement<int32_t>(TransposeConvAttribute::VT_INPUT_ZP, input_zp, 0);
869 }
870 void add_weight_zp(int32_t weight_zp) {
871 fbb_.AddElement<int32_t>(TransposeConvAttribute::VT_WEIGHT_ZP, weight_zp, 0);
872 }
James Ward485a11d2022-08-05 13:48:37 +0100873 void add_accum_dtype(tosa::DType accum_dtype) {
874 fbb_.AddElement<uint32_t>(TransposeConvAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
875 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700876 explicit TransposeConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700877 : fbb_(_fbb) {
878 start_ = fbb_.StartTable();
879 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700880 flatbuffers::Offset<TransposeConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700881 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700882 auto o = flatbuffers::Offset<TransposeConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700883 return o;
884 }
885};
886
Kevin Cheng79a41992021-08-31 16:04:40 -0700887inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700888 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700889 flatbuffers::Offset<flatbuffers::Vector<int32_t>> out_pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700890 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000891 flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape = 0,
892 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100893 int32_t weight_zp = 0,
894 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700895 TransposeConvAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +0100896 builder_.add_accum_dtype(accum_dtype);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000897 builder_.add_weight_zp(weight_zp);
898 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700899 builder_.add_output_shape(output_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700900 builder_.add_stride(stride);
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700901 builder_.add_out_pad(out_pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700902 return builder_.Finish();
903}
904
Kevin Cheng79a41992021-08-31 16:04:40 -0700905inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700906 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700907 const std::vector<int32_t> *out_pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700908 const std::vector<int32_t> *stride = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000909 const std::vector<int32_t> *output_shape = nullptr,
910 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100911 int32_t weight_zp = 0,
912 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700913 auto out_pad__ = out_pad ? _fbb.CreateVector<int32_t>(*out_pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700914 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700915 auto output_shape__ = output_shape ? _fbb.CreateVector<int32_t>(*output_shape) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700916 return tosa::CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700917 _fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700918 out_pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700919 stride__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000920 output_shape__,
921 input_zp,
James Ward485a11d2022-08-05 13:48:37 +0100922 weight_zp,
923 accum_dtype);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700924}
925
Kevin Cheng38d214c2021-10-15 15:49:19 -0700926struct PadAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
927 typedef PadAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700928 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Kevin Cheng38d214c2021-10-15 15:49:19 -0700929 VT_PADDING = 4,
930 VT_PAD_CONST_INT = 6,
931 VT_PAD_CONST_FP = 8
Eric Kunze2364dcd2021-04-26 11:06:57 -0700932 };
Kevin Cheng38d214c2021-10-15 15:49:19 -0700933 const flatbuffers::Vector<int32_t> *padding() const {
934 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PADDING);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700935 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700936 int32_t pad_const_int() const {
937 return GetField<int32_t>(VT_PAD_CONST_INT, 0);
938 }
939 float pad_const_fp() const {
940 return GetField<float>(VT_PAD_CONST_FP, 0.0f);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700941 }
942 bool Verify(flatbuffers::Verifier &verifier) const {
943 return VerifyTableStart(verifier) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -0700944 VerifyOffset(verifier, VT_PADDING) &&
945 verifier.VerifyVector(padding()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000946 VerifyField<int32_t>(verifier, VT_PAD_CONST_INT, 4) &&
947 VerifyField<float>(verifier, VT_PAD_CONST_FP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700948 verifier.EndTable();
949 }
950};
951
Kevin Cheng38d214c2021-10-15 15:49:19 -0700952struct PadAttributeBuilder {
953 typedef PadAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700954 flatbuffers::FlatBufferBuilder &fbb_;
955 flatbuffers::uoffset_t start_;
Kevin Cheng38d214c2021-10-15 15:49:19 -0700956 void add_padding(flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding) {
957 fbb_.AddOffset(PadAttribute::VT_PADDING, padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700958 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700959 void add_pad_const_int(int32_t pad_const_int) {
960 fbb_.AddElement<int32_t>(PadAttribute::VT_PAD_CONST_INT, pad_const_int, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700961 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700962 void add_pad_const_fp(float pad_const_fp) {
963 fbb_.AddElement<float>(PadAttribute::VT_PAD_CONST_FP, pad_const_fp, 0.0f);
964 }
965 explicit PadAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700966 : fbb_(_fbb) {
967 start_ = fbb_.StartTable();
968 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700969 flatbuffers::Offset<PadAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700970 const auto end = fbb_.EndTable(start_);
Kevin Cheng38d214c2021-10-15 15:49:19 -0700971 auto o = flatbuffers::Offset<PadAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700972 return o;
973 }
974};
975
Kevin Cheng38d214c2021-10-15 15:49:19 -0700976inline flatbuffers::Offset<PadAttribute> CreatePadAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700977 flatbuffers::FlatBufferBuilder &_fbb,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700978 flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding = 0,
979 int32_t pad_const_int = 0,
980 float pad_const_fp = 0.0f) {
981 PadAttributeBuilder builder_(_fbb);
982 builder_.add_pad_const_fp(pad_const_fp);
983 builder_.add_pad_const_int(pad_const_int);
984 builder_.add_padding(padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700985 return builder_.Finish();
986}
987
Kevin Cheng38d214c2021-10-15 15:49:19 -0700988inline flatbuffers::Offset<PadAttribute> CreatePadAttributeDirect(
989 flatbuffers::FlatBufferBuilder &_fbb,
990 const std::vector<int32_t> *padding = nullptr,
991 int32_t pad_const_int = 0,
992 float pad_const_fp = 0.0f) {
993 auto padding__ = padding ? _fbb.CreateVector<int32_t>(*padding) : 0;
994 return tosa::CreatePadAttribute(
995 _fbb,
996 padding__,
997 pad_const_int,
998 pad_const_fp);
999}
1000
Eric Kunze2364dcd2021-04-26 11:06:57 -07001001struct AxisAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1002 typedef AxisAttributeBuilder Builder;
1003 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1004 VT_AXIS = 4
1005 };
1006 int32_t axis() const {
1007 return GetField<int32_t>(VT_AXIS, 0);
1008 }
1009 bool Verify(flatbuffers::Verifier &verifier) const {
1010 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001011 VerifyField<int32_t>(verifier, VT_AXIS, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001012 verifier.EndTable();
1013 }
1014};
1015
1016struct AxisAttributeBuilder {
1017 typedef AxisAttribute Table;
1018 flatbuffers::FlatBufferBuilder &fbb_;
1019 flatbuffers::uoffset_t start_;
1020 void add_axis(int32_t axis) {
1021 fbb_.AddElement<int32_t>(AxisAttribute::VT_AXIS, axis, 0);
1022 }
1023 explicit AxisAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1024 : fbb_(_fbb) {
1025 start_ = fbb_.StartTable();
1026 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001027 flatbuffers::Offset<AxisAttribute> Finish() {
1028 const auto end = fbb_.EndTable(start_);
1029 auto o = flatbuffers::Offset<AxisAttribute>(end);
1030 return o;
1031 }
1032};
1033
1034inline flatbuffers::Offset<AxisAttribute> CreateAxisAttribute(
1035 flatbuffers::FlatBufferBuilder &_fbb,
1036 int32_t axis = 0) {
1037 AxisAttributeBuilder builder_(_fbb);
1038 builder_.add_axis(axis);
1039 return builder_.Finish();
1040}
1041
1042struct ReshapeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1043 typedef ReshapeAttributeBuilder Builder;
1044 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001045 VT_NEW_SHAPE = 4
Eric Kunze2364dcd2021-04-26 11:06:57 -07001046 };
TatWai Chong7be71652022-05-10 17:26:20 -07001047 const flatbuffers::Vector<int32_t> *new_shape() const {
1048 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_NEW_SHAPE);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001049 }
1050 bool Verify(flatbuffers::Verifier &verifier) const {
1051 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001052 VerifyOffset(verifier, VT_NEW_SHAPE) &&
1053 verifier.VerifyVector(new_shape()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001054 verifier.EndTable();
1055 }
1056};
1057
1058struct ReshapeAttributeBuilder {
1059 typedef ReshapeAttribute Table;
1060 flatbuffers::FlatBufferBuilder &fbb_;
1061 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001062 void add_new_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> new_shape) {
1063 fbb_.AddOffset(ReshapeAttribute::VT_NEW_SHAPE, new_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001064 }
1065 explicit ReshapeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1066 : fbb_(_fbb) {
1067 start_ = fbb_.StartTable();
1068 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001069 flatbuffers::Offset<ReshapeAttribute> Finish() {
1070 const auto end = fbb_.EndTable(start_);
1071 auto o = flatbuffers::Offset<ReshapeAttribute>(end);
1072 return o;
1073 }
1074};
1075
1076inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttribute(
1077 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001078 flatbuffers::Offset<flatbuffers::Vector<int32_t>> new_shape = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001079 ReshapeAttributeBuilder builder_(_fbb);
TatWai Chong7be71652022-05-10 17:26:20 -07001080 builder_.add_new_shape(new_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001081 return builder_.Finish();
1082}
1083
1084inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttributeDirect(
1085 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001086 const std::vector<int32_t> *new_shape = nullptr) {
1087 auto new_shape__ = new_shape ? _fbb.CreateVector<int32_t>(*new_shape) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001088 return tosa::CreateReshapeAttribute(
1089 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001090 new_shape__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001091}
1092
1093struct SliceAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1094 typedef SliceAttributeBuilder Builder;
1095 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001096 VT_START = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001097 VT_SIZE = 6
1098 };
TatWai Chong7be71652022-05-10 17:26:20 -07001099 const flatbuffers::Vector<int32_t> *start() const {
1100 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_START);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001101 }
1102 const flatbuffers::Vector<int32_t> *size() const {
1103 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SIZE);
1104 }
1105 bool Verify(flatbuffers::Verifier &verifier) const {
1106 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001107 VerifyOffset(verifier, VT_START) &&
1108 verifier.VerifyVector(start()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001109 VerifyOffset(verifier, VT_SIZE) &&
1110 verifier.VerifyVector(size()) &&
1111 verifier.EndTable();
1112 }
1113};
1114
1115struct SliceAttributeBuilder {
1116 typedef SliceAttribute Table;
1117 flatbuffers::FlatBufferBuilder &fbb_;
1118 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001119 void add_start(flatbuffers::Offset<flatbuffers::Vector<int32_t>> start) {
1120 fbb_.AddOffset(SliceAttribute::VT_START, start);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001121 }
1122 void add_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> size) {
1123 fbb_.AddOffset(SliceAttribute::VT_SIZE, size);
1124 }
1125 explicit SliceAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1126 : fbb_(_fbb) {
1127 start_ = fbb_.StartTable();
1128 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001129 flatbuffers::Offset<SliceAttribute> Finish() {
1130 const auto end = fbb_.EndTable(start_);
1131 auto o = flatbuffers::Offset<SliceAttribute>(end);
1132 return o;
1133 }
1134};
1135
1136inline flatbuffers::Offset<SliceAttribute> CreateSliceAttribute(
1137 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001138 flatbuffers::Offset<flatbuffers::Vector<int32_t>> start = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001139 flatbuffers::Offset<flatbuffers::Vector<int32_t>> size = 0) {
1140 SliceAttributeBuilder builder_(_fbb);
1141 builder_.add_size(size);
TatWai Chong7be71652022-05-10 17:26:20 -07001142 builder_.add_start(start);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001143 return builder_.Finish();
1144}
1145
1146inline flatbuffers::Offset<SliceAttribute> CreateSliceAttributeDirect(
1147 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001148 const std::vector<int32_t> *start = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001149 const std::vector<int32_t> *size = nullptr) {
TatWai Chong7be71652022-05-10 17:26:20 -07001150 auto start__ = start ? _fbb.CreateVector<int32_t>(*start) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001151 auto size__ = size ? _fbb.CreateVector<int32_t>(*size) : 0;
1152 return tosa::CreateSliceAttribute(
1153 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001154 start__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001155 size__);
1156}
1157
1158struct TileAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1159 typedef TileAttributeBuilder Builder;
1160 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1161 VT_MULTIPLES = 4
1162 };
1163 const flatbuffers::Vector<int32_t> *multiples() const {
1164 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLES);
1165 }
1166 bool Verify(flatbuffers::Verifier &verifier) const {
1167 return VerifyTableStart(verifier) &&
1168 VerifyOffset(verifier, VT_MULTIPLES) &&
1169 verifier.VerifyVector(multiples()) &&
1170 verifier.EndTable();
1171 }
1172};
1173
1174struct TileAttributeBuilder {
1175 typedef TileAttribute Table;
1176 flatbuffers::FlatBufferBuilder &fbb_;
1177 flatbuffers::uoffset_t start_;
1178 void add_multiples(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples) {
1179 fbb_.AddOffset(TileAttribute::VT_MULTIPLES, multiples);
1180 }
1181 explicit TileAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1182 : fbb_(_fbb) {
1183 start_ = fbb_.StartTable();
1184 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001185 flatbuffers::Offset<TileAttribute> Finish() {
1186 const auto end = fbb_.EndTable(start_);
1187 auto o = flatbuffers::Offset<TileAttribute>(end);
1188 return o;
1189 }
1190};
1191
1192inline flatbuffers::Offset<TileAttribute> CreateTileAttribute(
1193 flatbuffers::FlatBufferBuilder &_fbb,
1194 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples = 0) {
1195 TileAttributeBuilder builder_(_fbb);
1196 builder_.add_multiples(multiples);
1197 return builder_.Finish();
1198}
1199
1200inline flatbuffers::Offset<TileAttribute> CreateTileAttributeDirect(
1201 flatbuffers::FlatBufferBuilder &_fbb,
1202 const std::vector<int32_t> *multiples = nullptr) {
1203 auto multiples__ = multiples ? _fbb.CreateVector<int32_t>(*multiples) : 0;
1204 return tosa::CreateTileAttribute(
1205 _fbb,
1206 multiples__);
1207}
1208
1209struct ResizeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1210 typedef ResizeAttributeBuilder Builder;
1211 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong49b1ca62022-06-10 01:49:13 -07001212 VT_SCALE = 4,
1213 VT_OFFSET = 6,
1214 VT_BORDER = 8,
1215 VT_MODE = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07001216 };
TatWai Chong49b1ca62022-06-10 01:49:13 -07001217 const flatbuffers::Vector<int16_t> *scale() const {
1218 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_SCALE);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001219 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001220 const flatbuffers::Vector<int16_t> *offset() const {
1221 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_OFFSET);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001222 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001223 const flatbuffers::Vector<int16_t> *border() const {
1224 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_BORDER);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001225 }
1226 tosa::ResizeMode mode() const {
1227 return static_cast<tosa::ResizeMode>(GetField<uint32_t>(VT_MODE, 0));
1228 }
1229 bool Verify(flatbuffers::Verifier &verifier) const {
1230 return VerifyTableStart(verifier) &&
TatWai Chong49b1ca62022-06-10 01:49:13 -07001231 VerifyOffset(verifier, VT_SCALE) &&
1232 verifier.VerifyVector(scale()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001233 VerifyOffset(verifier, VT_OFFSET) &&
1234 verifier.VerifyVector(offset()) &&
TatWai Chong49b1ca62022-06-10 01:49:13 -07001235 VerifyOffset(verifier, VT_BORDER) &&
1236 verifier.VerifyVector(border()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001237 VerifyField<uint32_t>(verifier, VT_MODE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001238 verifier.EndTable();
1239 }
1240};
1241
1242struct ResizeAttributeBuilder {
1243 typedef ResizeAttribute Table;
1244 flatbuffers::FlatBufferBuilder &fbb_;
1245 flatbuffers::uoffset_t start_;
TatWai Chong49b1ca62022-06-10 01:49:13 -07001246 void add_scale(flatbuffers::Offset<flatbuffers::Vector<int16_t>> scale) {
1247 fbb_.AddOffset(ResizeAttribute::VT_SCALE, scale);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001248 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001249 void add_offset(flatbuffers::Offset<flatbuffers::Vector<int16_t>> offset) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001250 fbb_.AddOffset(ResizeAttribute::VT_OFFSET, offset);
1251 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001252 void add_border(flatbuffers::Offset<flatbuffers::Vector<int16_t>> border) {
1253 fbb_.AddOffset(ResizeAttribute::VT_BORDER, border);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001254 }
1255 void add_mode(tosa::ResizeMode mode) {
1256 fbb_.AddElement<uint32_t>(ResizeAttribute::VT_MODE, static_cast<uint32_t>(mode), 0);
1257 }
1258 explicit ResizeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1259 : fbb_(_fbb) {
1260 start_ = fbb_.StartTable();
1261 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001262 flatbuffers::Offset<ResizeAttribute> Finish() {
1263 const auto end = fbb_.EndTable(start_);
1264 auto o = flatbuffers::Offset<ResizeAttribute>(end);
1265 return o;
1266 }
1267};
1268
1269inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttribute(
1270 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001271 flatbuffers::Offset<flatbuffers::Vector<int16_t>> scale = 0,
1272 flatbuffers::Offset<flatbuffers::Vector<int16_t>> offset = 0,
1273 flatbuffers::Offset<flatbuffers::Vector<int16_t>> border = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001274 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
1275 ResizeAttributeBuilder builder_(_fbb);
1276 builder_.add_mode(mode);
TatWai Chong49b1ca62022-06-10 01:49:13 -07001277 builder_.add_border(border);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001278 builder_.add_offset(offset);
TatWai Chong49b1ca62022-06-10 01:49:13 -07001279 builder_.add_scale(scale);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001280 return builder_.Finish();
1281}
1282
1283inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttributeDirect(
1284 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001285 const std::vector<int16_t> *scale = nullptr,
1286 const std::vector<int16_t> *offset = nullptr,
1287 const std::vector<int16_t> *border = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001288 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
TatWai Chong49b1ca62022-06-10 01:49:13 -07001289 auto scale__ = scale ? _fbb.CreateVector<int16_t>(*scale) : 0;
1290 auto offset__ = offset ? _fbb.CreateVector<int16_t>(*offset) : 0;
1291 auto border__ = border ? _fbb.CreateVector<int16_t>(*border) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001292 return tosa::CreateResizeAttribute(
1293 _fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001294 scale__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001295 offset__,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001296 border__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001297 mode);
1298}
1299
1300struct ClampAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1301 typedef ClampAttributeBuilder Builder;
1302 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1303 VT_MIN_INT = 4,
1304 VT_MAX_INT = 6,
1305 VT_MIN_FP = 8,
1306 VT_MAX_FP = 10
1307 };
1308 int32_t min_int() const {
1309 return GetField<int32_t>(VT_MIN_INT, 0);
1310 }
1311 int32_t max_int() const {
1312 return GetField<int32_t>(VT_MAX_INT, 0);
1313 }
1314 float min_fp() const {
1315 return GetField<float>(VT_MIN_FP, 0.0f);
1316 }
1317 float max_fp() const {
1318 return GetField<float>(VT_MAX_FP, 0.0f);
1319 }
1320 bool Verify(flatbuffers::Verifier &verifier) const {
1321 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001322 VerifyField<int32_t>(verifier, VT_MIN_INT, 4) &&
1323 VerifyField<int32_t>(verifier, VT_MAX_INT, 4) &&
1324 VerifyField<float>(verifier, VT_MIN_FP, 4) &&
1325 VerifyField<float>(verifier, VT_MAX_FP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001326 verifier.EndTable();
1327 }
1328};
1329
1330struct ClampAttributeBuilder {
1331 typedef ClampAttribute Table;
1332 flatbuffers::FlatBufferBuilder &fbb_;
1333 flatbuffers::uoffset_t start_;
1334 void add_min_int(int32_t min_int) {
1335 fbb_.AddElement<int32_t>(ClampAttribute::VT_MIN_INT, min_int, 0);
1336 }
1337 void add_max_int(int32_t max_int) {
1338 fbb_.AddElement<int32_t>(ClampAttribute::VT_MAX_INT, max_int, 0);
1339 }
1340 void add_min_fp(float min_fp) {
1341 fbb_.AddElement<float>(ClampAttribute::VT_MIN_FP, min_fp, 0.0f);
1342 }
1343 void add_max_fp(float max_fp) {
1344 fbb_.AddElement<float>(ClampAttribute::VT_MAX_FP, max_fp, 0.0f);
1345 }
1346 explicit ClampAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1347 : fbb_(_fbb) {
1348 start_ = fbb_.StartTable();
1349 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001350 flatbuffers::Offset<ClampAttribute> Finish() {
1351 const auto end = fbb_.EndTable(start_);
1352 auto o = flatbuffers::Offset<ClampAttribute>(end);
1353 return o;
1354 }
1355};
1356
1357inline flatbuffers::Offset<ClampAttribute> CreateClampAttribute(
1358 flatbuffers::FlatBufferBuilder &_fbb,
1359 int32_t min_int = 0,
1360 int32_t max_int = 0,
1361 float min_fp = 0.0f,
1362 float max_fp = 0.0f) {
1363 ClampAttributeBuilder builder_(_fbb);
1364 builder_.add_max_fp(max_fp);
1365 builder_.add_min_fp(min_fp);
1366 builder_.add_max_int(max_int);
1367 builder_.add_min_int(min_int);
1368 return builder_.Finish();
1369}
1370
1371struct RescaleAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1372 typedef RescaleAttributeBuilder Builder;
1373 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1374 VT_INPUT_ZP = 4,
1375 VT_OUTPUT_ZP = 6,
1376 VT_MULTIPLIER = 8,
1377 VT_SHIFT = 10,
1378 VT_SCALE32 = 12,
1379 VT_DOUBLE_ROUND = 14,
1380 VT_PER_CHANNEL = 16
1381 };
1382 int32_t input_zp() const {
1383 return GetField<int32_t>(VT_INPUT_ZP, 0);
1384 }
1385 int32_t output_zp() const {
1386 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1387 }
1388 const flatbuffers::Vector<int32_t> *multiplier() const {
1389 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLIER);
1390 }
1391 const flatbuffers::Vector<int32_t> *shift() const {
1392 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHIFT);
1393 }
1394 bool scale32() const {
1395 return GetField<uint8_t>(VT_SCALE32, 0) != 0;
1396 }
1397 bool double_round() const {
1398 return GetField<uint8_t>(VT_DOUBLE_ROUND, 0) != 0;
1399 }
1400 bool per_channel() const {
1401 return GetField<uint8_t>(VT_PER_CHANNEL, 0) != 0;
1402 }
1403 bool Verify(flatbuffers::Verifier &verifier) const {
1404 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001405 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
1406 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001407 VerifyOffset(verifier, VT_MULTIPLIER) &&
1408 verifier.VerifyVector(multiplier()) &&
1409 VerifyOffset(verifier, VT_SHIFT) &&
1410 verifier.VerifyVector(shift()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001411 VerifyField<uint8_t>(verifier, VT_SCALE32, 1) &&
1412 VerifyField<uint8_t>(verifier, VT_DOUBLE_ROUND, 1) &&
1413 VerifyField<uint8_t>(verifier, VT_PER_CHANNEL, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001414 verifier.EndTable();
1415 }
1416};
1417
1418struct RescaleAttributeBuilder {
1419 typedef RescaleAttribute Table;
1420 flatbuffers::FlatBufferBuilder &fbb_;
1421 flatbuffers::uoffset_t start_;
1422 void add_input_zp(int32_t input_zp) {
1423 fbb_.AddElement<int32_t>(RescaleAttribute::VT_INPUT_ZP, input_zp, 0);
1424 }
1425 void add_output_zp(int32_t output_zp) {
1426 fbb_.AddElement<int32_t>(RescaleAttribute::VT_OUTPUT_ZP, output_zp, 0);
1427 }
1428 void add_multiplier(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier) {
1429 fbb_.AddOffset(RescaleAttribute::VT_MULTIPLIER, multiplier);
1430 }
1431 void add_shift(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift) {
1432 fbb_.AddOffset(RescaleAttribute::VT_SHIFT, shift);
1433 }
1434 void add_scale32(bool scale32) {
1435 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_SCALE32, static_cast<uint8_t>(scale32), 0);
1436 }
1437 void add_double_round(bool double_round) {
1438 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_DOUBLE_ROUND, static_cast<uint8_t>(double_round), 0);
1439 }
1440 void add_per_channel(bool per_channel) {
1441 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_PER_CHANNEL, static_cast<uint8_t>(per_channel), 0);
1442 }
1443 explicit RescaleAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1444 : fbb_(_fbb) {
1445 start_ = fbb_.StartTable();
1446 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001447 flatbuffers::Offset<RescaleAttribute> Finish() {
1448 const auto end = fbb_.EndTable(start_);
1449 auto o = flatbuffers::Offset<RescaleAttribute>(end);
1450 return o;
1451 }
1452};
1453
1454inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttribute(
1455 flatbuffers::FlatBufferBuilder &_fbb,
1456 int32_t input_zp = 0,
1457 int32_t output_zp = 0,
1458 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier = 0,
1459 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift = 0,
1460 bool scale32 = false,
1461 bool double_round = false,
1462 bool per_channel = false) {
1463 RescaleAttributeBuilder builder_(_fbb);
1464 builder_.add_shift(shift);
1465 builder_.add_multiplier(multiplier);
1466 builder_.add_output_zp(output_zp);
1467 builder_.add_input_zp(input_zp);
1468 builder_.add_per_channel(per_channel);
1469 builder_.add_double_round(double_round);
1470 builder_.add_scale32(scale32);
1471 return builder_.Finish();
1472}
1473
1474inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttributeDirect(
1475 flatbuffers::FlatBufferBuilder &_fbb,
1476 int32_t input_zp = 0,
1477 int32_t output_zp = 0,
1478 const std::vector<int32_t> *multiplier = nullptr,
1479 const std::vector<int32_t> *shift = nullptr,
1480 bool scale32 = false,
1481 bool double_round = false,
1482 bool per_channel = false) {
1483 auto multiplier__ = multiplier ? _fbb.CreateVector<int32_t>(*multiplier) : 0;
1484 auto shift__ = shift ? _fbb.CreateVector<int32_t>(*shift) : 0;
1485 return tosa::CreateRescaleAttribute(
1486 _fbb,
1487 input_zp,
1488 output_zp,
1489 multiplier__,
1490 shift__,
1491 scale32,
1492 double_round,
1493 per_channel);
1494}
1495
1496struct MulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1497 typedef MulAttributeBuilder Builder;
1498 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1499 VT_SHIFT = 4
1500 };
1501 int32_t shift() const {
1502 return GetField<int32_t>(VT_SHIFT, 0);
1503 }
1504 bool Verify(flatbuffers::Verifier &verifier) const {
1505 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001506 VerifyField<int32_t>(verifier, VT_SHIFT, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001507 verifier.EndTable();
1508 }
1509};
1510
1511struct MulAttributeBuilder {
1512 typedef MulAttribute Table;
1513 flatbuffers::FlatBufferBuilder &fbb_;
1514 flatbuffers::uoffset_t start_;
1515 void add_shift(int32_t shift) {
1516 fbb_.AddElement<int32_t>(MulAttribute::VT_SHIFT, shift, 0);
1517 }
1518 explicit MulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1519 : fbb_(_fbb) {
1520 start_ = fbb_.StartTable();
1521 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001522 flatbuffers::Offset<MulAttribute> Finish() {
1523 const auto end = fbb_.EndTable(start_);
1524 auto o = flatbuffers::Offset<MulAttribute>(end);
1525 return o;
1526 }
1527};
1528
1529inline flatbuffers::Offset<MulAttribute> CreateMulAttribute(
1530 flatbuffers::FlatBufferBuilder &_fbb,
1531 int32_t shift = 0) {
1532 MulAttributeBuilder builder_(_fbb);
1533 builder_.add_shift(shift);
1534 return builder_.Finish();
1535}
1536
1537struct ArithmeticRightShiftAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1538 typedef ArithmeticRightShiftAttributeBuilder Builder;
1539 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1540 VT_ROUND = 4
1541 };
1542 bool round() const {
1543 return GetField<uint8_t>(VT_ROUND, 0) != 0;
1544 }
1545 bool Verify(flatbuffers::Verifier &verifier) const {
1546 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001547 VerifyField<uint8_t>(verifier, VT_ROUND, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001548 verifier.EndTable();
1549 }
1550};
1551
1552struct ArithmeticRightShiftAttributeBuilder {
1553 typedef ArithmeticRightShiftAttribute Table;
1554 flatbuffers::FlatBufferBuilder &fbb_;
1555 flatbuffers::uoffset_t start_;
1556 void add_round(bool round) {
1557 fbb_.AddElement<uint8_t>(ArithmeticRightShiftAttribute::VT_ROUND, static_cast<uint8_t>(round), 0);
1558 }
1559 explicit ArithmeticRightShiftAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1560 : fbb_(_fbb) {
1561 start_ = fbb_.StartTable();
1562 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001563 flatbuffers::Offset<ArithmeticRightShiftAttribute> Finish() {
1564 const auto end = fbb_.EndTable(start_);
1565 auto o = flatbuffers::Offset<ArithmeticRightShiftAttribute>(end);
1566 return o;
1567 }
1568};
1569
1570inline flatbuffers::Offset<ArithmeticRightShiftAttribute> CreateArithmeticRightShiftAttribute(
1571 flatbuffers::FlatBufferBuilder &_fbb,
1572 bool round = false) {
1573 ArithmeticRightShiftAttributeBuilder builder_(_fbb);
1574 builder_.add_round(round);
1575 return builder_.Finish();
1576}
1577
1578struct CondIfAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1579 typedef CondIfAttributeBuilder Builder;
1580 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1581 VT_THEN_BRANCH = 4,
1582 VT_ELSE_BRANCH = 6
1583 };
1584 const flatbuffers::String *then_branch() const {
1585 return GetPointer<const flatbuffers::String *>(VT_THEN_BRANCH);
1586 }
1587 const flatbuffers::String *else_branch() const {
1588 return GetPointer<const flatbuffers::String *>(VT_ELSE_BRANCH);
1589 }
1590 bool Verify(flatbuffers::Verifier &verifier) const {
1591 return VerifyTableStart(verifier) &&
1592 VerifyOffset(verifier, VT_THEN_BRANCH) &&
1593 verifier.VerifyString(then_branch()) &&
1594 VerifyOffset(verifier, VT_ELSE_BRANCH) &&
1595 verifier.VerifyString(else_branch()) &&
1596 verifier.EndTable();
1597 }
1598};
1599
1600struct CondIfAttributeBuilder {
1601 typedef CondIfAttribute Table;
1602 flatbuffers::FlatBufferBuilder &fbb_;
1603 flatbuffers::uoffset_t start_;
1604 void add_then_branch(flatbuffers::Offset<flatbuffers::String> then_branch) {
1605 fbb_.AddOffset(CondIfAttribute::VT_THEN_BRANCH, then_branch);
1606 }
1607 void add_else_branch(flatbuffers::Offset<flatbuffers::String> else_branch) {
1608 fbb_.AddOffset(CondIfAttribute::VT_ELSE_BRANCH, else_branch);
1609 }
1610 explicit CondIfAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1611 : fbb_(_fbb) {
1612 start_ = fbb_.StartTable();
1613 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001614 flatbuffers::Offset<CondIfAttribute> Finish() {
1615 const auto end = fbb_.EndTable(start_);
1616 auto o = flatbuffers::Offset<CondIfAttribute>(end);
1617 return o;
1618 }
1619};
1620
1621inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttribute(
1622 flatbuffers::FlatBufferBuilder &_fbb,
1623 flatbuffers::Offset<flatbuffers::String> then_branch = 0,
1624 flatbuffers::Offset<flatbuffers::String> else_branch = 0) {
1625 CondIfAttributeBuilder builder_(_fbb);
1626 builder_.add_else_branch(else_branch);
1627 builder_.add_then_branch(then_branch);
1628 return builder_.Finish();
1629}
1630
1631inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttributeDirect(
1632 flatbuffers::FlatBufferBuilder &_fbb,
1633 const char *then_branch = nullptr,
1634 const char *else_branch = nullptr) {
1635 auto then_branch__ = then_branch ? _fbb.CreateString(then_branch) : 0;
1636 auto else_branch__ = else_branch ? _fbb.CreateString(else_branch) : 0;
1637 return tosa::CreateCondIfAttribute(
1638 _fbb,
1639 then_branch__,
1640 else_branch__);
1641}
1642
1643struct WhileLoopAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1644 typedef WhileLoopAttributeBuilder Builder;
1645 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1646 VT_COND_BRANCH = 4,
1647 VT_BODY_BRANCH = 6
1648 };
1649 const flatbuffers::String *cond_branch() const {
1650 return GetPointer<const flatbuffers::String *>(VT_COND_BRANCH);
1651 }
1652 const flatbuffers::String *body_branch() const {
1653 return GetPointer<const flatbuffers::String *>(VT_BODY_BRANCH);
1654 }
1655 bool Verify(flatbuffers::Verifier &verifier) const {
1656 return VerifyTableStart(verifier) &&
1657 VerifyOffset(verifier, VT_COND_BRANCH) &&
1658 verifier.VerifyString(cond_branch()) &&
1659 VerifyOffset(verifier, VT_BODY_BRANCH) &&
1660 verifier.VerifyString(body_branch()) &&
1661 verifier.EndTable();
1662 }
1663};
1664
1665struct WhileLoopAttributeBuilder {
1666 typedef WhileLoopAttribute Table;
1667 flatbuffers::FlatBufferBuilder &fbb_;
1668 flatbuffers::uoffset_t start_;
1669 void add_cond_branch(flatbuffers::Offset<flatbuffers::String> cond_branch) {
1670 fbb_.AddOffset(WhileLoopAttribute::VT_COND_BRANCH, cond_branch);
1671 }
1672 void add_body_branch(flatbuffers::Offset<flatbuffers::String> body_branch) {
1673 fbb_.AddOffset(WhileLoopAttribute::VT_BODY_BRANCH, body_branch);
1674 }
1675 explicit WhileLoopAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1676 : fbb_(_fbb) {
1677 start_ = fbb_.StartTable();
1678 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001679 flatbuffers::Offset<WhileLoopAttribute> Finish() {
1680 const auto end = fbb_.EndTable(start_);
1681 auto o = flatbuffers::Offset<WhileLoopAttribute>(end);
1682 return o;
1683 }
1684};
1685
1686inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttribute(
1687 flatbuffers::FlatBufferBuilder &_fbb,
1688 flatbuffers::Offset<flatbuffers::String> cond_branch = 0,
1689 flatbuffers::Offset<flatbuffers::String> body_branch = 0) {
1690 WhileLoopAttributeBuilder builder_(_fbb);
1691 builder_.add_body_branch(body_branch);
1692 builder_.add_cond_branch(cond_branch);
1693 return builder_.Finish();
1694}
1695
1696inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttributeDirect(
1697 flatbuffers::FlatBufferBuilder &_fbb,
1698 const char *cond_branch = nullptr,
1699 const char *body_branch = nullptr) {
1700 auto cond_branch__ = cond_branch ? _fbb.CreateString(cond_branch) : 0;
1701 auto body_branch__ = body_branch ? _fbb.CreateString(body_branch) : 0;
1702 return tosa::CreateWhileLoopAttribute(
1703 _fbb,
1704 cond_branch__,
1705 body_branch__);
1706}
1707
Kevin Cheng38d214c2021-10-15 15:49:19 -07001708struct TransposeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1709 typedef TransposeAttributeBuilder Builder;
1710 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001711 VT_PERMS = 4
Kevin Cheng38d214c2021-10-15 15:49:19 -07001712 };
TatWai Chong7be71652022-05-10 17:26:20 -07001713 const flatbuffers::Vector<int32_t> *perms() const {
1714 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PERMS);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001715 }
1716 bool Verify(flatbuffers::Verifier &verifier) const {
1717 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001718 VerifyOffset(verifier, VT_PERMS) &&
1719 verifier.VerifyVector(perms()) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -07001720 verifier.EndTable();
1721 }
1722};
1723
1724struct TransposeAttributeBuilder {
1725 typedef TransposeAttribute Table;
1726 flatbuffers::FlatBufferBuilder &fbb_;
1727 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001728 void add_perms(flatbuffers::Offset<flatbuffers::Vector<int32_t>> perms) {
1729 fbb_.AddOffset(TransposeAttribute::VT_PERMS, perms);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001730 }
1731 explicit TransposeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1732 : fbb_(_fbb) {
1733 start_ = fbb_.StartTable();
1734 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07001735 flatbuffers::Offset<TransposeAttribute> Finish() {
1736 const auto end = fbb_.EndTable(start_);
1737 auto o = flatbuffers::Offset<TransposeAttribute>(end);
1738 return o;
1739 }
1740};
1741
1742inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttribute(
1743 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001744 flatbuffers::Offset<flatbuffers::Vector<int32_t>> perms = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001745 TransposeAttributeBuilder builder_(_fbb);
TatWai Chong7be71652022-05-10 17:26:20 -07001746 builder_.add_perms(perms);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001747 return builder_.Finish();
1748}
1749
1750inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttributeDirect(
1751 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001752 const std::vector<int32_t> *perms = nullptr) {
1753 auto perms__ = perms ? _fbb.CreateVector<int32_t>(*perms) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001754 return tosa::CreateTransposeAttribute(
1755 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001756 perms__);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001757}
1758
1759struct TableAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1760 typedef TableAttributeBuilder Builder;
1761 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1762 VT_TABLE = 4
1763 };
TatWai Chong7be71652022-05-10 17:26:20 -07001764 const flatbuffers::Vector<int16_t> *table() const {
1765 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_TABLE);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001766 }
1767 bool Verify(flatbuffers::Verifier &verifier) const {
1768 return VerifyTableStart(verifier) &&
1769 VerifyOffset(verifier, VT_TABLE) &&
1770 verifier.VerifyVector(table()) &&
1771 verifier.EndTable();
1772 }
1773};
1774
1775struct TableAttributeBuilder {
1776 typedef TableAttribute Table;
1777 flatbuffers::FlatBufferBuilder &fbb_;
1778 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001779 void add_table(flatbuffers::Offset<flatbuffers::Vector<int16_t>> table) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001780 fbb_.AddOffset(TableAttribute::VT_TABLE, table);
1781 }
1782 explicit TableAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1783 : fbb_(_fbb) {
1784 start_ = fbb_.StartTable();
1785 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07001786 flatbuffers::Offset<TableAttribute> Finish() {
1787 const auto end = fbb_.EndTable(start_);
1788 auto o = flatbuffers::Offset<TableAttribute>(end);
1789 return o;
1790 }
1791};
1792
1793inline flatbuffers::Offset<TableAttribute> CreateTableAttribute(
1794 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001795 flatbuffers::Offset<flatbuffers::Vector<int16_t>> table = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001796 TableAttributeBuilder builder_(_fbb);
1797 builder_.add_table(table);
1798 return builder_.Finish();
1799}
1800
1801inline flatbuffers::Offset<TableAttribute> CreateTableAttributeDirect(
1802 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001803 const std::vector<int16_t> *table = nullptr) {
1804 auto table__ = table ? _fbb.CreateVector<int16_t>(*table) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001805 return tosa::CreateTableAttribute(
1806 _fbb,
1807 table__);
1808}
1809
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001810struct MatMulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1811 typedef MatMulAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001812 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1813 VT_A_ZP = 4,
James Ward485a11d2022-08-05 13:48:37 +01001814 VT_B_ZP = 6,
1815 VT_ACCUM_DTYPE = 8
Eric Kunze2364dcd2021-04-26 11:06:57 -07001816 };
1817 int32_t a_zp() const {
1818 return GetField<int32_t>(VT_A_ZP, 0);
1819 }
1820 int32_t b_zp() const {
1821 return GetField<int32_t>(VT_B_ZP, 0);
1822 }
James Ward485a11d2022-08-05 13:48:37 +01001823 tosa::DType accum_dtype() const {
1824 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
1825 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001826 bool Verify(flatbuffers::Verifier &verifier) const {
1827 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001828 VerifyField<int32_t>(verifier, VT_A_ZP, 4) &&
1829 VerifyField<int32_t>(verifier, VT_B_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +01001830 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001831 verifier.EndTable();
1832 }
1833};
1834
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001835struct MatMulAttributeBuilder {
1836 typedef MatMulAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001837 flatbuffers::FlatBufferBuilder &fbb_;
1838 flatbuffers::uoffset_t start_;
1839 void add_a_zp(int32_t a_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001840 fbb_.AddElement<int32_t>(MatMulAttribute::VT_A_ZP, a_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001841 }
1842 void add_b_zp(int32_t b_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001843 fbb_.AddElement<int32_t>(MatMulAttribute::VT_B_ZP, b_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001844 }
James Ward485a11d2022-08-05 13:48:37 +01001845 void add_accum_dtype(tosa::DType accum_dtype) {
1846 fbb_.AddElement<uint32_t>(MatMulAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
1847 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001848 explicit MatMulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -07001849 : fbb_(_fbb) {
1850 start_ = fbb_.StartTable();
1851 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001852 flatbuffers::Offset<MatMulAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001853 const auto end = fbb_.EndTable(start_);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001854 auto o = flatbuffers::Offset<MatMulAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001855 return o;
1856 }
1857};
1858
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001859inline flatbuffers::Offset<MatMulAttribute> CreateMatMulAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -07001860 flatbuffers::FlatBufferBuilder &_fbb,
1861 int32_t a_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +01001862 int32_t b_zp = 0,
1863 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001864 MatMulAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +01001865 builder_.add_accum_dtype(accum_dtype);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001866 builder_.add_b_zp(b_zp);
1867 builder_.add_a_zp(a_zp);
1868 return builder_.Finish();
1869}
1870
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001871struct FullyConnectedAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1872 typedef FullyConnectedAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001873 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001874 VT_INPUT_ZP = 4,
James Ward485a11d2022-08-05 13:48:37 +01001875 VT_WEIGHT_ZP = 6,
1876 VT_ACCUM_DTYPE = 8
Eric Kunze2364dcd2021-04-26 11:06:57 -07001877 };
1878 int32_t input_zp() const {
1879 return GetField<int32_t>(VT_INPUT_ZP, 0);
1880 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001881 int32_t weight_zp() const {
1882 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
1883 }
James Ward485a11d2022-08-05 13:48:37 +01001884 tosa::DType accum_dtype() const {
1885 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
1886 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001887 bool Verify(flatbuffers::Verifier &verifier) const {
1888 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001889 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
1890 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +01001891 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001892 verifier.EndTable();
1893 }
1894};
1895
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001896struct FullyConnectedAttributeBuilder {
1897 typedef FullyConnectedAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001898 flatbuffers::FlatBufferBuilder &fbb_;
1899 flatbuffers::uoffset_t start_;
1900 void add_input_zp(int32_t input_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001901 fbb_.AddElement<int32_t>(FullyConnectedAttribute::VT_INPUT_ZP, input_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001902 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001903 void add_weight_zp(int32_t weight_zp) {
1904 fbb_.AddElement<int32_t>(FullyConnectedAttribute::VT_WEIGHT_ZP, weight_zp, 0);
1905 }
James Ward485a11d2022-08-05 13:48:37 +01001906 void add_accum_dtype(tosa::DType accum_dtype) {
1907 fbb_.AddElement<uint32_t>(FullyConnectedAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
1908 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001909 explicit FullyConnectedAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -07001910 : fbb_(_fbb) {
1911 start_ = fbb_.StartTable();
1912 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001913 flatbuffers::Offset<FullyConnectedAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001914 const auto end = fbb_.EndTable(start_);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001915 auto o = flatbuffers::Offset<FullyConnectedAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001916 return o;
1917 }
1918};
1919
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001920inline flatbuffers::Offset<FullyConnectedAttribute> CreateFullyConnectedAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -07001921 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001922 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +01001923 int32_t weight_zp = 0,
1924 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001925 FullyConnectedAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +01001926 builder_.add_accum_dtype(accum_dtype);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001927 builder_.add_weight_zp(weight_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001928 builder_.add_input_zp(input_zp);
1929 return builder_.Finish();
1930}
1931
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001932struct NegateAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1933 typedef NegateAttributeBuilder Builder;
1934 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1935 VT_INPUT1_ZP = 4,
1936 VT_OUTPUT_ZP = 6
1937 };
1938 int32_t input1_zp() const {
1939 return GetField<int32_t>(VT_INPUT1_ZP, 0);
1940 }
1941 int32_t output_zp() const {
1942 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1943 }
1944 bool Verify(flatbuffers::Verifier &verifier) const {
1945 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001946 VerifyField<int32_t>(verifier, VT_INPUT1_ZP, 4) &&
1947 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP, 4) &&
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001948 verifier.EndTable();
1949 }
1950};
1951
1952struct NegateAttributeBuilder {
1953 typedef NegateAttribute Table;
1954 flatbuffers::FlatBufferBuilder &fbb_;
1955 flatbuffers::uoffset_t start_;
1956 void add_input1_zp(int32_t input1_zp) {
1957 fbb_.AddElement<int32_t>(NegateAttribute::VT_INPUT1_ZP, input1_zp, 0);
1958 }
1959 void add_output_zp(int32_t output_zp) {
1960 fbb_.AddElement<int32_t>(NegateAttribute::VT_OUTPUT_ZP, output_zp, 0);
1961 }
1962 explicit NegateAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1963 : fbb_(_fbb) {
1964 start_ = fbb_.StartTable();
1965 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001966 flatbuffers::Offset<NegateAttribute> Finish() {
1967 const auto end = fbb_.EndTable(start_);
1968 auto o = flatbuffers::Offset<NegateAttribute>(end);
1969 return o;
1970 }
1971};
1972
1973inline flatbuffers::Offset<NegateAttribute> CreateNegateAttribute(
1974 flatbuffers::FlatBufferBuilder &_fbb,
1975 int32_t input1_zp = 0,
1976 int32_t output_zp = 0) {
1977 NegateAttributeBuilder builder_(_fbb);
1978 builder_.add_output_zp(output_zp);
1979 builder_.add_input1_zp(input1_zp);
1980 return builder_.Finish();
1981}
1982
Eric Kunze2364dcd2021-04-26 11:06:57 -07001983struct Version FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1984 typedef VersionBuilder Builder;
1985 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1986 VT__MAJOR = 4,
1987 VT__MINOR = 6,
1988 VT__PATCH = 8,
Kevin Chengb97cb1d2021-10-14 11:53:39 -07001989 VT__DRAFT = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07001990 };
1991 int32_t _major() const {
1992 return GetField<int32_t>(VT__MAJOR, 0);
1993 }
1994 int32_t _minor() const {
Eric Kunze24a68bb2022-09-08 23:54:21 +00001995 return GetField<int32_t>(VT__MINOR, 41);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001996 }
1997 int32_t _patch() const {
1998 return GetField<int32_t>(VT__PATCH, 0);
1999 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002000 bool _draft() const {
Eric Kunze24a68bb2022-09-08 23:54:21 +00002001 return GetField<uint8_t>(VT__DRAFT, 1) != 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002002 }
2003 bool Verify(flatbuffers::Verifier &verifier) const {
2004 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00002005 VerifyField<int32_t>(verifier, VT__MAJOR, 4) &&
2006 VerifyField<int32_t>(verifier, VT__MINOR, 4) &&
2007 VerifyField<int32_t>(verifier, VT__PATCH, 4) &&
2008 VerifyField<uint8_t>(verifier, VT__DRAFT, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002009 verifier.EndTable();
2010 }
2011};
2012
2013struct VersionBuilder {
2014 typedef Version Table;
2015 flatbuffers::FlatBufferBuilder &fbb_;
2016 flatbuffers::uoffset_t start_;
2017 void add__major(int32_t _major) {
2018 fbb_.AddElement<int32_t>(Version::VT__MAJOR, _major, 0);
2019 }
2020 void add__minor(int32_t _minor) {
Eric Kunze24a68bb2022-09-08 23:54:21 +00002021 fbb_.AddElement<int32_t>(Version::VT__MINOR, _minor, 41);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002022 }
2023 void add__patch(int32_t _patch) {
2024 fbb_.AddElement<int32_t>(Version::VT__PATCH, _patch, 0);
2025 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002026 void add__draft(bool _draft) {
Eric Kunze24a68bb2022-09-08 23:54:21 +00002027 fbb_.AddElement<uint8_t>(Version::VT__DRAFT, static_cast<uint8_t>(_draft), 1);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002028 }
2029 explicit VersionBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2030 : fbb_(_fbb) {
2031 start_ = fbb_.StartTable();
2032 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002033 flatbuffers::Offset<Version> Finish() {
2034 const auto end = fbb_.EndTable(start_);
2035 auto o = flatbuffers::Offset<Version>(end);
2036 return o;
2037 }
2038};
2039
2040inline flatbuffers::Offset<Version> CreateVersion(
2041 flatbuffers::FlatBufferBuilder &_fbb,
2042 int32_t _major = 0,
Eric Kunze24a68bb2022-09-08 23:54:21 +00002043 int32_t _minor = 41,
Eric Kunze2364dcd2021-04-26 11:06:57 -07002044 int32_t _patch = 0,
Eric Kunze24a68bb2022-09-08 23:54:21 +00002045 bool _draft = true) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002046 VersionBuilder builder_(_fbb);
2047 builder_.add__patch(_patch);
2048 builder_.add__minor(_minor);
2049 builder_.add__major(_major);
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002050 builder_.add__draft(_draft);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002051 return builder_.Finish();
2052}
2053
2054struct TosaTensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2055 typedef TosaTensorBuilder Builder;
2056 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2057 VT_NAME = 4,
2058 VT_SHAPE = 6,
2059 VT_TYPE = 8,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002060 VT_DATA = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07002061 };
2062 const flatbuffers::String *name() const {
2063 return GetPointer<const flatbuffers::String *>(VT_NAME);
2064 }
2065 const flatbuffers::Vector<int32_t> *shape() const {
2066 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHAPE);
2067 }
2068 tosa::DType type() const {
2069 return static_cast<tosa::DType>(GetField<uint32_t>(VT_TYPE, 0));
2070 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002071 const flatbuffers::Vector<uint8_t> *data() const {
2072 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_DATA);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002073 }
2074 bool Verify(flatbuffers::Verifier &verifier) const {
2075 return VerifyTableStart(verifier) &&
2076 VerifyOffset(verifier, VT_NAME) &&
2077 verifier.VerifyString(name()) &&
2078 VerifyOffset(verifier, VT_SHAPE) &&
2079 verifier.VerifyVector(shape()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00002080 VerifyField<uint32_t>(verifier, VT_TYPE, 4) &&
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002081 VerifyOffset(verifier, VT_DATA) &&
2082 verifier.VerifyVector(data()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002083 verifier.EndTable();
2084 }
2085};
2086
2087struct TosaTensorBuilder {
2088 typedef TosaTensor Table;
2089 flatbuffers::FlatBufferBuilder &fbb_;
2090 flatbuffers::uoffset_t start_;
2091 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2092 fbb_.AddOffset(TosaTensor::VT_NAME, name);
2093 }
2094 void add_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape) {
2095 fbb_.AddOffset(TosaTensor::VT_SHAPE, shape);
2096 }
2097 void add_type(tosa::DType type) {
2098 fbb_.AddElement<uint32_t>(TosaTensor::VT_TYPE, static_cast<uint32_t>(type), 0);
2099 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002100 void add_data(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data) {
2101 fbb_.AddOffset(TosaTensor::VT_DATA, data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002102 }
2103 explicit TosaTensorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2104 : fbb_(_fbb) {
2105 start_ = fbb_.StartTable();
2106 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002107 flatbuffers::Offset<TosaTensor> Finish() {
2108 const auto end = fbb_.EndTable(start_);
2109 auto o = flatbuffers::Offset<TosaTensor>(end);
2110 return o;
2111 }
2112};
2113
2114inline flatbuffers::Offset<TosaTensor> CreateTosaTensor(
2115 flatbuffers::FlatBufferBuilder &_fbb,
2116 flatbuffers::Offset<flatbuffers::String> name = 0,
2117 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape = 0,
2118 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002119 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002120 TosaTensorBuilder builder_(_fbb);
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002121 builder_.add_data(data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002122 builder_.add_type(type);
2123 builder_.add_shape(shape);
2124 builder_.add_name(name);
2125 return builder_.Finish();
2126}
2127
2128inline flatbuffers::Offset<TosaTensor> CreateTosaTensorDirect(
2129 flatbuffers::FlatBufferBuilder &_fbb,
2130 const char *name = nullptr,
2131 const std::vector<int32_t> *shape = nullptr,
2132 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002133 const std::vector<uint8_t> *data = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002134 auto name__ = name ? _fbb.CreateString(name) : 0;
2135 auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0;
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002136 if (data) { _fbb.ForceVectorAlignment(data->size(), sizeof(uint8_t), 8); }
2137 auto data__ = data ? _fbb.CreateVector<uint8_t>(*data) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002138 return tosa::CreateTosaTensor(
2139 _fbb,
2140 name__,
2141 shape__,
2142 type,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002143 data__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002144}
2145
2146struct TosaOperator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2147 typedef TosaOperatorBuilder Builder;
2148 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2149 VT_OP = 4,
2150 VT_ATTRIBUTE_TYPE = 6,
2151 VT_ATTRIBUTE = 8,
2152 VT_INPUTS = 10,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002153 VT_OUTPUTS = 12
Eric Kunze2364dcd2021-04-26 11:06:57 -07002154 };
2155 tosa::Op op() const {
2156 return static_cast<tosa::Op>(GetField<uint32_t>(VT_OP, 0));
2157 }
2158 tosa::Attribute attribute_type() const {
2159 return static_cast<tosa::Attribute>(GetField<uint8_t>(VT_ATTRIBUTE_TYPE, 0));
2160 }
2161 const void *attribute() const {
2162 return GetPointer<const void *>(VT_ATTRIBUTE);
2163 }
2164 template<typename T> const T *attribute_as() const;
Kevin Cheng79a41992021-08-31 16:04:40 -07002165 const tosa::PoolAttribute *attribute_as_PoolAttribute() const {
2166 return attribute_type() == tosa::Attribute_PoolAttribute ? static_cast<const tosa::PoolAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002167 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002168 const tosa::ConvAttribute *attribute_as_ConvAttribute() const {
2169 return attribute_type() == tosa::Attribute_ConvAttribute ? static_cast<const tosa::ConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002170 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002171 const tosa::TransposeConvAttribute *attribute_as_TransposeConvAttribute() const {
2172 return attribute_type() == tosa::Attribute_TransposeConvAttribute ? static_cast<const tosa::TransposeConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002173 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002174 const tosa::PadAttribute *attribute_as_PadAttribute() const {
2175 return attribute_type() == tosa::Attribute_PadAttribute ? static_cast<const tosa::PadAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002176 }
2177 const tosa::AxisAttribute *attribute_as_AxisAttribute() const {
2178 return attribute_type() == tosa::Attribute_AxisAttribute ? static_cast<const tosa::AxisAttribute *>(attribute()) : nullptr;
2179 }
2180 const tosa::ReshapeAttribute *attribute_as_ReshapeAttribute() const {
2181 return attribute_type() == tosa::Attribute_ReshapeAttribute ? static_cast<const tosa::ReshapeAttribute *>(attribute()) : nullptr;
2182 }
2183 const tosa::SliceAttribute *attribute_as_SliceAttribute() const {
2184 return attribute_type() == tosa::Attribute_SliceAttribute ? static_cast<const tosa::SliceAttribute *>(attribute()) : nullptr;
2185 }
2186 const tosa::TileAttribute *attribute_as_TileAttribute() const {
2187 return attribute_type() == tosa::Attribute_TileAttribute ? static_cast<const tosa::TileAttribute *>(attribute()) : nullptr;
2188 }
2189 const tosa::ResizeAttribute *attribute_as_ResizeAttribute() const {
2190 return attribute_type() == tosa::Attribute_ResizeAttribute ? static_cast<const tosa::ResizeAttribute *>(attribute()) : nullptr;
2191 }
2192 const tosa::ClampAttribute *attribute_as_ClampAttribute() const {
2193 return attribute_type() == tosa::Attribute_ClampAttribute ? static_cast<const tosa::ClampAttribute *>(attribute()) : nullptr;
2194 }
2195 const tosa::RescaleAttribute *attribute_as_RescaleAttribute() const {
2196 return attribute_type() == tosa::Attribute_RescaleAttribute ? static_cast<const tosa::RescaleAttribute *>(attribute()) : nullptr;
2197 }
2198 const tosa::MulAttribute *attribute_as_MulAttribute() const {
2199 return attribute_type() == tosa::Attribute_MulAttribute ? static_cast<const tosa::MulAttribute *>(attribute()) : nullptr;
2200 }
2201 const tosa::ArithmeticRightShiftAttribute *attribute_as_ArithmeticRightShiftAttribute() const {
2202 return attribute_type() == tosa::Attribute_ArithmeticRightShiftAttribute ? static_cast<const tosa::ArithmeticRightShiftAttribute *>(attribute()) : nullptr;
2203 }
2204 const tosa::CondIfAttribute *attribute_as_CondIfAttribute() const {
2205 return attribute_type() == tosa::Attribute_CondIfAttribute ? static_cast<const tosa::CondIfAttribute *>(attribute()) : nullptr;
2206 }
2207 const tosa::WhileLoopAttribute *attribute_as_WhileLoopAttribute() const {
2208 return attribute_type() == tosa::Attribute_WhileLoopAttribute ? static_cast<const tosa::WhileLoopAttribute *>(attribute()) : nullptr;
2209 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002210 const tosa::TransposeAttribute *attribute_as_TransposeAttribute() const {
2211 return attribute_type() == tosa::Attribute_TransposeAttribute ? static_cast<const tosa::TransposeAttribute *>(attribute()) : nullptr;
2212 }
2213 const tosa::TableAttribute *attribute_as_TableAttribute() const {
2214 return attribute_type() == tosa::Attribute_TableAttribute ? static_cast<const tosa::TableAttribute *>(attribute()) : nullptr;
2215 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002216 const tosa::MatMulAttribute *attribute_as_MatMulAttribute() const {
2217 return attribute_type() == tosa::Attribute_MatMulAttribute ? static_cast<const tosa::MatMulAttribute *>(attribute()) : nullptr;
2218 }
2219 const tosa::FullyConnectedAttribute *attribute_as_FullyConnectedAttribute() const {
2220 return attribute_type() == tosa::Attribute_FullyConnectedAttribute ? static_cast<const tosa::FullyConnectedAttribute *>(attribute()) : nullptr;
2221 }
2222 const tosa::NegateAttribute *attribute_as_NegateAttribute() const {
2223 return attribute_type() == tosa::Attribute_NegateAttribute ? static_cast<const tosa::NegateAttribute *>(attribute()) : nullptr;
2224 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002225 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2226 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2227 }
2228 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2229 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2230 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002231 bool Verify(flatbuffers::Verifier &verifier) const {
2232 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00002233 VerifyField<uint32_t>(verifier, VT_OP, 4) &&
2234 VerifyField<uint8_t>(verifier, VT_ATTRIBUTE_TYPE, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002235 VerifyOffset(verifier, VT_ATTRIBUTE) &&
2236 VerifyAttribute(verifier, attribute(), attribute_type()) &&
2237 VerifyOffset(verifier, VT_INPUTS) &&
2238 verifier.VerifyVector(inputs()) &&
2239 verifier.VerifyVectorOfStrings(inputs()) &&
2240 VerifyOffset(verifier, VT_OUTPUTS) &&
2241 verifier.VerifyVector(outputs()) &&
2242 verifier.VerifyVectorOfStrings(outputs()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002243 verifier.EndTable();
2244 }
2245};
2246
Kevin Cheng79a41992021-08-31 16:04:40 -07002247template<> inline const tosa::PoolAttribute *TosaOperator::attribute_as<tosa::PoolAttribute>() const {
2248 return attribute_as_PoolAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002249}
2250
Kevin Cheng79a41992021-08-31 16:04:40 -07002251template<> inline const tosa::ConvAttribute *TosaOperator::attribute_as<tosa::ConvAttribute>() const {
2252 return attribute_as_ConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002253}
2254
Kevin Cheng79a41992021-08-31 16:04:40 -07002255template<> inline const tosa::TransposeConvAttribute *TosaOperator::attribute_as<tosa::TransposeConvAttribute>() const {
2256 return attribute_as_TransposeConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002257}
2258
Kevin Cheng38d214c2021-10-15 15:49:19 -07002259template<> inline const tosa::PadAttribute *TosaOperator::attribute_as<tosa::PadAttribute>() const {
2260 return attribute_as_PadAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002261}
2262
2263template<> inline const tosa::AxisAttribute *TosaOperator::attribute_as<tosa::AxisAttribute>() const {
2264 return attribute_as_AxisAttribute();
2265}
2266
2267template<> inline const tosa::ReshapeAttribute *TosaOperator::attribute_as<tosa::ReshapeAttribute>() const {
2268 return attribute_as_ReshapeAttribute();
2269}
2270
2271template<> inline const tosa::SliceAttribute *TosaOperator::attribute_as<tosa::SliceAttribute>() const {
2272 return attribute_as_SliceAttribute();
2273}
2274
2275template<> inline const tosa::TileAttribute *TosaOperator::attribute_as<tosa::TileAttribute>() const {
2276 return attribute_as_TileAttribute();
2277}
2278
2279template<> inline const tosa::ResizeAttribute *TosaOperator::attribute_as<tosa::ResizeAttribute>() const {
2280 return attribute_as_ResizeAttribute();
2281}
2282
2283template<> inline const tosa::ClampAttribute *TosaOperator::attribute_as<tosa::ClampAttribute>() const {
2284 return attribute_as_ClampAttribute();
2285}
2286
2287template<> inline const tosa::RescaleAttribute *TosaOperator::attribute_as<tosa::RescaleAttribute>() const {
2288 return attribute_as_RescaleAttribute();
2289}
2290
2291template<> inline const tosa::MulAttribute *TosaOperator::attribute_as<tosa::MulAttribute>() const {
2292 return attribute_as_MulAttribute();
2293}
2294
2295template<> inline const tosa::ArithmeticRightShiftAttribute *TosaOperator::attribute_as<tosa::ArithmeticRightShiftAttribute>() const {
2296 return attribute_as_ArithmeticRightShiftAttribute();
2297}
2298
2299template<> inline const tosa::CondIfAttribute *TosaOperator::attribute_as<tosa::CondIfAttribute>() const {
2300 return attribute_as_CondIfAttribute();
2301}
2302
2303template<> inline const tosa::WhileLoopAttribute *TosaOperator::attribute_as<tosa::WhileLoopAttribute>() const {
2304 return attribute_as_WhileLoopAttribute();
2305}
2306
Kevin Cheng38d214c2021-10-15 15:49:19 -07002307template<> inline const tosa::TransposeAttribute *TosaOperator::attribute_as<tosa::TransposeAttribute>() const {
2308 return attribute_as_TransposeAttribute();
2309}
2310
2311template<> inline const tosa::TableAttribute *TosaOperator::attribute_as<tosa::TableAttribute>() const {
2312 return attribute_as_TableAttribute();
2313}
2314
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002315template<> inline const tosa::MatMulAttribute *TosaOperator::attribute_as<tosa::MatMulAttribute>() const {
2316 return attribute_as_MatMulAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002317}
2318
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002319template<> inline const tosa::FullyConnectedAttribute *TosaOperator::attribute_as<tosa::FullyConnectedAttribute>() const {
2320 return attribute_as_FullyConnectedAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002321}
2322
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002323template<> inline const tosa::NegateAttribute *TosaOperator::attribute_as<tosa::NegateAttribute>() const {
2324 return attribute_as_NegateAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002325}
2326
2327struct TosaOperatorBuilder {
2328 typedef TosaOperator Table;
2329 flatbuffers::FlatBufferBuilder &fbb_;
2330 flatbuffers::uoffset_t start_;
2331 void add_op(tosa::Op op) {
2332 fbb_.AddElement<uint32_t>(TosaOperator::VT_OP, static_cast<uint32_t>(op), 0);
2333 }
2334 void add_attribute_type(tosa::Attribute attribute_type) {
2335 fbb_.AddElement<uint8_t>(TosaOperator::VT_ATTRIBUTE_TYPE, static_cast<uint8_t>(attribute_type), 0);
2336 }
2337 void add_attribute(flatbuffers::Offset<void> attribute) {
2338 fbb_.AddOffset(TosaOperator::VT_ATTRIBUTE, attribute);
2339 }
2340 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2341 fbb_.AddOffset(TosaOperator::VT_INPUTS, inputs);
2342 }
2343 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2344 fbb_.AddOffset(TosaOperator::VT_OUTPUTS, outputs);
2345 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002346 explicit TosaOperatorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2347 : fbb_(_fbb) {
2348 start_ = fbb_.StartTable();
2349 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002350 flatbuffers::Offset<TosaOperator> Finish() {
2351 const auto end = fbb_.EndTable(start_);
2352 auto o = flatbuffers::Offset<TosaOperator>(end);
2353 return o;
2354 }
2355};
2356
2357inline flatbuffers::Offset<TosaOperator> CreateTosaOperator(
2358 flatbuffers::FlatBufferBuilder &_fbb,
2359 tosa::Op op = tosa::Op_UNKNOWN,
2360 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2361 flatbuffers::Offset<void> attribute = 0,
2362 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002363 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002364 TosaOperatorBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002365 builder_.add_outputs(outputs);
2366 builder_.add_inputs(inputs);
2367 builder_.add_attribute(attribute);
2368 builder_.add_op(op);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002369 builder_.add_attribute_type(attribute_type);
2370 return builder_.Finish();
2371}
2372
2373inline flatbuffers::Offset<TosaOperator> CreateTosaOperatorDirect(
2374 flatbuffers::FlatBufferBuilder &_fbb,
2375 tosa::Op op = tosa::Op_UNKNOWN,
2376 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2377 flatbuffers::Offset<void> attribute = 0,
2378 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002379 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002380 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2381 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2382 return tosa::CreateTosaOperator(
2383 _fbb,
2384 op,
2385 attribute_type,
2386 attribute,
2387 inputs__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002388 outputs__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002389}
2390
2391struct TosaBasicBlock FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2392 typedef TosaBasicBlockBuilder Builder;
2393 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2394 VT_NAME = 4,
2395 VT_OPERATORS = 6,
2396 VT_TENSORS = 8,
2397 VT_INPUTS = 10,
2398 VT_OUTPUTS = 12
2399 };
2400 const flatbuffers::String *name() const {
2401 return GetPointer<const flatbuffers::String *>(VT_NAME);
2402 }
2403 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *operators() const {
2404 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *>(VT_OPERATORS);
2405 }
2406 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors() const {
2407 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *>(VT_TENSORS);
2408 }
2409 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2410 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2411 }
2412 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2413 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2414 }
2415 bool Verify(flatbuffers::Verifier &verifier) const {
2416 return VerifyTableStart(verifier) &&
2417 VerifyOffset(verifier, VT_NAME) &&
2418 verifier.VerifyString(name()) &&
2419 VerifyOffset(verifier, VT_OPERATORS) &&
2420 verifier.VerifyVector(operators()) &&
2421 verifier.VerifyVectorOfTables(operators()) &&
2422 VerifyOffset(verifier, VT_TENSORS) &&
2423 verifier.VerifyVector(tensors()) &&
2424 verifier.VerifyVectorOfTables(tensors()) &&
2425 VerifyOffset(verifier, VT_INPUTS) &&
2426 verifier.VerifyVector(inputs()) &&
2427 verifier.VerifyVectorOfStrings(inputs()) &&
2428 VerifyOffset(verifier, VT_OUTPUTS) &&
2429 verifier.VerifyVector(outputs()) &&
2430 verifier.VerifyVectorOfStrings(outputs()) &&
2431 verifier.EndTable();
2432 }
2433};
2434
2435struct TosaBasicBlockBuilder {
2436 typedef TosaBasicBlock Table;
2437 flatbuffers::FlatBufferBuilder &fbb_;
2438 flatbuffers::uoffset_t start_;
2439 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2440 fbb_.AddOffset(TosaBasicBlock::VT_NAME, name);
2441 }
2442 void add_operators(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators) {
2443 fbb_.AddOffset(TosaBasicBlock::VT_OPERATORS, operators);
2444 }
2445 void add_tensors(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors) {
2446 fbb_.AddOffset(TosaBasicBlock::VT_TENSORS, tensors);
2447 }
2448 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2449 fbb_.AddOffset(TosaBasicBlock::VT_INPUTS, inputs);
2450 }
2451 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2452 fbb_.AddOffset(TosaBasicBlock::VT_OUTPUTS, outputs);
2453 }
2454 explicit TosaBasicBlockBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2455 : fbb_(_fbb) {
2456 start_ = fbb_.StartTable();
2457 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002458 flatbuffers::Offset<TosaBasicBlock> Finish() {
2459 const auto end = fbb_.EndTable(start_);
2460 auto o = flatbuffers::Offset<TosaBasicBlock>(end);
2461 return o;
2462 }
2463};
2464
2465inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlock(
2466 flatbuffers::FlatBufferBuilder &_fbb,
2467 flatbuffers::Offset<flatbuffers::String> name = 0,
2468 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators = 0,
2469 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors = 0,
2470 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
2471 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
2472 TosaBasicBlockBuilder builder_(_fbb);
2473 builder_.add_outputs(outputs);
2474 builder_.add_inputs(inputs);
2475 builder_.add_tensors(tensors);
2476 builder_.add_operators(operators);
2477 builder_.add_name(name);
2478 return builder_.Finish();
2479}
2480
2481inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlockDirect(
2482 flatbuffers::FlatBufferBuilder &_fbb,
2483 const char *name = nullptr,
2484 const std::vector<flatbuffers::Offset<tosa::TosaOperator>> *operators = nullptr,
2485 const std::vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors = nullptr,
2486 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
2487 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
2488 auto name__ = name ? _fbb.CreateString(name) : 0;
2489 auto operators__ = operators ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaOperator>>(*operators) : 0;
2490 auto tensors__ = tensors ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaTensor>>(*tensors) : 0;
2491 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2492 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2493 return tosa::CreateTosaBasicBlock(
2494 _fbb,
2495 name__,
2496 operators__,
2497 tensors__,
2498 inputs__,
2499 outputs__);
2500}
2501
2502struct TosaGraph FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2503 typedef TosaGraphBuilder Builder;
2504 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2505 VT_VERSION = 4,
2506 VT_BLOCKS = 6
2507 };
2508 const tosa::Version *version() const {
2509 return GetPointer<const tosa::Version *>(VT_VERSION);
2510 }
2511 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks() const {
2512 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *>(VT_BLOCKS);
2513 }
2514 bool Verify(flatbuffers::Verifier &verifier) const {
2515 return VerifyTableStart(verifier) &&
2516 VerifyOffset(verifier, VT_VERSION) &&
2517 verifier.VerifyTable(version()) &&
2518 VerifyOffset(verifier, VT_BLOCKS) &&
2519 verifier.VerifyVector(blocks()) &&
2520 verifier.VerifyVectorOfTables(blocks()) &&
2521 verifier.EndTable();
2522 }
2523};
2524
2525struct TosaGraphBuilder {
2526 typedef TosaGraph Table;
2527 flatbuffers::FlatBufferBuilder &fbb_;
2528 flatbuffers::uoffset_t start_;
2529 void add_version(flatbuffers::Offset<tosa::Version> version) {
2530 fbb_.AddOffset(TosaGraph::VT_VERSION, version);
2531 }
2532 void add_blocks(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks) {
2533 fbb_.AddOffset(TosaGraph::VT_BLOCKS, blocks);
2534 }
2535 explicit TosaGraphBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2536 : fbb_(_fbb) {
2537 start_ = fbb_.StartTable();
2538 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002539 flatbuffers::Offset<TosaGraph> Finish() {
2540 const auto end = fbb_.EndTable(start_);
2541 auto o = flatbuffers::Offset<TosaGraph>(end);
2542 return o;
2543 }
2544};
2545
2546inline flatbuffers::Offset<TosaGraph> CreateTosaGraph(
2547 flatbuffers::FlatBufferBuilder &_fbb,
2548 flatbuffers::Offset<tosa::Version> version = 0,
2549 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks = 0) {
2550 TosaGraphBuilder builder_(_fbb);
2551 builder_.add_blocks(blocks);
2552 builder_.add_version(version);
2553 return builder_.Finish();
2554}
2555
2556inline flatbuffers::Offset<TosaGraph> CreateTosaGraphDirect(
2557 flatbuffers::FlatBufferBuilder &_fbb,
2558 flatbuffers::Offset<tosa::Version> version = 0,
2559 const std::vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks = nullptr) {
2560 auto blocks__ = blocks ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaBasicBlock>>(*blocks) : 0;
2561 return tosa::CreateTosaGraph(
2562 _fbb,
2563 version,
2564 blocks__);
2565}
2566
2567inline bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type) {
2568 switch (type) {
2569 case Attribute_NONE: {
2570 return true;
2571 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002572 case Attribute_PoolAttribute: {
2573 auto ptr = reinterpret_cast<const tosa::PoolAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002574 return verifier.VerifyTable(ptr);
2575 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002576 case Attribute_ConvAttribute: {
2577 auto ptr = reinterpret_cast<const tosa::ConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002578 return verifier.VerifyTable(ptr);
2579 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002580 case Attribute_TransposeConvAttribute: {
2581 auto ptr = reinterpret_cast<const tosa::TransposeConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002582 return verifier.VerifyTable(ptr);
2583 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002584 case Attribute_PadAttribute: {
2585 auto ptr = reinterpret_cast<const tosa::PadAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002586 return verifier.VerifyTable(ptr);
2587 }
2588 case Attribute_AxisAttribute: {
2589 auto ptr = reinterpret_cast<const tosa::AxisAttribute *>(obj);
2590 return verifier.VerifyTable(ptr);
2591 }
2592 case Attribute_ReshapeAttribute: {
2593 auto ptr = reinterpret_cast<const tosa::ReshapeAttribute *>(obj);
2594 return verifier.VerifyTable(ptr);
2595 }
2596 case Attribute_SliceAttribute: {
2597 auto ptr = reinterpret_cast<const tosa::SliceAttribute *>(obj);
2598 return verifier.VerifyTable(ptr);
2599 }
2600 case Attribute_TileAttribute: {
2601 auto ptr = reinterpret_cast<const tosa::TileAttribute *>(obj);
2602 return verifier.VerifyTable(ptr);
2603 }
2604 case Attribute_ResizeAttribute: {
2605 auto ptr = reinterpret_cast<const tosa::ResizeAttribute *>(obj);
2606 return verifier.VerifyTable(ptr);
2607 }
2608 case Attribute_ClampAttribute: {
2609 auto ptr = reinterpret_cast<const tosa::ClampAttribute *>(obj);
2610 return verifier.VerifyTable(ptr);
2611 }
2612 case Attribute_RescaleAttribute: {
2613 auto ptr = reinterpret_cast<const tosa::RescaleAttribute *>(obj);
2614 return verifier.VerifyTable(ptr);
2615 }
2616 case Attribute_MulAttribute: {
2617 auto ptr = reinterpret_cast<const tosa::MulAttribute *>(obj);
2618 return verifier.VerifyTable(ptr);
2619 }
2620 case Attribute_ArithmeticRightShiftAttribute: {
2621 auto ptr = reinterpret_cast<const tosa::ArithmeticRightShiftAttribute *>(obj);
2622 return verifier.VerifyTable(ptr);
2623 }
2624 case Attribute_CondIfAttribute: {
2625 auto ptr = reinterpret_cast<const tosa::CondIfAttribute *>(obj);
2626 return verifier.VerifyTable(ptr);
2627 }
2628 case Attribute_WhileLoopAttribute: {
2629 auto ptr = reinterpret_cast<const tosa::WhileLoopAttribute *>(obj);
2630 return verifier.VerifyTable(ptr);
2631 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002632 case Attribute_TransposeAttribute: {
2633 auto ptr = reinterpret_cast<const tosa::TransposeAttribute *>(obj);
2634 return verifier.VerifyTable(ptr);
2635 }
2636 case Attribute_TableAttribute: {
2637 auto ptr = reinterpret_cast<const tosa::TableAttribute *>(obj);
2638 return verifier.VerifyTable(ptr);
2639 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002640 case Attribute_MatMulAttribute: {
2641 auto ptr = reinterpret_cast<const tosa::MatMulAttribute *>(obj);
2642 return verifier.VerifyTable(ptr);
2643 }
2644 case Attribute_FullyConnectedAttribute: {
2645 auto ptr = reinterpret_cast<const tosa::FullyConnectedAttribute *>(obj);
2646 return verifier.VerifyTable(ptr);
2647 }
2648 case Attribute_NegateAttribute: {
2649 auto ptr = reinterpret_cast<const tosa::NegateAttribute *>(obj);
2650 return verifier.VerifyTable(ptr);
2651 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002652 default: return true;
2653 }
2654}
2655
2656inline bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
2657 if (!values || !types) return !values && !types;
2658 if (values->size() != types->size()) return false;
2659 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
2660 if (!VerifyAttribute(
2661 verifier, values->Get(i), types->GetEnum<Attribute>(i))) {
2662 return false;
2663 }
2664 }
2665 return true;
2666}
2667
Eric Kunze2364dcd2021-04-26 11:06:57 -07002668inline const tosa::TosaGraph *GetTosaGraph(const void *buf) {
2669 return flatbuffers::GetRoot<tosa::TosaGraph>(buf);
2670}
2671
2672inline const tosa::TosaGraph *GetSizePrefixedTosaGraph(const void *buf) {
2673 return flatbuffers::GetSizePrefixedRoot<tosa::TosaGraph>(buf);
2674}
2675
2676inline const char *TosaGraphIdentifier() {
2677 return "TOSA";
2678}
2679
2680inline bool TosaGraphBufferHasIdentifier(const void *buf) {
2681 return flatbuffers::BufferHasIdentifier(
2682 buf, TosaGraphIdentifier());
2683}
2684
Eric Kunze4381b3d2022-08-22 18:15:41 +00002685inline bool SizePrefixedTosaGraphBufferHasIdentifier(const void *buf) {
2686 return flatbuffers::BufferHasIdentifier(
2687 buf, TosaGraphIdentifier(), true);
2688}
2689
Eric Kunze2364dcd2021-04-26 11:06:57 -07002690inline bool VerifyTosaGraphBuffer(
2691 flatbuffers::Verifier &verifier) {
2692 return verifier.VerifyBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2693}
2694
2695inline bool VerifySizePrefixedTosaGraphBuffer(
2696 flatbuffers::Verifier &verifier) {
2697 return verifier.VerifySizePrefixedBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2698}
2699
2700inline const char *TosaGraphExtension() {
2701 return "tosa";
2702}
2703
2704inline void FinishTosaGraphBuffer(
2705 flatbuffers::FlatBufferBuilder &fbb,
2706 flatbuffers::Offset<tosa::TosaGraph> root) {
2707 fbb.Finish(root, TosaGraphIdentifier());
2708}
2709
2710inline void FinishSizePrefixedTosaGraphBuffer(
2711 flatbuffers::FlatBufferBuilder &fbb,
2712 flatbuffers::Offset<tosa::TosaGraph> root) {
2713 fbb.FinishSizePrefixed(root, TosaGraphIdentifier());
2714}
2715
2716} // namespace tosa
2717
2718#endif // FLATBUFFERS_GENERATED_TOSA_TOSA_H_