blob: 4d231b0b9084a983e2982d8fd533256bf4a8c490 [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
Jerry Ge13c78a62022-10-04 20:32:39 -070083struct TosaRegion;
84struct TosaRegionBuilder;
85
Eric Kunze2364dcd2021-04-26 11:06:57 -070086struct TosaGraph;
87struct TosaGraphBuilder;
88
Eric Kunze4381b3d2022-08-22 18:15:41 +000089enum DType : uint32_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -070090 DType_UNKNOWN = 0,
91 DType_BOOL = 1,
92 DType_UINT8 = 2,
93 DType_INT4 = 3,
94 DType_INT8 = 4,
95 DType_INT16 = 5,
96 DType_INT32 = 6,
97 DType_INT48 = 7,
Jeremy Johnsone1072a92022-09-27 12:44:11 +010098 DType_FP32 = 8,
Jeremy Johnson41027732022-05-25 17:52:29 +010099 DType_UINT16 = 9,
James Ward485a11d2022-08-05 13:48:37 +0100100 DType_FP16 = 10,
James Ward34a62792022-10-18 17:27:40 +0100101 DType_BF16 = 11,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700102 DType_MIN = DType_UNKNOWN,
James Ward34a62792022-10-18 17:27:40 +0100103 DType_MAX = DType_BF16
Eric Kunze2364dcd2021-04-26 11:06:57 -0700104};
105
James Ward34a62792022-10-18 17:27:40 +0100106inline const DType (&EnumValuesDType())[12] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700107 static const DType values[] = {
108 DType_UNKNOWN,
109 DType_BOOL,
110 DType_UINT8,
111 DType_INT4,
112 DType_INT8,
113 DType_INT16,
114 DType_INT32,
115 DType_INT48,
Jeremy Johnsone1072a92022-09-27 12:44:11 +0100116 DType_FP32,
James Ward485a11d2022-08-05 13:48:37 +0100117 DType_UINT16,
James Ward34a62792022-10-18 17:27:40 +0100118 DType_FP16,
119 DType_BF16
Eric Kunze2364dcd2021-04-26 11:06:57 -0700120 };
121 return values;
122}
123
124inline const char * const *EnumNamesDType() {
James Ward34a62792022-10-18 17:27:40 +0100125 static const char * const names[13] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700126 "UNKNOWN",
127 "BOOL",
128 "UINT8",
129 "INT4",
130 "INT8",
131 "INT16",
132 "INT32",
133 "INT48",
Jeremy Johnsone1072a92022-09-27 12:44:11 +0100134 "FP32",
Jeremy Johnson41027732022-05-25 17:52:29 +0100135 "UINT16",
James Ward485a11d2022-08-05 13:48:37 +0100136 "FP16",
James Ward34a62792022-10-18 17:27:40 +0100137 "BF16",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700138 nullptr
139 };
140 return names;
141}
142
143inline const char *EnumNameDType(DType e) {
James Ward34a62792022-10-18 17:27:40 +0100144 if (flatbuffers::IsOutRange(e, DType_UNKNOWN, DType_BF16)) return "";
Eric Kunze2364dcd2021-04-26 11:06:57 -0700145 const size_t index = static_cast<size_t>(e);
146 return EnumNamesDType()[index];
147}
148
Eric Kunze4381b3d2022-08-22 18:15:41 +0000149enum ResizeMode : uint32_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700150 ResizeMode_UNKNOWN = 0,
151 ResizeMode_NEAREST = 1,
152 ResizeMode_BILINEAR = 2,
153 ResizeMode_MIN = ResizeMode_UNKNOWN,
154 ResizeMode_MAX = ResizeMode_BILINEAR
155};
156
157inline const ResizeMode (&EnumValuesResizeMode())[3] {
158 static const ResizeMode values[] = {
159 ResizeMode_UNKNOWN,
160 ResizeMode_NEAREST,
161 ResizeMode_BILINEAR
162 };
163 return values;
164}
165
166inline const char * const *EnumNamesResizeMode() {
167 static const char * const names[4] = {
168 "UNKNOWN",
169 "NEAREST",
170 "BILINEAR",
171 nullptr
172 };
173 return names;
174}
175
176inline const char *EnumNameResizeMode(ResizeMode e) {
177 if (flatbuffers::IsOutRange(e, ResizeMode_UNKNOWN, ResizeMode_BILINEAR)) return "";
178 const size_t index = static_cast<size_t>(e);
179 return EnumNamesResizeMode()[index];
180}
181
Eric Kunze4381b3d2022-08-22 18:15:41 +0000182enum Op : uint32_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700183 Op_UNKNOWN = 0,
184 Op_ARGMAX = 1,
185 Op_AVG_POOL2D = 2,
186 Op_CONV2D = 3,
187 Op_CONV3D = 4,
188 Op_DEPTHWISE_CONV2D = 5,
189 Op_FULLY_CONNECTED = 6,
190 Op_MATMUL = 7,
191 Op_MAX_POOL2D = 8,
192 Op_TRANSPOSE_CONV2D = 9,
193 Op_CLAMP = 10,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700194 Op_RESERVED = 11,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700195 Op_SIGMOID = 12,
196 Op_TANH = 13,
197 Op_ADD = 14,
198 Op_ARITHMETIC_RIGHT_SHIFT = 15,
199 Op_BITWISE_AND = 16,
200 Op_BITWISE_OR = 17,
201 Op_BITWISE_XOR = 18,
Matthew Haddonab905ec2021-08-23 16:40:57 +0100202 Op_INTDIV = 19,
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700203 Op_LOGICAL_AND = 20,
204 Op_LOGICAL_LEFT_SHIFT = 21,
205 Op_LOGICAL_RIGHT_SHIFT = 22,
206 Op_LOGICAL_OR = 23,
207 Op_LOGICAL_XOR = 24,
208 Op_MAXIMUM = 25,
209 Op_MINIMUM = 26,
210 Op_MUL = 27,
211 Op_POW = 28,
212 Op_SUB = 29,
213 Op_TABLE = 30,
214 Op_ABS = 31,
215 Op_BITWISE_NOT = 32,
216 Op_CEIL = 33,
217 Op_CLZ = 34,
218 Op_EXP = 35,
219 Op_FLOOR = 36,
220 Op_LOG = 37,
221 Op_LOGICAL_NOT = 38,
222 Op_NEGATE = 39,
223 Op_RECIPROCAL = 40,
224 Op_RSQRT = 41,
225 Op_SELECT = 42,
226 Op_EQUAL = 43,
227 Op_GREATER = 44,
228 Op_GREATER_EQUAL = 45,
229 Op_REDUCE_ANY = 46,
230 Op_REDUCE_ALL = 47,
231 Op_REDUCE_MAX = 48,
232 Op_REDUCE_MIN = 49,
233 Op_REDUCE_PRODUCT = 50,
234 Op_REDUCE_SUM = 51,
235 Op_CONCAT = 52,
236 Op_PAD = 53,
237 Op_RESHAPE = 54,
238 Op_REVERSE = 55,
239 Op_SLICE = 56,
240 Op_TILE = 57,
241 Op_TRANSPOSE = 58,
242 Op_GATHER = 59,
243 Op_SCATTER = 60,
244 Op_RESIZE = 61,
245 Op_CAST = 62,
246 Op_RESCALE = 63,
247 Op_CONST = 64,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700248 Op_IDENTITY = 65,
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700249 Op_CUSTOM = 66,
250 Op_COND_IF = 67,
251 Op_WHILE_LOOP = 68,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700252 Op_MIN = Op_UNKNOWN,
253 Op_MAX = Op_WHILE_LOOP
254};
255
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700256inline const Op (&EnumValuesOp())[69] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700257 static const Op values[] = {
258 Op_UNKNOWN,
259 Op_ARGMAX,
260 Op_AVG_POOL2D,
261 Op_CONV2D,
262 Op_CONV3D,
263 Op_DEPTHWISE_CONV2D,
264 Op_FULLY_CONNECTED,
265 Op_MATMUL,
266 Op_MAX_POOL2D,
267 Op_TRANSPOSE_CONV2D,
268 Op_CLAMP,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700269 Op_RESERVED,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700270 Op_SIGMOID,
271 Op_TANH,
272 Op_ADD,
273 Op_ARITHMETIC_RIGHT_SHIFT,
274 Op_BITWISE_AND,
275 Op_BITWISE_OR,
276 Op_BITWISE_XOR,
Matthew Haddonab905ec2021-08-23 16:40:57 +0100277 Op_INTDIV,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700278 Op_LOGICAL_AND,
279 Op_LOGICAL_LEFT_SHIFT,
280 Op_LOGICAL_RIGHT_SHIFT,
281 Op_LOGICAL_OR,
282 Op_LOGICAL_XOR,
283 Op_MAXIMUM,
284 Op_MINIMUM,
285 Op_MUL,
286 Op_POW,
287 Op_SUB,
288 Op_TABLE,
289 Op_ABS,
290 Op_BITWISE_NOT,
291 Op_CEIL,
292 Op_CLZ,
293 Op_EXP,
294 Op_FLOOR,
295 Op_LOG,
296 Op_LOGICAL_NOT,
297 Op_NEGATE,
298 Op_RECIPROCAL,
299 Op_RSQRT,
300 Op_SELECT,
301 Op_EQUAL,
302 Op_GREATER,
303 Op_GREATER_EQUAL,
304 Op_REDUCE_ANY,
305 Op_REDUCE_ALL,
306 Op_REDUCE_MAX,
307 Op_REDUCE_MIN,
308 Op_REDUCE_PRODUCT,
309 Op_REDUCE_SUM,
310 Op_CONCAT,
311 Op_PAD,
312 Op_RESHAPE,
313 Op_REVERSE,
314 Op_SLICE,
315 Op_TILE,
316 Op_TRANSPOSE,
317 Op_GATHER,
318 Op_SCATTER,
319 Op_RESIZE,
320 Op_CAST,
321 Op_RESCALE,
322 Op_CONST,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700323 Op_IDENTITY,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700324 Op_CUSTOM,
325 Op_COND_IF,
326 Op_WHILE_LOOP
327 };
328 return values;
329}
330
331inline const char * const *EnumNamesOp() {
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700332 static const char * const names[70] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700333 "UNKNOWN",
334 "ARGMAX",
335 "AVG_POOL2D",
336 "CONV2D",
337 "CONV3D",
338 "DEPTHWISE_CONV2D",
339 "FULLY_CONNECTED",
340 "MATMUL",
341 "MAX_POOL2D",
342 "TRANSPOSE_CONV2D",
343 "CLAMP",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700344 "RESERVED",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700345 "SIGMOID",
346 "TANH",
347 "ADD",
348 "ARITHMETIC_RIGHT_SHIFT",
349 "BITWISE_AND",
350 "BITWISE_OR",
351 "BITWISE_XOR",
Matthew Haddonab905ec2021-08-23 16:40:57 +0100352 "INTDIV",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700353 "LOGICAL_AND",
354 "LOGICAL_LEFT_SHIFT",
355 "LOGICAL_RIGHT_SHIFT",
356 "LOGICAL_OR",
357 "LOGICAL_XOR",
358 "MAXIMUM",
359 "MINIMUM",
360 "MUL",
361 "POW",
362 "SUB",
363 "TABLE",
364 "ABS",
365 "BITWISE_NOT",
366 "CEIL",
367 "CLZ",
368 "EXP",
369 "FLOOR",
370 "LOG",
371 "LOGICAL_NOT",
372 "NEGATE",
373 "RECIPROCAL",
374 "RSQRT",
375 "SELECT",
376 "EQUAL",
377 "GREATER",
378 "GREATER_EQUAL",
379 "REDUCE_ANY",
380 "REDUCE_ALL",
381 "REDUCE_MAX",
382 "REDUCE_MIN",
383 "REDUCE_PRODUCT",
384 "REDUCE_SUM",
385 "CONCAT",
386 "PAD",
387 "RESHAPE",
388 "REVERSE",
389 "SLICE",
390 "TILE",
391 "TRANSPOSE",
392 "GATHER",
393 "SCATTER",
394 "RESIZE",
395 "CAST",
396 "RESCALE",
397 "CONST",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700398 "IDENTITY",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700399 "CUSTOM",
400 "COND_IF",
401 "WHILE_LOOP",
402 nullptr
403 };
404 return names;
405}
406
407inline const char *EnumNameOp(Op e) {
408 if (flatbuffers::IsOutRange(e, Op_UNKNOWN, Op_WHILE_LOOP)) return "";
409 const size_t index = static_cast<size_t>(e);
410 return EnumNamesOp()[index];
411}
412
Eric Kunze4381b3d2022-08-22 18:15:41 +0000413enum Attribute : uint8_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700414 Attribute_NONE = 0,
Kevin Cheng79a41992021-08-31 16:04:40 -0700415 Attribute_PoolAttribute = 1,
416 Attribute_ConvAttribute = 2,
417 Attribute_TransposeConvAttribute = 3,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700418 Attribute_PadAttribute = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700419 Attribute_AxisAttribute = 5,
420 Attribute_ReshapeAttribute = 6,
421 Attribute_SliceAttribute = 7,
422 Attribute_TileAttribute = 8,
423 Attribute_ResizeAttribute = 9,
424 Attribute_ClampAttribute = 10,
425 Attribute_RescaleAttribute = 11,
426 Attribute_MulAttribute = 12,
427 Attribute_ArithmeticRightShiftAttribute = 13,
428 Attribute_CondIfAttribute = 14,
429 Attribute_WhileLoopAttribute = 15,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700430 Attribute_TransposeAttribute = 16,
431 Attribute_TableAttribute = 17,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000432 Attribute_MatMulAttribute = 18,
433 Attribute_FullyConnectedAttribute = 19,
434 Attribute_NegateAttribute = 20,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700435 Attribute_MIN = Attribute_NONE,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000436 Attribute_MAX = Attribute_NegateAttribute
Eric Kunze2364dcd2021-04-26 11:06:57 -0700437};
438
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000439inline const Attribute (&EnumValuesAttribute())[21] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700440 static const Attribute values[] = {
441 Attribute_NONE,
Kevin Cheng79a41992021-08-31 16:04:40 -0700442 Attribute_PoolAttribute,
443 Attribute_ConvAttribute,
444 Attribute_TransposeConvAttribute,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700445 Attribute_PadAttribute,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700446 Attribute_AxisAttribute,
447 Attribute_ReshapeAttribute,
448 Attribute_SliceAttribute,
449 Attribute_TileAttribute,
450 Attribute_ResizeAttribute,
451 Attribute_ClampAttribute,
452 Attribute_RescaleAttribute,
453 Attribute_MulAttribute,
454 Attribute_ArithmeticRightShiftAttribute,
455 Attribute_CondIfAttribute,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700456 Attribute_WhileLoopAttribute,
457 Attribute_TransposeAttribute,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000458 Attribute_TableAttribute,
459 Attribute_MatMulAttribute,
460 Attribute_FullyConnectedAttribute,
461 Attribute_NegateAttribute
Eric Kunze2364dcd2021-04-26 11:06:57 -0700462 };
463 return values;
464}
465
466inline const char * const *EnumNamesAttribute() {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000467 static const char * const names[22] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700468 "NONE",
Kevin Cheng79a41992021-08-31 16:04:40 -0700469 "PoolAttribute",
470 "ConvAttribute",
471 "TransposeConvAttribute",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700472 "PadAttribute",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700473 "AxisAttribute",
474 "ReshapeAttribute",
475 "SliceAttribute",
476 "TileAttribute",
477 "ResizeAttribute",
478 "ClampAttribute",
479 "RescaleAttribute",
480 "MulAttribute",
481 "ArithmeticRightShiftAttribute",
482 "CondIfAttribute",
483 "WhileLoopAttribute",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700484 "TransposeAttribute",
485 "TableAttribute",
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000486 "MatMulAttribute",
487 "FullyConnectedAttribute",
488 "NegateAttribute",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700489 nullptr
490 };
491 return names;
492}
493
494inline const char *EnumNameAttribute(Attribute e) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000495 if (flatbuffers::IsOutRange(e, Attribute_NONE, Attribute_NegateAttribute)) return "";
Eric Kunze2364dcd2021-04-26 11:06:57 -0700496 const size_t index = static_cast<size_t>(e);
497 return EnumNamesAttribute()[index];
498}
499
500template<typename T> struct AttributeTraits {
501 static const Attribute enum_value = Attribute_NONE;
502};
503
Kevin Cheng79a41992021-08-31 16:04:40 -0700504template<> struct AttributeTraits<tosa::PoolAttribute> {
505 static const Attribute enum_value = Attribute_PoolAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700506};
507
Kevin Cheng79a41992021-08-31 16:04:40 -0700508template<> struct AttributeTraits<tosa::ConvAttribute> {
509 static const Attribute enum_value = Attribute_ConvAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700510};
511
Kevin Cheng79a41992021-08-31 16:04:40 -0700512template<> struct AttributeTraits<tosa::TransposeConvAttribute> {
513 static const Attribute enum_value = Attribute_TransposeConvAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700514};
515
Kevin Cheng38d214c2021-10-15 15:49:19 -0700516template<> struct AttributeTraits<tosa::PadAttribute> {
517 static const Attribute enum_value = Attribute_PadAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700518};
519
520template<> struct AttributeTraits<tosa::AxisAttribute> {
521 static const Attribute enum_value = Attribute_AxisAttribute;
522};
523
524template<> struct AttributeTraits<tosa::ReshapeAttribute> {
525 static const Attribute enum_value = Attribute_ReshapeAttribute;
526};
527
528template<> struct AttributeTraits<tosa::SliceAttribute> {
529 static const Attribute enum_value = Attribute_SliceAttribute;
530};
531
532template<> struct AttributeTraits<tosa::TileAttribute> {
533 static const Attribute enum_value = Attribute_TileAttribute;
534};
535
536template<> struct AttributeTraits<tosa::ResizeAttribute> {
537 static const Attribute enum_value = Attribute_ResizeAttribute;
538};
539
540template<> struct AttributeTraits<tosa::ClampAttribute> {
541 static const Attribute enum_value = Attribute_ClampAttribute;
542};
543
544template<> struct AttributeTraits<tosa::RescaleAttribute> {
545 static const Attribute enum_value = Attribute_RescaleAttribute;
546};
547
548template<> struct AttributeTraits<tosa::MulAttribute> {
549 static const Attribute enum_value = Attribute_MulAttribute;
550};
551
552template<> struct AttributeTraits<tosa::ArithmeticRightShiftAttribute> {
553 static const Attribute enum_value = Attribute_ArithmeticRightShiftAttribute;
554};
555
556template<> struct AttributeTraits<tosa::CondIfAttribute> {
557 static const Attribute enum_value = Attribute_CondIfAttribute;
558};
559
560template<> struct AttributeTraits<tosa::WhileLoopAttribute> {
561 static const Attribute enum_value = Attribute_WhileLoopAttribute;
562};
563
Kevin Cheng38d214c2021-10-15 15:49:19 -0700564template<> struct AttributeTraits<tosa::TransposeAttribute> {
565 static const Attribute enum_value = Attribute_TransposeAttribute;
566};
567
568template<> struct AttributeTraits<tosa::TableAttribute> {
569 static const Attribute enum_value = Attribute_TableAttribute;
570};
571
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000572template<> struct AttributeTraits<tosa::MatMulAttribute> {
573 static const Attribute enum_value = Attribute_MatMulAttribute;
574};
575
576template<> struct AttributeTraits<tosa::FullyConnectedAttribute> {
577 static const Attribute enum_value = Attribute_FullyConnectedAttribute;
578};
579
580template<> struct AttributeTraits<tosa::NegateAttribute> {
581 static const Attribute enum_value = Attribute_NegateAttribute;
582};
583
Eric Kunze2364dcd2021-04-26 11:06:57 -0700584bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type);
585bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types);
586
Kevin Cheng79a41992021-08-31 16:04:40 -0700587struct PoolAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
588 typedef PoolAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700589 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -0700590 VT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700591 VT_KERNEL = 6,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000592 VT_STRIDE = 8,
593 VT_INPUT_ZP = 10,
James Ward485a11d2022-08-05 13:48:37 +0100594 VT_OUTPUT_ZP = 12,
595 VT_ACCUM_DTYPE = 14
Eric Kunze2364dcd2021-04-26 11:06:57 -0700596 };
TatWai Chong7be71652022-05-10 17:26:20 -0700597 const flatbuffers::Vector<int32_t> *pad() const {
598 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700599 }
600 const flatbuffers::Vector<int32_t> *kernel() const {
601 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_KERNEL);
602 }
603 const flatbuffers::Vector<int32_t> *stride() const {
604 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
605 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000606 int32_t input_zp() const {
607 return GetField<int32_t>(VT_INPUT_ZP, 0);
608 }
609 int32_t output_zp() const {
610 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
611 }
James Ward485a11d2022-08-05 13:48:37 +0100612 tosa::DType accum_dtype() const {
613 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
614 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700615 bool Verify(flatbuffers::Verifier &verifier) const {
616 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -0700617 VerifyOffset(verifier, VT_PAD) &&
618 verifier.VerifyVector(pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700619 VerifyOffset(verifier, VT_KERNEL) &&
620 verifier.VerifyVector(kernel()) &&
621 VerifyOffset(verifier, VT_STRIDE) &&
622 verifier.VerifyVector(stride()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000623 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
624 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +0100625 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700626 verifier.EndTable();
627 }
628};
629
Kevin Cheng79a41992021-08-31 16:04:40 -0700630struct PoolAttributeBuilder {
631 typedef PoolAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700632 flatbuffers::FlatBufferBuilder &fbb_;
633 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -0700634 void add_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad) {
635 fbb_.AddOffset(PoolAttribute::VT_PAD, pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700636 }
637 void add_kernel(flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700638 fbb_.AddOffset(PoolAttribute::VT_KERNEL, kernel);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700639 }
640 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700641 fbb_.AddOffset(PoolAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700642 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000643 void add_input_zp(int32_t input_zp) {
644 fbb_.AddElement<int32_t>(PoolAttribute::VT_INPUT_ZP, input_zp, 0);
645 }
646 void add_output_zp(int32_t output_zp) {
647 fbb_.AddElement<int32_t>(PoolAttribute::VT_OUTPUT_ZP, output_zp, 0);
648 }
James Ward485a11d2022-08-05 13:48:37 +0100649 void add_accum_dtype(tosa::DType accum_dtype) {
650 fbb_.AddElement<uint32_t>(PoolAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
651 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700652 explicit PoolAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700653 : fbb_(_fbb) {
654 start_ = fbb_.StartTable();
655 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700656 flatbuffers::Offset<PoolAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700657 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700658 auto o = flatbuffers::Offset<PoolAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700659 return o;
660 }
661};
662
Kevin Cheng79a41992021-08-31 16:04:40 -0700663inline flatbuffers::Offset<PoolAttribute> CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700664 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700665 flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700666 flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000667 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
668 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100669 int32_t output_zp = 0,
670 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700671 PoolAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +0100672 builder_.add_accum_dtype(accum_dtype);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000673 builder_.add_output_zp(output_zp);
674 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700675 builder_.add_stride(stride);
676 builder_.add_kernel(kernel);
TatWai Chong7be71652022-05-10 17:26:20 -0700677 builder_.add_pad(pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700678 return builder_.Finish();
679}
680
Kevin Cheng79a41992021-08-31 16:04:40 -0700681inline flatbuffers::Offset<PoolAttribute> CreatePoolAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700682 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700683 const std::vector<int32_t> *pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700684 const std::vector<int32_t> *kernel = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000685 const std::vector<int32_t> *stride = nullptr,
686 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100687 int32_t output_zp = 0,
688 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
TatWai Chong7be71652022-05-10 17:26:20 -0700689 auto pad__ = pad ? _fbb.CreateVector<int32_t>(*pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700690 auto kernel__ = kernel ? _fbb.CreateVector<int32_t>(*kernel) : 0;
691 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700692 return tosa::CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700693 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700694 pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700695 kernel__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000696 stride__,
697 input_zp,
James Ward485a11d2022-08-05 13:48:37 +0100698 output_zp,
699 accum_dtype);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700700}
701
Kevin Cheng79a41992021-08-31 16:04:40 -0700702struct ConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
703 typedef ConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700704 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -0700705 VT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700706 VT_STRIDE = 6,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000707 VT_DILATION = 8,
708 VT_INPUT_ZP = 10,
James Ward485a11d2022-08-05 13:48:37 +0100709 VT_WEIGHT_ZP = 12,
710 VT_ACCUM_DTYPE = 14
Eric Kunze2364dcd2021-04-26 11:06:57 -0700711 };
TatWai Chong7be71652022-05-10 17:26:20 -0700712 const flatbuffers::Vector<int32_t> *pad() const {
713 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700714 }
715 const flatbuffers::Vector<int32_t> *stride() const {
716 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
717 }
718 const flatbuffers::Vector<int32_t> *dilation() const {
719 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_DILATION);
720 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000721 int32_t input_zp() const {
722 return GetField<int32_t>(VT_INPUT_ZP, 0);
723 }
724 int32_t weight_zp() const {
725 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
726 }
James Ward485a11d2022-08-05 13:48:37 +0100727 tosa::DType accum_dtype() const {
728 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
729 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700730 bool Verify(flatbuffers::Verifier &verifier) const {
731 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -0700732 VerifyOffset(verifier, VT_PAD) &&
733 verifier.VerifyVector(pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700734 VerifyOffset(verifier, VT_STRIDE) &&
735 verifier.VerifyVector(stride()) &&
736 VerifyOffset(verifier, VT_DILATION) &&
737 verifier.VerifyVector(dilation()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000738 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
739 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +0100740 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700741 verifier.EndTable();
742 }
743};
744
Kevin Cheng79a41992021-08-31 16:04:40 -0700745struct ConvAttributeBuilder {
746 typedef ConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700747 flatbuffers::FlatBufferBuilder &fbb_;
748 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -0700749 void add_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad) {
750 fbb_.AddOffset(ConvAttribute::VT_PAD, pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700751 }
752 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700753 fbb_.AddOffset(ConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700754 }
755 void add_dilation(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700756 fbb_.AddOffset(ConvAttribute::VT_DILATION, dilation);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700757 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000758 void add_input_zp(int32_t input_zp) {
759 fbb_.AddElement<int32_t>(ConvAttribute::VT_INPUT_ZP, input_zp, 0);
760 }
761 void add_weight_zp(int32_t weight_zp) {
762 fbb_.AddElement<int32_t>(ConvAttribute::VT_WEIGHT_ZP, weight_zp, 0);
763 }
James Ward485a11d2022-08-05 13:48:37 +0100764 void add_accum_dtype(tosa::DType accum_dtype) {
765 fbb_.AddElement<uint32_t>(ConvAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
766 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700767 explicit ConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700768 : fbb_(_fbb) {
769 start_ = fbb_.StartTable();
770 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700771 flatbuffers::Offset<ConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700772 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700773 auto o = flatbuffers::Offset<ConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700774 return o;
775 }
776};
777
Kevin Cheng79a41992021-08-31 16:04:40 -0700778inline flatbuffers::Offset<ConvAttribute> CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700779 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700780 flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700781 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000782 flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation = 0,
783 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100784 int32_t weight_zp = 0,
785 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700786 ConvAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +0100787 builder_.add_accum_dtype(accum_dtype);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000788 builder_.add_weight_zp(weight_zp);
789 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700790 builder_.add_dilation(dilation);
791 builder_.add_stride(stride);
TatWai Chong7be71652022-05-10 17:26:20 -0700792 builder_.add_pad(pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700793 return builder_.Finish();
794}
795
Kevin Cheng79a41992021-08-31 16:04:40 -0700796inline flatbuffers::Offset<ConvAttribute> CreateConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700797 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700798 const std::vector<int32_t> *pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700799 const std::vector<int32_t> *stride = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000800 const std::vector<int32_t> *dilation = nullptr,
801 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100802 int32_t weight_zp = 0,
803 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
TatWai Chong7be71652022-05-10 17:26:20 -0700804 auto pad__ = pad ? _fbb.CreateVector<int32_t>(*pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700805 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
806 auto dilation__ = dilation ? _fbb.CreateVector<int32_t>(*dilation) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700807 return tosa::CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700808 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700809 pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700810 stride__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000811 dilation__,
812 input_zp,
James Ward485a11d2022-08-05 13:48:37 +0100813 weight_zp,
814 accum_dtype);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700815}
816
Kevin Cheng79a41992021-08-31 16:04:40 -0700817struct TransposeConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
818 typedef TransposeConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700819 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700820 VT_OUT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700821 VT_STRIDE = 6,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000822 VT_OUTPUT_SHAPE = 8,
823 VT_INPUT_ZP = 10,
James Ward485a11d2022-08-05 13:48:37 +0100824 VT_WEIGHT_ZP = 12,
825 VT_ACCUM_DTYPE = 14
Eric Kunze2364dcd2021-04-26 11:06:57 -0700826 };
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700827 const flatbuffers::Vector<int32_t> *out_pad() const {
828 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700829 }
830 const flatbuffers::Vector<int32_t> *stride() const {
831 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
832 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700833 const flatbuffers::Vector<int32_t> *output_shape() const {
834 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUT_SHAPE);
835 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000836 int32_t input_zp() const {
837 return GetField<int32_t>(VT_INPUT_ZP, 0);
838 }
839 int32_t weight_zp() const {
840 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
841 }
James Ward485a11d2022-08-05 13:48:37 +0100842 tosa::DType accum_dtype() const {
843 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
844 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700845 bool Verify(flatbuffers::Verifier &verifier) const {
846 return VerifyTableStart(verifier) &&
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700847 VerifyOffset(verifier, VT_OUT_PAD) &&
848 verifier.VerifyVector(out_pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700849 VerifyOffset(verifier, VT_STRIDE) &&
850 verifier.VerifyVector(stride()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700851 VerifyOffset(verifier, VT_OUTPUT_SHAPE) &&
852 verifier.VerifyVector(output_shape()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000853 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
854 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +0100855 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700856 verifier.EndTable();
857 }
858};
859
Kevin Cheng79a41992021-08-31 16:04:40 -0700860struct TransposeConvAttributeBuilder {
861 typedef TransposeConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700862 flatbuffers::FlatBufferBuilder &fbb_;
863 flatbuffers::uoffset_t start_;
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700864 void add_out_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> out_pad) {
865 fbb_.AddOffset(TransposeConvAttribute::VT_OUT_PAD, out_pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700866 }
867 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700868 fbb_.AddOffset(TransposeConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700869 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700870 void add_output_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700871 fbb_.AddOffset(TransposeConvAttribute::VT_OUTPUT_SHAPE, output_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700872 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000873 void add_input_zp(int32_t input_zp) {
874 fbb_.AddElement<int32_t>(TransposeConvAttribute::VT_INPUT_ZP, input_zp, 0);
875 }
876 void add_weight_zp(int32_t weight_zp) {
877 fbb_.AddElement<int32_t>(TransposeConvAttribute::VT_WEIGHT_ZP, weight_zp, 0);
878 }
James Ward485a11d2022-08-05 13:48:37 +0100879 void add_accum_dtype(tosa::DType accum_dtype) {
880 fbb_.AddElement<uint32_t>(TransposeConvAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
881 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700882 explicit TransposeConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700883 : fbb_(_fbb) {
884 start_ = fbb_.StartTable();
885 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700886 flatbuffers::Offset<TransposeConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700887 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700888 auto o = flatbuffers::Offset<TransposeConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700889 return o;
890 }
891};
892
Kevin Cheng79a41992021-08-31 16:04:40 -0700893inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700894 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700895 flatbuffers::Offset<flatbuffers::Vector<int32_t>> out_pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700896 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000897 flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape = 0,
898 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100899 int32_t weight_zp = 0,
900 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700901 TransposeConvAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +0100902 builder_.add_accum_dtype(accum_dtype);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000903 builder_.add_weight_zp(weight_zp);
904 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700905 builder_.add_output_shape(output_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700906 builder_.add_stride(stride);
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700907 builder_.add_out_pad(out_pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700908 return builder_.Finish();
909}
910
Kevin Cheng79a41992021-08-31 16:04:40 -0700911inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700912 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700913 const std::vector<int32_t> *out_pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700914 const std::vector<int32_t> *stride = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000915 const std::vector<int32_t> *output_shape = nullptr,
916 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100917 int32_t weight_zp = 0,
918 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700919 auto out_pad__ = out_pad ? _fbb.CreateVector<int32_t>(*out_pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700920 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700921 auto output_shape__ = output_shape ? _fbb.CreateVector<int32_t>(*output_shape) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700922 return tosa::CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700923 _fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700924 out_pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700925 stride__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000926 output_shape__,
927 input_zp,
James Ward485a11d2022-08-05 13:48:37 +0100928 weight_zp,
929 accum_dtype);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700930}
931
Kevin Cheng38d214c2021-10-15 15:49:19 -0700932struct PadAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
933 typedef PadAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700934 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Kevin Cheng38d214c2021-10-15 15:49:19 -0700935 VT_PADDING = 4,
936 VT_PAD_CONST_INT = 6,
937 VT_PAD_CONST_FP = 8
Eric Kunze2364dcd2021-04-26 11:06:57 -0700938 };
Kevin Cheng38d214c2021-10-15 15:49:19 -0700939 const flatbuffers::Vector<int32_t> *padding() const {
940 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PADDING);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700941 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700942 int32_t pad_const_int() const {
943 return GetField<int32_t>(VT_PAD_CONST_INT, 0);
944 }
945 float pad_const_fp() const {
946 return GetField<float>(VT_PAD_CONST_FP, 0.0f);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700947 }
948 bool Verify(flatbuffers::Verifier &verifier) const {
949 return VerifyTableStart(verifier) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -0700950 VerifyOffset(verifier, VT_PADDING) &&
951 verifier.VerifyVector(padding()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000952 VerifyField<int32_t>(verifier, VT_PAD_CONST_INT, 4) &&
953 VerifyField<float>(verifier, VT_PAD_CONST_FP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700954 verifier.EndTable();
955 }
956};
957
Kevin Cheng38d214c2021-10-15 15:49:19 -0700958struct PadAttributeBuilder {
959 typedef PadAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700960 flatbuffers::FlatBufferBuilder &fbb_;
961 flatbuffers::uoffset_t start_;
Kevin Cheng38d214c2021-10-15 15:49:19 -0700962 void add_padding(flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding) {
963 fbb_.AddOffset(PadAttribute::VT_PADDING, padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700964 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700965 void add_pad_const_int(int32_t pad_const_int) {
966 fbb_.AddElement<int32_t>(PadAttribute::VT_PAD_CONST_INT, pad_const_int, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700967 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700968 void add_pad_const_fp(float pad_const_fp) {
969 fbb_.AddElement<float>(PadAttribute::VT_PAD_CONST_FP, pad_const_fp, 0.0f);
970 }
971 explicit PadAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700972 : fbb_(_fbb) {
973 start_ = fbb_.StartTable();
974 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700975 flatbuffers::Offset<PadAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700976 const auto end = fbb_.EndTable(start_);
Kevin Cheng38d214c2021-10-15 15:49:19 -0700977 auto o = flatbuffers::Offset<PadAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700978 return o;
979 }
980};
981
Kevin Cheng38d214c2021-10-15 15:49:19 -0700982inline flatbuffers::Offset<PadAttribute> CreatePadAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700983 flatbuffers::FlatBufferBuilder &_fbb,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700984 flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding = 0,
985 int32_t pad_const_int = 0,
986 float pad_const_fp = 0.0f) {
987 PadAttributeBuilder builder_(_fbb);
988 builder_.add_pad_const_fp(pad_const_fp);
989 builder_.add_pad_const_int(pad_const_int);
990 builder_.add_padding(padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700991 return builder_.Finish();
992}
993
Kevin Cheng38d214c2021-10-15 15:49:19 -0700994inline flatbuffers::Offset<PadAttribute> CreatePadAttributeDirect(
995 flatbuffers::FlatBufferBuilder &_fbb,
996 const std::vector<int32_t> *padding = nullptr,
997 int32_t pad_const_int = 0,
998 float pad_const_fp = 0.0f) {
999 auto padding__ = padding ? _fbb.CreateVector<int32_t>(*padding) : 0;
1000 return tosa::CreatePadAttribute(
1001 _fbb,
1002 padding__,
1003 pad_const_int,
1004 pad_const_fp);
1005}
1006
Eric Kunze2364dcd2021-04-26 11:06:57 -07001007struct AxisAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1008 typedef AxisAttributeBuilder Builder;
1009 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1010 VT_AXIS = 4
1011 };
1012 int32_t axis() const {
1013 return GetField<int32_t>(VT_AXIS, 0);
1014 }
1015 bool Verify(flatbuffers::Verifier &verifier) const {
1016 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001017 VerifyField<int32_t>(verifier, VT_AXIS, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001018 verifier.EndTable();
1019 }
1020};
1021
1022struct AxisAttributeBuilder {
1023 typedef AxisAttribute Table;
1024 flatbuffers::FlatBufferBuilder &fbb_;
1025 flatbuffers::uoffset_t start_;
1026 void add_axis(int32_t axis) {
1027 fbb_.AddElement<int32_t>(AxisAttribute::VT_AXIS, axis, 0);
1028 }
1029 explicit AxisAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1030 : fbb_(_fbb) {
1031 start_ = fbb_.StartTable();
1032 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001033 flatbuffers::Offset<AxisAttribute> Finish() {
1034 const auto end = fbb_.EndTable(start_);
1035 auto o = flatbuffers::Offset<AxisAttribute>(end);
1036 return o;
1037 }
1038};
1039
1040inline flatbuffers::Offset<AxisAttribute> CreateAxisAttribute(
1041 flatbuffers::FlatBufferBuilder &_fbb,
1042 int32_t axis = 0) {
1043 AxisAttributeBuilder builder_(_fbb);
1044 builder_.add_axis(axis);
1045 return builder_.Finish();
1046}
1047
1048struct ReshapeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1049 typedef ReshapeAttributeBuilder Builder;
1050 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001051 VT_NEW_SHAPE = 4
Eric Kunze2364dcd2021-04-26 11:06:57 -07001052 };
TatWai Chong7be71652022-05-10 17:26:20 -07001053 const flatbuffers::Vector<int32_t> *new_shape() const {
1054 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_NEW_SHAPE);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001055 }
1056 bool Verify(flatbuffers::Verifier &verifier) const {
1057 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001058 VerifyOffset(verifier, VT_NEW_SHAPE) &&
1059 verifier.VerifyVector(new_shape()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001060 verifier.EndTable();
1061 }
1062};
1063
1064struct ReshapeAttributeBuilder {
1065 typedef ReshapeAttribute Table;
1066 flatbuffers::FlatBufferBuilder &fbb_;
1067 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001068 void add_new_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> new_shape) {
1069 fbb_.AddOffset(ReshapeAttribute::VT_NEW_SHAPE, new_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001070 }
1071 explicit ReshapeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1072 : fbb_(_fbb) {
1073 start_ = fbb_.StartTable();
1074 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001075 flatbuffers::Offset<ReshapeAttribute> Finish() {
1076 const auto end = fbb_.EndTable(start_);
1077 auto o = flatbuffers::Offset<ReshapeAttribute>(end);
1078 return o;
1079 }
1080};
1081
1082inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttribute(
1083 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001084 flatbuffers::Offset<flatbuffers::Vector<int32_t>> new_shape = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001085 ReshapeAttributeBuilder builder_(_fbb);
TatWai Chong7be71652022-05-10 17:26:20 -07001086 builder_.add_new_shape(new_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001087 return builder_.Finish();
1088}
1089
1090inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttributeDirect(
1091 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001092 const std::vector<int32_t> *new_shape = nullptr) {
1093 auto new_shape__ = new_shape ? _fbb.CreateVector<int32_t>(*new_shape) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001094 return tosa::CreateReshapeAttribute(
1095 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001096 new_shape__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001097}
1098
1099struct SliceAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1100 typedef SliceAttributeBuilder Builder;
1101 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001102 VT_START = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001103 VT_SIZE = 6
1104 };
TatWai Chong7be71652022-05-10 17:26:20 -07001105 const flatbuffers::Vector<int32_t> *start() const {
1106 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_START);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001107 }
1108 const flatbuffers::Vector<int32_t> *size() const {
1109 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SIZE);
1110 }
1111 bool Verify(flatbuffers::Verifier &verifier) const {
1112 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001113 VerifyOffset(verifier, VT_START) &&
1114 verifier.VerifyVector(start()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001115 VerifyOffset(verifier, VT_SIZE) &&
1116 verifier.VerifyVector(size()) &&
1117 verifier.EndTable();
1118 }
1119};
1120
1121struct SliceAttributeBuilder {
1122 typedef SliceAttribute Table;
1123 flatbuffers::FlatBufferBuilder &fbb_;
1124 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001125 void add_start(flatbuffers::Offset<flatbuffers::Vector<int32_t>> start) {
1126 fbb_.AddOffset(SliceAttribute::VT_START, start);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001127 }
1128 void add_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> size) {
1129 fbb_.AddOffset(SliceAttribute::VT_SIZE, size);
1130 }
1131 explicit SliceAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1132 : fbb_(_fbb) {
1133 start_ = fbb_.StartTable();
1134 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001135 flatbuffers::Offset<SliceAttribute> Finish() {
1136 const auto end = fbb_.EndTable(start_);
1137 auto o = flatbuffers::Offset<SliceAttribute>(end);
1138 return o;
1139 }
1140};
1141
1142inline flatbuffers::Offset<SliceAttribute> CreateSliceAttribute(
1143 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001144 flatbuffers::Offset<flatbuffers::Vector<int32_t>> start = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001145 flatbuffers::Offset<flatbuffers::Vector<int32_t>> size = 0) {
1146 SliceAttributeBuilder builder_(_fbb);
1147 builder_.add_size(size);
TatWai Chong7be71652022-05-10 17:26:20 -07001148 builder_.add_start(start);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001149 return builder_.Finish();
1150}
1151
1152inline flatbuffers::Offset<SliceAttribute> CreateSliceAttributeDirect(
1153 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001154 const std::vector<int32_t> *start = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001155 const std::vector<int32_t> *size = nullptr) {
TatWai Chong7be71652022-05-10 17:26:20 -07001156 auto start__ = start ? _fbb.CreateVector<int32_t>(*start) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001157 auto size__ = size ? _fbb.CreateVector<int32_t>(*size) : 0;
1158 return tosa::CreateSliceAttribute(
1159 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001160 start__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001161 size__);
1162}
1163
1164struct TileAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1165 typedef TileAttributeBuilder Builder;
1166 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1167 VT_MULTIPLES = 4
1168 };
1169 const flatbuffers::Vector<int32_t> *multiples() const {
1170 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLES);
1171 }
1172 bool Verify(flatbuffers::Verifier &verifier) const {
1173 return VerifyTableStart(verifier) &&
1174 VerifyOffset(verifier, VT_MULTIPLES) &&
1175 verifier.VerifyVector(multiples()) &&
1176 verifier.EndTable();
1177 }
1178};
1179
1180struct TileAttributeBuilder {
1181 typedef TileAttribute Table;
1182 flatbuffers::FlatBufferBuilder &fbb_;
1183 flatbuffers::uoffset_t start_;
1184 void add_multiples(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples) {
1185 fbb_.AddOffset(TileAttribute::VT_MULTIPLES, multiples);
1186 }
1187 explicit TileAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1188 : fbb_(_fbb) {
1189 start_ = fbb_.StartTable();
1190 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001191 flatbuffers::Offset<TileAttribute> Finish() {
1192 const auto end = fbb_.EndTable(start_);
1193 auto o = flatbuffers::Offset<TileAttribute>(end);
1194 return o;
1195 }
1196};
1197
1198inline flatbuffers::Offset<TileAttribute> CreateTileAttribute(
1199 flatbuffers::FlatBufferBuilder &_fbb,
1200 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples = 0) {
1201 TileAttributeBuilder builder_(_fbb);
1202 builder_.add_multiples(multiples);
1203 return builder_.Finish();
1204}
1205
1206inline flatbuffers::Offset<TileAttribute> CreateTileAttributeDirect(
1207 flatbuffers::FlatBufferBuilder &_fbb,
1208 const std::vector<int32_t> *multiples = nullptr) {
1209 auto multiples__ = multiples ? _fbb.CreateVector<int32_t>(*multiples) : 0;
1210 return tosa::CreateTileAttribute(
1211 _fbb,
1212 multiples__);
1213}
1214
1215struct ResizeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1216 typedef ResizeAttributeBuilder Builder;
1217 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong49b1ca62022-06-10 01:49:13 -07001218 VT_SCALE = 4,
1219 VT_OFFSET = 6,
1220 VT_BORDER = 8,
1221 VT_MODE = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07001222 };
TatWai Chong49b1ca62022-06-10 01:49:13 -07001223 const flatbuffers::Vector<int16_t> *scale() const {
1224 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_SCALE);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001225 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001226 const flatbuffers::Vector<int16_t> *offset() const {
1227 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_OFFSET);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001228 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001229 const flatbuffers::Vector<int16_t> *border() const {
1230 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_BORDER);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001231 }
1232 tosa::ResizeMode mode() const {
1233 return static_cast<tosa::ResizeMode>(GetField<uint32_t>(VT_MODE, 0));
1234 }
1235 bool Verify(flatbuffers::Verifier &verifier) const {
1236 return VerifyTableStart(verifier) &&
TatWai Chong49b1ca62022-06-10 01:49:13 -07001237 VerifyOffset(verifier, VT_SCALE) &&
1238 verifier.VerifyVector(scale()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001239 VerifyOffset(verifier, VT_OFFSET) &&
1240 verifier.VerifyVector(offset()) &&
TatWai Chong49b1ca62022-06-10 01:49:13 -07001241 VerifyOffset(verifier, VT_BORDER) &&
1242 verifier.VerifyVector(border()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001243 VerifyField<uint32_t>(verifier, VT_MODE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001244 verifier.EndTable();
1245 }
1246};
1247
1248struct ResizeAttributeBuilder {
1249 typedef ResizeAttribute Table;
1250 flatbuffers::FlatBufferBuilder &fbb_;
1251 flatbuffers::uoffset_t start_;
TatWai Chong49b1ca62022-06-10 01:49:13 -07001252 void add_scale(flatbuffers::Offset<flatbuffers::Vector<int16_t>> scale) {
1253 fbb_.AddOffset(ResizeAttribute::VT_SCALE, scale);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001254 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001255 void add_offset(flatbuffers::Offset<flatbuffers::Vector<int16_t>> offset) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001256 fbb_.AddOffset(ResizeAttribute::VT_OFFSET, offset);
1257 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001258 void add_border(flatbuffers::Offset<flatbuffers::Vector<int16_t>> border) {
1259 fbb_.AddOffset(ResizeAttribute::VT_BORDER, border);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001260 }
1261 void add_mode(tosa::ResizeMode mode) {
1262 fbb_.AddElement<uint32_t>(ResizeAttribute::VT_MODE, static_cast<uint32_t>(mode), 0);
1263 }
1264 explicit ResizeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1265 : fbb_(_fbb) {
1266 start_ = fbb_.StartTable();
1267 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001268 flatbuffers::Offset<ResizeAttribute> Finish() {
1269 const auto end = fbb_.EndTable(start_);
1270 auto o = flatbuffers::Offset<ResizeAttribute>(end);
1271 return o;
1272 }
1273};
1274
1275inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttribute(
1276 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001277 flatbuffers::Offset<flatbuffers::Vector<int16_t>> scale = 0,
1278 flatbuffers::Offset<flatbuffers::Vector<int16_t>> offset = 0,
1279 flatbuffers::Offset<flatbuffers::Vector<int16_t>> border = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001280 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
1281 ResizeAttributeBuilder builder_(_fbb);
1282 builder_.add_mode(mode);
TatWai Chong49b1ca62022-06-10 01:49:13 -07001283 builder_.add_border(border);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001284 builder_.add_offset(offset);
TatWai Chong49b1ca62022-06-10 01:49:13 -07001285 builder_.add_scale(scale);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001286 return builder_.Finish();
1287}
1288
1289inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttributeDirect(
1290 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001291 const std::vector<int16_t> *scale = nullptr,
1292 const std::vector<int16_t> *offset = nullptr,
1293 const std::vector<int16_t> *border = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001294 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
TatWai Chong49b1ca62022-06-10 01:49:13 -07001295 auto scale__ = scale ? _fbb.CreateVector<int16_t>(*scale) : 0;
1296 auto offset__ = offset ? _fbb.CreateVector<int16_t>(*offset) : 0;
1297 auto border__ = border ? _fbb.CreateVector<int16_t>(*border) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001298 return tosa::CreateResizeAttribute(
1299 _fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001300 scale__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001301 offset__,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001302 border__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001303 mode);
1304}
1305
1306struct ClampAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1307 typedef ClampAttributeBuilder Builder;
1308 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1309 VT_MIN_INT = 4,
1310 VT_MAX_INT = 6,
1311 VT_MIN_FP = 8,
1312 VT_MAX_FP = 10
1313 };
1314 int32_t min_int() const {
1315 return GetField<int32_t>(VT_MIN_INT, 0);
1316 }
1317 int32_t max_int() const {
1318 return GetField<int32_t>(VT_MAX_INT, 0);
1319 }
1320 float min_fp() const {
1321 return GetField<float>(VT_MIN_FP, 0.0f);
1322 }
1323 float max_fp() const {
1324 return GetField<float>(VT_MAX_FP, 0.0f);
1325 }
1326 bool Verify(flatbuffers::Verifier &verifier) const {
1327 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001328 VerifyField<int32_t>(verifier, VT_MIN_INT, 4) &&
1329 VerifyField<int32_t>(verifier, VT_MAX_INT, 4) &&
1330 VerifyField<float>(verifier, VT_MIN_FP, 4) &&
1331 VerifyField<float>(verifier, VT_MAX_FP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001332 verifier.EndTable();
1333 }
1334};
1335
1336struct ClampAttributeBuilder {
1337 typedef ClampAttribute Table;
1338 flatbuffers::FlatBufferBuilder &fbb_;
1339 flatbuffers::uoffset_t start_;
1340 void add_min_int(int32_t min_int) {
1341 fbb_.AddElement<int32_t>(ClampAttribute::VT_MIN_INT, min_int, 0);
1342 }
1343 void add_max_int(int32_t max_int) {
1344 fbb_.AddElement<int32_t>(ClampAttribute::VT_MAX_INT, max_int, 0);
1345 }
1346 void add_min_fp(float min_fp) {
1347 fbb_.AddElement<float>(ClampAttribute::VT_MIN_FP, min_fp, 0.0f);
1348 }
1349 void add_max_fp(float max_fp) {
1350 fbb_.AddElement<float>(ClampAttribute::VT_MAX_FP, max_fp, 0.0f);
1351 }
1352 explicit ClampAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1353 : fbb_(_fbb) {
1354 start_ = fbb_.StartTable();
1355 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001356 flatbuffers::Offset<ClampAttribute> Finish() {
1357 const auto end = fbb_.EndTable(start_);
1358 auto o = flatbuffers::Offset<ClampAttribute>(end);
1359 return o;
1360 }
1361};
1362
1363inline flatbuffers::Offset<ClampAttribute> CreateClampAttribute(
1364 flatbuffers::FlatBufferBuilder &_fbb,
1365 int32_t min_int = 0,
1366 int32_t max_int = 0,
1367 float min_fp = 0.0f,
1368 float max_fp = 0.0f) {
1369 ClampAttributeBuilder builder_(_fbb);
1370 builder_.add_max_fp(max_fp);
1371 builder_.add_min_fp(min_fp);
1372 builder_.add_max_int(max_int);
1373 builder_.add_min_int(min_int);
1374 return builder_.Finish();
1375}
1376
1377struct RescaleAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1378 typedef RescaleAttributeBuilder Builder;
1379 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1380 VT_INPUT_ZP = 4,
1381 VT_OUTPUT_ZP = 6,
1382 VT_MULTIPLIER = 8,
1383 VT_SHIFT = 10,
1384 VT_SCALE32 = 12,
1385 VT_DOUBLE_ROUND = 14,
1386 VT_PER_CHANNEL = 16
1387 };
1388 int32_t input_zp() const {
1389 return GetField<int32_t>(VT_INPUT_ZP, 0);
1390 }
1391 int32_t output_zp() const {
1392 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1393 }
1394 const flatbuffers::Vector<int32_t> *multiplier() const {
1395 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLIER);
1396 }
1397 const flatbuffers::Vector<int32_t> *shift() const {
1398 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHIFT);
1399 }
1400 bool scale32() const {
1401 return GetField<uint8_t>(VT_SCALE32, 0) != 0;
1402 }
1403 bool double_round() const {
1404 return GetField<uint8_t>(VT_DOUBLE_ROUND, 0) != 0;
1405 }
1406 bool per_channel() const {
1407 return GetField<uint8_t>(VT_PER_CHANNEL, 0) != 0;
1408 }
1409 bool Verify(flatbuffers::Verifier &verifier) const {
1410 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001411 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
1412 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001413 VerifyOffset(verifier, VT_MULTIPLIER) &&
1414 verifier.VerifyVector(multiplier()) &&
1415 VerifyOffset(verifier, VT_SHIFT) &&
1416 verifier.VerifyVector(shift()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001417 VerifyField<uint8_t>(verifier, VT_SCALE32, 1) &&
1418 VerifyField<uint8_t>(verifier, VT_DOUBLE_ROUND, 1) &&
1419 VerifyField<uint8_t>(verifier, VT_PER_CHANNEL, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001420 verifier.EndTable();
1421 }
1422};
1423
1424struct RescaleAttributeBuilder {
1425 typedef RescaleAttribute Table;
1426 flatbuffers::FlatBufferBuilder &fbb_;
1427 flatbuffers::uoffset_t start_;
1428 void add_input_zp(int32_t input_zp) {
1429 fbb_.AddElement<int32_t>(RescaleAttribute::VT_INPUT_ZP, input_zp, 0);
1430 }
1431 void add_output_zp(int32_t output_zp) {
1432 fbb_.AddElement<int32_t>(RescaleAttribute::VT_OUTPUT_ZP, output_zp, 0);
1433 }
1434 void add_multiplier(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier) {
1435 fbb_.AddOffset(RescaleAttribute::VT_MULTIPLIER, multiplier);
1436 }
1437 void add_shift(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift) {
1438 fbb_.AddOffset(RescaleAttribute::VT_SHIFT, shift);
1439 }
1440 void add_scale32(bool scale32) {
1441 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_SCALE32, static_cast<uint8_t>(scale32), 0);
1442 }
1443 void add_double_round(bool double_round) {
1444 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_DOUBLE_ROUND, static_cast<uint8_t>(double_round), 0);
1445 }
1446 void add_per_channel(bool per_channel) {
1447 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_PER_CHANNEL, static_cast<uint8_t>(per_channel), 0);
1448 }
1449 explicit RescaleAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1450 : fbb_(_fbb) {
1451 start_ = fbb_.StartTable();
1452 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001453 flatbuffers::Offset<RescaleAttribute> Finish() {
1454 const auto end = fbb_.EndTable(start_);
1455 auto o = flatbuffers::Offset<RescaleAttribute>(end);
1456 return o;
1457 }
1458};
1459
1460inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttribute(
1461 flatbuffers::FlatBufferBuilder &_fbb,
1462 int32_t input_zp = 0,
1463 int32_t output_zp = 0,
1464 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier = 0,
1465 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift = 0,
1466 bool scale32 = false,
1467 bool double_round = false,
1468 bool per_channel = false) {
1469 RescaleAttributeBuilder builder_(_fbb);
1470 builder_.add_shift(shift);
1471 builder_.add_multiplier(multiplier);
1472 builder_.add_output_zp(output_zp);
1473 builder_.add_input_zp(input_zp);
1474 builder_.add_per_channel(per_channel);
1475 builder_.add_double_round(double_round);
1476 builder_.add_scale32(scale32);
1477 return builder_.Finish();
1478}
1479
1480inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttributeDirect(
1481 flatbuffers::FlatBufferBuilder &_fbb,
1482 int32_t input_zp = 0,
1483 int32_t output_zp = 0,
1484 const std::vector<int32_t> *multiplier = nullptr,
1485 const std::vector<int32_t> *shift = nullptr,
1486 bool scale32 = false,
1487 bool double_round = false,
1488 bool per_channel = false) {
1489 auto multiplier__ = multiplier ? _fbb.CreateVector<int32_t>(*multiplier) : 0;
1490 auto shift__ = shift ? _fbb.CreateVector<int32_t>(*shift) : 0;
1491 return tosa::CreateRescaleAttribute(
1492 _fbb,
1493 input_zp,
1494 output_zp,
1495 multiplier__,
1496 shift__,
1497 scale32,
1498 double_round,
1499 per_channel);
1500}
1501
1502struct MulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1503 typedef MulAttributeBuilder Builder;
1504 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1505 VT_SHIFT = 4
1506 };
1507 int32_t shift() const {
1508 return GetField<int32_t>(VT_SHIFT, 0);
1509 }
1510 bool Verify(flatbuffers::Verifier &verifier) const {
1511 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001512 VerifyField<int32_t>(verifier, VT_SHIFT, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001513 verifier.EndTable();
1514 }
1515};
1516
1517struct MulAttributeBuilder {
1518 typedef MulAttribute Table;
1519 flatbuffers::FlatBufferBuilder &fbb_;
1520 flatbuffers::uoffset_t start_;
1521 void add_shift(int32_t shift) {
1522 fbb_.AddElement<int32_t>(MulAttribute::VT_SHIFT, shift, 0);
1523 }
1524 explicit MulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1525 : fbb_(_fbb) {
1526 start_ = fbb_.StartTable();
1527 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001528 flatbuffers::Offset<MulAttribute> Finish() {
1529 const auto end = fbb_.EndTable(start_);
1530 auto o = flatbuffers::Offset<MulAttribute>(end);
1531 return o;
1532 }
1533};
1534
1535inline flatbuffers::Offset<MulAttribute> CreateMulAttribute(
1536 flatbuffers::FlatBufferBuilder &_fbb,
1537 int32_t shift = 0) {
1538 MulAttributeBuilder builder_(_fbb);
1539 builder_.add_shift(shift);
1540 return builder_.Finish();
1541}
1542
1543struct ArithmeticRightShiftAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1544 typedef ArithmeticRightShiftAttributeBuilder Builder;
1545 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1546 VT_ROUND = 4
1547 };
1548 bool round() const {
1549 return GetField<uint8_t>(VT_ROUND, 0) != 0;
1550 }
1551 bool Verify(flatbuffers::Verifier &verifier) const {
1552 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001553 VerifyField<uint8_t>(verifier, VT_ROUND, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001554 verifier.EndTable();
1555 }
1556};
1557
1558struct ArithmeticRightShiftAttributeBuilder {
1559 typedef ArithmeticRightShiftAttribute Table;
1560 flatbuffers::FlatBufferBuilder &fbb_;
1561 flatbuffers::uoffset_t start_;
1562 void add_round(bool round) {
1563 fbb_.AddElement<uint8_t>(ArithmeticRightShiftAttribute::VT_ROUND, static_cast<uint8_t>(round), 0);
1564 }
1565 explicit ArithmeticRightShiftAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1566 : fbb_(_fbb) {
1567 start_ = fbb_.StartTable();
1568 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001569 flatbuffers::Offset<ArithmeticRightShiftAttribute> Finish() {
1570 const auto end = fbb_.EndTable(start_);
1571 auto o = flatbuffers::Offset<ArithmeticRightShiftAttribute>(end);
1572 return o;
1573 }
1574};
1575
1576inline flatbuffers::Offset<ArithmeticRightShiftAttribute> CreateArithmeticRightShiftAttribute(
1577 flatbuffers::FlatBufferBuilder &_fbb,
1578 bool round = false) {
1579 ArithmeticRightShiftAttributeBuilder builder_(_fbb);
1580 builder_.add_round(round);
1581 return builder_.Finish();
1582}
1583
1584struct CondIfAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1585 typedef CondIfAttributeBuilder Builder;
1586 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1587 VT_THEN_BRANCH = 4,
1588 VT_ELSE_BRANCH = 6
1589 };
1590 const flatbuffers::String *then_branch() const {
1591 return GetPointer<const flatbuffers::String *>(VT_THEN_BRANCH);
1592 }
1593 const flatbuffers::String *else_branch() const {
1594 return GetPointer<const flatbuffers::String *>(VT_ELSE_BRANCH);
1595 }
1596 bool Verify(flatbuffers::Verifier &verifier) const {
1597 return VerifyTableStart(verifier) &&
1598 VerifyOffset(verifier, VT_THEN_BRANCH) &&
1599 verifier.VerifyString(then_branch()) &&
1600 VerifyOffset(verifier, VT_ELSE_BRANCH) &&
1601 verifier.VerifyString(else_branch()) &&
1602 verifier.EndTable();
1603 }
1604};
1605
1606struct CondIfAttributeBuilder {
1607 typedef CondIfAttribute Table;
1608 flatbuffers::FlatBufferBuilder &fbb_;
1609 flatbuffers::uoffset_t start_;
1610 void add_then_branch(flatbuffers::Offset<flatbuffers::String> then_branch) {
1611 fbb_.AddOffset(CondIfAttribute::VT_THEN_BRANCH, then_branch);
1612 }
1613 void add_else_branch(flatbuffers::Offset<flatbuffers::String> else_branch) {
1614 fbb_.AddOffset(CondIfAttribute::VT_ELSE_BRANCH, else_branch);
1615 }
1616 explicit CondIfAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1617 : fbb_(_fbb) {
1618 start_ = fbb_.StartTable();
1619 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001620 flatbuffers::Offset<CondIfAttribute> Finish() {
1621 const auto end = fbb_.EndTable(start_);
1622 auto o = flatbuffers::Offset<CondIfAttribute>(end);
1623 return o;
1624 }
1625};
1626
1627inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttribute(
1628 flatbuffers::FlatBufferBuilder &_fbb,
1629 flatbuffers::Offset<flatbuffers::String> then_branch = 0,
1630 flatbuffers::Offset<flatbuffers::String> else_branch = 0) {
1631 CondIfAttributeBuilder builder_(_fbb);
1632 builder_.add_else_branch(else_branch);
1633 builder_.add_then_branch(then_branch);
1634 return builder_.Finish();
1635}
1636
1637inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttributeDirect(
1638 flatbuffers::FlatBufferBuilder &_fbb,
1639 const char *then_branch = nullptr,
1640 const char *else_branch = nullptr) {
1641 auto then_branch__ = then_branch ? _fbb.CreateString(then_branch) : 0;
1642 auto else_branch__ = else_branch ? _fbb.CreateString(else_branch) : 0;
1643 return tosa::CreateCondIfAttribute(
1644 _fbb,
1645 then_branch__,
1646 else_branch__);
1647}
1648
1649struct WhileLoopAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1650 typedef WhileLoopAttributeBuilder Builder;
1651 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1652 VT_COND_BRANCH = 4,
1653 VT_BODY_BRANCH = 6
1654 };
1655 const flatbuffers::String *cond_branch() const {
1656 return GetPointer<const flatbuffers::String *>(VT_COND_BRANCH);
1657 }
1658 const flatbuffers::String *body_branch() const {
1659 return GetPointer<const flatbuffers::String *>(VT_BODY_BRANCH);
1660 }
1661 bool Verify(flatbuffers::Verifier &verifier) const {
1662 return VerifyTableStart(verifier) &&
1663 VerifyOffset(verifier, VT_COND_BRANCH) &&
1664 verifier.VerifyString(cond_branch()) &&
1665 VerifyOffset(verifier, VT_BODY_BRANCH) &&
1666 verifier.VerifyString(body_branch()) &&
1667 verifier.EndTable();
1668 }
1669};
1670
1671struct WhileLoopAttributeBuilder {
1672 typedef WhileLoopAttribute Table;
1673 flatbuffers::FlatBufferBuilder &fbb_;
1674 flatbuffers::uoffset_t start_;
1675 void add_cond_branch(flatbuffers::Offset<flatbuffers::String> cond_branch) {
1676 fbb_.AddOffset(WhileLoopAttribute::VT_COND_BRANCH, cond_branch);
1677 }
1678 void add_body_branch(flatbuffers::Offset<flatbuffers::String> body_branch) {
1679 fbb_.AddOffset(WhileLoopAttribute::VT_BODY_BRANCH, body_branch);
1680 }
1681 explicit WhileLoopAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1682 : fbb_(_fbb) {
1683 start_ = fbb_.StartTable();
1684 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001685 flatbuffers::Offset<WhileLoopAttribute> Finish() {
1686 const auto end = fbb_.EndTable(start_);
1687 auto o = flatbuffers::Offset<WhileLoopAttribute>(end);
1688 return o;
1689 }
1690};
1691
1692inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttribute(
1693 flatbuffers::FlatBufferBuilder &_fbb,
1694 flatbuffers::Offset<flatbuffers::String> cond_branch = 0,
1695 flatbuffers::Offset<flatbuffers::String> body_branch = 0) {
1696 WhileLoopAttributeBuilder builder_(_fbb);
1697 builder_.add_body_branch(body_branch);
1698 builder_.add_cond_branch(cond_branch);
1699 return builder_.Finish();
1700}
1701
1702inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttributeDirect(
1703 flatbuffers::FlatBufferBuilder &_fbb,
1704 const char *cond_branch = nullptr,
1705 const char *body_branch = nullptr) {
1706 auto cond_branch__ = cond_branch ? _fbb.CreateString(cond_branch) : 0;
1707 auto body_branch__ = body_branch ? _fbb.CreateString(body_branch) : 0;
1708 return tosa::CreateWhileLoopAttribute(
1709 _fbb,
1710 cond_branch__,
1711 body_branch__);
1712}
1713
Kevin Cheng38d214c2021-10-15 15:49:19 -07001714struct TransposeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1715 typedef TransposeAttributeBuilder Builder;
1716 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001717 VT_PERMS = 4
Kevin Cheng38d214c2021-10-15 15:49:19 -07001718 };
TatWai Chong7be71652022-05-10 17:26:20 -07001719 const flatbuffers::Vector<int32_t> *perms() const {
1720 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PERMS);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001721 }
1722 bool Verify(flatbuffers::Verifier &verifier) const {
1723 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001724 VerifyOffset(verifier, VT_PERMS) &&
1725 verifier.VerifyVector(perms()) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -07001726 verifier.EndTable();
1727 }
1728};
1729
1730struct TransposeAttributeBuilder {
1731 typedef TransposeAttribute Table;
1732 flatbuffers::FlatBufferBuilder &fbb_;
1733 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001734 void add_perms(flatbuffers::Offset<flatbuffers::Vector<int32_t>> perms) {
1735 fbb_.AddOffset(TransposeAttribute::VT_PERMS, perms);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001736 }
1737 explicit TransposeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1738 : fbb_(_fbb) {
1739 start_ = fbb_.StartTable();
1740 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07001741 flatbuffers::Offset<TransposeAttribute> Finish() {
1742 const auto end = fbb_.EndTable(start_);
1743 auto o = flatbuffers::Offset<TransposeAttribute>(end);
1744 return o;
1745 }
1746};
1747
1748inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttribute(
1749 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001750 flatbuffers::Offset<flatbuffers::Vector<int32_t>> perms = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001751 TransposeAttributeBuilder builder_(_fbb);
TatWai Chong7be71652022-05-10 17:26:20 -07001752 builder_.add_perms(perms);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001753 return builder_.Finish();
1754}
1755
1756inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttributeDirect(
1757 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001758 const std::vector<int32_t> *perms = nullptr) {
1759 auto perms__ = perms ? _fbb.CreateVector<int32_t>(*perms) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001760 return tosa::CreateTransposeAttribute(
1761 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001762 perms__);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001763}
1764
1765struct TableAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1766 typedef TableAttributeBuilder Builder;
1767 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1768 VT_TABLE = 4
1769 };
TatWai Chong7be71652022-05-10 17:26:20 -07001770 const flatbuffers::Vector<int16_t> *table() const {
1771 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_TABLE);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001772 }
1773 bool Verify(flatbuffers::Verifier &verifier) const {
1774 return VerifyTableStart(verifier) &&
1775 VerifyOffset(verifier, VT_TABLE) &&
1776 verifier.VerifyVector(table()) &&
1777 verifier.EndTable();
1778 }
1779};
1780
1781struct TableAttributeBuilder {
1782 typedef TableAttribute Table;
1783 flatbuffers::FlatBufferBuilder &fbb_;
1784 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001785 void add_table(flatbuffers::Offset<flatbuffers::Vector<int16_t>> table) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001786 fbb_.AddOffset(TableAttribute::VT_TABLE, table);
1787 }
1788 explicit TableAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1789 : fbb_(_fbb) {
1790 start_ = fbb_.StartTable();
1791 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07001792 flatbuffers::Offset<TableAttribute> Finish() {
1793 const auto end = fbb_.EndTable(start_);
1794 auto o = flatbuffers::Offset<TableAttribute>(end);
1795 return o;
1796 }
1797};
1798
1799inline flatbuffers::Offset<TableAttribute> CreateTableAttribute(
1800 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001801 flatbuffers::Offset<flatbuffers::Vector<int16_t>> table = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001802 TableAttributeBuilder builder_(_fbb);
1803 builder_.add_table(table);
1804 return builder_.Finish();
1805}
1806
1807inline flatbuffers::Offset<TableAttribute> CreateTableAttributeDirect(
1808 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001809 const std::vector<int16_t> *table = nullptr) {
1810 auto table__ = table ? _fbb.CreateVector<int16_t>(*table) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001811 return tosa::CreateTableAttribute(
1812 _fbb,
1813 table__);
1814}
1815
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001816struct MatMulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1817 typedef MatMulAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001818 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1819 VT_A_ZP = 4,
James Ward485a11d2022-08-05 13:48:37 +01001820 VT_B_ZP = 6,
1821 VT_ACCUM_DTYPE = 8
Eric Kunze2364dcd2021-04-26 11:06:57 -07001822 };
1823 int32_t a_zp() const {
1824 return GetField<int32_t>(VT_A_ZP, 0);
1825 }
1826 int32_t b_zp() const {
1827 return GetField<int32_t>(VT_B_ZP, 0);
1828 }
James Ward485a11d2022-08-05 13:48:37 +01001829 tosa::DType accum_dtype() const {
1830 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
1831 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001832 bool Verify(flatbuffers::Verifier &verifier) const {
1833 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001834 VerifyField<int32_t>(verifier, VT_A_ZP, 4) &&
1835 VerifyField<int32_t>(verifier, VT_B_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +01001836 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001837 verifier.EndTable();
1838 }
1839};
1840
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001841struct MatMulAttributeBuilder {
1842 typedef MatMulAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001843 flatbuffers::FlatBufferBuilder &fbb_;
1844 flatbuffers::uoffset_t start_;
1845 void add_a_zp(int32_t a_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001846 fbb_.AddElement<int32_t>(MatMulAttribute::VT_A_ZP, a_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001847 }
1848 void add_b_zp(int32_t b_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001849 fbb_.AddElement<int32_t>(MatMulAttribute::VT_B_ZP, b_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001850 }
James Ward485a11d2022-08-05 13:48:37 +01001851 void add_accum_dtype(tosa::DType accum_dtype) {
1852 fbb_.AddElement<uint32_t>(MatMulAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
1853 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001854 explicit MatMulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -07001855 : fbb_(_fbb) {
1856 start_ = fbb_.StartTable();
1857 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001858 flatbuffers::Offset<MatMulAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001859 const auto end = fbb_.EndTable(start_);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001860 auto o = flatbuffers::Offset<MatMulAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001861 return o;
1862 }
1863};
1864
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001865inline flatbuffers::Offset<MatMulAttribute> CreateMatMulAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -07001866 flatbuffers::FlatBufferBuilder &_fbb,
1867 int32_t a_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +01001868 int32_t b_zp = 0,
1869 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001870 MatMulAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +01001871 builder_.add_accum_dtype(accum_dtype);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001872 builder_.add_b_zp(b_zp);
1873 builder_.add_a_zp(a_zp);
1874 return builder_.Finish();
1875}
1876
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001877struct FullyConnectedAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1878 typedef FullyConnectedAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001879 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001880 VT_INPUT_ZP = 4,
James Ward485a11d2022-08-05 13:48:37 +01001881 VT_WEIGHT_ZP = 6,
1882 VT_ACCUM_DTYPE = 8
Eric Kunze2364dcd2021-04-26 11:06:57 -07001883 };
1884 int32_t input_zp() const {
1885 return GetField<int32_t>(VT_INPUT_ZP, 0);
1886 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001887 int32_t weight_zp() const {
1888 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
1889 }
James Ward485a11d2022-08-05 13:48:37 +01001890 tosa::DType accum_dtype() const {
1891 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
1892 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001893 bool Verify(flatbuffers::Verifier &verifier) const {
1894 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001895 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
1896 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +01001897 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001898 verifier.EndTable();
1899 }
1900};
1901
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001902struct FullyConnectedAttributeBuilder {
1903 typedef FullyConnectedAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001904 flatbuffers::FlatBufferBuilder &fbb_;
1905 flatbuffers::uoffset_t start_;
1906 void add_input_zp(int32_t input_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001907 fbb_.AddElement<int32_t>(FullyConnectedAttribute::VT_INPUT_ZP, input_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001908 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001909 void add_weight_zp(int32_t weight_zp) {
1910 fbb_.AddElement<int32_t>(FullyConnectedAttribute::VT_WEIGHT_ZP, weight_zp, 0);
1911 }
James Ward485a11d2022-08-05 13:48:37 +01001912 void add_accum_dtype(tosa::DType accum_dtype) {
1913 fbb_.AddElement<uint32_t>(FullyConnectedAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
1914 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001915 explicit FullyConnectedAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -07001916 : fbb_(_fbb) {
1917 start_ = fbb_.StartTable();
1918 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001919 flatbuffers::Offset<FullyConnectedAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001920 const auto end = fbb_.EndTable(start_);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001921 auto o = flatbuffers::Offset<FullyConnectedAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001922 return o;
1923 }
1924};
1925
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001926inline flatbuffers::Offset<FullyConnectedAttribute> CreateFullyConnectedAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -07001927 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001928 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +01001929 int32_t weight_zp = 0,
1930 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001931 FullyConnectedAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +01001932 builder_.add_accum_dtype(accum_dtype);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001933 builder_.add_weight_zp(weight_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001934 builder_.add_input_zp(input_zp);
1935 return builder_.Finish();
1936}
1937
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001938struct NegateAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1939 typedef NegateAttributeBuilder Builder;
1940 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1941 VT_INPUT1_ZP = 4,
1942 VT_OUTPUT_ZP = 6
1943 };
1944 int32_t input1_zp() const {
1945 return GetField<int32_t>(VT_INPUT1_ZP, 0);
1946 }
1947 int32_t output_zp() const {
1948 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1949 }
1950 bool Verify(flatbuffers::Verifier &verifier) const {
1951 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001952 VerifyField<int32_t>(verifier, VT_INPUT1_ZP, 4) &&
1953 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP, 4) &&
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001954 verifier.EndTable();
1955 }
1956};
1957
1958struct NegateAttributeBuilder {
1959 typedef NegateAttribute Table;
1960 flatbuffers::FlatBufferBuilder &fbb_;
1961 flatbuffers::uoffset_t start_;
1962 void add_input1_zp(int32_t input1_zp) {
1963 fbb_.AddElement<int32_t>(NegateAttribute::VT_INPUT1_ZP, input1_zp, 0);
1964 }
1965 void add_output_zp(int32_t output_zp) {
1966 fbb_.AddElement<int32_t>(NegateAttribute::VT_OUTPUT_ZP, output_zp, 0);
1967 }
1968 explicit NegateAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1969 : fbb_(_fbb) {
1970 start_ = fbb_.StartTable();
1971 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001972 flatbuffers::Offset<NegateAttribute> Finish() {
1973 const auto end = fbb_.EndTable(start_);
1974 auto o = flatbuffers::Offset<NegateAttribute>(end);
1975 return o;
1976 }
1977};
1978
1979inline flatbuffers::Offset<NegateAttribute> CreateNegateAttribute(
1980 flatbuffers::FlatBufferBuilder &_fbb,
1981 int32_t input1_zp = 0,
1982 int32_t output_zp = 0) {
1983 NegateAttributeBuilder builder_(_fbb);
1984 builder_.add_output_zp(output_zp);
1985 builder_.add_input1_zp(input1_zp);
1986 return builder_.Finish();
1987}
1988
Eric Kunze2364dcd2021-04-26 11:06:57 -07001989struct Version FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1990 typedef VersionBuilder Builder;
1991 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1992 VT__MAJOR = 4,
1993 VT__MINOR = 6,
1994 VT__PATCH = 8,
Kevin Chengb97cb1d2021-10-14 11:53:39 -07001995 VT__DRAFT = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07001996 };
1997 int32_t _major() const {
1998 return GetField<int32_t>(VT__MAJOR, 0);
1999 }
2000 int32_t _minor() const {
Eric Kunze6388a092022-12-07 21:59:31 +00002001 return GetField<int32_t>(VT__MINOR, 51);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002002 }
2003 int32_t _patch() const {
2004 return GetField<int32_t>(VT__PATCH, 0);
2005 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002006 bool _draft() const {
Eric Kunze6388a092022-12-07 21:59:31 +00002007 return GetField<uint8_t>(VT__DRAFT, 1) != 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002008 }
2009 bool Verify(flatbuffers::Verifier &verifier) const {
2010 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00002011 VerifyField<int32_t>(verifier, VT__MAJOR, 4) &&
2012 VerifyField<int32_t>(verifier, VT__MINOR, 4) &&
2013 VerifyField<int32_t>(verifier, VT__PATCH, 4) &&
2014 VerifyField<uint8_t>(verifier, VT__DRAFT, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002015 verifier.EndTable();
2016 }
2017};
2018
2019struct VersionBuilder {
2020 typedef Version Table;
2021 flatbuffers::FlatBufferBuilder &fbb_;
2022 flatbuffers::uoffset_t start_;
2023 void add__major(int32_t _major) {
2024 fbb_.AddElement<int32_t>(Version::VT__MAJOR, _major, 0);
2025 }
2026 void add__minor(int32_t _minor) {
Eric Kunze6388a092022-12-07 21:59:31 +00002027 fbb_.AddElement<int32_t>(Version::VT__MINOR, _minor, 51);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002028 }
2029 void add__patch(int32_t _patch) {
2030 fbb_.AddElement<int32_t>(Version::VT__PATCH, _patch, 0);
2031 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002032 void add__draft(bool _draft) {
Eric Kunze6388a092022-12-07 21:59:31 +00002033 fbb_.AddElement<uint8_t>(Version::VT__DRAFT, static_cast<uint8_t>(_draft), 1);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002034 }
2035 explicit VersionBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2036 : fbb_(_fbb) {
2037 start_ = fbb_.StartTable();
2038 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002039 flatbuffers::Offset<Version> Finish() {
2040 const auto end = fbb_.EndTable(start_);
2041 auto o = flatbuffers::Offset<Version>(end);
2042 return o;
2043 }
2044};
2045
2046inline flatbuffers::Offset<Version> CreateVersion(
2047 flatbuffers::FlatBufferBuilder &_fbb,
2048 int32_t _major = 0,
Eric Kunze6388a092022-12-07 21:59:31 +00002049 int32_t _minor = 51,
Eric Kunze2364dcd2021-04-26 11:06:57 -07002050 int32_t _patch = 0,
Eric Kunze6388a092022-12-07 21:59:31 +00002051 bool _draft = true) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002052 VersionBuilder builder_(_fbb);
2053 builder_.add__patch(_patch);
2054 builder_.add__minor(_minor);
2055 builder_.add__major(_major);
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002056 builder_.add__draft(_draft);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002057 return builder_.Finish();
2058}
2059
2060struct TosaTensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2061 typedef TosaTensorBuilder Builder;
2062 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2063 VT_NAME = 4,
2064 VT_SHAPE = 6,
2065 VT_TYPE = 8,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002066 VT_DATA = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07002067 };
2068 const flatbuffers::String *name() const {
2069 return GetPointer<const flatbuffers::String *>(VT_NAME);
2070 }
2071 const flatbuffers::Vector<int32_t> *shape() const {
2072 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHAPE);
2073 }
2074 tosa::DType type() const {
2075 return static_cast<tosa::DType>(GetField<uint32_t>(VT_TYPE, 0));
2076 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002077 const flatbuffers::Vector<uint8_t> *data() const {
2078 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_DATA);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002079 }
2080 bool Verify(flatbuffers::Verifier &verifier) const {
2081 return VerifyTableStart(verifier) &&
2082 VerifyOffset(verifier, VT_NAME) &&
2083 verifier.VerifyString(name()) &&
2084 VerifyOffset(verifier, VT_SHAPE) &&
2085 verifier.VerifyVector(shape()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00002086 VerifyField<uint32_t>(verifier, VT_TYPE, 4) &&
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002087 VerifyOffset(verifier, VT_DATA) &&
2088 verifier.VerifyVector(data()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002089 verifier.EndTable();
2090 }
2091};
2092
2093struct TosaTensorBuilder {
2094 typedef TosaTensor Table;
2095 flatbuffers::FlatBufferBuilder &fbb_;
2096 flatbuffers::uoffset_t start_;
2097 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2098 fbb_.AddOffset(TosaTensor::VT_NAME, name);
2099 }
2100 void add_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape) {
2101 fbb_.AddOffset(TosaTensor::VT_SHAPE, shape);
2102 }
2103 void add_type(tosa::DType type) {
2104 fbb_.AddElement<uint32_t>(TosaTensor::VT_TYPE, static_cast<uint32_t>(type), 0);
2105 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002106 void add_data(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data) {
2107 fbb_.AddOffset(TosaTensor::VT_DATA, data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002108 }
2109 explicit TosaTensorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2110 : fbb_(_fbb) {
2111 start_ = fbb_.StartTable();
2112 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002113 flatbuffers::Offset<TosaTensor> Finish() {
2114 const auto end = fbb_.EndTable(start_);
2115 auto o = flatbuffers::Offset<TosaTensor>(end);
2116 return o;
2117 }
2118};
2119
2120inline flatbuffers::Offset<TosaTensor> CreateTosaTensor(
2121 flatbuffers::FlatBufferBuilder &_fbb,
2122 flatbuffers::Offset<flatbuffers::String> name = 0,
2123 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape = 0,
2124 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002125 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002126 TosaTensorBuilder builder_(_fbb);
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002127 builder_.add_data(data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002128 builder_.add_type(type);
2129 builder_.add_shape(shape);
2130 builder_.add_name(name);
2131 return builder_.Finish();
2132}
2133
2134inline flatbuffers::Offset<TosaTensor> CreateTosaTensorDirect(
2135 flatbuffers::FlatBufferBuilder &_fbb,
2136 const char *name = nullptr,
2137 const std::vector<int32_t> *shape = nullptr,
2138 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002139 const std::vector<uint8_t> *data = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002140 auto name__ = name ? _fbb.CreateString(name) : 0;
2141 auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0;
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002142 if (data) { _fbb.ForceVectorAlignment(data->size(), sizeof(uint8_t), 8); }
2143 auto data__ = data ? _fbb.CreateVector<uint8_t>(*data) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002144 return tosa::CreateTosaTensor(
2145 _fbb,
2146 name__,
2147 shape__,
2148 type,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002149 data__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002150}
2151
2152struct TosaOperator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2153 typedef TosaOperatorBuilder Builder;
2154 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2155 VT_OP = 4,
2156 VT_ATTRIBUTE_TYPE = 6,
2157 VT_ATTRIBUTE = 8,
2158 VT_INPUTS = 10,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002159 VT_OUTPUTS = 12
Eric Kunze2364dcd2021-04-26 11:06:57 -07002160 };
2161 tosa::Op op() const {
2162 return static_cast<tosa::Op>(GetField<uint32_t>(VT_OP, 0));
2163 }
2164 tosa::Attribute attribute_type() const {
2165 return static_cast<tosa::Attribute>(GetField<uint8_t>(VT_ATTRIBUTE_TYPE, 0));
2166 }
2167 const void *attribute() const {
2168 return GetPointer<const void *>(VT_ATTRIBUTE);
2169 }
2170 template<typename T> const T *attribute_as() const;
Kevin Cheng79a41992021-08-31 16:04:40 -07002171 const tosa::PoolAttribute *attribute_as_PoolAttribute() const {
2172 return attribute_type() == tosa::Attribute_PoolAttribute ? static_cast<const tosa::PoolAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002173 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002174 const tosa::ConvAttribute *attribute_as_ConvAttribute() const {
2175 return attribute_type() == tosa::Attribute_ConvAttribute ? static_cast<const tosa::ConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002176 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002177 const tosa::TransposeConvAttribute *attribute_as_TransposeConvAttribute() const {
2178 return attribute_type() == tosa::Attribute_TransposeConvAttribute ? static_cast<const tosa::TransposeConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002179 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002180 const tosa::PadAttribute *attribute_as_PadAttribute() const {
2181 return attribute_type() == tosa::Attribute_PadAttribute ? static_cast<const tosa::PadAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002182 }
2183 const tosa::AxisAttribute *attribute_as_AxisAttribute() const {
2184 return attribute_type() == tosa::Attribute_AxisAttribute ? static_cast<const tosa::AxisAttribute *>(attribute()) : nullptr;
2185 }
2186 const tosa::ReshapeAttribute *attribute_as_ReshapeAttribute() const {
2187 return attribute_type() == tosa::Attribute_ReshapeAttribute ? static_cast<const tosa::ReshapeAttribute *>(attribute()) : nullptr;
2188 }
2189 const tosa::SliceAttribute *attribute_as_SliceAttribute() const {
2190 return attribute_type() == tosa::Attribute_SliceAttribute ? static_cast<const tosa::SliceAttribute *>(attribute()) : nullptr;
2191 }
2192 const tosa::TileAttribute *attribute_as_TileAttribute() const {
2193 return attribute_type() == tosa::Attribute_TileAttribute ? static_cast<const tosa::TileAttribute *>(attribute()) : nullptr;
2194 }
2195 const tosa::ResizeAttribute *attribute_as_ResizeAttribute() const {
2196 return attribute_type() == tosa::Attribute_ResizeAttribute ? static_cast<const tosa::ResizeAttribute *>(attribute()) : nullptr;
2197 }
2198 const tosa::ClampAttribute *attribute_as_ClampAttribute() const {
2199 return attribute_type() == tosa::Attribute_ClampAttribute ? static_cast<const tosa::ClampAttribute *>(attribute()) : nullptr;
2200 }
2201 const tosa::RescaleAttribute *attribute_as_RescaleAttribute() const {
2202 return attribute_type() == tosa::Attribute_RescaleAttribute ? static_cast<const tosa::RescaleAttribute *>(attribute()) : nullptr;
2203 }
2204 const tosa::MulAttribute *attribute_as_MulAttribute() const {
2205 return attribute_type() == tosa::Attribute_MulAttribute ? static_cast<const tosa::MulAttribute *>(attribute()) : nullptr;
2206 }
2207 const tosa::ArithmeticRightShiftAttribute *attribute_as_ArithmeticRightShiftAttribute() const {
2208 return attribute_type() == tosa::Attribute_ArithmeticRightShiftAttribute ? static_cast<const tosa::ArithmeticRightShiftAttribute *>(attribute()) : nullptr;
2209 }
2210 const tosa::CondIfAttribute *attribute_as_CondIfAttribute() const {
2211 return attribute_type() == tosa::Attribute_CondIfAttribute ? static_cast<const tosa::CondIfAttribute *>(attribute()) : nullptr;
2212 }
2213 const tosa::WhileLoopAttribute *attribute_as_WhileLoopAttribute() const {
2214 return attribute_type() == tosa::Attribute_WhileLoopAttribute ? static_cast<const tosa::WhileLoopAttribute *>(attribute()) : nullptr;
2215 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002216 const tosa::TransposeAttribute *attribute_as_TransposeAttribute() const {
2217 return attribute_type() == tosa::Attribute_TransposeAttribute ? static_cast<const tosa::TransposeAttribute *>(attribute()) : nullptr;
2218 }
2219 const tosa::TableAttribute *attribute_as_TableAttribute() const {
2220 return attribute_type() == tosa::Attribute_TableAttribute ? static_cast<const tosa::TableAttribute *>(attribute()) : nullptr;
2221 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002222 const tosa::MatMulAttribute *attribute_as_MatMulAttribute() const {
2223 return attribute_type() == tosa::Attribute_MatMulAttribute ? static_cast<const tosa::MatMulAttribute *>(attribute()) : nullptr;
2224 }
2225 const tosa::FullyConnectedAttribute *attribute_as_FullyConnectedAttribute() const {
2226 return attribute_type() == tosa::Attribute_FullyConnectedAttribute ? static_cast<const tosa::FullyConnectedAttribute *>(attribute()) : nullptr;
2227 }
2228 const tosa::NegateAttribute *attribute_as_NegateAttribute() const {
2229 return attribute_type() == tosa::Attribute_NegateAttribute ? static_cast<const tosa::NegateAttribute *>(attribute()) : nullptr;
2230 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002231 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2232 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2233 }
2234 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2235 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2236 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002237 bool Verify(flatbuffers::Verifier &verifier) const {
2238 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00002239 VerifyField<uint32_t>(verifier, VT_OP, 4) &&
2240 VerifyField<uint8_t>(verifier, VT_ATTRIBUTE_TYPE, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002241 VerifyOffset(verifier, VT_ATTRIBUTE) &&
2242 VerifyAttribute(verifier, attribute(), attribute_type()) &&
2243 VerifyOffset(verifier, VT_INPUTS) &&
2244 verifier.VerifyVector(inputs()) &&
2245 verifier.VerifyVectorOfStrings(inputs()) &&
2246 VerifyOffset(verifier, VT_OUTPUTS) &&
2247 verifier.VerifyVector(outputs()) &&
2248 verifier.VerifyVectorOfStrings(outputs()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002249 verifier.EndTable();
2250 }
2251};
2252
Kevin Cheng79a41992021-08-31 16:04:40 -07002253template<> inline const tosa::PoolAttribute *TosaOperator::attribute_as<tosa::PoolAttribute>() const {
2254 return attribute_as_PoolAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002255}
2256
Kevin Cheng79a41992021-08-31 16:04:40 -07002257template<> inline const tosa::ConvAttribute *TosaOperator::attribute_as<tosa::ConvAttribute>() const {
2258 return attribute_as_ConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002259}
2260
Kevin Cheng79a41992021-08-31 16:04:40 -07002261template<> inline const tosa::TransposeConvAttribute *TosaOperator::attribute_as<tosa::TransposeConvAttribute>() const {
2262 return attribute_as_TransposeConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002263}
2264
Kevin Cheng38d214c2021-10-15 15:49:19 -07002265template<> inline const tosa::PadAttribute *TosaOperator::attribute_as<tosa::PadAttribute>() const {
2266 return attribute_as_PadAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002267}
2268
2269template<> inline const tosa::AxisAttribute *TosaOperator::attribute_as<tosa::AxisAttribute>() const {
2270 return attribute_as_AxisAttribute();
2271}
2272
2273template<> inline const tosa::ReshapeAttribute *TosaOperator::attribute_as<tosa::ReshapeAttribute>() const {
2274 return attribute_as_ReshapeAttribute();
2275}
2276
2277template<> inline const tosa::SliceAttribute *TosaOperator::attribute_as<tosa::SliceAttribute>() const {
2278 return attribute_as_SliceAttribute();
2279}
2280
2281template<> inline const tosa::TileAttribute *TosaOperator::attribute_as<tosa::TileAttribute>() const {
2282 return attribute_as_TileAttribute();
2283}
2284
2285template<> inline const tosa::ResizeAttribute *TosaOperator::attribute_as<tosa::ResizeAttribute>() const {
2286 return attribute_as_ResizeAttribute();
2287}
2288
2289template<> inline const tosa::ClampAttribute *TosaOperator::attribute_as<tosa::ClampAttribute>() const {
2290 return attribute_as_ClampAttribute();
2291}
2292
2293template<> inline const tosa::RescaleAttribute *TosaOperator::attribute_as<tosa::RescaleAttribute>() const {
2294 return attribute_as_RescaleAttribute();
2295}
2296
2297template<> inline const tosa::MulAttribute *TosaOperator::attribute_as<tosa::MulAttribute>() const {
2298 return attribute_as_MulAttribute();
2299}
2300
2301template<> inline const tosa::ArithmeticRightShiftAttribute *TosaOperator::attribute_as<tosa::ArithmeticRightShiftAttribute>() const {
2302 return attribute_as_ArithmeticRightShiftAttribute();
2303}
2304
2305template<> inline const tosa::CondIfAttribute *TosaOperator::attribute_as<tosa::CondIfAttribute>() const {
2306 return attribute_as_CondIfAttribute();
2307}
2308
2309template<> inline const tosa::WhileLoopAttribute *TosaOperator::attribute_as<tosa::WhileLoopAttribute>() const {
2310 return attribute_as_WhileLoopAttribute();
2311}
2312
Kevin Cheng38d214c2021-10-15 15:49:19 -07002313template<> inline const tosa::TransposeAttribute *TosaOperator::attribute_as<tosa::TransposeAttribute>() const {
2314 return attribute_as_TransposeAttribute();
2315}
2316
2317template<> inline const tosa::TableAttribute *TosaOperator::attribute_as<tosa::TableAttribute>() const {
2318 return attribute_as_TableAttribute();
2319}
2320
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002321template<> inline const tosa::MatMulAttribute *TosaOperator::attribute_as<tosa::MatMulAttribute>() const {
2322 return attribute_as_MatMulAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002323}
2324
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002325template<> inline const tosa::FullyConnectedAttribute *TosaOperator::attribute_as<tosa::FullyConnectedAttribute>() const {
2326 return attribute_as_FullyConnectedAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002327}
2328
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002329template<> inline const tosa::NegateAttribute *TosaOperator::attribute_as<tosa::NegateAttribute>() const {
2330 return attribute_as_NegateAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002331}
2332
2333struct TosaOperatorBuilder {
2334 typedef TosaOperator Table;
2335 flatbuffers::FlatBufferBuilder &fbb_;
2336 flatbuffers::uoffset_t start_;
2337 void add_op(tosa::Op op) {
2338 fbb_.AddElement<uint32_t>(TosaOperator::VT_OP, static_cast<uint32_t>(op), 0);
2339 }
2340 void add_attribute_type(tosa::Attribute attribute_type) {
2341 fbb_.AddElement<uint8_t>(TosaOperator::VT_ATTRIBUTE_TYPE, static_cast<uint8_t>(attribute_type), 0);
2342 }
2343 void add_attribute(flatbuffers::Offset<void> attribute) {
2344 fbb_.AddOffset(TosaOperator::VT_ATTRIBUTE, attribute);
2345 }
2346 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2347 fbb_.AddOffset(TosaOperator::VT_INPUTS, inputs);
2348 }
2349 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2350 fbb_.AddOffset(TosaOperator::VT_OUTPUTS, outputs);
2351 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002352 explicit TosaOperatorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2353 : fbb_(_fbb) {
2354 start_ = fbb_.StartTable();
2355 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002356 flatbuffers::Offset<TosaOperator> Finish() {
2357 const auto end = fbb_.EndTable(start_);
2358 auto o = flatbuffers::Offset<TosaOperator>(end);
2359 return o;
2360 }
2361};
2362
2363inline flatbuffers::Offset<TosaOperator> CreateTosaOperator(
2364 flatbuffers::FlatBufferBuilder &_fbb,
2365 tosa::Op op = tosa::Op_UNKNOWN,
2366 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2367 flatbuffers::Offset<void> attribute = 0,
2368 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002369 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002370 TosaOperatorBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002371 builder_.add_outputs(outputs);
2372 builder_.add_inputs(inputs);
2373 builder_.add_attribute(attribute);
2374 builder_.add_op(op);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002375 builder_.add_attribute_type(attribute_type);
2376 return builder_.Finish();
2377}
2378
2379inline flatbuffers::Offset<TosaOperator> CreateTosaOperatorDirect(
2380 flatbuffers::FlatBufferBuilder &_fbb,
2381 tosa::Op op = tosa::Op_UNKNOWN,
2382 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2383 flatbuffers::Offset<void> attribute = 0,
2384 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002385 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002386 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2387 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2388 return tosa::CreateTosaOperator(
2389 _fbb,
2390 op,
2391 attribute_type,
2392 attribute,
2393 inputs__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002394 outputs__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002395}
2396
2397struct TosaBasicBlock FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2398 typedef TosaBasicBlockBuilder Builder;
2399 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2400 VT_NAME = 4,
2401 VT_OPERATORS = 6,
2402 VT_TENSORS = 8,
2403 VT_INPUTS = 10,
2404 VT_OUTPUTS = 12
2405 };
2406 const flatbuffers::String *name() const {
2407 return GetPointer<const flatbuffers::String *>(VT_NAME);
2408 }
2409 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *operators() const {
2410 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *>(VT_OPERATORS);
2411 }
2412 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors() const {
2413 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *>(VT_TENSORS);
2414 }
2415 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2416 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2417 }
2418 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2419 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2420 }
2421 bool Verify(flatbuffers::Verifier &verifier) const {
2422 return VerifyTableStart(verifier) &&
2423 VerifyOffset(verifier, VT_NAME) &&
2424 verifier.VerifyString(name()) &&
2425 VerifyOffset(verifier, VT_OPERATORS) &&
2426 verifier.VerifyVector(operators()) &&
2427 verifier.VerifyVectorOfTables(operators()) &&
2428 VerifyOffset(verifier, VT_TENSORS) &&
2429 verifier.VerifyVector(tensors()) &&
2430 verifier.VerifyVectorOfTables(tensors()) &&
2431 VerifyOffset(verifier, VT_INPUTS) &&
2432 verifier.VerifyVector(inputs()) &&
2433 verifier.VerifyVectorOfStrings(inputs()) &&
2434 VerifyOffset(verifier, VT_OUTPUTS) &&
2435 verifier.VerifyVector(outputs()) &&
2436 verifier.VerifyVectorOfStrings(outputs()) &&
2437 verifier.EndTable();
2438 }
2439};
2440
2441struct TosaBasicBlockBuilder {
2442 typedef TosaBasicBlock Table;
2443 flatbuffers::FlatBufferBuilder &fbb_;
2444 flatbuffers::uoffset_t start_;
2445 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2446 fbb_.AddOffset(TosaBasicBlock::VT_NAME, name);
2447 }
2448 void add_operators(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators) {
2449 fbb_.AddOffset(TosaBasicBlock::VT_OPERATORS, operators);
2450 }
2451 void add_tensors(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors) {
2452 fbb_.AddOffset(TosaBasicBlock::VT_TENSORS, tensors);
2453 }
2454 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2455 fbb_.AddOffset(TosaBasicBlock::VT_INPUTS, inputs);
2456 }
2457 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2458 fbb_.AddOffset(TosaBasicBlock::VT_OUTPUTS, outputs);
2459 }
2460 explicit TosaBasicBlockBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2461 : fbb_(_fbb) {
2462 start_ = fbb_.StartTable();
2463 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002464 flatbuffers::Offset<TosaBasicBlock> Finish() {
2465 const auto end = fbb_.EndTable(start_);
2466 auto o = flatbuffers::Offset<TosaBasicBlock>(end);
2467 return o;
2468 }
2469};
2470
2471inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlock(
2472 flatbuffers::FlatBufferBuilder &_fbb,
2473 flatbuffers::Offset<flatbuffers::String> name = 0,
2474 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators = 0,
2475 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors = 0,
2476 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
2477 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
2478 TosaBasicBlockBuilder builder_(_fbb);
2479 builder_.add_outputs(outputs);
2480 builder_.add_inputs(inputs);
2481 builder_.add_tensors(tensors);
2482 builder_.add_operators(operators);
2483 builder_.add_name(name);
2484 return builder_.Finish();
2485}
2486
2487inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlockDirect(
2488 flatbuffers::FlatBufferBuilder &_fbb,
2489 const char *name = nullptr,
2490 const std::vector<flatbuffers::Offset<tosa::TosaOperator>> *operators = nullptr,
2491 const std::vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors = nullptr,
2492 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
2493 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
2494 auto name__ = name ? _fbb.CreateString(name) : 0;
2495 auto operators__ = operators ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaOperator>>(*operators) : 0;
2496 auto tensors__ = tensors ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaTensor>>(*tensors) : 0;
2497 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2498 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2499 return tosa::CreateTosaBasicBlock(
2500 _fbb,
2501 name__,
2502 operators__,
2503 tensors__,
2504 inputs__,
2505 outputs__);
2506}
2507
Jerry Ge13c78a62022-10-04 20:32:39 -07002508struct TosaRegion FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2509 typedef TosaRegionBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002510 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Jerry Ge13c78a62022-10-04 20:32:39 -07002511 VT_NAME = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -07002512 VT_BLOCKS = 6
2513 };
Jerry Ge13c78a62022-10-04 20:32:39 -07002514 const flatbuffers::String *name() const {
2515 return GetPointer<const flatbuffers::String *>(VT_NAME);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002516 }
2517 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks() const {
2518 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *>(VT_BLOCKS);
2519 }
2520 bool Verify(flatbuffers::Verifier &verifier) const {
2521 return VerifyTableStart(verifier) &&
Jerry Ge13c78a62022-10-04 20:32:39 -07002522 VerifyOffset(verifier, VT_NAME) &&
2523 verifier.VerifyString(name()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002524 VerifyOffset(verifier, VT_BLOCKS) &&
2525 verifier.VerifyVector(blocks()) &&
2526 verifier.VerifyVectorOfTables(blocks()) &&
2527 verifier.EndTable();
2528 }
2529};
2530
Jerry Ge13c78a62022-10-04 20:32:39 -07002531struct TosaRegionBuilder {
2532 typedef TosaRegion Table;
2533 flatbuffers::FlatBufferBuilder &fbb_;
2534 flatbuffers::uoffset_t start_;
2535 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2536 fbb_.AddOffset(TosaRegion::VT_NAME, name);
2537 }
2538 void add_blocks(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks) {
2539 fbb_.AddOffset(TosaRegion::VT_BLOCKS, blocks);
2540 }
2541 explicit TosaRegionBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2542 : fbb_(_fbb) {
2543 start_ = fbb_.StartTable();
2544 }
2545 flatbuffers::Offset<TosaRegion> Finish() {
2546 const auto end = fbb_.EndTable(start_);
2547 auto o = flatbuffers::Offset<TosaRegion>(end);
2548 return o;
2549 }
2550};
2551
2552inline flatbuffers::Offset<TosaRegion> CreateTosaRegion(
2553 flatbuffers::FlatBufferBuilder &_fbb,
2554 flatbuffers::Offset<flatbuffers::String> name = 0,
2555 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks = 0) {
2556 TosaRegionBuilder builder_(_fbb);
2557 builder_.add_blocks(blocks);
2558 builder_.add_name(name);
2559 return builder_.Finish();
2560}
2561
2562inline flatbuffers::Offset<TosaRegion> CreateTosaRegionDirect(
2563 flatbuffers::FlatBufferBuilder &_fbb,
2564 const char *name = nullptr,
2565 const std::vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks = nullptr) {
2566 auto name__ = name ? _fbb.CreateString(name) : 0;
2567 auto blocks__ = blocks ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaBasicBlock>>(*blocks) : 0;
2568 return tosa::CreateTosaRegion(
2569 _fbb,
2570 name__,
2571 blocks__);
2572}
2573
2574struct TosaGraph FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2575 typedef TosaGraphBuilder Builder;
2576 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2577 VT_VERSION = 4,
2578 VT_REGIONS = 6
2579 };
2580 const tosa::Version *version() const {
2581 return GetPointer<const tosa::Version *>(VT_VERSION);
2582 }
2583 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaRegion>> *regions() const {
2584 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaRegion>> *>(VT_REGIONS);
2585 }
2586 bool Verify(flatbuffers::Verifier &verifier) const {
2587 return VerifyTableStart(verifier) &&
2588 VerifyOffset(verifier, VT_VERSION) &&
2589 verifier.VerifyTable(version()) &&
2590 VerifyOffset(verifier, VT_REGIONS) &&
2591 verifier.VerifyVector(regions()) &&
2592 verifier.VerifyVectorOfTables(regions()) &&
2593 verifier.EndTable();
2594 }
2595};
2596
Eric Kunze2364dcd2021-04-26 11:06:57 -07002597struct TosaGraphBuilder {
2598 typedef TosaGraph Table;
2599 flatbuffers::FlatBufferBuilder &fbb_;
2600 flatbuffers::uoffset_t start_;
2601 void add_version(flatbuffers::Offset<tosa::Version> version) {
2602 fbb_.AddOffset(TosaGraph::VT_VERSION, version);
2603 }
Jerry Ge13c78a62022-10-04 20:32:39 -07002604 void add_regions(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaRegion>>> regions) {
2605 fbb_.AddOffset(TosaGraph::VT_REGIONS, regions);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002606 }
2607 explicit TosaGraphBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2608 : fbb_(_fbb) {
2609 start_ = fbb_.StartTable();
2610 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002611 flatbuffers::Offset<TosaGraph> Finish() {
2612 const auto end = fbb_.EndTable(start_);
2613 auto o = flatbuffers::Offset<TosaGraph>(end);
2614 return o;
2615 }
2616};
2617
2618inline flatbuffers::Offset<TosaGraph> CreateTosaGraph(
2619 flatbuffers::FlatBufferBuilder &_fbb,
2620 flatbuffers::Offset<tosa::Version> version = 0,
Jerry Ge13c78a62022-10-04 20:32:39 -07002621 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaRegion>>> regions = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002622 TosaGraphBuilder builder_(_fbb);
Jerry Ge13c78a62022-10-04 20:32:39 -07002623 builder_.add_regions(regions);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002624 builder_.add_version(version);
2625 return builder_.Finish();
2626}
2627
2628inline flatbuffers::Offset<TosaGraph> CreateTosaGraphDirect(
2629 flatbuffers::FlatBufferBuilder &_fbb,
2630 flatbuffers::Offset<tosa::Version> version = 0,
Jerry Ge13c78a62022-10-04 20:32:39 -07002631 const std::vector<flatbuffers::Offset<tosa::TosaRegion>> *regions = nullptr) {
2632 auto regions__ = regions ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaRegion>>(*regions) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002633 return tosa::CreateTosaGraph(
2634 _fbb,
2635 version,
Jerry Ge13c78a62022-10-04 20:32:39 -07002636 regions__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002637}
2638
2639inline bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type) {
2640 switch (type) {
2641 case Attribute_NONE: {
2642 return true;
2643 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002644 case Attribute_PoolAttribute: {
2645 auto ptr = reinterpret_cast<const tosa::PoolAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002646 return verifier.VerifyTable(ptr);
2647 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002648 case Attribute_ConvAttribute: {
2649 auto ptr = reinterpret_cast<const tosa::ConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002650 return verifier.VerifyTable(ptr);
2651 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002652 case Attribute_TransposeConvAttribute: {
2653 auto ptr = reinterpret_cast<const tosa::TransposeConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002654 return verifier.VerifyTable(ptr);
2655 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002656 case Attribute_PadAttribute: {
2657 auto ptr = reinterpret_cast<const tosa::PadAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002658 return verifier.VerifyTable(ptr);
2659 }
2660 case Attribute_AxisAttribute: {
2661 auto ptr = reinterpret_cast<const tosa::AxisAttribute *>(obj);
2662 return verifier.VerifyTable(ptr);
2663 }
2664 case Attribute_ReshapeAttribute: {
2665 auto ptr = reinterpret_cast<const tosa::ReshapeAttribute *>(obj);
2666 return verifier.VerifyTable(ptr);
2667 }
2668 case Attribute_SliceAttribute: {
2669 auto ptr = reinterpret_cast<const tosa::SliceAttribute *>(obj);
2670 return verifier.VerifyTable(ptr);
2671 }
2672 case Attribute_TileAttribute: {
2673 auto ptr = reinterpret_cast<const tosa::TileAttribute *>(obj);
2674 return verifier.VerifyTable(ptr);
2675 }
2676 case Attribute_ResizeAttribute: {
2677 auto ptr = reinterpret_cast<const tosa::ResizeAttribute *>(obj);
2678 return verifier.VerifyTable(ptr);
2679 }
2680 case Attribute_ClampAttribute: {
2681 auto ptr = reinterpret_cast<const tosa::ClampAttribute *>(obj);
2682 return verifier.VerifyTable(ptr);
2683 }
2684 case Attribute_RescaleAttribute: {
2685 auto ptr = reinterpret_cast<const tosa::RescaleAttribute *>(obj);
2686 return verifier.VerifyTable(ptr);
2687 }
2688 case Attribute_MulAttribute: {
2689 auto ptr = reinterpret_cast<const tosa::MulAttribute *>(obj);
2690 return verifier.VerifyTable(ptr);
2691 }
2692 case Attribute_ArithmeticRightShiftAttribute: {
2693 auto ptr = reinterpret_cast<const tosa::ArithmeticRightShiftAttribute *>(obj);
2694 return verifier.VerifyTable(ptr);
2695 }
2696 case Attribute_CondIfAttribute: {
2697 auto ptr = reinterpret_cast<const tosa::CondIfAttribute *>(obj);
2698 return verifier.VerifyTable(ptr);
2699 }
2700 case Attribute_WhileLoopAttribute: {
2701 auto ptr = reinterpret_cast<const tosa::WhileLoopAttribute *>(obj);
2702 return verifier.VerifyTable(ptr);
2703 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002704 case Attribute_TransposeAttribute: {
2705 auto ptr = reinterpret_cast<const tosa::TransposeAttribute *>(obj);
2706 return verifier.VerifyTable(ptr);
2707 }
2708 case Attribute_TableAttribute: {
2709 auto ptr = reinterpret_cast<const tosa::TableAttribute *>(obj);
2710 return verifier.VerifyTable(ptr);
2711 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002712 case Attribute_MatMulAttribute: {
2713 auto ptr = reinterpret_cast<const tosa::MatMulAttribute *>(obj);
2714 return verifier.VerifyTable(ptr);
2715 }
2716 case Attribute_FullyConnectedAttribute: {
2717 auto ptr = reinterpret_cast<const tosa::FullyConnectedAttribute *>(obj);
2718 return verifier.VerifyTable(ptr);
2719 }
2720 case Attribute_NegateAttribute: {
2721 auto ptr = reinterpret_cast<const tosa::NegateAttribute *>(obj);
2722 return verifier.VerifyTable(ptr);
2723 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002724 default: return true;
2725 }
2726}
2727
2728inline bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
2729 if (!values || !types) return !values && !types;
2730 if (values->size() != types->size()) return false;
2731 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
2732 if (!VerifyAttribute(
2733 verifier, values->Get(i), types->GetEnum<Attribute>(i))) {
2734 return false;
2735 }
2736 }
2737 return true;
2738}
2739
Eric Kunze2364dcd2021-04-26 11:06:57 -07002740inline const tosa::TosaGraph *GetTosaGraph(const void *buf) {
2741 return flatbuffers::GetRoot<tosa::TosaGraph>(buf);
2742}
2743
2744inline const tosa::TosaGraph *GetSizePrefixedTosaGraph(const void *buf) {
2745 return flatbuffers::GetSizePrefixedRoot<tosa::TosaGraph>(buf);
2746}
2747
2748inline const char *TosaGraphIdentifier() {
2749 return "TOSA";
2750}
2751
2752inline bool TosaGraphBufferHasIdentifier(const void *buf) {
2753 return flatbuffers::BufferHasIdentifier(
2754 buf, TosaGraphIdentifier());
2755}
2756
Eric Kunze4381b3d2022-08-22 18:15:41 +00002757inline bool SizePrefixedTosaGraphBufferHasIdentifier(const void *buf) {
2758 return flatbuffers::BufferHasIdentifier(
2759 buf, TosaGraphIdentifier(), true);
2760}
2761
Eric Kunze2364dcd2021-04-26 11:06:57 -07002762inline bool VerifyTosaGraphBuffer(
2763 flatbuffers::Verifier &verifier) {
2764 return verifier.VerifyBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2765}
2766
2767inline bool VerifySizePrefixedTosaGraphBuffer(
2768 flatbuffers::Verifier &verifier) {
2769 return verifier.VerifySizePrefixedBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2770}
2771
2772inline const char *TosaGraphExtension() {
2773 return "tosa";
2774}
2775
2776inline void FinishTosaGraphBuffer(
2777 flatbuffers::FlatBufferBuilder &fbb,
2778 flatbuffers::Offset<tosa::TosaGraph> root) {
2779 fbb.Finish(root, TosaGraphIdentifier());
2780}
2781
2782inline void FinishSizePrefixedTosaGraphBuffer(
2783 flatbuffers::FlatBufferBuilder &fbb,
2784 flatbuffers::Offset<tosa::TosaGraph> root) {
2785 fbb.FinishSizePrefixed(root, TosaGraphIdentifier());
2786}
2787
2788} // namespace tosa
2789
2790#endif // FLATBUFFERS_GENERATED_TOSA_TOSA_H_