blob: df60b1459dbb46b2da47e3e37e8e7d26481d1cf3 [file] [log] [blame]
Eric Kunze2364dcd2021-04-26 11:06:57 -07001// automatically generated by the FlatBuffers compiler, do not modify
2
3
4#ifndef FLATBUFFERS_GENERATED_TOSA_TOSA_H_
5#define FLATBUFFERS_GENERATED_TOSA_TOSA_H_
6
7#include "flatbuffers/flatbuffers.h"
8
9namespace tosa {
10
Kevin Cheng79a41992021-08-31 16:04:40 -070011struct PoolAttribute;
12struct PoolAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070013
Kevin Cheng79a41992021-08-31 16:04:40 -070014struct ConvAttribute;
15struct ConvAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070016
Kevin Cheng79a41992021-08-31 16:04:40 -070017struct TransposeConvAttribute;
18struct TransposeConvAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070019
Kevin Cheng38d214c2021-10-15 15:49:19 -070020struct PadAttribute;
21struct PadAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070022
23struct AxisAttribute;
24struct AxisAttributeBuilder;
25
26struct ReshapeAttribute;
27struct ReshapeAttributeBuilder;
28
29struct SliceAttribute;
30struct SliceAttributeBuilder;
31
32struct TileAttribute;
33struct TileAttributeBuilder;
34
35struct ResizeAttribute;
36struct ResizeAttributeBuilder;
37
38struct ClampAttribute;
39struct ClampAttributeBuilder;
40
41struct RescaleAttribute;
42struct RescaleAttributeBuilder;
43
44struct MulAttribute;
45struct MulAttributeBuilder;
46
47struct ArithmeticRightShiftAttribute;
48struct ArithmeticRightShiftAttributeBuilder;
49
50struct CondIfAttribute;
51struct CondIfAttributeBuilder;
52
53struct WhileLoopAttribute;
54struct WhileLoopAttributeBuilder;
55
Kevin Cheng38d214c2021-10-15 15:49:19 -070056struct TransposeAttribute;
57struct TransposeAttributeBuilder;
58
59struct TableAttribute;
60struct TableAttributeBuilder;
61
Eric Kunzebdcc3fe2022-06-07 05:17:37 +000062struct MatMulAttribute;
63struct MatMulAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070064
Eric Kunzebdcc3fe2022-06-07 05:17:37 +000065struct FullyConnectedAttribute;
66struct FullyConnectedAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070067
Eric Kunzebdcc3fe2022-06-07 05:17:37 +000068struct NegateAttribute;
69struct NegateAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070070
71struct Version;
72struct VersionBuilder;
73
74struct TosaTensor;
75struct TosaTensorBuilder;
76
77struct TosaOperator;
78struct TosaOperatorBuilder;
79
80struct TosaBasicBlock;
81struct TosaBasicBlockBuilder;
82
83struct TosaGraph;
84struct TosaGraphBuilder;
85
Eric Kunzeae906de2022-05-30 22:40:47 -070086enum DType {
Eric Kunze2364dcd2021-04-26 11:06:57 -070087 DType_UNKNOWN = 0,
88 DType_BOOL = 1,
89 DType_UINT8 = 2,
90 DType_INT4 = 3,
91 DType_INT8 = 4,
92 DType_INT16 = 5,
93 DType_INT32 = 6,
94 DType_INT48 = 7,
95 DType_FLOAT = 8,
Jeremy Johnson41027732022-05-25 17:52:29 +010096 DType_UINT16 = 9,
Eric Kunze2364dcd2021-04-26 11:06:57 -070097 DType_MIN = DType_UNKNOWN,
Jeremy Johnson41027732022-05-25 17:52:29 +010098 DType_MAX = DType_UINT16
Eric Kunze2364dcd2021-04-26 11:06:57 -070099};
100
Jeremy Johnson41027732022-05-25 17:52:29 +0100101inline const DType (&EnumValuesDType())[10] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700102 static const DType values[] = {
103 DType_UNKNOWN,
104 DType_BOOL,
105 DType_UINT8,
106 DType_INT4,
107 DType_INT8,
108 DType_INT16,
109 DType_INT32,
110 DType_INT48,
Jeremy Johnson41027732022-05-25 17:52:29 +0100111 DType_FLOAT,
112 DType_UINT16
Eric Kunze2364dcd2021-04-26 11:06:57 -0700113 };
114 return values;
115}
116
117inline const char * const *EnumNamesDType() {
Jeremy Johnson41027732022-05-25 17:52:29 +0100118 static const char * const names[11] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700119 "UNKNOWN",
120 "BOOL",
121 "UINT8",
122 "INT4",
123 "INT8",
124 "INT16",
125 "INT32",
126 "INT48",
127 "FLOAT",
Jeremy Johnson41027732022-05-25 17:52:29 +0100128 "UINT16",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700129 nullptr
130 };
131 return names;
132}
133
134inline const char *EnumNameDType(DType e) {
Jeremy Johnson41027732022-05-25 17:52:29 +0100135 if (flatbuffers::IsOutRange(e, DType_UNKNOWN, DType_UINT16)) return "";
Eric Kunze2364dcd2021-04-26 11:06:57 -0700136 const size_t index = static_cast<size_t>(e);
137 return EnumNamesDType()[index];
138}
139
Eric Kunzeae906de2022-05-30 22:40:47 -0700140enum ResizeMode {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700141 ResizeMode_UNKNOWN = 0,
142 ResizeMode_NEAREST = 1,
143 ResizeMode_BILINEAR = 2,
144 ResizeMode_MIN = ResizeMode_UNKNOWN,
145 ResizeMode_MAX = ResizeMode_BILINEAR
146};
147
148inline const ResizeMode (&EnumValuesResizeMode())[3] {
149 static const ResizeMode values[] = {
150 ResizeMode_UNKNOWN,
151 ResizeMode_NEAREST,
152 ResizeMode_BILINEAR
153 };
154 return values;
155}
156
157inline const char * const *EnumNamesResizeMode() {
158 static const char * const names[4] = {
159 "UNKNOWN",
160 "NEAREST",
161 "BILINEAR",
162 nullptr
163 };
164 return names;
165}
166
167inline const char *EnumNameResizeMode(ResizeMode e) {
168 if (flatbuffers::IsOutRange(e, ResizeMode_UNKNOWN, ResizeMode_BILINEAR)) return "";
169 const size_t index = static_cast<size_t>(e);
170 return EnumNamesResizeMode()[index];
171}
172
Eric Kunzeae906de2022-05-30 22:40:47 -0700173enum Op {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700174 Op_UNKNOWN = 0,
175 Op_ARGMAX = 1,
176 Op_AVG_POOL2D = 2,
177 Op_CONV2D = 3,
178 Op_CONV3D = 4,
179 Op_DEPTHWISE_CONV2D = 5,
180 Op_FULLY_CONNECTED = 6,
181 Op_MATMUL = 7,
182 Op_MAX_POOL2D = 8,
183 Op_TRANSPOSE_CONV2D = 9,
184 Op_CLAMP = 10,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700185 Op_RESERVED = 11,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700186 Op_SIGMOID = 12,
187 Op_TANH = 13,
188 Op_ADD = 14,
189 Op_ARITHMETIC_RIGHT_SHIFT = 15,
190 Op_BITWISE_AND = 16,
191 Op_BITWISE_OR = 17,
192 Op_BITWISE_XOR = 18,
Matthew Haddonab905ec2021-08-23 16:40:57 +0100193 Op_INTDIV = 19,
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700194 Op_LOGICAL_AND = 20,
195 Op_LOGICAL_LEFT_SHIFT = 21,
196 Op_LOGICAL_RIGHT_SHIFT = 22,
197 Op_LOGICAL_OR = 23,
198 Op_LOGICAL_XOR = 24,
199 Op_MAXIMUM = 25,
200 Op_MINIMUM = 26,
201 Op_MUL = 27,
202 Op_POW = 28,
203 Op_SUB = 29,
204 Op_TABLE = 30,
205 Op_ABS = 31,
206 Op_BITWISE_NOT = 32,
207 Op_CEIL = 33,
208 Op_CLZ = 34,
209 Op_EXP = 35,
210 Op_FLOOR = 36,
211 Op_LOG = 37,
212 Op_LOGICAL_NOT = 38,
213 Op_NEGATE = 39,
214 Op_RECIPROCAL = 40,
215 Op_RSQRT = 41,
216 Op_SELECT = 42,
217 Op_EQUAL = 43,
218 Op_GREATER = 44,
219 Op_GREATER_EQUAL = 45,
220 Op_REDUCE_ANY = 46,
221 Op_REDUCE_ALL = 47,
222 Op_REDUCE_MAX = 48,
223 Op_REDUCE_MIN = 49,
224 Op_REDUCE_PRODUCT = 50,
225 Op_REDUCE_SUM = 51,
226 Op_CONCAT = 52,
227 Op_PAD = 53,
228 Op_RESHAPE = 54,
229 Op_REVERSE = 55,
230 Op_SLICE = 56,
231 Op_TILE = 57,
232 Op_TRANSPOSE = 58,
233 Op_GATHER = 59,
234 Op_SCATTER = 60,
235 Op_RESIZE = 61,
236 Op_CAST = 62,
237 Op_RESCALE = 63,
238 Op_CONST = 64,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700239 Op_IDENTITY = 65,
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700240 Op_CUSTOM = 66,
241 Op_COND_IF = 67,
242 Op_WHILE_LOOP = 68,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700243 Op_MIN = Op_UNKNOWN,
244 Op_MAX = Op_WHILE_LOOP
245};
246
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700247inline const Op (&EnumValuesOp())[69] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700248 static const Op values[] = {
249 Op_UNKNOWN,
250 Op_ARGMAX,
251 Op_AVG_POOL2D,
252 Op_CONV2D,
253 Op_CONV3D,
254 Op_DEPTHWISE_CONV2D,
255 Op_FULLY_CONNECTED,
256 Op_MATMUL,
257 Op_MAX_POOL2D,
258 Op_TRANSPOSE_CONV2D,
259 Op_CLAMP,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700260 Op_RESERVED,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700261 Op_SIGMOID,
262 Op_TANH,
263 Op_ADD,
264 Op_ARITHMETIC_RIGHT_SHIFT,
265 Op_BITWISE_AND,
266 Op_BITWISE_OR,
267 Op_BITWISE_XOR,
Matthew Haddonab905ec2021-08-23 16:40:57 +0100268 Op_INTDIV,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700269 Op_LOGICAL_AND,
270 Op_LOGICAL_LEFT_SHIFT,
271 Op_LOGICAL_RIGHT_SHIFT,
272 Op_LOGICAL_OR,
273 Op_LOGICAL_XOR,
274 Op_MAXIMUM,
275 Op_MINIMUM,
276 Op_MUL,
277 Op_POW,
278 Op_SUB,
279 Op_TABLE,
280 Op_ABS,
281 Op_BITWISE_NOT,
282 Op_CEIL,
283 Op_CLZ,
284 Op_EXP,
285 Op_FLOOR,
286 Op_LOG,
287 Op_LOGICAL_NOT,
288 Op_NEGATE,
289 Op_RECIPROCAL,
290 Op_RSQRT,
291 Op_SELECT,
292 Op_EQUAL,
293 Op_GREATER,
294 Op_GREATER_EQUAL,
295 Op_REDUCE_ANY,
296 Op_REDUCE_ALL,
297 Op_REDUCE_MAX,
298 Op_REDUCE_MIN,
299 Op_REDUCE_PRODUCT,
300 Op_REDUCE_SUM,
301 Op_CONCAT,
302 Op_PAD,
303 Op_RESHAPE,
304 Op_REVERSE,
305 Op_SLICE,
306 Op_TILE,
307 Op_TRANSPOSE,
308 Op_GATHER,
309 Op_SCATTER,
310 Op_RESIZE,
311 Op_CAST,
312 Op_RESCALE,
313 Op_CONST,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700314 Op_IDENTITY,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700315 Op_CUSTOM,
316 Op_COND_IF,
317 Op_WHILE_LOOP
318 };
319 return values;
320}
321
322inline const char * const *EnumNamesOp() {
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700323 static const char * const names[70] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700324 "UNKNOWN",
325 "ARGMAX",
326 "AVG_POOL2D",
327 "CONV2D",
328 "CONV3D",
329 "DEPTHWISE_CONV2D",
330 "FULLY_CONNECTED",
331 "MATMUL",
332 "MAX_POOL2D",
333 "TRANSPOSE_CONV2D",
334 "CLAMP",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700335 "RESERVED",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700336 "SIGMOID",
337 "TANH",
338 "ADD",
339 "ARITHMETIC_RIGHT_SHIFT",
340 "BITWISE_AND",
341 "BITWISE_OR",
342 "BITWISE_XOR",
Matthew Haddonab905ec2021-08-23 16:40:57 +0100343 "INTDIV",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700344 "LOGICAL_AND",
345 "LOGICAL_LEFT_SHIFT",
346 "LOGICAL_RIGHT_SHIFT",
347 "LOGICAL_OR",
348 "LOGICAL_XOR",
349 "MAXIMUM",
350 "MINIMUM",
351 "MUL",
352 "POW",
353 "SUB",
354 "TABLE",
355 "ABS",
356 "BITWISE_NOT",
357 "CEIL",
358 "CLZ",
359 "EXP",
360 "FLOOR",
361 "LOG",
362 "LOGICAL_NOT",
363 "NEGATE",
364 "RECIPROCAL",
365 "RSQRT",
366 "SELECT",
367 "EQUAL",
368 "GREATER",
369 "GREATER_EQUAL",
370 "REDUCE_ANY",
371 "REDUCE_ALL",
372 "REDUCE_MAX",
373 "REDUCE_MIN",
374 "REDUCE_PRODUCT",
375 "REDUCE_SUM",
376 "CONCAT",
377 "PAD",
378 "RESHAPE",
379 "REVERSE",
380 "SLICE",
381 "TILE",
382 "TRANSPOSE",
383 "GATHER",
384 "SCATTER",
385 "RESIZE",
386 "CAST",
387 "RESCALE",
388 "CONST",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700389 "IDENTITY",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700390 "CUSTOM",
391 "COND_IF",
392 "WHILE_LOOP",
393 nullptr
394 };
395 return names;
396}
397
398inline const char *EnumNameOp(Op e) {
399 if (flatbuffers::IsOutRange(e, Op_UNKNOWN, Op_WHILE_LOOP)) return "";
400 const size_t index = static_cast<size_t>(e);
401 return EnumNamesOp()[index];
402}
403
Eric Kunzeae906de2022-05-30 22:40:47 -0700404enum Attribute {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700405 Attribute_NONE = 0,
Kevin Cheng79a41992021-08-31 16:04:40 -0700406 Attribute_PoolAttribute = 1,
407 Attribute_ConvAttribute = 2,
408 Attribute_TransposeConvAttribute = 3,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700409 Attribute_PadAttribute = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700410 Attribute_AxisAttribute = 5,
411 Attribute_ReshapeAttribute = 6,
412 Attribute_SliceAttribute = 7,
413 Attribute_TileAttribute = 8,
414 Attribute_ResizeAttribute = 9,
415 Attribute_ClampAttribute = 10,
416 Attribute_RescaleAttribute = 11,
417 Attribute_MulAttribute = 12,
418 Attribute_ArithmeticRightShiftAttribute = 13,
419 Attribute_CondIfAttribute = 14,
420 Attribute_WhileLoopAttribute = 15,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700421 Attribute_TransposeAttribute = 16,
422 Attribute_TableAttribute = 17,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000423 Attribute_MatMulAttribute = 18,
424 Attribute_FullyConnectedAttribute = 19,
425 Attribute_NegateAttribute = 20,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700426 Attribute_MIN = Attribute_NONE,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000427 Attribute_MAX = Attribute_NegateAttribute
Eric Kunze2364dcd2021-04-26 11:06:57 -0700428};
429
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000430inline const Attribute (&EnumValuesAttribute())[21] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700431 static const Attribute values[] = {
432 Attribute_NONE,
Kevin Cheng79a41992021-08-31 16:04:40 -0700433 Attribute_PoolAttribute,
434 Attribute_ConvAttribute,
435 Attribute_TransposeConvAttribute,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700436 Attribute_PadAttribute,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700437 Attribute_AxisAttribute,
438 Attribute_ReshapeAttribute,
439 Attribute_SliceAttribute,
440 Attribute_TileAttribute,
441 Attribute_ResizeAttribute,
442 Attribute_ClampAttribute,
443 Attribute_RescaleAttribute,
444 Attribute_MulAttribute,
445 Attribute_ArithmeticRightShiftAttribute,
446 Attribute_CondIfAttribute,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700447 Attribute_WhileLoopAttribute,
448 Attribute_TransposeAttribute,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000449 Attribute_TableAttribute,
450 Attribute_MatMulAttribute,
451 Attribute_FullyConnectedAttribute,
452 Attribute_NegateAttribute
Eric Kunze2364dcd2021-04-26 11:06:57 -0700453 };
454 return values;
455}
456
457inline const char * const *EnumNamesAttribute() {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000458 static const char * const names[22] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700459 "NONE",
Kevin Cheng79a41992021-08-31 16:04:40 -0700460 "PoolAttribute",
461 "ConvAttribute",
462 "TransposeConvAttribute",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700463 "PadAttribute",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700464 "AxisAttribute",
465 "ReshapeAttribute",
466 "SliceAttribute",
467 "TileAttribute",
468 "ResizeAttribute",
469 "ClampAttribute",
470 "RescaleAttribute",
471 "MulAttribute",
472 "ArithmeticRightShiftAttribute",
473 "CondIfAttribute",
474 "WhileLoopAttribute",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700475 "TransposeAttribute",
476 "TableAttribute",
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000477 "MatMulAttribute",
478 "FullyConnectedAttribute",
479 "NegateAttribute",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700480 nullptr
481 };
482 return names;
483}
484
485inline const char *EnumNameAttribute(Attribute e) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000486 if (flatbuffers::IsOutRange(e, Attribute_NONE, Attribute_NegateAttribute)) return "";
Eric Kunze2364dcd2021-04-26 11:06:57 -0700487 const size_t index = static_cast<size_t>(e);
488 return EnumNamesAttribute()[index];
489}
490
491template<typename T> struct AttributeTraits {
492 static const Attribute enum_value = Attribute_NONE;
493};
494
Kevin Cheng79a41992021-08-31 16:04:40 -0700495template<> struct AttributeTraits<tosa::PoolAttribute> {
496 static const Attribute enum_value = Attribute_PoolAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700497};
498
Kevin Cheng79a41992021-08-31 16:04:40 -0700499template<> struct AttributeTraits<tosa::ConvAttribute> {
500 static const Attribute enum_value = Attribute_ConvAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700501};
502
Kevin Cheng79a41992021-08-31 16:04:40 -0700503template<> struct AttributeTraits<tosa::TransposeConvAttribute> {
504 static const Attribute enum_value = Attribute_TransposeConvAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700505};
506
Kevin Cheng38d214c2021-10-15 15:49:19 -0700507template<> struct AttributeTraits<tosa::PadAttribute> {
508 static const Attribute enum_value = Attribute_PadAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700509};
510
511template<> struct AttributeTraits<tosa::AxisAttribute> {
512 static const Attribute enum_value = Attribute_AxisAttribute;
513};
514
515template<> struct AttributeTraits<tosa::ReshapeAttribute> {
516 static const Attribute enum_value = Attribute_ReshapeAttribute;
517};
518
519template<> struct AttributeTraits<tosa::SliceAttribute> {
520 static const Attribute enum_value = Attribute_SliceAttribute;
521};
522
523template<> struct AttributeTraits<tosa::TileAttribute> {
524 static const Attribute enum_value = Attribute_TileAttribute;
525};
526
527template<> struct AttributeTraits<tosa::ResizeAttribute> {
528 static const Attribute enum_value = Attribute_ResizeAttribute;
529};
530
531template<> struct AttributeTraits<tosa::ClampAttribute> {
532 static const Attribute enum_value = Attribute_ClampAttribute;
533};
534
535template<> struct AttributeTraits<tosa::RescaleAttribute> {
536 static const Attribute enum_value = Attribute_RescaleAttribute;
537};
538
539template<> struct AttributeTraits<tosa::MulAttribute> {
540 static const Attribute enum_value = Attribute_MulAttribute;
541};
542
543template<> struct AttributeTraits<tosa::ArithmeticRightShiftAttribute> {
544 static const Attribute enum_value = Attribute_ArithmeticRightShiftAttribute;
545};
546
547template<> struct AttributeTraits<tosa::CondIfAttribute> {
548 static const Attribute enum_value = Attribute_CondIfAttribute;
549};
550
551template<> struct AttributeTraits<tosa::WhileLoopAttribute> {
552 static const Attribute enum_value = Attribute_WhileLoopAttribute;
553};
554
Kevin Cheng38d214c2021-10-15 15:49:19 -0700555template<> struct AttributeTraits<tosa::TransposeAttribute> {
556 static const Attribute enum_value = Attribute_TransposeAttribute;
557};
558
559template<> struct AttributeTraits<tosa::TableAttribute> {
560 static const Attribute enum_value = Attribute_TableAttribute;
561};
562
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000563template<> struct AttributeTraits<tosa::MatMulAttribute> {
564 static const Attribute enum_value = Attribute_MatMulAttribute;
565};
566
567template<> struct AttributeTraits<tosa::FullyConnectedAttribute> {
568 static const Attribute enum_value = Attribute_FullyConnectedAttribute;
569};
570
571template<> struct AttributeTraits<tosa::NegateAttribute> {
572 static const Attribute enum_value = Attribute_NegateAttribute;
573};
574
Eric Kunze2364dcd2021-04-26 11:06:57 -0700575bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type);
576bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types);
577
Kevin Cheng79a41992021-08-31 16:04:40 -0700578struct PoolAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
579 typedef PoolAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700580 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -0700581 VT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700582 VT_KERNEL = 6,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000583 VT_STRIDE = 8,
584 VT_INPUT_ZP = 10,
585 VT_OUTPUT_ZP = 12
Eric Kunze2364dcd2021-04-26 11:06:57 -0700586 };
TatWai Chong7be71652022-05-10 17:26:20 -0700587 const flatbuffers::Vector<int32_t> *pad() const {
588 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700589 }
590 const flatbuffers::Vector<int32_t> *kernel() const {
591 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_KERNEL);
592 }
593 const flatbuffers::Vector<int32_t> *stride() const {
594 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
595 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000596 int32_t input_zp() const {
597 return GetField<int32_t>(VT_INPUT_ZP, 0);
598 }
599 int32_t output_zp() const {
600 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
601 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700602 bool Verify(flatbuffers::Verifier &verifier) const {
603 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -0700604 VerifyOffset(verifier, VT_PAD) &&
605 verifier.VerifyVector(pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700606 VerifyOffset(verifier, VT_KERNEL) &&
607 verifier.VerifyVector(kernel()) &&
608 VerifyOffset(verifier, VT_STRIDE) &&
609 verifier.VerifyVector(stride()) &&
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000610 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
611 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700612 verifier.EndTable();
613 }
614};
615
Kevin Cheng79a41992021-08-31 16:04:40 -0700616struct PoolAttributeBuilder {
617 typedef PoolAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700618 flatbuffers::FlatBufferBuilder &fbb_;
619 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -0700620 void add_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad) {
621 fbb_.AddOffset(PoolAttribute::VT_PAD, pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700622 }
623 void add_kernel(flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700624 fbb_.AddOffset(PoolAttribute::VT_KERNEL, kernel);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700625 }
626 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700627 fbb_.AddOffset(PoolAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700628 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000629 void add_input_zp(int32_t input_zp) {
630 fbb_.AddElement<int32_t>(PoolAttribute::VT_INPUT_ZP, input_zp, 0);
631 }
632 void add_output_zp(int32_t output_zp) {
633 fbb_.AddElement<int32_t>(PoolAttribute::VT_OUTPUT_ZP, output_zp, 0);
634 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700635 explicit PoolAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700636 : fbb_(_fbb) {
637 start_ = fbb_.StartTable();
638 }
Eric Kunzeae906de2022-05-30 22:40:47 -0700639 PoolAttributeBuilder &operator=(const PoolAttributeBuilder &);
Kevin Cheng79a41992021-08-31 16:04:40 -0700640 flatbuffers::Offset<PoolAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700641 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700642 auto o = flatbuffers::Offset<PoolAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700643 return o;
644 }
645};
646
Kevin Cheng79a41992021-08-31 16:04:40 -0700647inline flatbuffers::Offset<PoolAttribute> CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700648 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700649 flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700650 flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000651 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
652 int32_t input_zp = 0,
653 int32_t output_zp = 0) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700654 PoolAttributeBuilder builder_(_fbb);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000655 builder_.add_output_zp(output_zp);
656 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700657 builder_.add_stride(stride);
658 builder_.add_kernel(kernel);
TatWai Chong7be71652022-05-10 17:26:20 -0700659 builder_.add_pad(pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700660 return builder_.Finish();
661}
662
Kevin Cheng79a41992021-08-31 16:04:40 -0700663inline flatbuffers::Offset<PoolAttribute> CreatePoolAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700664 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700665 const std::vector<int32_t> *pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700666 const std::vector<int32_t> *kernel = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000667 const std::vector<int32_t> *stride = nullptr,
668 int32_t input_zp = 0,
669 int32_t output_zp = 0) {
TatWai Chong7be71652022-05-10 17:26:20 -0700670 auto pad__ = pad ? _fbb.CreateVector<int32_t>(*pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700671 auto kernel__ = kernel ? _fbb.CreateVector<int32_t>(*kernel) : 0;
672 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700673 return tosa::CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700674 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700675 pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700676 kernel__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000677 stride__,
678 input_zp,
679 output_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700680}
681
Kevin Cheng79a41992021-08-31 16:04:40 -0700682struct ConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
683 typedef ConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700684 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -0700685 VT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700686 VT_STRIDE = 6,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000687 VT_DILATION = 8,
688 VT_INPUT_ZP = 10,
689 VT_WEIGHT_ZP = 12
Eric Kunze2364dcd2021-04-26 11:06:57 -0700690 };
TatWai Chong7be71652022-05-10 17:26:20 -0700691 const flatbuffers::Vector<int32_t> *pad() const {
692 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700693 }
694 const flatbuffers::Vector<int32_t> *stride() const {
695 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
696 }
697 const flatbuffers::Vector<int32_t> *dilation() const {
698 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_DILATION);
699 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000700 int32_t input_zp() const {
701 return GetField<int32_t>(VT_INPUT_ZP, 0);
702 }
703 int32_t weight_zp() const {
704 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
705 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700706 bool Verify(flatbuffers::Verifier &verifier) const {
707 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -0700708 VerifyOffset(verifier, VT_PAD) &&
709 verifier.VerifyVector(pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700710 VerifyOffset(verifier, VT_STRIDE) &&
711 verifier.VerifyVector(stride()) &&
712 VerifyOffset(verifier, VT_DILATION) &&
713 verifier.VerifyVector(dilation()) &&
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000714 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
715 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700716 verifier.EndTable();
717 }
718};
719
Kevin Cheng79a41992021-08-31 16:04:40 -0700720struct ConvAttributeBuilder {
721 typedef ConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700722 flatbuffers::FlatBufferBuilder &fbb_;
723 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -0700724 void add_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad) {
725 fbb_.AddOffset(ConvAttribute::VT_PAD, pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700726 }
727 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700728 fbb_.AddOffset(ConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700729 }
730 void add_dilation(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700731 fbb_.AddOffset(ConvAttribute::VT_DILATION, dilation);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700732 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000733 void add_input_zp(int32_t input_zp) {
734 fbb_.AddElement<int32_t>(ConvAttribute::VT_INPUT_ZP, input_zp, 0);
735 }
736 void add_weight_zp(int32_t weight_zp) {
737 fbb_.AddElement<int32_t>(ConvAttribute::VT_WEIGHT_ZP, weight_zp, 0);
738 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700739 explicit ConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700740 : fbb_(_fbb) {
741 start_ = fbb_.StartTable();
742 }
Eric Kunzeae906de2022-05-30 22:40:47 -0700743 ConvAttributeBuilder &operator=(const ConvAttributeBuilder &);
Kevin Cheng79a41992021-08-31 16:04:40 -0700744 flatbuffers::Offset<ConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700745 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700746 auto o = flatbuffers::Offset<ConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700747 return o;
748 }
749};
750
Kevin Cheng79a41992021-08-31 16:04:40 -0700751inline flatbuffers::Offset<ConvAttribute> CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700752 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700753 flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700754 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000755 flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation = 0,
756 int32_t input_zp = 0,
757 int32_t weight_zp = 0) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700758 ConvAttributeBuilder builder_(_fbb);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000759 builder_.add_weight_zp(weight_zp);
760 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700761 builder_.add_dilation(dilation);
762 builder_.add_stride(stride);
TatWai Chong7be71652022-05-10 17:26:20 -0700763 builder_.add_pad(pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700764 return builder_.Finish();
765}
766
Kevin Cheng79a41992021-08-31 16:04:40 -0700767inline flatbuffers::Offset<ConvAttribute> CreateConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700768 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700769 const std::vector<int32_t> *pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700770 const std::vector<int32_t> *stride = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000771 const std::vector<int32_t> *dilation = nullptr,
772 int32_t input_zp = 0,
773 int32_t weight_zp = 0) {
TatWai Chong7be71652022-05-10 17:26:20 -0700774 auto pad__ = pad ? _fbb.CreateVector<int32_t>(*pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700775 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
776 auto dilation__ = dilation ? _fbb.CreateVector<int32_t>(*dilation) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700777 return tosa::CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700778 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700779 pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700780 stride__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000781 dilation__,
782 input_zp,
783 weight_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700784}
785
Kevin Cheng79a41992021-08-31 16:04:40 -0700786struct TransposeConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
787 typedef TransposeConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700788 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700789 VT_OUT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700790 VT_STRIDE = 6,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000791 VT_OUTPUT_SHAPE = 8,
792 VT_INPUT_ZP = 10,
793 VT_WEIGHT_ZP = 12
Eric Kunze2364dcd2021-04-26 11:06:57 -0700794 };
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700795 const flatbuffers::Vector<int32_t> *out_pad() const {
796 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700797 }
798 const flatbuffers::Vector<int32_t> *stride() const {
799 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
800 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700801 const flatbuffers::Vector<int32_t> *output_shape() const {
802 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUT_SHAPE);
803 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000804 int32_t input_zp() const {
805 return GetField<int32_t>(VT_INPUT_ZP, 0);
806 }
807 int32_t weight_zp() const {
808 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
809 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700810 bool Verify(flatbuffers::Verifier &verifier) const {
811 return VerifyTableStart(verifier) &&
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700812 VerifyOffset(verifier, VT_OUT_PAD) &&
813 verifier.VerifyVector(out_pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700814 VerifyOffset(verifier, VT_STRIDE) &&
815 verifier.VerifyVector(stride()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700816 VerifyOffset(verifier, VT_OUTPUT_SHAPE) &&
817 verifier.VerifyVector(output_shape()) &&
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000818 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
819 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700820 verifier.EndTable();
821 }
822};
823
Kevin Cheng79a41992021-08-31 16:04:40 -0700824struct TransposeConvAttributeBuilder {
825 typedef TransposeConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700826 flatbuffers::FlatBufferBuilder &fbb_;
827 flatbuffers::uoffset_t start_;
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700828 void add_out_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> out_pad) {
829 fbb_.AddOffset(TransposeConvAttribute::VT_OUT_PAD, out_pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700830 }
831 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700832 fbb_.AddOffset(TransposeConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700833 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700834 void add_output_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700835 fbb_.AddOffset(TransposeConvAttribute::VT_OUTPUT_SHAPE, output_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700836 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000837 void add_input_zp(int32_t input_zp) {
838 fbb_.AddElement<int32_t>(TransposeConvAttribute::VT_INPUT_ZP, input_zp, 0);
839 }
840 void add_weight_zp(int32_t weight_zp) {
841 fbb_.AddElement<int32_t>(TransposeConvAttribute::VT_WEIGHT_ZP, weight_zp, 0);
842 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700843 explicit TransposeConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700844 : fbb_(_fbb) {
845 start_ = fbb_.StartTable();
846 }
Eric Kunzeae906de2022-05-30 22:40:47 -0700847 TransposeConvAttributeBuilder &operator=(const TransposeConvAttributeBuilder &);
Kevin Cheng79a41992021-08-31 16:04:40 -0700848 flatbuffers::Offset<TransposeConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700849 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700850 auto o = flatbuffers::Offset<TransposeConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700851 return o;
852 }
853};
854
Kevin Cheng79a41992021-08-31 16:04:40 -0700855inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700856 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700857 flatbuffers::Offset<flatbuffers::Vector<int32_t>> out_pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700858 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000859 flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape = 0,
860 int32_t input_zp = 0,
861 int32_t weight_zp = 0) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700862 TransposeConvAttributeBuilder builder_(_fbb);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000863 builder_.add_weight_zp(weight_zp);
864 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700865 builder_.add_output_shape(output_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700866 builder_.add_stride(stride);
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700867 builder_.add_out_pad(out_pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700868 return builder_.Finish();
869}
870
Kevin Cheng79a41992021-08-31 16:04:40 -0700871inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700872 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700873 const std::vector<int32_t> *out_pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700874 const std::vector<int32_t> *stride = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000875 const std::vector<int32_t> *output_shape = nullptr,
876 int32_t input_zp = 0,
877 int32_t weight_zp = 0) {
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700878 auto out_pad__ = out_pad ? _fbb.CreateVector<int32_t>(*out_pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700879 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700880 auto output_shape__ = output_shape ? _fbb.CreateVector<int32_t>(*output_shape) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700881 return tosa::CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700882 _fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700883 out_pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700884 stride__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000885 output_shape__,
886 input_zp,
887 weight_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700888}
889
Kevin Cheng38d214c2021-10-15 15:49:19 -0700890struct PadAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
891 typedef PadAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700892 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Kevin Cheng38d214c2021-10-15 15:49:19 -0700893 VT_PADDING = 4,
894 VT_PAD_CONST_INT = 6,
895 VT_PAD_CONST_FP = 8
Eric Kunze2364dcd2021-04-26 11:06:57 -0700896 };
Kevin Cheng38d214c2021-10-15 15:49:19 -0700897 const flatbuffers::Vector<int32_t> *padding() const {
898 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PADDING);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700899 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700900 int32_t pad_const_int() const {
901 return GetField<int32_t>(VT_PAD_CONST_INT, 0);
902 }
903 float pad_const_fp() const {
904 return GetField<float>(VT_PAD_CONST_FP, 0.0f);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700905 }
906 bool Verify(flatbuffers::Verifier &verifier) const {
907 return VerifyTableStart(verifier) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -0700908 VerifyOffset(verifier, VT_PADDING) &&
909 verifier.VerifyVector(padding()) &&
910 VerifyField<int32_t>(verifier, VT_PAD_CONST_INT) &&
911 VerifyField<float>(verifier, VT_PAD_CONST_FP) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700912 verifier.EndTable();
913 }
914};
915
Kevin Cheng38d214c2021-10-15 15:49:19 -0700916struct PadAttributeBuilder {
917 typedef PadAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700918 flatbuffers::FlatBufferBuilder &fbb_;
919 flatbuffers::uoffset_t start_;
Kevin Cheng38d214c2021-10-15 15:49:19 -0700920 void add_padding(flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding) {
921 fbb_.AddOffset(PadAttribute::VT_PADDING, padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700922 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700923 void add_pad_const_int(int32_t pad_const_int) {
924 fbb_.AddElement<int32_t>(PadAttribute::VT_PAD_CONST_INT, pad_const_int, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700925 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700926 void add_pad_const_fp(float pad_const_fp) {
927 fbb_.AddElement<float>(PadAttribute::VT_PAD_CONST_FP, pad_const_fp, 0.0f);
928 }
929 explicit PadAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700930 : fbb_(_fbb) {
931 start_ = fbb_.StartTable();
932 }
Eric Kunzeae906de2022-05-30 22:40:47 -0700933 PadAttributeBuilder &operator=(const PadAttributeBuilder &);
Kevin Cheng38d214c2021-10-15 15:49:19 -0700934 flatbuffers::Offset<PadAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700935 const auto end = fbb_.EndTable(start_);
Kevin Cheng38d214c2021-10-15 15:49:19 -0700936 auto o = flatbuffers::Offset<PadAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700937 return o;
938 }
939};
940
Kevin Cheng38d214c2021-10-15 15:49:19 -0700941inline flatbuffers::Offset<PadAttribute> CreatePadAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700942 flatbuffers::FlatBufferBuilder &_fbb,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700943 flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding = 0,
944 int32_t pad_const_int = 0,
945 float pad_const_fp = 0.0f) {
946 PadAttributeBuilder builder_(_fbb);
947 builder_.add_pad_const_fp(pad_const_fp);
948 builder_.add_pad_const_int(pad_const_int);
949 builder_.add_padding(padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700950 return builder_.Finish();
951}
952
Kevin Cheng38d214c2021-10-15 15:49:19 -0700953inline flatbuffers::Offset<PadAttribute> CreatePadAttributeDirect(
954 flatbuffers::FlatBufferBuilder &_fbb,
955 const std::vector<int32_t> *padding = nullptr,
956 int32_t pad_const_int = 0,
957 float pad_const_fp = 0.0f) {
958 auto padding__ = padding ? _fbb.CreateVector<int32_t>(*padding) : 0;
959 return tosa::CreatePadAttribute(
960 _fbb,
961 padding__,
962 pad_const_int,
963 pad_const_fp);
964}
965
Eric Kunze2364dcd2021-04-26 11:06:57 -0700966struct AxisAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
967 typedef AxisAttributeBuilder Builder;
968 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
969 VT_AXIS = 4
970 };
971 int32_t axis() const {
972 return GetField<int32_t>(VT_AXIS, 0);
973 }
974 bool Verify(flatbuffers::Verifier &verifier) const {
975 return VerifyTableStart(verifier) &&
976 VerifyField<int32_t>(verifier, VT_AXIS) &&
977 verifier.EndTable();
978 }
979};
980
981struct AxisAttributeBuilder {
982 typedef AxisAttribute Table;
983 flatbuffers::FlatBufferBuilder &fbb_;
984 flatbuffers::uoffset_t start_;
985 void add_axis(int32_t axis) {
986 fbb_.AddElement<int32_t>(AxisAttribute::VT_AXIS, axis, 0);
987 }
988 explicit AxisAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
989 : fbb_(_fbb) {
990 start_ = fbb_.StartTable();
991 }
Eric Kunzeae906de2022-05-30 22:40:47 -0700992 AxisAttributeBuilder &operator=(const AxisAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700993 flatbuffers::Offset<AxisAttribute> Finish() {
994 const auto end = fbb_.EndTable(start_);
995 auto o = flatbuffers::Offset<AxisAttribute>(end);
996 return o;
997 }
998};
999
1000inline flatbuffers::Offset<AxisAttribute> CreateAxisAttribute(
1001 flatbuffers::FlatBufferBuilder &_fbb,
1002 int32_t axis = 0) {
1003 AxisAttributeBuilder builder_(_fbb);
1004 builder_.add_axis(axis);
1005 return builder_.Finish();
1006}
1007
1008struct ReshapeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1009 typedef ReshapeAttributeBuilder Builder;
1010 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001011 VT_NEW_SHAPE = 4
Eric Kunze2364dcd2021-04-26 11:06:57 -07001012 };
TatWai Chong7be71652022-05-10 17:26:20 -07001013 const flatbuffers::Vector<int32_t> *new_shape() const {
1014 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_NEW_SHAPE);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001015 }
1016 bool Verify(flatbuffers::Verifier &verifier) const {
1017 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001018 VerifyOffset(verifier, VT_NEW_SHAPE) &&
1019 verifier.VerifyVector(new_shape()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001020 verifier.EndTable();
1021 }
1022};
1023
1024struct ReshapeAttributeBuilder {
1025 typedef ReshapeAttribute Table;
1026 flatbuffers::FlatBufferBuilder &fbb_;
1027 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001028 void add_new_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> new_shape) {
1029 fbb_.AddOffset(ReshapeAttribute::VT_NEW_SHAPE, new_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001030 }
1031 explicit ReshapeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1032 : fbb_(_fbb) {
1033 start_ = fbb_.StartTable();
1034 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001035 ReshapeAttributeBuilder &operator=(const ReshapeAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001036 flatbuffers::Offset<ReshapeAttribute> Finish() {
1037 const auto end = fbb_.EndTable(start_);
1038 auto o = flatbuffers::Offset<ReshapeAttribute>(end);
1039 return o;
1040 }
1041};
1042
1043inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttribute(
1044 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001045 flatbuffers::Offset<flatbuffers::Vector<int32_t>> new_shape = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001046 ReshapeAttributeBuilder builder_(_fbb);
TatWai Chong7be71652022-05-10 17:26:20 -07001047 builder_.add_new_shape(new_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001048 return builder_.Finish();
1049}
1050
1051inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttributeDirect(
1052 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001053 const std::vector<int32_t> *new_shape = nullptr) {
1054 auto new_shape__ = new_shape ? _fbb.CreateVector<int32_t>(*new_shape) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001055 return tosa::CreateReshapeAttribute(
1056 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001057 new_shape__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001058}
1059
1060struct SliceAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1061 typedef SliceAttributeBuilder Builder;
1062 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001063 VT_START = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001064 VT_SIZE = 6
1065 };
TatWai Chong7be71652022-05-10 17:26:20 -07001066 const flatbuffers::Vector<int32_t> *start() const {
1067 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_START);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001068 }
1069 const flatbuffers::Vector<int32_t> *size() const {
1070 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SIZE);
1071 }
1072 bool Verify(flatbuffers::Verifier &verifier) const {
1073 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001074 VerifyOffset(verifier, VT_START) &&
1075 verifier.VerifyVector(start()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001076 VerifyOffset(verifier, VT_SIZE) &&
1077 verifier.VerifyVector(size()) &&
1078 verifier.EndTable();
1079 }
1080};
1081
1082struct SliceAttributeBuilder {
1083 typedef SliceAttribute Table;
1084 flatbuffers::FlatBufferBuilder &fbb_;
1085 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001086 void add_start(flatbuffers::Offset<flatbuffers::Vector<int32_t>> start) {
1087 fbb_.AddOffset(SliceAttribute::VT_START, start);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001088 }
1089 void add_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> size) {
1090 fbb_.AddOffset(SliceAttribute::VT_SIZE, size);
1091 }
1092 explicit SliceAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1093 : fbb_(_fbb) {
1094 start_ = fbb_.StartTable();
1095 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001096 SliceAttributeBuilder &operator=(const SliceAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001097 flatbuffers::Offset<SliceAttribute> Finish() {
1098 const auto end = fbb_.EndTable(start_);
1099 auto o = flatbuffers::Offset<SliceAttribute>(end);
1100 return o;
1101 }
1102};
1103
1104inline flatbuffers::Offset<SliceAttribute> CreateSliceAttribute(
1105 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001106 flatbuffers::Offset<flatbuffers::Vector<int32_t>> start = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001107 flatbuffers::Offset<flatbuffers::Vector<int32_t>> size = 0) {
1108 SliceAttributeBuilder builder_(_fbb);
1109 builder_.add_size(size);
TatWai Chong7be71652022-05-10 17:26:20 -07001110 builder_.add_start(start);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001111 return builder_.Finish();
1112}
1113
1114inline flatbuffers::Offset<SliceAttribute> CreateSliceAttributeDirect(
1115 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001116 const std::vector<int32_t> *start = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001117 const std::vector<int32_t> *size = nullptr) {
TatWai Chong7be71652022-05-10 17:26:20 -07001118 auto start__ = start ? _fbb.CreateVector<int32_t>(*start) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001119 auto size__ = size ? _fbb.CreateVector<int32_t>(*size) : 0;
1120 return tosa::CreateSliceAttribute(
1121 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001122 start__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001123 size__);
1124}
1125
1126struct TileAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1127 typedef TileAttributeBuilder Builder;
1128 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1129 VT_MULTIPLES = 4
1130 };
1131 const flatbuffers::Vector<int32_t> *multiples() const {
1132 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLES);
1133 }
1134 bool Verify(flatbuffers::Verifier &verifier) const {
1135 return VerifyTableStart(verifier) &&
1136 VerifyOffset(verifier, VT_MULTIPLES) &&
1137 verifier.VerifyVector(multiples()) &&
1138 verifier.EndTable();
1139 }
1140};
1141
1142struct TileAttributeBuilder {
1143 typedef TileAttribute Table;
1144 flatbuffers::FlatBufferBuilder &fbb_;
1145 flatbuffers::uoffset_t start_;
1146 void add_multiples(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples) {
1147 fbb_.AddOffset(TileAttribute::VT_MULTIPLES, multiples);
1148 }
1149 explicit TileAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1150 : fbb_(_fbb) {
1151 start_ = fbb_.StartTable();
1152 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001153 TileAttributeBuilder &operator=(const TileAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001154 flatbuffers::Offset<TileAttribute> Finish() {
1155 const auto end = fbb_.EndTable(start_);
1156 auto o = flatbuffers::Offset<TileAttribute>(end);
1157 return o;
1158 }
1159};
1160
1161inline flatbuffers::Offset<TileAttribute> CreateTileAttribute(
1162 flatbuffers::FlatBufferBuilder &_fbb,
1163 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples = 0) {
1164 TileAttributeBuilder builder_(_fbb);
1165 builder_.add_multiples(multiples);
1166 return builder_.Finish();
1167}
1168
1169inline flatbuffers::Offset<TileAttribute> CreateTileAttributeDirect(
1170 flatbuffers::FlatBufferBuilder &_fbb,
1171 const std::vector<int32_t> *multiples = nullptr) {
1172 auto multiples__ = multiples ? _fbb.CreateVector<int32_t>(*multiples) : 0;
1173 return tosa::CreateTileAttribute(
1174 _fbb,
1175 multiples__);
1176}
1177
1178struct ResizeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1179 typedef ResizeAttributeBuilder Builder;
1180 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong49b1ca62022-06-10 01:49:13 -07001181 VT_SCALE = 4,
1182 VT_OFFSET = 6,
1183 VT_BORDER = 8,
1184 VT_MODE = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07001185 };
TatWai Chong49b1ca62022-06-10 01:49:13 -07001186 const flatbuffers::Vector<int16_t> *scale() const {
1187 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_SCALE);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001188 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001189 const flatbuffers::Vector<int16_t> *offset() const {
1190 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_OFFSET);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001191 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001192 const flatbuffers::Vector<int16_t> *border() const {
1193 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_BORDER);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001194 }
1195 tosa::ResizeMode mode() const {
1196 return static_cast<tosa::ResizeMode>(GetField<uint32_t>(VT_MODE, 0));
1197 }
1198 bool Verify(flatbuffers::Verifier &verifier) const {
1199 return VerifyTableStart(verifier) &&
TatWai Chong49b1ca62022-06-10 01:49:13 -07001200 VerifyOffset(verifier, VT_SCALE) &&
1201 verifier.VerifyVector(scale()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001202 VerifyOffset(verifier, VT_OFFSET) &&
1203 verifier.VerifyVector(offset()) &&
TatWai Chong49b1ca62022-06-10 01:49:13 -07001204 VerifyOffset(verifier, VT_BORDER) &&
1205 verifier.VerifyVector(border()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001206 VerifyField<uint32_t>(verifier, VT_MODE) &&
1207 verifier.EndTable();
1208 }
1209};
1210
1211struct ResizeAttributeBuilder {
1212 typedef ResizeAttribute Table;
1213 flatbuffers::FlatBufferBuilder &fbb_;
1214 flatbuffers::uoffset_t start_;
TatWai Chong49b1ca62022-06-10 01:49:13 -07001215 void add_scale(flatbuffers::Offset<flatbuffers::Vector<int16_t>> scale) {
1216 fbb_.AddOffset(ResizeAttribute::VT_SCALE, scale);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001217 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001218 void add_offset(flatbuffers::Offset<flatbuffers::Vector<int16_t>> offset) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001219 fbb_.AddOffset(ResizeAttribute::VT_OFFSET, offset);
1220 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001221 void add_border(flatbuffers::Offset<flatbuffers::Vector<int16_t>> border) {
1222 fbb_.AddOffset(ResizeAttribute::VT_BORDER, border);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001223 }
1224 void add_mode(tosa::ResizeMode mode) {
1225 fbb_.AddElement<uint32_t>(ResizeAttribute::VT_MODE, static_cast<uint32_t>(mode), 0);
1226 }
1227 explicit ResizeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1228 : fbb_(_fbb) {
1229 start_ = fbb_.StartTable();
1230 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001231 ResizeAttributeBuilder &operator=(const ResizeAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001232 flatbuffers::Offset<ResizeAttribute> Finish() {
1233 const auto end = fbb_.EndTable(start_);
1234 auto o = flatbuffers::Offset<ResizeAttribute>(end);
1235 return o;
1236 }
1237};
1238
1239inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttribute(
1240 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001241 flatbuffers::Offset<flatbuffers::Vector<int16_t>> scale = 0,
1242 flatbuffers::Offset<flatbuffers::Vector<int16_t>> offset = 0,
1243 flatbuffers::Offset<flatbuffers::Vector<int16_t>> border = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001244 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
1245 ResizeAttributeBuilder builder_(_fbb);
1246 builder_.add_mode(mode);
TatWai Chong49b1ca62022-06-10 01:49:13 -07001247 builder_.add_border(border);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001248 builder_.add_offset(offset);
TatWai Chong49b1ca62022-06-10 01:49:13 -07001249 builder_.add_scale(scale);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001250 return builder_.Finish();
1251}
1252
1253inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttributeDirect(
1254 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001255 const std::vector<int16_t> *scale = nullptr,
1256 const std::vector<int16_t> *offset = nullptr,
1257 const std::vector<int16_t> *border = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001258 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
TatWai Chong49b1ca62022-06-10 01:49:13 -07001259 auto scale__ = scale ? _fbb.CreateVector<int16_t>(*scale) : 0;
1260 auto offset__ = offset ? _fbb.CreateVector<int16_t>(*offset) : 0;
1261 auto border__ = border ? _fbb.CreateVector<int16_t>(*border) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001262 return tosa::CreateResizeAttribute(
1263 _fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001264 scale__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001265 offset__,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001266 border__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001267 mode);
1268}
1269
1270struct ClampAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1271 typedef ClampAttributeBuilder Builder;
1272 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1273 VT_MIN_INT = 4,
1274 VT_MAX_INT = 6,
1275 VT_MIN_FP = 8,
1276 VT_MAX_FP = 10
1277 };
1278 int32_t min_int() const {
1279 return GetField<int32_t>(VT_MIN_INT, 0);
1280 }
1281 int32_t max_int() const {
1282 return GetField<int32_t>(VT_MAX_INT, 0);
1283 }
1284 float min_fp() const {
1285 return GetField<float>(VT_MIN_FP, 0.0f);
1286 }
1287 float max_fp() const {
1288 return GetField<float>(VT_MAX_FP, 0.0f);
1289 }
1290 bool Verify(flatbuffers::Verifier &verifier) const {
1291 return VerifyTableStart(verifier) &&
1292 VerifyField<int32_t>(verifier, VT_MIN_INT) &&
1293 VerifyField<int32_t>(verifier, VT_MAX_INT) &&
1294 VerifyField<float>(verifier, VT_MIN_FP) &&
1295 VerifyField<float>(verifier, VT_MAX_FP) &&
1296 verifier.EndTable();
1297 }
1298};
1299
1300struct ClampAttributeBuilder {
1301 typedef ClampAttribute Table;
1302 flatbuffers::FlatBufferBuilder &fbb_;
1303 flatbuffers::uoffset_t start_;
1304 void add_min_int(int32_t min_int) {
1305 fbb_.AddElement<int32_t>(ClampAttribute::VT_MIN_INT, min_int, 0);
1306 }
1307 void add_max_int(int32_t max_int) {
1308 fbb_.AddElement<int32_t>(ClampAttribute::VT_MAX_INT, max_int, 0);
1309 }
1310 void add_min_fp(float min_fp) {
1311 fbb_.AddElement<float>(ClampAttribute::VT_MIN_FP, min_fp, 0.0f);
1312 }
1313 void add_max_fp(float max_fp) {
1314 fbb_.AddElement<float>(ClampAttribute::VT_MAX_FP, max_fp, 0.0f);
1315 }
1316 explicit ClampAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1317 : fbb_(_fbb) {
1318 start_ = fbb_.StartTable();
1319 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001320 ClampAttributeBuilder &operator=(const ClampAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001321 flatbuffers::Offset<ClampAttribute> Finish() {
1322 const auto end = fbb_.EndTable(start_);
1323 auto o = flatbuffers::Offset<ClampAttribute>(end);
1324 return o;
1325 }
1326};
1327
1328inline flatbuffers::Offset<ClampAttribute> CreateClampAttribute(
1329 flatbuffers::FlatBufferBuilder &_fbb,
1330 int32_t min_int = 0,
1331 int32_t max_int = 0,
1332 float min_fp = 0.0f,
1333 float max_fp = 0.0f) {
1334 ClampAttributeBuilder builder_(_fbb);
1335 builder_.add_max_fp(max_fp);
1336 builder_.add_min_fp(min_fp);
1337 builder_.add_max_int(max_int);
1338 builder_.add_min_int(min_int);
1339 return builder_.Finish();
1340}
1341
1342struct RescaleAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1343 typedef RescaleAttributeBuilder Builder;
1344 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1345 VT_INPUT_ZP = 4,
1346 VT_OUTPUT_ZP = 6,
1347 VT_MULTIPLIER = 8,
1348 VT_SHIFT = 10,
1349 VT_SCALE32 = 12,
1350 VT_DOUBLE_ROUND = 14,
1351 VT_PER_CHANNEL = 16
1352 };
1353 int32_t input_zp() const {
1354 return GetField<int32_t>(VT_INPUT_ZP, 0);
1355 }
1356 int32_t output_zp() const {
1357 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1358 }
1359 const flatbuffers::Vector<int32_t> *multiplier() const {
1360 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLIER);
1361 }
1362 const flatbuffers::Vector<int32_t> *shift() const {
1363 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHIFT);
1364 }
1365 bool scale32() const {
1366 return GetField<uint8_t>(VT_SCALE32, 0) != 0;
1367 }
1368 bool double_round() const {
1369 return GetField<uint8_t>(VT_DOUBLE_ROUND, 0) != 0;
1370 }
1371 bool per_channel() const {
1372 return GetField<uint8_t>(VT_PER_CHANNEL, 0) != 0;
1373 }
1374 bool Verify(flatbuffers::Verifier &verifier) const {
1375 return VerifyTableStart(verifier) &&
1376 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1377 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP) &&
1378 VerifyOffset(verifier, VT_MULTIPLIER) &&
1379 verifier.VerifyVector(multiplier()) &&
1380 VerifyOffset(verifier, VT_SHIFT) &&
1381 verifier.VerifyVector(shift()) &&
1382 VerifyField<uint8_t>(verifier, VT_SCALE32) &&
1383 VerifyField<uint8_t>(verifier, VT_DOUBLE_ROUND) &&
1384 VerifyField<uint8_t>(verifier, VT_PER_CHANNEL) &&
1385 verifier.EndTable();
1386 }
1387};
1388
1389struct RescaleAttributeBuilder {
1390 typedef RescaleAttribute Table;
1391 flatbuffers::FlatBufferBuilder &fbb_;
1392 flatbuffers::uoffset_t start_;
1393 void add_input_zp(int32_t input_zp) {
1394 fbb_.AddElement<int32_t>(RescaleAttribute::VT_INPUT_ZP, input_zp, 0);
1395 }
1396 void add_output_zp(int32_t output_zp) {
1397 fbb_.AddElement<int32_t>(RescaleAttribute::VT_OUTPUT_ZP, output_zp, 0);
1398 }
1399 void add_multiplier(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier) {
1400 fbb_.AddOffset(RescaleAttribute::VT_MULTIPLIER, multiplier);
1401 }
1402 void add_shift(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift) {
1403 fbb_.AddOffset(RescaleAttribute::VT_SHIFT, shift);
1404 }
1405 void add_scale32(bool scale32) {
1406 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_SCALE32, static_cast<uint8_t>(scale32), 0);
1407 }
1408 void add_double_round(bool double_round) {
1409 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_DOUBLE_ROUND, static_cast<uint8_t>(double_round), 0);
1410 }
1411 void add_per_channel(bool per_channel) {
1412 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_PER_CHANNEL, static_cast<uint8_t>(per_channel), 0);
1413 }
1414 explicit RescaleAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1415 : fbb_(_fbb) {
1416 start_ = fbb_.StartTable();
1417 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001418 RescaleAttributeBuilder &operator=(const RescaleAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001419 flatbuffers::Offset<RescaleAttribute> Finish() {
1420 const auto end = fbb_.EndTable(start_);
1421 auto o = flatbuffers::Offset<RescaleAttribute>(end);
1422 return o;
1423 }
1424};
1425
1426inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttribute(
1427 flatbuffers::FlatBufferBuilder &_fbb,
1428 int32_t input_zp = 0,
1429 int32_t output_zp = 0,
1430 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier = 0,
1431 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift = 0,
1432 bool scale32 = false,
1433 bool double_round = false,
1434 bool per_channel = false) {
1435 RescaleAttributeBuilder builder_(_fbb);
1436 builder_.add_shift(shift);
1437 builder_.add_multiplier(multiplier);
1438 builder_.add_output_zp(output_zp);
1439 builder_.add_input_zp(input_zp);
1440 builder_.add_per_channel(per_channel);
1441 builder_.add_double_round(double_round);
1442 builder_.add_scale32(scale32);
1443 return builder_.Finish();
1444}
1445
1446inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttributeDirect(
1447 flatbuffers::FlatBufferBuilder &_fbb,
1448 int32_t input_zp = 0,
1449 int32_t output_zp = 0,
1450 const std::vector<int32_t> *multiplier = nullptr,
1451 const std::vector<int32_t> *shift = nullptr,
1452 bool scale32 = false,
1453 bool double_round = false,
1454 bool per_channel = false) {
1455 auto multiplier__ = multiplier ? _fbb.CreateVector<int32_t>(*multiplier) : 0;
1456 auto shift__ = shift ? _fbb.CreateVector<int32_t>(*shift) : 0;
1457 return tosa::CreateRescaleAttribute(
1458 _fbb,
1459 input_zp,
1460 output_zp,
1461 multiplier__,
1462 shift__,
1463 scale32,
1464 double_round,
1465 per_channel);
1466}
1467
1468struct MulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1469 typedef MulAttributeBuilder Builder;
1470 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1471 VT_SHIFT = 4
1472 };
1473 int32_t shift() const {
1474 return GetField<int32_t>(VT_SHIFT, 0);
1475 }
1476 bool Verify(flatbuffers::Verifier &verifier) const {
1477 return VerifyTableStart(verifier) &&
1478 VerifyField<int32_t>(verifier, VT_SHIFT) &&
1479 verifier.EndTable();
1480 }
1481};
1482
1483struct MulAttributeBuilder {
1484 typedef MulAttribute Table;
1485 flatbuffers::FlatBufferBuilder &fbb_;
1486 flatbuffers::uoffset_t start_;
1487 void add_shift(int32_t shift) {
1488 fbb_.AddElement<int32_t>(MulAttribute::VT_SHIFT, shift, 0);
1489 }
1490 explicit MulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1491 : fbb_(_fbb) {
1492 start_ = fbb_.StartTable();
1493 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001494 MulAttributeBuilder &operator=(const MulAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001495 flatbuffers::Offset<MulAttribute> Finish() {
1496 const auto end = fbb_.EndTable(start_);
1497 auto o = flatbuffers::Offset<MulAttribute>(end);
1498 return o;
1499 }
1500};
1501
1502inline flatbuffers::Offset<MulAttribute> CreateMulAttribute(
1503 flatbuffers::FlatBufferBuilder &_fbb,
1504 int32_t shift = 0) {
1505 MulAttributeBuilder builder_(_fbb);
1506 builder_.add_shift(shift);
1507 return builder_.Finish();
1508}
1509
1510struct ArithmeticRightShiftAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1511 typedef ArithmeticRightShiftAttributeBuilder Builder;
1512 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1513 VT_ROUND = 4
1514 };
1515 bool round() const {
1516 return GetField<uint8_t>(VT_ROUND, 0) != 0;
1517 }
1518 bool Verify(flatbuffers::Verifier &verifier) const {
1519 return VerifyTableStart(verifier) &&
1520 VerifyField<uint8_t>(verifier, VT_ROUND) &&
1521 verifier.EndTable();
1522 }
1523};
1524
1525struct ArithmeticRightShiftAttributeBuilder {
1526 typedef ArithmeticRightShiftAttribute Table;
1527 flatbuffers::FlatBufferBuilder &fbb_;
1528 flatbuffers::uoffset_t start_;
1529 void add_round(bool round) {
1530 fbb_.AddElement<uint8_t>(ArithmeticRightShiftAttribute::VT_ROUND, static_cast<uint8_t>(round), 0);
1531 }
1532 explicit ArithmeticRightShiftAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1533 : fbb_(_fbb) {
1534 start_ = fbb_.StartTable();
1535 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001536 ArithmeticRightShiftAttributeBuilder &operator=(const ArithmeticRightShiftAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001537 flatbuffers::Offset<ArithmeticRightShiftAttribute> Finish() {
1538 const auto end = fbb_.EndTable(start_);
1539 auto o = flatbuffers::Offset<ArithmeticRightShiftAttribute>(end);
1540 return o;
1541 }
1542};
1543
1544inline flatbuffers::Offset<ArithmeticRightShiftAttribute> CreateArithmeticRightShiftAttribute(
1545 flatbuffers::FlatBufferBuilder &_fbb,
1546 bool round = false) {
1547 ArithmeticRightShiftAttributeBuilder builder_(_fbb);
1548 builder_.add_round(round);
1549 return builder_.Finish();
1550}
1551
1552struct CondIfAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1553 typedef CondIfAttributeBuilder Builder;
1554 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1555 VT_THEN_BRANCH = 4,
1556 VT_ELSE_BRANCH = 6
1557 };
1558 const flatbuffers::String *then_branch() const {
1559 return GetPointer<const flatbuffers::String *>(VT_THEN_BRANCH);
1560 }
1561 const flatbuffers::String *else_branch() const {
1562 return GetPointer<const flatbuffers::String *>(VT_ELSE_BRANCH);
1563 }
1564 bool Verify(flatbuffers::Verifier &verifier) const {
1565 return VerifyTableStart(verifier) &&
1566 VerifyOffset(verifier, VT_THEN_BRANCH) &&
1567 verifier.VerifyString(then_branch()) &&
1568 VerifyOffset(verifier, VT_ELSE_BRANCH) &&
1569 verifier.VerifyString(else_branch()) &&
1570 verifier.EndTable();
1571 }
1572};
1573
1574struct CondIfAttributeBuilder {
1575 typedef CondIfAttribute Table;
1576 flatbuffers::FlatBufferBuilder &fbb_;
1577 flatbuffers::uoffset_t start_;
1578 void add_then_branch(flatbuffers::Offset<flatbuffers::String> then_branch) {
1579 fbb_.AddOffset(CondIfAttribute::VT_THEN_BRANCH, then_branch);
1580 }
1581 void add_else_branch(flatbuffers::Offset<flatbuffers::String> else_branch) {
1582 fbb_.AddOffset(CondIfAttribute::VT_ELSE_BRANCH, else_branch);
1583 }
1584 explicit CondIfAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1585 : fbb_(_fbb) {
1586 start_ = fbb_.StartTable();
1587 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001588 CondIfAttributeBuilder &operator=(const CondIfAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001589 flatbuffers::Offset<CondIfAttribute> Finish() {
1590 const auto end = fbb_.EndTable(start_);
1591 auto o = flatbuffers::Offset<CondIfAttribute>(end);
1592 return o;
1593 }
1594};
1595
1596inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttribute(
1597 flatbuffers::FlatBufferBuilder &_fbb,
1598 flatbuffers::Offset<flatbuffers::String> then_branch = 0,
1599 flatbuffers::Offset<flatbuffers::String> else_branch = 0) {
1600 CondIfAttributeBuilder builder_(_fbb);
1601 builder_.add_else_branch(else_branch);
1602 builder_.add_then_branch(then_branch);
1603 return builder_.Finish();
1604}
1605
1606inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttributeDirect(
1607 flatbuffers::FlatBufferBuilder &_fbb,
1608 const char *then_branch = nullptr,
1609 const char *else_branch = nullptr) {
1610 auto then_branch__ = then_branch ? _fbb.CreateString(then_branch) : 0;
1611 auto else_branch__ = else_branch ? _fbb.CreateString(else_branch) : 0;
1612 return tosa::CreateCondIfAttribute(
1613 _fbb,
1614 then_branch__,
1615 else_branch__);
1616}
1617
1618struct WhileLoopAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1619 typedef WhileLoopAttributeBuilder Builder;
1620 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1621 VT_COND_BRANCH = 4,
1622 VT_BODY_BRANCH = 6
1623 };
1624 const flatbuffers::String *cond_branch() const {
1625 return GetPointer<const flatbuffers::String *>(VT_COND_BRANCH);
1626 }
1627 const flatbuffers::String *body_branch() const {
1628 return GetPointer<const flatbuffers::String *>(VT_BODY_BRANCH);
1629 }
1630 bool Verify(flatbuffers::Verifier &verifier) const {
1631 return VerifyTableStart(verifier) &&
1632 VerifyOffset(verifier, VT_COND_BRANCH) &&
1633 verifier.VerifyString(cond_branch()) &&
1634 VerifyOffset(verifier, VT_BODY_BRANCH) &&
1635 verifier.VerifyString(body_branch()) &&
1636 verifier.EndTable();
1637 }
1638};
1639
1640struct WhileLoopAttributeBuilder {
1641 typedef WhileLoopAttribute Table;
1642 flatbuffers::FlatBufferBuilder &fbb_;
1643 flatbuffers::uoffset_t start_;
1644 void add_cond_branch(flatbuffers::Offset<flatbuffers::String> cond_branch) {
1645 fbb_.AddOffset(WhileLoopAttribute::VT_COND_BRANCH, cond_branch);
1646 }
1647 void add_body_branch(flatbuffers::Offset<flatbuffers::String> body_branch) {
1648 fbb_.AddOffset(WhileLoopAttribute::VT_BODY_BRANCH, body_branch);
1649 }
1650 explicit WhileLoopAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1651 : fbb_(_fbb) {
1652 start_ = fbb_.StartTable();
1653 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001654 WhileLoopAttributeBuilder &operator=(const WhileLoopAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001655 flatbuffers::Offset<WhileLoopAttribute> Finish() {
1656 const auto end = fbb_.EndTable(start_);
1657 auto o = flatbuffers::Offset<WhileLoopAttribute>(end);
1658 return o;
1659 }
1660};
1661
1662inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttribute(
1663 flatbuffers::FlatBufferBuilder &_fbb,
1664 flatbuffers::Offset<flatbuffers::String> cond_branch = 0,
1665 flatbuffers::Offset<flatbuffers::String> body_branch = 0) {
1666 WhileLoopAttributeBuilder builder_(_fbb);
1667 builder_.add_body_branch(body_branch);
1668 builder_.add_cond_branch(cond_branch);
1669 return builder_.Finish();
1670}
1671
1672inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttributeDirect(
1673 flatbuffers::FlatBufferBuilder &_fbb,
1674 const char *cond_branch = nullptr,
1675 const char *body_branch = nullptr) {
1676 auto cond_branch__ = cond_branch ? _fbb.CreateString(cond_branch) : 0;
1677 auto body_branch__ = body_branch ? _fbb.CreateString(body_branch) : 0;
1678 return tosa::CreateWhileLoopAttribute(
1679 _fbb,
1680 cond_branch__,
1681 body_branch__);
1682}
1683
Kevin Cheng38d214c2021-10-15 15:49:19 -07001684struct TransposeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1685 typedef TransposeAttributeBuilder Builder;
1686 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001687 VT_PERMS = 4
Kevin Cheng38d214c2021-10-15 15:49:19 -07001688 };
TatWai Chong7be71652022-05-10 17:26:20 -07001689 const flatbuffers::Vector<int32_t> *perms() const {
1690 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PERMS);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001691 }
1692 bool Verify(flatbuffers::Verifier &verifier) const {
1693 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001694 VerifyOffset(verifier, VT_PERMS) &&
1695 verifier.VerifyVector(perms()) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -07001696 verifier.EndTable();
1697 }
1698};
1699
1700struct TransposeAttributeBuilder {
1701 typedef TransposeAttribute Table;
1702 flatbuffers::FlatBufferBuilder &fbb_;
1703 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001704 void add_perms(flatbuffers::Offset<flatbuffers::Vector<int32_t>> perms) {
1705 fbb_.AddOffset(TransposeAttribute::VT_PERMS, perms);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001706 }
1707 explicit TransposeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1708 : fbb_(_fbb) {
1709 start_ = fbb_.StartTable();
1710 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001711 TransposeAttributeBuilder &operator=(const TransposeAttributeBuilder &);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001712 flatbuffers::Offset<TransposeAttribute> Finish() {
1713 const auto end = fbb_.EndTable(start_);
1714 auto o = flatbuffers::Offset<TransposeAttribute>(end);
1715 return o;
1716 }
1717};
1718
1719inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttribute(
1720 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001721 flatbuffers::Offset<flatbuffers::Vector<int32_t>> perms = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001722 TransposeAttributeBuilder builder_(_fbb);
TatWai Chong7be71652022-05-10 17:26:20 -07001723 builder_.add_perms(perms);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001724 return builder_.Finish();
1725}
1726
1727inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttributeDirect(
1728 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001729 const std::vector<int32_t> *perms = nullptr) {
1730 auto perms__ = perms ? _fbb.CreateVector<int32_t>(*perms) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001731 return tosa::CreateTransposeAttribute(
1732 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001733 perms__);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001734}
1735
1736struct TableAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1737 typedef TableAttributeBuilder Builder;
1738 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1739 VT_TABLE = 4
1740 };
TatWai Chong7be71652022-05-10 17:26:20 -07001741 const flatbuffers::Vector<int16_t> *table() const {
1742 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_TABLE);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001743 }
1744 bool Verify(flatbuffers::Verifier &verifier) const {
1745 return VerifyTableStart(verifier) &&
1746 VerifyOffset(verifier, VT_TABLE) &&
1747 verifier.VerifyVector(table()) &&
1748 verifier.EndTable();
1749 }
1750};
1751
1752struct TableAttributeBuilder {
1753 typedef TableAttribute Table;
1754 flatbuffers::FlatBufferBuilder &fbb_;
1755 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001756 void add_table(flatbuffers::Offset<flatbuffers::Vector<int16_t>> table) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001757 fbb_.AddOffset(TableAttribute::VT_TABLE, table);
1758 }
1759 explicit TableAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1760 : fbb_(_fbb) {
1761 start_ = fbb_.StartTable();
1762 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001763 TableAttributeBuilder &operator=(const TableAttributeBuilder &);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001764 flatbuffers::Offset<TableAttribute> Finish() {
1765 const auto end = fbb_.EndTable(start_);
1766 auto o = flatbuffers::Offset<TableAttribute>(end);
1767 return o;
1768 }
1769};
1770
1771inline flatbuffers::Offset<TableAttribute> CreateTableAttribute(
1772 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001773 flatbuffers::Offset<flatbuffers::Vector<int16_t>> table = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001774 TableAttributeBuilder builder_(_fbb);
1775 builder_.add_table(table);
1776 return builder_.Finish();
1777}
1778
1779inline flatbuffers::Offset<TableAttribute> CreateTableAttributeDirect(
1780 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001781 const std::vector<int16_t> *table = nullptr) {
1782 auto table__ = table ? _fbb.CreateVector<int16_t>(*table) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001783 return tosa::CreateTableAttribute(
1784 _fbb,
1785 table__);
1786}
1787
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001788struct MatMulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1789 typedef MatMulAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001790 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1791 VT_A_ZP = 4,
1792 VT_B_ZP = 6
1793 };
1794 int32_t a_zp() const {
1795 return GetField<int32_t>(VT_A_ZP, 0);
1796 }
1797 int32_t b_zp() const {
1798 return GetField<int32_t>(VT_B_ZP, 0);
1799 }
1800 bool Verify(flatbuffers::Verifier &verifier) const {
1801 return VerifyTableStart(verifier) &&
1802 VerifyField<int32_t>(verifier, VT_A_ZP) &&
1803 VerifyField<int32_t>(verifier, VT_B_ZP) &&
1804 verifier.EndTable();
1805 }
1806};
1807
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001808struct MatMulAttributeBuilder {
1809 typedef MatMulAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001810 flatbuffers::FlatBufferBuilder &fbb_;
1811 flatbuffers::uoffset_t start_;
1812 void add_a_zp(int32_t a_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001813 fbb_.AddElement<int32_t>(MatMulAttribute::VT_A_ZP, a_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001814 }
1815 void add_b_zp(int32_t b_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001816 fbb_.AddElement<int32_t>(MatMulAttribute::VT_B_ZP, b_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001817 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001818 explicit MatMulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -07001819 : fbb_(_fbb) {
1820 start_ = fbb_.StartTable();
1821 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001822 MatMulAttributeBuilder &operator=(const MatMulAttributeBuilder &);
1823 flatbuffers::Offset<MatMulAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001824 const auto end = fbb_.EndTable(start_);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001825 auto o = flatbuffers::Offset<MatMulAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001826 return o;
1827 }
1828};
1829
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001830inline flatbuffers::Offset<MatMulAttribute> CreateMatMulAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -07001831 flatbuffers::FlatBufferBuilder &_fbb,
1832 int32_t a_zp = 0,
1833 int32_t b_zp = 0) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001834 MatMulAttributeBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001835 builder_.add_b_zp(b_zp);
1836 builder_.add_a_zp(a_zp);
1837 return builder_.Finish();
1838}
1839
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001840struct FullyConnectedAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1841 typedef FullyConnectedAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001842 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001843 VT_INPUT_ZP = 4,
1844 VT_WEIGHT_ZP = 6
Eric Kunze2364dcd2021-04-26 11:06:57 -07001845 };
1846 int32_t input_zp() const {
1847 return GetField<int32_t>(VT_INPUT_ZP, 0);
1848 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001849 int32_t weight_zp() const {
1850 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
1851 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001852 bool Verify(flatbuffers::Verifier &verifier) const {
1853 return VerifyTableStart(verifier) &&
1854 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001855 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001856 verifier.EndTable();
1857 }
1858};
1859
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001860struct FullyConnectedAttributeBuilder {
1861 typedef FullyConnectedAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001862 flatbuffers::FlatBufferBuilder &fbb_;
1863 flatbuffers::uoffset_t start_;
1864 void add_input_zp(int32_t input_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001865 fbb_.AddElement<int32_t>(FullyConnectedAttribute::VT_INPUT_ZP, input_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001866 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001867 void add_weight_zp(int32_t weight_zp) {
1868 fbb_.AddElement<int32_t>(FullyConnectedAttribute::VT_WEIGHT_ZP, weight_zp, 0);
1869 }
1870 explicit FullyConnectedAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -07001871 : fbb_(_fbb) {
1872 start_ = fbb_.StartTable();
1873 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001874 FullyConnectedAttributeBuilder &operator=(const FullyConnectedAttributeBuilder &);
1875 flatbuffers::Offset<FullyConnectedAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001876 const auto end = fbb_.EndTable(start_);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001877 auto o = flatbuffers::Offset<FullyConnectedAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001878 return o;
1879 }
1880};
1881
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001882inline flatbuffers::Offset<FullyConnectedAttribute> CreateFullyConnectedAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -07001883 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001884 int32_t input_zp = 0,
1885 int32_t weight_zp = 0) {
1886 FullyConnectedAttributeBuilder builder_(_fbb);
1887 builder_.add_weight_zp(weight_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001888 builder_.add_input_zp(input_zp);
1889 return builder_.Finish();
1890}
1891
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001892struct NegateAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1893 typedef NegateAttributeBuilder Builder;
1894 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1895 VT_INPUT1_ZP = 4,
1896 VT_OUTPUT_ZP = 6
1897 };
1898 int32_t input1_zp() const {
1899 return GetField<int32_t>(VT_INPUT1_ZP, 0);
1900 }
1901 int32_t output_zp() const {
1902 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1903 }
1904 bool Verify(flatbuffers::Verifier &verifier) const {
1905 return VerifyTableStart(verifier) &&
1906 VerifyField<int32_t>(verifier, VT_INPUT1_ZP) &&
1907 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP) &&
1908 verifier.EndTable();
1909 }
1910};
1911
1912struct NegateAttributeBuilder {
1913 typedef NegateAttribute Table;
1914 flatbuffers::FlatBufferBuilder &fbb_;
1915 flatbuffers::uoffset_t start_;
1916 void add_input1_zp(int32_t input1_zp) {
1917 fbb_.AddElement<int32_t>(NegateAttribute::VT_INPUT1_ZP, input1_zp, 0);
1918 }
1919 void add_output_zp(int32_t output_zp) {
1920 fbb_.AddElement<int32_t>(NegateAttribute::VT_OUTPUT_ZP, output_zp, 0);
1921 }
1922 explicit NegateAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1923 : fbb_(_fbb) {
1924 start_ = fbb_.StartTable();
1925 }
1926 NegateAttributeBuilder &operator=(const NegateAttributeBuilder &);
1927 flatbuffers::Offset<NegateAttribute> Finish() {
1928 const auto end = fbb_.EndTable(start_);
1929 auto o = flatbuffers::Offset<NegateAttribute>(end);
1930 return o;
1931 }
1932};
1933
1934inline flatbuffers::Offset<NegateAttribute> CreateNegateAttribute(
1935 flatbuffers::FlatBufferBuilder &_fbb,
1936 int32_t input1_zp = 0,
1937 int32_t output_zp = 0) {
1938 NegateAttributeBuilder builder_(_fbb);
1939 builder_.add_output_zp(output_zp);
1940 builder_.add_input1_zp(input1_zp);
1941 return builder_.Finish();
1942}
1943
Eric Kunze2364dcd2021-04-26 11:06:57 -07001944struct Version FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1945 typedef VersionBuilder Builder;
1946 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1947 VT__MAJOR = 4,
1948 VT__MINOR = 6,
1949 VT__PATCH = 8,
Kevin Chengb97cb1d2021-10-14 11:53:39 -07001950 VT__DRAFT = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07001951 };
1952 int32_t _major() const {
1953 return GetField<int32_t>(VT__MAJOR, 0);
1954 }
1955 int32_t _minor() const {
Eric Kunzeb2fdef22022-08-29 11:53:18 -07001956 return GetField<int32_t>(VT__MINOR, 40);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001957 }
1958 int32_t _patch() const {
1959 return GetField<int32_t>(VT__PATCH, 0);
1960 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07001961 bool _draft() const {
Eric Kunze011a3332022-08-30 21:12:01 +00001962 return GetField<uint8_t>(VT__DRAFT, 0) != 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001963 }
1964 bool Verify(flatbuffers::Verifier &verifier) const {
1965 return VerifyTableStart(verifier) &&
1966 VerifyField<int32_t>(verifier, VT__MAJOR) &&
1967 VerifyField<int32_t>(verifier, VT__MINOR) &&
1968 VerifyField<int32_t>(verifier, VT__PATCH) &&
Kevin Chengb97cb1d2021-10-14 11:53:39 -07001969 VerifyField<uint8_t>(verifier, VT__DRAFT) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001970 verifier.EndTable();
1971 }
1972};
1973
1974struct VersionBuilder {
1975 typedef Version Table;
1976 flatbuffers::FlatBufferBuilder &fbb_;
1977 flatbuffers::uoffset_t start_;
1978 void add__major(int32_t _major) {
1979 fbb_.AddElement<int32_t>(Version::VT__MAJOR, _major, 0);
1980 }
1981 void add__minor(int32_t _minor) {
Eric Kunzeb2fdef22022-08-29 11:53:18 -07001982 fbb_.AddElement<int32_t>(Version::VT__MINOR, _minor, 40);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001983 }
1984 void add__patch(int32_t _patch) {
1985 fbb_.AddElement<int32_t>(Version::VT__PATCH, _patch, 0);
1986 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07001987 void add__draft(bool _draft) {
Eric Kunze011a3332022-08-30 21:12:01 +00001988 fbb_.AddElement<uint8_t>(Version::VT__DRAFT, static_cast<uint8_t>(_draft), 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001989 }
1990 explicit VersionBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1991 : fbb_(_fbb) {
1992 start_ = fbb_.StartTable();
1993 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001994 VersionBuilder &operator=(const VersionBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001995 flatbuffers::Offset<Version> Finish() {
1996 const auto end = fbb_.EndTable(start_);
1997 auto o = flatbuffers::Offset<Version>(end);
1998 return o;
1999 }
2000};
2001
2002inline flatbuffers::Offset<Version> CreateVersion(
2003 flatbuffers::FlatBufferBuilder &_fbb,
2004 int32_t _major = 0,
Eric Kunzeb2fdef22022-08-29 11:53:18 -07002005 int32_t _minor = 40,
Eric Kunze2364dcd2021-04-26 11:06:57 -07002006 int32_t _patch = 0,
Eric Kunze011a3332022-08-30 21:12:01 +00002007 bool _draft = false) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002008 VersionBuilder builder_(_fbb);
2009 builder_.add__patch(_patch);
2010 builder_.add__minor(_minor);
2011 builder_.add__major(_major);
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002012 builder_.add__draft(_draft);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002013 return builder_.Finish();
2014}
2015
2016struct TosaTensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2017 typedef TosaTensorBuilder Builder;
2018 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2019 VT_NAME = 4,
2020 VT_SHAPE = 6,
2021 VT_TYPE = 8,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002022 VT_DATA = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07002023 };
2024 const flatbuffers::String *name() const {
2025 return GetPointer<const flatbuffers::String *>(VT_NAME);
2026 }
2027 const flatbuffers::Vector<int32_t> *shape() const {
2028 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHAPE);
2029 }
2030 tosa::DType type() const {
2031 return static_cast<tosa::DType>(GetField<uint32_t>(VT_TYPE, 0));
2032 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002033 const flatbuffers::Vector<uint8_t> *data() const {
2034 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_DATA);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002035 }
2036 bool Verify(flatbuffers::Verifier &verifier) const {
2037 return VerifyTableStart(verifier) &&
2038 VerifyOffset(verifier, VT_NAME) &&
2039 verifier.VerifyString(name()) &&
2040 VerifyOffset(verifier, VT_SHAPE) &&
2041 verifier.VerifyVector(shape()) &&
2042 VerifyField<uint32_t>(verifier, VT_TYPE) &&
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002043 VerifyOffset(verifier, VT_DATA) &&
2044 verifier.VerifyVector(data()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002045 verifier.EndTable();
2046 }
2047};
2048
2049struct TosaTensorBuilder {
2050 typedef TosaTensor Table;
2051 flatbuffers::FlatBufferBuilder &fbb_;
2052 flatbuffers::uoffset_t start_;
2053 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2054 fbb_.AddOffset(TosaTensor::VT_NAME, name);
2055 }
2056 void add_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape) {
2057 fbb_.AddOffset(TosaTensor::VT_SHAPE, shape);
2058 }
2059 void add_type(tosa::DType type) {
2060 fbb_.AddElement<uint32_t>(TosaTensor::VT_TYPE, static_cast<uint32_t>(type), 0);
2061 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002062 void add_data(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data) {
2063 fbb_.AddOffset(TosaTensor::VT_DATA, data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002064 }
2065 explicit TosaTensorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2066 : fbb_(_fbb) {
2067 start_ = fbb_.StartTable();
2068 }
Eric Kunzeae906de2022-05-30 22:40:47 -07002069 TosaTensorBuilder &operator=(const TosaTensorBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002070 flatbuffers::Offset<TosaTensor> Finish() {
2071 const auto end = fbb_.EndTable(start_);
2072 auto o = flatbuffers::Offset<TosaTensor>(end);
2073 return o;
2074 }
2075};
2076
2077inline flatbuffers::Offset<TosaTensor> CreateTosaTensor(
2078 flatbuffers::FlatBufferBuilder &_fbb,
2079 flatbuffers::Offset<flatbuffers::String> name = 0,
2080 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape = 0,
2081 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002082 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002083 TosaTensorBuilder builder_(_fbb);
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002084 builder_.add_data(data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002085 builder_.add_type(type);
2086 builder_.add_shape(shape);
2087 builder_.add_name(name);
2088 return builder_.Finish();
2089}
2090
2091inline flatbuffers::Offset<TosaTensor> CreateTosaTensorDirect(
2092 flatbuffers::FlatBufferBuilder &_fbb,
2093 const char *name = nullptr,
2094 const std::vector<int32_t> *shape = nullptr,
2095 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002096 const std::vector<uint8_t> *data = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002097 auto name__ = name ? _fbb.CreateString(name) : 0;
2098 auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0;
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002099 if (data) { _fbb.ForceVectorAlignment(data->size(), sizeof(uint8_t), 8); }
2100 auto data__ = data ? _fbb.CreateVector<uint8_t>(*data) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002101 return tosa::CreateTosaTensor(
2102 _fbb,
2103 name__,
2104 shape__,
2105 type,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002106 data__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002107}
2108
2109struct TosaOperator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2110 typedef TosaOperatorBuilder Builder;
2111 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2112 VT_OP = 4,
2113 VT_ATTRIBUTE_TYPE = 6,
2114 VT_ATTRIBUTE = 8,
2115 VT_INPUTS = 10,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002116 VT_OUTPUTS = 12
Eric Kunze2364dcd2021-04-26 11:06:57 -07002117 };
2118 tosa::Op op() const {
2119 return static_cast<tosa::Op>(GetField<uint32_t>(VT_OP, 0));
2120 }
2121 tosa::Attribute attribute_type() const {
2122 return static_cast<tosa::Attribute>(GetField<uint8_t>(VT_ATTRIBUTE_TYPE, 0));
2123 }
2124 const void *attribute() const {
2125 return GetPointer<const void *>(VT_ATTRIBUTE);
2126 }
2127 template<typename T> const T *attribute_as() const;
Kevin Cheng79a41992021-08-31 16:04:40 -07002128 const tosa::PoolAttribute *attribute_as_PoolAttribute() const {
2129 return attribute_type() == tosa::Attribute_PoolAttribute ? static_cast<const tosa::PoolAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002130 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002131 const tosa::ConvAttribute *attribute_as_ConvAttribute() const {
2132 return attribute_type() == tosa::Attribute_ConvAttribute ? static_cast<const tosa::ConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002133 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002134 const tosa::TransposeConvAttribute *attribute_as_TransposeConvAttribute() const {
2135 return attribute_type() == tosa::Attribute_TransposeConvAttribute ? static_cast<const tosa::TransposeConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002136 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002137 const tosa::PadAttribute *attribute_as_PadAttribute() const {
2138 return attribute_type() == tosa::Attribute_PadAttribute ? static_cast<const tosa::PadAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002139 }
2140 const tosa::AxisAttribute *attribute_as_AxisAttribute() const {
2141 return attribute_type() == tosa::Attribute_AxisAttribute ? static_cast<const tosa::AxisAttribute *>(attribute()) : nullptr;
2142 }
2143 const tosa::ReshapeAttribute *attribute_as_ReshapeAttribute() const {
2144 return attribute_type() == tosa::Attribute_ReshapeAttribute ? static_cast<const tosa::ReshapeAttribute *>(attribute()) : nullptr;
2145 }
2146 const tosa::SliceAttribute *attribute_as_SliceAttribute() const {
2147 return attribute_type() == tosa::Attribute_SliceAttribute ? static_cast<const tosa::SliceAttribute *>(attribute()) : nullptr;
2148 }
2149 const tosa::TileAttribute *attribute_as_TileAttribute() const {
2150 return attribute_type() == tosa::Attribute_TileAttribute ? static_cast<const tosa::TileAttribute *>(attribute()) : nullptr;
2151 }
2152 const tosa::ResizeAttribute *attribute_as_ResizeAttribute() const {
2153 return attribute_type() == tosa::Attribute_ResizeAttribute ? static_cast<const tosa::ResizeAttribute *>(attribute()) : nullptr;
2154 }
2155 const tosa::ClampAttribute *attribute_as_ClampAttribute() const {
2156 return attribute_type() == tosa::Attribute_ClampAttribute ? static_cast<const tosa::ClampAttribute *>(attribute()) : nullptr;
2157 }
2158 const tosa::RescaleAttribute *attribute_as_RescaleAttribute() const {
2159 return attribute_type() == tosa::Attribute_RescaleAttribute ? static_cast<const tosa::RescaleAttribute *>(attribute()) : nullptr;
2160 }
2161 const tosa::MulAttribute *attribute_as_MulAttribute() const {
2162 return attribute_type() == tosa::Attribute_MulAttribute ? static_cast<const tosa::MulAttribute *>(attribute()) : nullptr;
2163 }
2164 const tosa::ArithmeticRightShiftAttribute *attribute_as_ArithmeticRightShiftAttribute() const {
2165 return attribute_type() == tosa::Attribute_ArithmeticRightShiftAttribute ? static_cast<const tosa::ArithmeticRightShiftAttribute *>(attribute()) : nullptr;
2166 }
2167 const tosa::CondIfAttribute *attribute_as_CondIfAttribute() const {
2168 return attribute_type() == tosa::Attribute_CondIfAttribute ? static_cast<const tosa::CondIfAttribute *>(attribute()) : nullptr;
2169 }
2170 const tosa::WhileLoopAttribute *attribute_as_WhileLoopAttribute() const {
2171 return attribute_type() == tosa::Attribute_WhileLoopAttribute ? static_cast<const tosa::WhileLoopAttribute *>(attribute()) : nullptr;
2172 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002173 const tosa::TransposeAttribute *attribute_as_TransposeAttribute() const {
2174 return attribute_type() == tosa::Attribute_TransposeAttribute ? static_cast<const tosa::TransposeAttribute *>(attribute()) : nullptr;
2175 }
2176 const tosa::TableAttribute *attribute_as_TableAttribute() const {
2177 return attribute_type() == tosa::Attribute_TableAttribute ? static_cast<const tosa::TableAttribute *>(attribute()) : nullptr;
2178 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002179 const tosa::MatMulAttribute *attribute_as_MatMulAttribute() const {
2180 return attribute_type() == tosa::Attribute_MatMulAttribute ? static_cast<const tosa::MatMulAttribute *>(attribute()) : nullptr;
2181 }
2182 const tosa::FullyConnectedAttribute *attribute_as_FullyConnectedAttribute() const {
2183 return attribute_type() == tosa::Attribute_FullyConnectedAttribute ? static_cast<const tosa::FullyConnectedAttribute *>(attribute()) : nullptr;
2184 }
2185 const tosa::NegateAttribute *attribute_as_NegateAttribute() const {
2186 return attribute_type() == tosa::Attribute_NegateAttribute ? static_cast<const tosa::NegateAttribute *>(attribute()) : nullptr;
2187 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002188 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2189 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2190 }
2191 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2192 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2193 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002194 bool Verify(flatbuffers::Verifier &verifier) const {
2195 return VerifyTableStart(verifier) &&
2196 VerifyField<uint32_t>(verifier, VT_OP) &&
2197 VerifyField<uint8_t>(verifier, VT_ATTRIBUTE_TYPE) &&
2198 VerifyOffset(verifier, VT_ATTRIBUTE) &&
2199 VerifyAttribute(verifier, attribute(), attribute_type()) &&
2200 VerifyOffset(verifier, VT_INPUTS) &&
2201 verifier.VerifyVector(inputs()) &&
2202 verifier.VerifyVectorOfStrings(inputs()) &&
2203 VerifyOffset(verifier, VT_OUTPUTS) &&
2204 verifier.VerifyVector(outputs()) &&
2205 verifier.VerifyVectorOfStrings(outputs()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002206 verifier.EndTable();
2207 }
2208};
2209
Kevin Cheng79a41992021-08-31 16:04:40 -07002210template<> inline const tosa::PoolAttribute *TosaOperator::attribute_as<tosa::PoolAttribute>() const {
2211 return attribute_as_PoolAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002212}
2213
Kevin Cheng79a41992021-08-31 16:04:40 -07002214template<> inline const tosa::ConvAttribute *TosaOperator::attribute_as<tosa::ConvAttribute>() const {
2215 return attribute_as_ConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002216}
2217
Kevin Cheng79a41992021-08-31 16:04:40 -07002218template<> inline const tosa::TransposeConvAttribute *TosaOperator::attribute_as<tosa::TransposeConvAttribute>() const {
2219 return attribute_as_TransposeConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002220}
2221
Kevin Cheng38d214c2021-10-15 15:49:19 -07002222template<> inline const tosa::PadAttribute *TosaOperator::attribute_as<tosa::PadAttribute>() const {
2223 return attribute_as_PadAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002224}
2225
2226template<> inline const tosa::AxisAttribute *TosaOperator::attribute_as<tosa::AxisAttribute>() const {
2227 return attribute_as_AxisAttribute();
2228}
2229
2230template<> inline const tosa::ReshapeAttribute *TosaOperator::attribute_as<tosa::ReshapeAttribute>() const {
2231 return attribute_as_ReshapeAttribute();
2232}
2233
2234template<> inline const tosa::SliceAttribute *TosaOperator::attribute_as<tosa::SliceAttribute>() const {
2235 return attribute_as_SliceAttribute();
2236}
2237
2238template<> inline const tosa::TileAttribute *TosaOperator::attribute_as<tosa::TileAttribute>() const {
2239 return attribute_as_TileAttribute();
2240}
2241
2242template<> inline const tosa::ResizeAttribute *TosaOperator::attribute_as<tosa::ResizeAttribute>() const {
2243 return attribute_as_ResizeAttribute();
2244}
2245
2246template<> inline const tosa::ClampAttribute *TosaOperator::attribute_as<tosa::ClampAttribute>() const {
2247 return attribute_as_ClampAttribute();
2248}
2249
2250template<> inline const tosa::RescaleAttribute *TosaOperator::attribute_as<tosa::RescaleAttribute>() const {
2251 return attribute_as_RescaleAttribute();
2252}
2253
2254template<> inline const tosa::MulAttribute *TosaOperator::attribute_as<tosa::MulAttribute>() const {
2255 return attribute_as_MulAttribute();
2256}
2257
2258template<> inline const tosa::ArithmeticRightShiftAttribute *TosaOperator::attribute_as<tosa::ArithmeticRightShiftAttribute>() const {
2259 return attribute_as_ArithmeticRightShiftAttribute();
2260}
2261
2262template<> inline const tosa::CondIfAttribute *TosaOperator::attribute_as<tosa::CondIfAttribute>() const {
2263 return attribute_as_CondIfAttribute();
2264}
2265
2266template<> inline const tosa::WhileLoopAttribute *TosaOperator::attribute_as<tosa::WhileLoopAttribute>() const {
2267 return attribute_as_WhileLoopAttribute();
2268}
2269
Kevin Cheng38d214c2021-10-15 15:49:19 -07002270template<> inline const tosa::TransposeAttribute *TosaOperator::attribute_as<tosa::TransposeAttribute>() const {
2271 return attribute_as_TransposeAttribute();
2272}
2273
2274template<> inline const tosa::TableAttribute *TosaOperator::attribute_as<tosa::TableAttribute>() const {
2275 return attribute_as_TableAttribute();
2276}
2277
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002278template<> inline const tosa::MatMulAttribute *TosaOperator::attribute_as<tosa::MatMulAttribute>() const {
2279 return attribute_as_MatMulAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002280}
2281
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002282template<> inline const tosa::FullyConnectedAttribute *TosaOperator::attribute_as<tosa::FullyConnectedAttribute>() const {
2283 return attribute_as_FullyConnectedAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002284}
2285
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002286template<> inline const tosa::NegateAttribute *TosaOperator::attribute_as<tosa::NegateAttribute>() const {
2287 return attribute_as_NegateAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002288}
2289
2290struct TosaOperatorBuilder {
2291 typedef TosaOperator Table;
2292 flatbuffers::FlatBufferBuilder &fbb_;
2293 flatbuffers::uoffset_t start_;
2294 void add_op(tosa::Op op) {
2295 fbb_.AddElement<uint32_t>(TosaOperator::VT_OP, static_cast<uint32_t>(op), 0);
2296 }
2297 void add_attribute_type(tosa::Attribute attribute_type) {
2298 fbb_.AddElement<uint8_t>(TosaOperator::VT_ATTRIBUTE_TYPE, static_cast<uint8_t>(attribute_type), 0);
2299 }
2300 void add_attribute(flatbuffers::Offset<void> attribute) {
2301 fbb_.AddOffset(TosaOperator::VT_ATTRIBUTE, attribute);
2302 }
2303 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2304 fbb_.AddOffset(TosaOperator::VT_INPUTS, inputs);
2305 }
2306 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2307 fbb_.AddOffset(TosaOperator::VT_OUTPUTS, outputs);
2308 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002309 explicit TosaOperatorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2310 : fbb_(_fbb) {
2311 start_ = fbb_.StartTable();
2312 }
Eric Kunzeae906de2022-05-30 22:40:47 -07002313 TosaOperatorBuilder &operator=(const TosaOperatorBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002314 flatbuffers::Offset<TosaOperator> Finish() {
2315 const auto end = fbb_.EndTable(start_);
2316 auto o = flatbuffers::Offset<TosaOperator>(end);
2317 return o;
2318 }
2319};
2320
2321inline flatbuffers::Offset<TosaOperator> CreateTosaOperator(
2322 flatbuffers::FlatBufferBuilder &_fbb,
2323 tosa::Op op = tosa::Op_UNKNOWN,
2324 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2325 flatbuffers::Offset<void> attribute = 0,
2326 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002327 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002328 TosaOperatorBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002329 builder_.add_outputs(outputs);
2330 builder_.add_inputs(inputs);
2331 builder_.add_attribute(attribute);
2332 builder_.add_op(op);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002333 builder_.add_attribute_type(attribute_type);
2334 return builder_.Finish();
2335}
2336
2337inline flatbuffers::Offset<TosaOperator> CreateTosaOperatorDirect(
2338 flatbuffers::FlatBufferBuilder &_fbb,
2339 tosa::Op op = tosa::Op_UNKNOWN,
2340 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2341 flatbuffers::Offset<void> attribute = 0,
2342 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002343 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002344 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2345 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2346 return tosa::CreateTosaOperator(
2347 _fbb,
2348 op,
2349 attribute_type,
2350 attribute,
2351 inputs__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002352 outputs__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002353}
2354
2355struct TosaBasicBlock FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2356 typedef TosaBasicBlockBuilder Builder;
2357 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2358 VT_NAME = 4,
2359 VT_OPERATORS = 6,
2360 VT_TENSORS = 8,
2361 VT_INPUTS = 10,
2362 VT_OUTPUTS = 12
2363 };
2364 const flatbuffers::String *name() const {
2365 return GetPointer<const flatbuffers::String *>(VT_NAME);
2366 }
2367 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *operators() const {
2368 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *>(VT_OPERATORS);
2369 }
2370 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors() const {
2371 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *>(VT_TENSORS);
2372 }
2373 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2374 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2375 }
2376 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2377 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2378 }
2379 bool Verify(flatbuffers::Verifier &verifier) const {
2380 return VerifyTableStart(verifier) &&
2381 VerifyOffset(verifier, VT_NAME) &&
2382 verifier.VerifyString(name()) &&
2383 VerifyOffset(verifier, VT_OPERATORS) &&
2384 verifier.VerifyVector(operators()) &&
2385 verifier.VerifyVectorOfTables(operators()) &&
2386 VerifyOffset(verifier, VT_TENSORS) &&
2387 verifier.VerifyVector(tensors()) &&
2388 verifier.VerifyVectorOfTables(tensors()) &&
2389 VerifyOffset(verifier, VT_INPUTS) &&
2390 verifier.VerifyVector(inputs()) &&
2391 verifier.VerifyVectorOfStrings(inputs()) &&
2392 VerifyOffset(verifier, VT_OUTPUTS) &&
2393 verifier.VerifyVector(outputs()) &&
2394 verifier.VerifyVectorOfStrings(outputs()) &&
2395 verifier.EndTable();
2396 }
2397};
2398
2399struct TosaBasicBlockBuilder {
2400 typedef TosaBasicBlock Table;
2401 flatbuffers::FlatBufferBuilder &fbb_;
2402 flatbuffers::uoffset_t start_;
2403 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2404 fbb_.AddOffset(TosaBasicBlock::VT_NAME, name);
2405 }
2406 void add_operators(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators) {
2407 fbb_.AddOffset(TosaBasicBlock::VT_OPERATORS, operators);
2408 }
2409 void add_tensors(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors) {
2410 fbb_.AddOffset(TosaBasicBlock::VT_TENSORS, tensors);
2411 }
2412 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2413 fbb_.AddOffset(TosaBasicBlock::VT_INPUTS, inputs);
2414 }
2415 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2416 fbb_.AddOffset(TosaBasicBlock::VT_OUTPUTS, outputs);
2417 }
2418 explicit TosaBasicBlockBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2419 : fbb_(_fbb) {
2420 start_ = fbb_.StartTable();
2421 }
Eric Kunzeae906de2022-05-30 22:40:47 -07002422 TosaBasicBlockBuilder &operator=(const TosaBasicBlockBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002423 flatbuffers::Offset<TosaBasicBlock> Finish() {
2424 const auto end = fbb_.EndTable(start_);
2425 auto o = flatbuffers::Offset<TosaBasicBlock>(end);
2426 return o;
2427 }
2428};
2429
2430inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlock(
2431 flatbuffers::FlatBufferBuilder &_fbb,
2432 flatbuffers::Offset<flatbuffers::String> name = 0,
2433 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators = 0,
2434 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors = 0,
2435 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
2436 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
2437 TosaBasicBlockBuilder builder_(_fbb);
2438 builder_.add_outputs(outputs);
2439 builder_.add_inputs(inputs);
2440 builder_.add_tensors(tensors);
2441 builder_.add_operators(operators);
2442 builder_.add_name(name);
2443 return builder_.Finish();
2444}
2445
2446inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlockDirect(
2447 flatbuffers::FlatBufferBuilder &_fbb,
2448 const char *name = nullptr,
2449 const std::vector<flatbuffers::Offset<tosa::TosaOperator>> *operators = nullptr,
2450 const std::vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors = nullptr,
2451 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
2452 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
2453 auto name__ = name ? _fbb.CreateString(name) : 0;
2454 auto operators__ = operators ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaOperator>>(*operators) : 0;
2455 auto tensors__ = tensors ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaTensor>>(*tensors) : 0;
2456 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2457 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2458 return tosa::CreateTosaBasicBlock(
2459 _fbb,
2460 name__,
2461 operators__,
2462 tensors__,
2463 inputs__,
2464 outputs__);
2465}
2466
2467struct TosaGraph FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2468 typedef TosaGraphBuilder Builder;
2469 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2470 VT_VERSION = 4,
2471 VT_BLOCKS = 6
2472 };
2473 const tosa::Version *version() const {
2474 return GetPointer<const tosa::Version *>(VT_VERSION);
2475 }
2476 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks() const {
2477 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *>(VT_BLOCKS);
2478 }
2479 bool Verify(flatbuffers::Verifier &verifier) const {
2480 return VerifyTableStart(verifier) &&
2481 VerifyOffset(verifier, VT_VERSION) &&
2482 verifier.VerifyTable(version()) &&
2483 VerifyOffset(verifier, VT_BLOCKS) &&
2484 verifier.VerifyVector(blocks()) &&
2485 verifier.VerifyVectorOfTables(blocks()) &&
2486 verifier.EndTable();
2487 }
2488};
2489
2490struct TosaGraphBuilder {
2491 typedef TosaGraph Table;
2492 flatbuffers::FlatBufferBuilder &fbb_;
2493 flatbuffers::uoffset_t start_;
2494 void add_version(flatbuffers::Offset<tosa::Version> version) {
2495 fbb_.AddOffset(TosaGraph::VT_VERSION, version);
2496 }
2497 void add_blocks(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks) {
2498 fbb_.AddOffset(TosaGraph::VT_BLOCKS, blocks);
2499 }
2500 explicit TosaGraphBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2501 : fbb_(_fbb) {
2502 start_ = fbb_.StartTable();
2503 }
Eric Kunzeae906de2022-05-30 22:40:47 -07002504 TosaGraphBuilder &operator=(const TosaGraphBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002505 flatbuffers::Offset<TosaGraph> Finish() {
2506 const auto end = fbb_.EndTable(start_);
2507 auto o = flatbuffers::Offset<TosaGraph>(end);
2508 return o;
2509 }
2510};
2511
2512inline flatbuffers::Offset<TosaGraph> CreateTosaGraph(
2513 flatbuffers::FlatBufferBuilder &_fbb,
2514 flatbuffers::Offset<tosa::Version> version = 0,
2515 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks = 0) {
2516 TosaGraphBuilder builder_(_fbb);
2517 builder_.add_blocks(blocks);
2518 builder_.add_version(version);
2519 return builder_.Finish();
2520}
2521
2522inline flatbuffers::Offset<TosaGraph> CreateTosaGraphDirect(
2523 flatbuffers::FlatBufferBuilder &_fbb,
2524 flatbuffers::Offset<tosa::Version> version = 0,
2525 const std::vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks = nullptr) {
2526 auto blocks__ = blocks ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaBasicBlock>>(*blocks) : 0;
2527 return tosa::CreateTosaGraph(
2528 _fbb,
2529 version,
2530 blocks__);
2531}
2532
2533inline bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type) {
2534 switch (type) {
2535 case Attribute_NONE: {
2536 return true;
2537 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002538 case Attribute_PoolAttribute: {
2539 auto ptr = reinterpret_cast<const tosa::PoolAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002540 return verifier.VerifyTable(ptr);
2541 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002542 case Attribute_ConvAttribute: {
2543 auto ptr = reinterpret_cast<const tosa::ConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002544 return verifier.VerifyTable(ptr);
2545 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002546 case Attribute_TransposeConvAttribute: {
2547 auto ptr = reinterpret_cast<const tosa::TransposeConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002548 return verifier.VerifyTable(ptr);
2549 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002550 case Attribute_PadAttribute: {
2551 auto ptr = reinterpret_cast<const tosa::PadAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002552 return verifier.VerifyTable(ptr);
2553 }
2554 case Attribute_AxisAttribute: {
2555 auto ptr = reinterpret_cast<const tosa::AxisAttribute *>(obj);
2556 return verifier.VerifyTable(ptr);
2557 }
2558 case Attribute_ReshapeAttribute: {
2559 auto ptr = reinterpret_cast<const tosa::ReshapeAttribute *>(obj);
2560 return verifier.VerifyTable(ptr);
2561 }
2562 case Attribute_SliceAttribute: {
2563 auto ptr = reinterpret_cast<const tosa::SliceAttribute *>(obj);
2564 return verifier.VerifyTable(ptr);
2565 }
2566 case Attribute_TileAttribute: {
2567 auto ptr = reinterpret_cast<const tosa::TileAttribute *>(obj);
2568 return verifier.VerifyTable(ptr);
2569 }
2570 case Attribute_ResizeAttribute: {
2571 auto ptr = reinterpret_cast<const tosa::ResizeAttribute *>(obj);
2572 return verifier.VerifyTable(ptr);
2573 }
2574 case Attribute_ClampAttribute: {
2575 auto ptr = reinterpret_cast<const tosa::ClampAttribute *>(obj);
2576 return verifier.VerifyTable(ptr);
2577 }
2578 case Attribute_RescaleAttribute: {
2579 auto ptr = reinterpret_cast<const tosa::RescaleAttribute *>(obj);
2580 return verifier.VerifyTable(ptr);
2581 }
2582 case Attribute_MulAttribute: {
2583 auto ptr = reinterpret_cast<const tosa::MulAttribute *>(obj);
2584 return verifier.VerifyTable(ptr);
2585 }
2586 case Attribute_ArithmeticRightShiftAttribute: {
2587 auto ptr = reinterpret_cast<const tosa::ArithmeticRightShiftAttribute *>(obj);
2588 return verifier.VerifyTable(ptr);
2589 }
2590 case Attribute_CondIfAttribute: {
2591 auto ptr = reinterpret_cast<const tosa::CondIfAttribute *>(obj);
2592 return verifier.VerifyTable(ptr);
2593 }
2594 case Attribute_WhileLoopAttribute: {
2595 auto ptr = reinterpret_cast<const tosa::WhileLoopAttribute *>(obj);
2596 return verifier.VerifyTable(ptr);
2597 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002598 case Attribute_TransposeAttribute: {
2599 auto ptr = reinterpret_cast<const tosa::TransposeAttribute *>(obj);
2600 return verifier.VerifyTable(ptr);
2601 }
2602 case Attribute_TableAttribute: {
2603 auto ptr = reinterpret_cast<const tosa::TableAttribute *>(obj);
2604 return verifier.VerifyTable(ptr);
2605 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002606 case Attribute_MatMulAttribute: {
2607 auto ptr = reinterpret_cast<const tosa::MatMulAttribute *>(obj);
2608 return verifier.VerifyTable(ptr);
2609 }
2610 case Attribute_FullyConnectedAttribute: {
2611 auto ptr = reinterpret_cast<const tosa::FullyConnectedAttribute *>(obj);
2612 return verifier.VerifyTable(ptr);
2613 }
2614 case Attribute_NegateAttribute: {
2615 auto ptr = reinterpret_cast<const tosa::NegateAttribute *>(obj);
2616 return verifier.VerifyTable(ptr);
2617 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002618 default: return true;
2619 }
2620}
2621
2622inline bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
2623 if (!values || !types) return !values && !types;
2624 if (values->size() != types->size()) return false;
2625 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
2626 if (!VerifyAttribute(
2627 verifier, values->Get(i), types->GetEnum<Attribute>(i))) {
2628 return false;
2629 }
2630 }
2631 return true;
2632}
2633
Eric Kunze2364dcd2021-04-26 11:06:57 -07002634inline const tosa::TosaGraph *GetTosaGraph(const void *buf) {
2635 return flatbuffers::GetRoot<tosa::TosaGraph>(buf);
2636}
2637
2638inline const tosa::TosaGraph *GetSizePrefixedTosaGraph(const void *buf) {
2639 return flatbuffers::GetSizePrefixedRoot<tosa::TosaGraph>(buf);
2640}
2641
2642inline const char *TosaGraphIdentifier() {
2643 return "TOSA";
2644}
2645
2646inline bool TosaGraphBufferHasIdentifier(const void *buf) {
2647 return flatbuffers::BufferHasIdentifier(
2648 buf, TosaGraphIdentifier());
2649}
2650
2651inline bool VerifyTosaGraphBuffer(
2652 flatbuffers::Verifier &verifier) {
2653 return verifier.VerifyBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2654}
2655
2656inline bool VerifySizePrefixedTosaGraphBuffer(
2657 flatbuffers::Verifier &verifier) {
2658 return verifier.VerifySizePrefixedBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2659}
2660
2661inline const char *TosaGraphExtension() {
2662 return "tosa";
2663}
2664
2665inline void FinishTosaGraphBuffer(
2666 flatbuffers::FlatBufferBuilder &fbb,
2667 flatbuffers::Offset<tosa::TosaGraph> root) {
2668 fbb.Finish(root, TosaGraphIdentifier());
2669}
2670
2671inline void FinishSizePrefixedTosaGraphBuffer(
2672 flatbuffers::FlatBufferBuilder &fbb,
2673 flatbuffers::Offset<tosa::TosaGraph> root) {
2674 fbb.FinishSizePrefixed(root, TosaGraphIdentifier());
2675}
2676
2677} // namespace tosa
2678
2679#endif // FLATBUFFERS_GENERATED_TOSA_TOSA_H_