blob: 5079f1b31e7d7f6bec693053c910d2ae5a6781de [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 {
1181 VT_OUTPUT_SIZE = 4,
1182 VT_STRIDE = 6,
1183 VT_OFFSET = 8,
1184 VT_SHIFT = 10,
1185 VT_STRIDE_FP = 12,
1186 VT_OFFSET_FP = 14,
1187 VT_MODE = 16
1188 };
1189 const flatbuffers::Vector<int32_t> *output_size() const {
1190 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUT_SIZE);
1191 }
1192 const flatbuffers::Vector<int32_t> *stride() const {
1193 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
1194 }
1195 const flatbuffers::Vector<int32_t> *offset() const {
1196 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OFFSET);
1197 }
1198 int32_t shift() const {
1199 return GetField<int32_t>(VT_SHIFT, 0);
1200 }
1201 const flatbuffers::Vector<float> *stride_fp() const {
1202 return GetPointer<const flatbuffers::Vector<float> *>(VT_STRIDE_FP);
1203 }
1204 const flatbuffers::Vector<float> *offset_fp() const {
1205 return GetPointer<const flatbuffers::Vector<float> *>(VT_OFFSET_FP);
1206 }
1207 tosa::ResizeMode mode() const {
1208 return static_cast<tosa::ResizeMode>(GetField<uint32_t>(VT_MODE, 0));
1209 }
1210 bool Verify(flatbuffers::Verifier &verifier) const {
1211 return VerifyTableStart(verifier) &&
1212 VerifyOffset(verifier, VT_OUTPUT_SIZE) &&
1213 verifier.VerifyVector(output_size()) &&
1214 VerifyOffset(verifier, VT_STRIDE) &&
1215 verifier.VerifyVector(stride()) &&
1216 VerifyOffset(verifier, VT_OFFSET) &&
1217 verifier.VerifyVector(offset()) &&
1218 VerifyField<int32_t>(verifier, VT_SHIFT) &&
1219 VerifyOffset(verifier, VT_STRIDE_FP) &&
1220 verifier.VerifyVector(stride_fp()) &&
1221 VerifyOffset(verifier, VT_OFFSET_FP) &&
1222 verifier.VerifyVector(offset_fp()) &&
1223 VerifyField<uint32_t>(verifier, VT_MODE) &&
1224 verifier.EndTable();
1225 }
1226};
1227
1228struct ResizeAttributeBuilder {
1229 typedef ResizeAttribute Table;
1230 flatbuffers::FlatBufferBuilder &fbb_;
1231 flatbuffers::uoffset_t start_;
1232 void add_output_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_size) {
1233 fbb_.AddOffset(ResizeAttribute::VT_OUTPUT_SIZE, output_size);
1234 }
1235 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
1236 fbb_.AddOffset(ResizeAttribute::VT_STRIDE, stride);
1237 }
1238 void add_offset(flatbuffers::Offset<flatbuffers::Vector<int32_t>> offset) {
1239 fbb_.AddOffset(ResizeAttribute::VT_OFFSET, offset);
1240 }
1241 void add_shift(int32_t shift) {
1242 fbb_.AddElement<int32_t>(ResizeAttribute::VT_SHIFT, shift, 0);
1243 }
1244 void add_stride_fp(flatbuffers::Offset<flatbuffers::Vector<float>> stride_fp) {
1245 fbb_.AddOffset(ResizeAttribute::VT_STRIDE_FP, stride_fp);
1246 }
1247 void add_offset_fp(flatbuffers::Offset<flatbuffers::Vector<float>> offset_fp) {
1248 fbb_.AddOffset(ResizeAttribute::VT_OFFSET_FP, offset_fp);
1249 }
1250 void add_mode(tosa::ResizeMode mode) {
1251 fbb_.AddElement<uint32_t>(ResizeAttribute::VT_MODE, static_cast<uint32_t>(mode), 0);
1252 }
1253 explicit ResizeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1254 : fbb_(_fbb) {
1255 start_ = fbb_.StartTable();
1256 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001257 ResizeAttributeBuilder &operator=(const ResizeAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001258 flatbuffers::Offset<ResizeAttribute> Finish() {
1259 const auto end = fbb_.EndTable(start_);
1260 auto o = flatbuffers::Offset<ResizeAttribute>(end);
1261 return o;
1262 }
1263};
1264
1265inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttribute(
1266 flatbuffers::FlatBufferBuilder &_fbb,
1267 flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_size = 0,
1268 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
1269 flatbuffers::Offset<flatbuffers::Vector<int32_t>> offset = 0,
1270 int32_t shift = 0,
1271 flatbuffers::Offset<flatbuffers::Vector<float>> stride_fp = 0,
1272 flatbuffers::Offset<flatbuffers::Vector<float>> offset_fp = 0,
1273 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
1274 ResizeAttributeBuilder builder_(_fbb);
1275 builder_.add_mode(mode);
1276 builder_.add_offset_fp(offset_fp);
1277 builder_.add_stride_fp(stride_fp);
1278 builder_.add_shift(shift);
1279 builder_.add_offset(offset);
1280 builder_.add_stride(stride);
1281 builder_.add_output_size(output_size);
1282 return builder_.Finish();
1283}
1284
1285inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttributeDirect(
1286 flatbuffers::FlatBufferBuilder &_fbb,
1287 const std::vector<int32_t> *output_size = nullptr,
1288 const std::vector<int32_t> *stride = nullptr,
1289 const std::vector<int32_t> *offset = nullptr,
1290 int32_t shift = 0,
1291 const std::vector<float> *stride_fp = nullptr,
1292 const std::vector<float> *offset_fp = nullptr,
1293 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
1294 auto output_size__ = output_size ? _fbb.CreateVector<int32_t>(*output_size) : 0;
1295 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
1296 auto offset__ = offset ? _fbb.CreateVector<int32_t>(*offset) : 0;
1297 auto stride_fp__ = stride_fp ? _fbb.CreateVector<float>(*stride_fp) : 0;
1298 auto offset_fp__ = offset_fp ? _fbb.CreateVector<float>(*offset_fp) : 0;
1299 return tosa::CreateResizeAttribute(
1300 _fbb,
1301 output_size__,
1302 stride__,
1303 offset__,
1304 shift,
1305 stride_fp__,
1306 offset_fp__,
1307 mode);
1308}
1309
1310struct ClampAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1311 typedef ClampAttributeBuilder Builder;
1312 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1313 VT_MIN_INT = 4,
1314 VT_MAX_INT = 6,
1315 VT_MIN_FP = 8,
1316 VT_MAX_FP = 10
1317 };
1318 int32_t min_int() const {
1319 return GetField<int32_t>(VT_MIN_INT, 0);
1320 }
1321 int32_t max_int() const {
1322 return GetField<int32_t>(VT_MAX_INT, 0);
1323 }
1324 float min_fp() const {
1325 return GetField<float>(VT_MIN_FP, 0.0f);
1326 }
1327 float max_fp() const {
1328 return GetField<float>(VT_MAX_FP, 0.0f);
1329 }
1330 bool Verify(flatbuffers::Verifier &verifier) const {
1331 return VerifyTableStart(verifier) &&
1332 VerifyField<int32_t>(verifier, VT_MIN_INT) &&
1333 VerifyField<int32_t>(verifier, VT_MAX_INT) &&
1334 VerifyField<float>(verifier, VT_MIN_FP) &&
1335 VerifyField<float>(verifier, VT_MAX_FP) &&
1336 verifier.EndTable();
1337 }
1338};
1339
1340struct ClampAttributeBuilder {
1341 typedef ClampAttribute Table;
1342 flatbuffers::FlatBufferBuilder &fbb_;
1343 flatbuffers::uoffset_t start_;
1344 void add_min_int(int32_t min_int) {
1345 fbb_.AddElement<int32_t>(ClampAttribute::VT_MIN_INT, min_int, 0);
1346 }
1347 void add_max_int(int32_t max_int) {
1348 fbb_.AddElement<int32_t>(ClampAttribute::VT_MAX_INT, max_int, 0);
1349 }
1350 void add_min_fp(float min_fp) {
1351 fbb_.AddElement<float>(ClampAttribute::VT_MIN_FP, min_fp, 0.0f);
1352 }
1353 void add_max_fp(float max_fp) {
1354 fbb_.AddElement<float>(ClampAttribute::VT_MAX_FP, max_fp, 0.0f);
1355 }
1356 explicit ClampAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1357 : fbb_(_fbb) {
1358 start_ = fbb_.StartTable();
1359 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001360 ClampAttributeBuilder &operator=(const ClampAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001361 flatbuffers::Offset<ClampAttribute> Finish() {
1362 const auto end = fbb_.EndTable(start_);
1363 auto o = flatbuffers::Offset<ClampAttribute>(end);
1364 return o;
1365 }
1366};
1367
1368inline flatbuffers::Offset<ClampAttribute> CreateClampAttribute(
1369 flatbuffers::FlatBufferBuilder &_fbb,
1370 int32_t min_int = 0,
1371 int32_t max_int = 0,
1372 float min_fp = 0.0f,
1373 float max_fp = 0.0f) {
1374 ClampAttributeBuilder builder_(_fbb);
1375 builder_.add_max_fp(max_fp);
1376 builder_.add_min_fp(min_fp);
1377 builder_.add_max_int(max_int);
1378 builder_.add_min_int(min_int);
1379 return builder_.Finish();
1380}
1381
1382struct RescaleAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1383 typedef RescaleAttributeBuilder Builder;
1384 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1385 VT_INPUT_ZP = 4,
1386 VT_OUTPUT_ZP = 6,
1387 VT_MULTIPLIER = 8,
1388 VT_SHIFT = 10,
1389 VT_SCALE32 = 12,
1390 VT_DOUBLE_ROUND = 14,
1391 VT_PER_CHANNEL = 16
1392 };
1393 int32_t input_zp() const {
1394 return GetField<int32_t>(VT_INPUT_ZP, 0);
1395 }
1396 int32_t output_zp() const {
1397 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1398 }
1399 const flatbuffers::Vector<int32_t> *multiplier() const {
1400 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLIER);
1401 }
1402 const flatbuffers::Vector<int32_t> *shift() const {
1403 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHIFT);
1404 }
1405 bool scale32() const {
1406 return GetField<uint8_t>(VT_SCALE32, 0) != 0;
1407 }
1408 bool double_round() const {
1409 return GetField<uint8_t>(VT_DOUBLE_ROUND, 0) != 0;
1410 }
1411 bool per_channel() const {
1412 return GetField<uint8_t>(VT_PER_CHANNEL, 0) != 0;
1413 }
1414 bool Verify(flatbuffers::Verifier &verifier) const {
1415 return VerifyTableStart(verifier) &&
1416 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1417 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP) &&
1418 VerifyOffset(verifier, VT_MULTIPLIER) &&
1419 verifier.VerifyVector(multiplier()) &&
1420 VerifyOffset(verifier, VT_SHIFT) &&
1421 verifier.VerifyVector(shift()) &&
1422 VerifyField<uint8_t>(verifier, VT_SCALE32) &&
1423 VerifyField<uint8_t>(verifier, VT_DOUBLE_ROUND) &&
1424 VerifyField<uint8_t>(verifier, VT_PER_CHANNEL) &&
1425 verifier.EndTable();
1426 }
1427};
1428
1429struct RescaleAttributeBuilder {
1430 typedef RescaleAttribute Table;
1431 flatbuffers::FlatBufferBuilder &fbb_;
1432 flatbuffers::uoffset_t start_;
1433 void add_input_zp(int32_t input_zp) {
1434 fbb_.AddElement<int32_t>(RescaleAttribute::VT_INPUT_ZP, input_zp, 0);
1435 }
1436 void add_output_zp(int32_t output_zp) {
1437 fbb_.AddElement<int32_t>(RescaleAttribute::VT_OUTPUT_ZP, output_zp, 0);
1438 }
1439 void add_multiplier(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier) {
1440 fbb_.AddOffset(RescaleAttribute::VT_MULTIPLIER, multiplier);
1441 }
1442 void add_shift(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift) {
1443 fbb_.AddOffset(RescaleAttribute::VT_SHIFT, shift);
1444 }
1445 void add_scale32(bool scale32) {
1446 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_SCALE32, static_cast<uint8_t>(scale32), 0);
1447 }
1448 void add_double_round(bool double_round) {
1449 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_DOUBLE_ROUND, static_cast<uint8_t>(double_round), 0);
1450 }
1451 void add_per_channel(bool per_channel) {
1452 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_PER_CHANNEL, static_cast<uint8_t>(per_channel), 0);
1453 }
1454 explicit RescaleAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1455 : fbb_(_fbb) {
1456 start_ = fbb_.StartTable();
1457 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001458 RescaleAttributeBuilder &operator=(const RescaleAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001459 flatbuffers::Offset<RescaleAttribute> Finish() {
1460 const auto end = fbb_.EndTable(start_);
1461 auto o = flatbuffers::Offset<RescaleAttribute>(end);
1462 return o;
1463 }
1464};
1465
1466inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttribute(
1467 flatbuffers::FlatBufferBuilder &_fbb,
1468 int32_t input_zp = 0,
1469 int32_t output_zp = 0,
1470 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier = 0,
1471 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift = 0,
1472 bool scale32 = false,
1473 bool double_round = false,
1474 bool per_channel = false) {
1475 RescaleAttributeBuilder builder_(_fbb);
1476 builder_.add_shift(shift);
1477 builder_.add_multiplier(multiplier);
1478 builder_.add_output_zp(output_zp);
1479 builder_.add_input_zp(input_zp);
1480 builder_.add_per_channel(per_channel);
1481 builder_.add_double_round(double_round);
1482 builder_.add_scale32(scale32);
1483 return builder_.Finish();
1484}
1485
1486inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttributeDirect(
1487 flatbuffers::FlatBufferBuilder &_fbb,
1488 int32_t input_zp = 0,
1489 int32_t output_zp = 0,
1490 const std::vector<int32_t> *multiplier = nullptr,
1491 const std::vector<int32_t> *shift = nullptr,
1492 bool scale32 = false,
1493 bool double_round = false,
1494 bool per_channel = false) {
1495 auto multiplier__ = multiplier ? _fbb.CreateVector<int32_t>(*multiplier) : 0;
1496 auto shift__ = shift ? _fbb.CreateVector<int32_t>(*shift) : 0;
1497 return tosa::CreateRescaleAttribute(
1498 _fbb,
1499 input_zp,
1500 output_zp,
1501 multiplier__,
1502 shift__,
1503 scale32,
1504 double_round,
1505 per_channel);
1506}
1507
1508struct MulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1509 typedef MulAttributeBuilder Builder;
1510 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1511 VT_SHIFT = 4
1512 };
1513 int32_t shift() const {
1514 return GetField<int32_t>(VT_SHIFT, 0);
1515 }
1516 bool Verify(flatbuffers::Verifier &verifier) const {
1517 return VerifyTableStart(verifier) &&
1518 VerifyField<int32_t>(verifier, VT_SHIFT) &&
1519 verifier.EndTable();
1520 }
1521};
1522
1523struct MulAttributeBuilder {
1524 typedef MulAttribute Table;
1525 flatbuffers::FlatBufferBuilder &fbb_;
1526 flatbuffers::uoffset_t start_;
1527 void add_shift(int32_t shift) {
1528 fbb_.AddElement<int32_t>(MulAttribute::VT_SHIFT, shift, 0);
1529 }
1530 explicit MulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1531 : fbb_(_fbb) {
1532 start_ = fbb_.StartTable();
1533 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001534 MulAttributeBuilder &operator=(const MulAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001535 flatbuffers::Offset<MulAttribute> Finish() {
1536 const auto end = fbb_.EndTable(start_);
1537 auto o = flatbuffers::Offset<MulAttribute>(end);
1538 return o;
1539 }
1540};
1541
1542inline flatbuffers::Offset<MulAttribute> CreateMulAttribute(
1543 flatbuffers::FlatBufferBuilder &_fbb,
1544 int32_t shift = 0) {
1545 MulAttributeBuilder builder_(_fbb);
1546 builder_.add_shift(shift);
1547 return builder_.Finish();
1548}
1549
1550struct ArithmeticRightShiftAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1551 typedef ArithmeticRightShiftAttributeBuilder Builder;
1552 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1553 VT_ROUND = 4
1554 };
1555 bool round() const {
1556 return GetField<uint8_t>(VT_ROUND, 0) != 0;
1557 }
1558 bool Verify(flatbuffers::Verifier &verifier) const {
1559 return VerifyTableStart(verifier) &&
1560 VerifyField<uint8_t>(verifier, VT_ROUND) &&
1561 verifier.EndTable();
1562 }
1563};
1564
1565struct ArithmeticRightShiftAttributeBuilder {
1566 typedef ArithmeticRightShiftAttribute Table;
1567 flatbuffers::FlatBufferBuilder &fbb_;
1568 flatbuffers::uoffset_t start_;
1569 void add_round(bool round) {
1570 fbb_.AddElement<uint8_t>(ArithmeticRightShiftAttribute::VT_ROUND, static_cast<uint8_t>(round), 0);
1571 }
1572 explicit ArithmeticRightShiftAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1573 : fbb_(_fbb) {
1574 start_ = fbb_.StartTable();
1575 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001576 ArithmeticRightShiftAttributeBuilder &operator=(const ArithmeticRightShiftAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001577 flatbuffers::Offset<ArithmeticRightShiftAttribute> Finish() {
1578 const auto end = fbb_.EndTable(start_);
1579 auto o = flatbuffers::Offset<ArithmeticRightShiftAttribute>(end);
1580 return o;
1581 }
1582};
1583
1584inline flatbuffers::Offset<ArithmeticRightShiftAttribute> CreateArithmeticRightShiftAttribute(
1585 flatbuffers::FlatBufferBuilder &_fbb,
1586 bool round = false) {
1587 ArithmeticRightShiftAttributeBuilder builder_(_fbb);
1588 builder_.add_round(round);
1589 return builder_.Finish();
1590}
1591
1592struct CondIfAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1593 typedef CondIfAttributeBuilder Builder;
1594 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1595 VT_THEN_BRANCH = 4,
1596 VT_ELSE_BRANCH = 6
1597 };
1598 const flatbuffers::String *then_branch() const {
1599 return GetPointer<const flatbuffers::String *>(VT_THEN_BRANCH);
1600 }
1601 const flatbuffers::String *else_branch() const {
1602 return GetPointer<const flatbuffers::String *>(VT_ELSE_BRANCH);
1603 }
1604 bool Verify(flatbuffers::Verifier &verifier) const {
1605 return VerifyTableStart(verifier) &&
1606 VerifyOffset(verifier, VT_THEN_BRANCH) &&
1607 verifier.VerifyString(then_branch()) &&
1608 VerifyOffset(verifier, VT_ELSE_BRANCH) &&
1609 verifier.VerifyString(else_branch()) &&
1610 verifier.EndTable();
1611 }
1612};
1613
1614struct CondIfAttributeBuilder {
1615 typedef CondIfAttribute Table;
1616 flatbuffers::FlatBufferBuilder &fbb_;
1617 flatbuffers::uoffset_t start_;
1618 void add_then_branch(flatbuffers::Offset<flatbuffers::String> then_branch) {
1619 fbb_.AddOffset(CondIfAttribute::VT_THEN_BRANCH, then_branch);
1620 }
1621 void add_else_branch(flatbuffers::Offset<flatbuffers::String> else_branch) {
1622 fbb_.AddOffset(CondIfAttribute::VT_ELSE_BRANCH, else_branch);
1623 }
1624 explicit CondIfAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1625 : fbb_(_fbb) {
1626 start_ = fbb_.StartTable();
1627 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001628 CondIfAttributeBuilder &operator=(const CondIfAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001629 flatbuffers::Offset<CondIfAttribute> Finish() {
1630 const auto end = fbb_.EndTable(start_);
1631 auto o = flatbuffers::Offset<CondIfAttribute>(end);
1632 return o;
1633 }
1634};
1635
1636inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttribute(
1637 flatbuffers::FlatBufferBuilder &_fbb,
1638 flatbuffers::Offset<flatbuffers::String> then_branch = 0,
1639 flatbuffers::Offset<flatbuffers::String> else_branch = 0) {
1640 CondIfAttributeBuilder builder_(_fbb);
1641 builder_.add_else_branch(else_branch);
1642 builder_.add_then_branch(then_branch);
1643 return builder_.Finish();
1644}
1645
1646inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttributeDirect(
1647 flatbuffers::FlatBufferBuilder &_fbb,
1648 const char *then_branch = nullptr,
1649 const char *else_branch = nullptr) {
1650 auto then_branch__ = then_branch ? _fbb.CreateString(then_branch) : 0;
1651 auto else_branch__ = else_branch ? _fbb.CreateString(else_branch) : 0;
1652 return tosa::CreateCondIfAttribute(
1653 _fbb,
1654 then_branch__,
1655 else_branch__);
1656}
1657
1658struct WhileLoopAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1659 typedef WhileLoopAttributeBuilder Builder;
1660 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1661 VT_COND_BRANCH = 4,
1662 VT_BODY_BRANCH = 6
1663 };
1664 const flatbuffers::String *cond_branch() const {
1665 return GetPointer<const flatbuffers::String *>(VT_COND_BRANCH);
1666 }
1667 const flatbuffers::String *body_branch() const {
1668 return GetPointer<const flatbuffers::String *>(VT_BODY_BRANCH);
1669 }
1670 bool Verify(flatbuffers::Verifier &verifier) const {
1671 return VerifyTableStart(verifier) &&
1672 VerifyOffset(verifier, VT_COND_BRANCH) &&
1673 verifier.VerifyString(cond_branch()) &&
1674 VerifyOffset(verifier, VT_BODY_BRANCH) &&
1675 verifier.VerifyString(body_branch()) &&
1676 verifier.EndTable();
1677 }
1678};
1679
1680struct WhileLoopAttributeBuilder {
1681 typedef WhileLoopAttribute Table;
1682 flatbuffers::FlatBufferBuilder &fbb_;
1683 flatbuffers::uoffset_t start_;
1684 void add_cond_branch(flatbuffers::Offset<flatbuffers::String> cond_branch) {
1685 fbb_.AddOffset(WhileLoopAttribute::VT_COND_BRANCH, cond_branch);
1686 }
1687 void add_body_branch(flatbuffers::Offset<flatbuffers::String> body_branch) {
1688 fbb_.AddOffset(WhileLoopAttribute::VT_BODY_BRANCH, body_branch);
1689 }
1690 explicit WhileLoopAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1691 : fbb_(_fbb) {
1692 start_ = fbb_.StartTable();
1693 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001694 WhileLoopAttributeBuilder &operator=(const WhileLoopAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001695 flatbuffers::Offset<WhileLoopAttribute> Finish() {
1696 const auto end = fbb_.EndTable(start_);
1697 auto o = flatbuffers::Offset<WhileLoopAttribute>(end);
1698 return o;
1699 }
1700};
1701
1702inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttribute(
1703 flatbuffers::FlatBufferBuilder &_fbb,
1704 flatbuffers::Offset<flatbuffers::String> cond_branch = 0,
1705 flatbuffers::Offset<flatbuffers::String> body_branch = 0) {
1706 WhileLoopAttributeBuilder builder_(_fbb);
1707 builder_.add_body_branch(body_branch);
1708 builder_.add_cond_branch(cond_branch);
1709 return builder_.Finish();
1710}
1711
1712inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttributeDirect(
1713 flatbuffers::FlatBufferBuilder &_fbb,
1714 const char *cond_branch = nullptr,
1715 const char *body_branch = nullptr) {
1716 auto cond_branch__ = cond_branch ? _fbb.CreateString(cond_branch) : 0;
1717 auto body_branch__ = body_branch ? _fbb.CreateString(body_branch) : 0;
1718 return tosa::CreateWhileLoopAttribute(
1719 _fbb,
1720 cond_branch__,
1721 body_branch__);
1722}
1723
Kevin Cheng38d214c2021-10-15 15:49:19 -07001724struct TransposeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1725 typedef TransposeAttributeBuilder Builder;
1726 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001727 VT_PERMS = 4
Kevin Cheng38d214c2021-10-15 15:49:19 -07001728 };
TatWai Chong7be71652022-05-10 17:26:20 -07001729 const flatbuffers::Vector<int32_t> *perms() const {
1730 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PERMS);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001731 }
1732 bool Verify(flatbuffers::Verifier &verifier) const {
1733 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001734 VerifyOffset(verifier, VT_PERMS) &&
1735 verifier.VerifyVector(perms()) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -07001736 verifier.EndTable();
1737 }
1738};
1739
1740struct TransposeAttributeBuilder {
1741 typedef TransposeAttribute Table;
1742 flatbuffers::FlatBufferBuilder &fbb_;
1743 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001744 void add_perms(flatbuffers::Offset<flatbuffers::Vector<int32_t>> perms) {
1745 fbb_.AddOffset(TransposeAttribute::VT_PERMS, perms);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001746 }
1747 explicit TransposeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1748 : fbb_(_fbb) {
1749 start_ = fbb_.StartTable();
1750 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001751 TransposeAttributeBuilder &operator=(const TransposeAttributeBuilder &);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001752 flatbuffers::Offset<TransposeAttribute> Finish() {
1753 const auto end = fbb_.EndTable(start_);
1754 auto o = flatbuffers::Offset<TransposeAttribute>(end);
1755 return o;
1756 }
1757};
1758
1759inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttribute(
1760 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001761 flatbuffers::Offset<flatbuffers::Vector<int32_t>> perms = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001762 TransposeAttributeBuilder builder_(_fbb);
TatWai Chong7be71652022-05-10 17:26:20 -07001763 builder_.add_perms(perms);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001764 return builder_.Finish();
1765}
1766
1767inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttributeDirect(
1768 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001769 const std::vector<int32_t> *perms = nullptr) {
1770 auto perms__ = perms ? _fbb.CreateVector<int32_t>(*perms) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001771 return tosa::CreateTransposeAttribute(
1772 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001773 perms__);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001774}
1775
1776struct TableAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1777 typedef TableAttributeBuilder Builder;
1778 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1779 VT_TABLE = 4
1780 };
TatWai Chong7be71652022-05-10 17:26:20 -07001781 const flatbuffers::Vector<int16_t> *table() const {
1782 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_TABLE);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001783 }
1784 bool Verify(flatbuffers::Verifier &verifier) const {
1785 return VerifyTableStart(verifier) &&
1786 VerifyOffset(verifier, VT_TABLE) &&
1787 verifier.VerifyVector(table()) &&
1788 verifier.EndTable();
1789 }
1790};
1791
1792struct TableAttributeBuilder {
1793 typedef TableAttribute Table;
1794 flatbuffers::FlatBufferBuilder &fbb_;
1795 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001796 void add_table(flatbuffers::Offset<flatbuffers::Vector<int16_t>> table) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001797 fbb_.AddOffset(TableAttribute::VT_TABLE, table);
1798 }
1799 explicit TableAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1800 : fbb_(_fbb) {
1801 start_ = fbb_.StartTable();
1802 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001803 TableAttributeBuilder &operator=(const TableAttributeBuilder &);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001804 flatbuffers::Offset<TableAttribute> Finish() {
1805 const auto end = fbb_.EndTable(start_);
1806 auto o = flatbuffers::Offset<TableAttribute>(end);
1807 return o;
1808 }
1809};
1810
1811inline flatbuffers::Offset<TableAttribute> CreateTableAttribute(
1812 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001813 flatbuffers::Offset<flatbuffers::Vector<int16_t>> table = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001814 TableAttributeBuilder builder_(_fbb);
1815 builder_.add_table(table);
1816 return builder_.Finish();
1817}
1818
1819inline flatbuffers::Offset<TableAttribute> CreateTableAttributeDirect(
1820 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001821 const std::vector<int16_t> *table = nullptr) {
1822 auto table__ = table ? _fbb.CreateVector<int16_t>(*table) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001823 return tosa::CreateTableAttribute(
1824 _fbb,
1825 table__);
1826}
1827
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001828struct MatMulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1829 typedef MatMulAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001830 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1831 VT_A_ZP = 4,
1832 VT_B_ZP = 6
1833 };
1834 int32_t a_zp() const {
1835 return GetField<int32_t>(VT_A_ZP, 0);
1836 }
1837 int32_t b_zp() const {
1838 return GetField<int32_t>(VT_B_ZP, 0);
1839 }
1840 bool Verify(flatbuffers::Verifier &verifier) const {
1841 return VerifyTableStart(verifier) &&
1842 VerifyField<int32_t>(verifier, VT_A_ZP) &&
1843 VerifyField<int32_t>(verifier, VT_B_ZP) &&
1844 verifier.EndTable();
1845 }
1846};
1847
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001848struct MatMulAttributeBuilder {
1849 typedef MatMulAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001850 flatbuffers::FlatBufferBuilder &fbb_;
1851 flatbuffers::uoffset_t start_;
1852 void add_a_zp(int32_t a_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001853 fbb_.AddElement<int32_t>(MatMulAttribute::VT_A_ZP, a_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001854 }
1855 void add_b_zp(int32_t b_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001856 fbb_.AddElement<int32_t>(MatMulAttribute::VT_B_ZP, b_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001857 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001858 explicit MatMulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -07001859 : fbb_(_fbb) {
1860 start_ = fbb_.StartTable();
1861 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001862 MatMulAttributeBuilder &operator=(const MatMulAttributeBuilder &);
1863 flatbuffers::Offset<MatMulAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001864 const auto end = fbb_.EndTable(start_);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001865 auto o = flatbuffers::Offset<MatMulAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001866 return o;
1867 }
1868};
1869
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001870inline flatbuffers::Offset<MatMulAttribute> CreateMatMulAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -07001871 flatbuffers::FlatBufferBuilder &_fbb,
1872 int32_t a_zp = 0,
1873 int32_t b_zp = 0) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001874 MatMulAttributeBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001875 builder_.add_b_zp(b_zp);
1876 builder_.add_a_zp(a_zp);
1877 return builder_.Finish();
1878}
1879
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001880struct FullyConnectedAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1881 typedef FullyConnectedAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001882 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001883 VT_INPUT_ZP = 4,
1884 VT_WEIGHT_ZP = 6
Eric Kunze2364dcd2021-04-26 11:06:57 -07001885 };
1886 int32_t input_zp() const {
1887 return GetField<int32_t>(VT_INPUT_ZP, 0);
1888 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001889 int32_t weight_zp() const {
1890 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
1891 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001892 bool Verify(flatbuffers::Verifier &verifier) const {
1893 return VerifyTableStart(verifier) &&
1894 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001895 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001896 verifier.EndTable();
1897 }
1898};
1899
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001900struct FullyConnectedAttributeBuilder {
1901 typedef FullyConnectedAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001902 flatbuffers::FlatBufferBuilder &fbb_;
1903 flatbuffers::uoffset_t start_;
1904 void add_input_zp(int32_t input_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001905 fbb_.AddElement<int32_t>(FullyConnectedAttribute::VT_INPUT_ZP, input_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001906 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001907 void add_weight_zp(int32_t weight_zp) {
1908 fbb_.AddElement<int32_t>(FullyConnectedAttribute::VT_WEIGHT_ZP, weight_zp, 0);
1909 }
1910 explicit FullyConnectedAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -07001911 : fbb_(_fbb) {
1912 start_ = fbb_.StartTable();
1913 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001914 FullyConnectedAttributeBuilder &operator=(const FullyConnectedAttributeBuilder &);
1915 flatbuffers::Offset<FullyConnectedAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001916 const auto end = fbb_.EndTable(start_);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001917 auto o = flatbuffers::Offset<FullyConnectedAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001918 return o;
1919 }
1920};
1921
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001922inline flatbuffers::Offset<FullyConnectedAttribute> CreateFullyConnectedAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -07001923 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001924 int32_t input_zp = 0,
1925 int32_t weight_zp = 0) {
1926 FullyConnectedAttributeBuilder builder_(_fbb);
1927 builder_.add_weight_zp(weight_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001928 builder_.add_input_zp(input_zp);
1929 return builder_.Finish();
1930}
1931
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001932struct NegateAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1933 typedef NegateAttributeBuilder Builder;
1934 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1935 VT_INPUT1_ZP = 4,
1936 VT_OUTPUT_ZP = 6
1937 };
1938 int32_t input1_zp() const {
1939 return GetField<int32_t>(VT_INPUT1_ZP, 0);
1940 }
1941 int32_t output_zp() const {
1942 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1943 }
1944 bool Verify(flatbuffers::Verifier &verifier) const {
1945 return VerifyTableStart(verifier) &&
1946 VerifyField<int32_t>(verifier, VT_INPUT1_ZP) &&
1947 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP) &&
1948 verifier.EndTable();
1949 }
1950};
1951
1952struct NegateAttributeBuilder {
1953 typedef NegateAttribute Table;
1954 flatbuffers::FlatBufferBuilder &fbb_;
1955 flatbuffers::uoffset_t start_;
1956 void add_input1_zp(int32_t input1_zp) {
1957 fbb_.AddElement<int32_t>(NegateAttribute::VT_INPUT1_ZP, input1_zp, 0);
1958 }
1959 void add_output_zp(int32_t output_zp) {
1960 fbb_.AddElement<int32_t>(NegateAttribute::VT_OUTPUT_ZP, output_zp, 0);
1961 }
1962 explicit NegateAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1963 : fbb_(_fbb) {
1964 start_ = fbb_.StartTable();
1965 }
1966 NegateAttributeBuilder &operator=(const NegateAttributeBuilder &);
1967 flatbuffers::Offset<NegateAttribute> Finish() {
1968 const auto end = fbb_.EndTable(start_);
1969 auto o = flatbuffers::Offset<NegateAttribute>(end);
1970 return o;
1971 }
1972};
1973
1974inline flatbuffers::Offset<NegateAttribute> CreateNegateAttribute(
1975 flatbuffers::FlatBufferBuilder &_fbb,
1976 int32_t input1_zp = 0,
1977 int32_t output_zp = 0) {
1978 NegateAttributeBuilder builder_(_fbb);
1979 builder_.add_output_zp(output_zp);
1980 builder_.add_input1_zp(input1_zp);
1981 return builder_.Finish();
1982}
1983
Eric Kunze2364dcd2021-04-26 11:06:57 -07001984struct Version FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1985 typedef VersionBuilder Builder;
1986 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1987 VT__MAJOR = 4,
1988 VT__MINOR = 6,
1989 VT__PATCH = 8,
Kevin Chengb97cb1d2021-10-14 11:53:39 -07001990 VT__DRAFT = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07001991 };
1992 int32_t _major() const {
1993 return GetField<int32_t>(VT__MAJOR, 0);
1994 }
1995 int32_t _minor() const {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001996 return GetField<int32_t>(VT__MINOR, 30);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001997 }
1998 int32_t _patch() const {
1999 return GetField<int32_t>(VT__PATCH, 0);
2000 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002001 bool _draft() const {
Eric Kunze8fcef212022-06-16 15:45:39 -07002002 return GetField<uint8_t>(VT__DRAFT, 0) != 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002003 }
2004 bool Verify(flatbuffers::Verifier &verifier) const {
2005 return VerifyTableStart(verifier) &&
2006 VerifyField<int32_t>(verifier, VT__MAJOR) &&
2007 VerifyField<int32_t>(verifier, VT__MINOR) &&
2008 VerifyField<int32_t>(verifier, VT__PATCH) &&
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002009 VerifyField<uint8_t>(verifier, VT__DRAFT) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002010 verifier.EndTable();
2011 }
2012};
2013
2014struct VersionBuilder {
2015 typedef Version Table;
2016 flatbuffers::FlatBufferBuilder &fbb_;
2017 flatbuffers::uoffset_t start_;
2018 void add__major(int32_t _major) {
2019 fbb_.AddElement<int32_t>(Version::VT__MAJOR, _major, 0);
2020 }
2021 void add__minor(int32_t _minor) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002022 fbb_.AddElement<int32_t>(Version::VT__MINOR, _minor, 30);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002023 }
2024 void add__patch(int32_t _patch) {
2025 fbb_.AddElement<int32_t>(Version::VT__PATCH, _patch, 0);
2026 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002027 void add__draft(bool _draft) {
Eric Kunze8fcef212022-06-16 15:45:39 -07002028 fbb_.AddElement<uint8_t>(Version::VT__DRAFT, static_cast<uint8_t>(_draft), 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002029 }
2030 explicit VersionBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2031 : fbb_(_fbb) {
2032 start_ = fbb_.StartTable();
2033 }
Eric Kunzeae906de2022-05-30 22:40:47 -07002034 VersionBuilder &operator=(const VersionBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002035 flatbuffers::Offset<Version> Finish() {
2036 const auto end = fbb_.EndTable(start_);
2037 auto o = flatbuffers::Offset<Version>(end);
2038 return o;
2039 }
2040};
2041
2042inline flatbuffers::Offset<Version> CreateVersion(
2043 flatbuffers::FlatBufferBuilder &_fbb,
2044 int32_t _major = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002045 int32_t _minor = 30,
Eric Kunze2364dcd2021-04-26 11:06:57 -07002046 int32_t _patch = 0,
Eric Kunze8fcef212022-06-16 15:45:39 -07002047 bool _draft = false) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002048 VersionBuilder builder_(_fbb);
2049 builder_.add__patch(_patch);
2050 builder_.add__minor(_minor);
2051 builder_.add__major(_major);
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002052 builder_.add__draft(_draft);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002053 return builder_.Finish();
2054}
2055
2056struct TosaTensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2057 typedef TosaTensorBuilder Builder;
2058 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2059 VT_NAME = 4,
2060 VT_SHAPE = 6,
2061 VT_TYPE = 8,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002062 VT_DATA = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07002063 };
2064 const flatbuffers::String *name() const {
2065 return GetPointer<const flatbuffers::String *>(VT_NAME);
2066 }
2067 const flatbuffers::Vector<int32_t> *shape() const {
2068 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHAPE);
2069 }
2070 tosa::DType type() const {
2071 return static_cast<tosa::DType>(GetField<uint32_t>(VT_TYPE, 0));
2072 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002073 const flatbuffers::Vector<uint8_t> *data() const {
2074 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_DATA);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002075 }
2076 bool Verify(flatbuffers::Verifier &verifier) const {
2077 return VerifyTableStart(verifier) &&
2078 VerifyOffset(verifier, VT_NAME) &&
2079 verifier.VerifyString(name()) &&
2080 VerifyOffset(verifier, VT_SHAPE) &&
2081 verifier.VerifyVector(shape()) &&
2082 VerifyField<uint32_t>(verifier, VT_TYPE) &&
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002083 VerifyOffset(verifier, VT_DATA) &&
2084 verifier.VerifyVector(data()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002085 verifier.EndTable();
2086 }
2087};
2088
2089struct TosaTensorBuilder {
2090 typedef TosaTensor Table;
2091 flatbuffers::FlatBufferBuilder &fbb_;
2092 flatbuffers::uoffset_t start_;
2093 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2094 fbb_.AddOffset(TosaTensor::VT_NAME, name);
2095 }
2096 void add_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape) {
2097 fbb_.AddOffset(TosaTensor::VT_SHAPE, shape);
2098 }
2099 void add_type(tosa::DType type) {
2100 fbb_.AddElement<uint32_t>(TosaTensor::VT_TYPE, static_cast<uint32_t>(type), 0);
2101 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002102 void add_data(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data) {
2103 fbb_.AddOffset(TosaTensor::VT_DATA, data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002104 }
2105 explicit TosaTensorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2106 : fbb_(_fbb) {
2107 start_ = fbb_.StartTable();
2108 }
Eric Kunzeae906de2022-05-30 22:40:47 -07002109 TosaTensorBuilder &operator=(const TosaTensorBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002110 flatbuffers::Offset<TosaTensor> Finish() {
2111 const auto end = fbb_.EndTable(start_);
2112 auto o = flatbuffers::Offset<TosaTensor>(end);
2113 return o;
2114 }
2115};
2116
2117inline flatbuffers::Offset<TosaTensor> CreateTosaTensor(
2118 flatbuffers::FlatBufferBuilder &_fbb,
2119 flatbuffers::Offset<flatbuffers::String> name = 0,
2120 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape = 0,
2121 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002122 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002123 TosaTensorBuilder builder_(_fbb);
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002124 builder_.add_data(data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002125 builder_.add_type(type);
2126 builder_.add_shape(shape);
2127 builder_.add_name(name);
2128 return builder_.Finish();
2129}
2130
2131inline flatbuffers::Offset<TosaTensor> CreateTosaTensorDirect(
2132 flatbuffers::FlatBufferBuilder &_fbb,
2133 const char *name = nullptr,
2134 const std::vector<int32_t> *shape = nullptr,
2135 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002136 const std::vector<uint8_t> *data = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002137 auto name__ = name ? _fbb.CreateString(name) : 0;
2138 auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0;
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002139 if (data) { _fbb.ForceVectorAlignment(data->size(), sizeof(uint8_t), 8); }
2140 auto data__ = data ? _fbb.CreateVector<uint8_t>(*data) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002141 return tosa::CreateTosaTensor(
2142 _fbb,
2143 name__,
2144 shape__,
2145 type,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002146 data__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002147}
2148
2149struct TosaOperator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2150 typedef TosaOperatorBuilder Builder;
2151 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2152 VT_OP = 4,
2153 VT_ATTRIBUTE_TYPE = 6,
2154 VT_ATTRIBUTE = 8,
2155 VT_INPUTS = 10,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002156 VT_OUTPUTS = 12
Eric Kunze2364dcd2021-04-26 11:06:57 -07002157 };
2158 tosa::Op op() const {
2159 return static_cast<tosa::Op>(GetField<uint32_t>(VT_OP, 0));
2160 }
2161 tosa::Attribute attribute_type() const {
2162 return static_cast<tosa::Attribute>(GetField<uint8_t>(VT_ATTRIBUTE_TYPE, 0));
2163 }
2164 const void *attribute() const {
2165 return GetPointer<const void *>(VT_ATTRIBUTE);
2166 }
2167 template<typename T> const T *attribute_as() const;
Kevin Cheng79a41992021-08-31 16:04:40 -07002168 const tosa::PoolAttribute *attribute_as_PoolAttribute() const {
2169 return attribute_type() == tosa::Attribute_PoolAttribute ? static_cast<const tosa::PoolAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002170 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002171 const tosa::ConvAttribute *attribute_as_ConvAttribute() const {
2172 return attribute_type() == tosa::Attribute_ConvAttribute ? static_cast<const tosa::ConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002173 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002174 const tosa::TransposeConvAttribute *attribute_as_TransposeConvAttribute() const {
2175 return attribute_type() == tosa::Attribute_TransposeConvAttribute ? static_cast<const tosa::TransposeConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002176 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002177 const tosa::PadAttribute *attribute_as_PadAttribute() const {
2178 return attribute_type() == tosa::Attribute_PadAttribute ? static_cast<const tosa::PadAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002179 }
2180 const tosa::AxisAttribute *attribute_as_AxisAttribute() const {
2181 return attribute_type() == tosa::Attribute_AxisAttribute ? static_cast<const tosa::AxisAttribute *>(attribute()) : nullptr;
2182 }
2183 const tosa::ReshapeAttribute *attribute_as_ReshapeAttribute() const {
2184 return attribute_type() == tosa::Attribute_ReshapeAttribute ? static_cast<const tosa::ReshapeAttribute *>(attribute()) : nullptr;
2185 }
2186 const tosa::SliceAttribute *attribute_as_SliceAttribute() const {
2187 return attribute_type() == tosa::Attribute_SliceAttribute ? static_cast<const tosa::SliceAttribute *>(attribute()) : nullptr;
2188 }
2189 const tosa::TileAttribute *attribute_as_TileAttribute() const {
2190 return attribute_type() == tosa::Attribute_TileAttribute ? static_cast<const tosa::TileAttribute *>(attribute()) : nullptr;
2191 }
2192 const tosa::ResizeAttribute *attribute_as_ResizeAttribute() const {
2193 return attribute_type() == tosa::Attribute_ResizeAttribute ? static_cast<const tosa::ResizeAttribute *>(attribute()) : nullptr;
2194 }
2195 const tosa::ClampAttribute *attribute_as_ClampAttribute() const {
2196 return attribute_type() == tosa::Attribute_ClampAttribute ? static_cast<const tosa::ClampAttribute *>(attribute()) : nullptr;
2197 }
2198 const tosa::RescaleAttribute *attribute_as_RescaleAttribute() const {
2199 return attribute_type() == tosa::Attribute_RescaleAttribute ? static_cast<const tosa::RescaleAttribute *>(attribute()) : nullptr;
2200 }
2201 const tosa::MulAttribute *attribute_as_MulAttribute() const {
2202 return attribute_type() == tosa::Attribute_MulAttribute ? static_cast<const tosa::MulAttribute *>(attribute()) : nullptr;
2203 }
2204 const tosa::ArithmeticRightShiftAttribute *attribute_as_ArithmeticRightShiftAttribute() const {
2205 return attribute_type() == tosa::Attribute_ArithmeticRightShiftAttribute ? static_cast<const tosa::ArithmeticRightShiftAttribute *>(attribute()) : nullptr;
2206 }
2207 const tosa::CondIfAttribute *attribute_as_CondIfAttribute() const {
2208 return attribute_type() == tosa::Attribute_CondIfAttribute ? static_cast<const tosa::CondIfAttribute *>(attribute()) : nullptr;
2209 }
2210 const tosa::WhileLoopAttribute *attribute_as_WhileLoopAttribute() const {
2211 return attribute_type() == tosa::Attribute_WhileLoopAttribute ? static_cast<const tosa::WhileLoopAttribute *>(attribute()) : nullptr;
2212 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002213 const tosa::TransposeAttribute *attribute_as_TransposeAttribute() const {
2214 return attribute_type() == tosa::Attribute_TransposeAttribute ? static_cast<const tosa::TransposeAttribute *>(attribute()) : nullptr;
2215 }
2216 const tosa::TableAttribute *attribute_as_TableAttribute() const {
2217 return attribute_type() == tosa::Attribute_TableAttribute ? static_cast<const tosa::TableAttribute *>(attribute()) : nullptr;
2218 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002219 const tosa::MatMulAttribute *attribute_as_MatMulAttribute() const {
2220 return attribute_type() == tosa::Attribute_MatMulAttribute ? static_cast<const tosa::MatMulAttribute *>(attribute()) : nullptr;
2221 }
2222 const tosa::FullyConnectedAttribute *attribute_as_FullyConnectedAttribute() const {
2223 return attribute_type() == tosa::Attribute_FullyConnectedAttribute ? static_cast<const tosa::FullyConnectedAttribute *>(attribute()) : nullptr;
2224 }
2225 const tosa::NegateAttribute *attribute_as_NegateAttribute() const {
2226 return attribute_type() == tosa::Attribute_NegateAttribute ? static_cast<const tosa::NegateAttribute *>(attribute()) : nullptr;
2227 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002228 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2229 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2230 }
2231 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2232 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2233 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002234 bool Verify(flatbuffers::Verifier &verifier) const {
2235 return VerifyTableStart(verifier) &&
2236 VerifyField<uint32_t>(verifier, VT_OP) &&
2237 VerifyField<uint8_t>(verifier, VT_ATTRIBUTE_TYPE) &&
2238 VerifyOffset(verifier, VT_ATTRIBUTE) &&
2239 VerifyAttribute(verifier, attribute(), attribute_type()) &&
2240 VerifyOffset(verifier, VT_INPUTS) &&
2241 verifier.VerifyVector(inputs()) &&
2242 verifier.VerifyVectorOfStrings(inputs()) &&
2243 VerifyOffset(verifier, VT_OUTPUTS) &&
2244 verifier.VerifyVector(outputs()) &&
2245 verifier.VerifyVectorOfStrings(outputs()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002246 verifier.EndTable();
2247 }
2248};
2249
Kevin Cheng79a41992021-08-31 16:04:40 -07002250template<> inline const tosa::PoolAttribute *TosaOperator::attribute_as<tosa::PoolAttribute>() const {
2251 return attribute_as_PoolAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002252}
2253
Kevin Cheng79a41992021-08-31 16:04:40 -07002254template<> inline const tosa::ConvAttribute *TosaOperator::attribute_as<tosa::ConvAttribute>() const {
2255 return attribute_as_ConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002256}
2257
Kevin Cheng79a41992021-08-31 16:04:40 -07002258template<> inline const tosa::TransposeConvAttribute *TosaOperator::attribute_as<tosa::TransposeConvAttribute>() const {
2259 return attribute_as_TransposeConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002260}
2261
Kevin Cheng38d214c2021-10-15 15:49:19 -07002262template<> inline const tosa::PadAttribute *TosaOperator::attribute_as<tosa::PadAttribute>() const {
2263 return attribute_as_PadAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002264}
2265
2266template<> inline const tosa::AxisAttribute *TosaOperator::attribute_as<tosa::AxisAttribute>() const {
2267 return attribute_as_AxisAttribute();
2268}
2269
2270template<> inline const tosa::ReshapeAttribute *TosaOperator::attribute_as<tosa::ReshapeAttribute>() const {
2271 return attribute_as_ReshapeAttribute();
2272}
2273
2274template<> inline const tosa::SliceAttribute *TosaOperator::attribute_as<tosa::SliceAttribute>() const {
2275 return attribute_as_SliceAttribute();
2276}
2277
2278template<> inline const tosa::TileAttribute *TosaOperator::attribute_as<tosa::TileAttribute>() const {
2279 return attribute_as_TileAttribute();
2280}
2281
2282template<> inline const tosa::ResizeAttribute *TosaOperator::attribute_as<tosa::ResizeAttribute>() const {
2283 return attribute_as_ResizeAttribute();
2284}
2285
2286template<> inline const tosa::ClampAttribute *TosaOperator::attribute_as<tosa::ClampAttribute>() const {
2287 return attribute_as_ClampAttribute();
2288}
2289
2290template<> inline const tosa::RescaleAttribute *TosaOperator::attribute_as<tosa::RescaleAttribute>() const {
2291 return attribute_as_RescaleAttribute();
2292}
2293
2294template<> inline const tosa::MulAttribute *TosaOperator::attribute_as<tosa::MulAttribute>() const {
2295 return attribute_as_MulAttribute();
2296}
2297
2298template<> inline const tosa::ArithmeticRightShiftAttribute *TosaOperator::attribute_as<tosa::ArithmeticRightShiftAttribute>() const {
2299 return attribute_as_ArithmeticRightShiftAttribute();
2300}
2301
2302template<> inline const tosa::CondIfAttribute *TosaOperator::attribute_as<tosa::CondIfAttribute>() const {
2303 return attribute_as_CondIfAttribute();
2304}
2305
2306template<> inline const tosa::WhileLoopAttribute *TosaOperator::attribute_as<tosa::WhileLoopAttribute>() const {
2307 return attribute_as_WhileLoopAttribute();
2308}
2309
Kevin Cheng38d214c2021-10-15 15:49:19 -07002310template<> inline const tosa::TransposeAttribute *TosaOperator::attribute_as<tosa::TransposeAttribute>() const {
2311 return attribute_as_TransposeAttribute();
2312}
2313
2314template<> inline const tosa::TableAttribute *TosaOperator::attribute_as<tosa::TableAttribute>() const {
2315 return attribute_as_TableAttribute();
2316}
2317
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002318template<> inline const tosa::MatMulAttribute *TosaOperator::attribute_as<tosa::MatMulAttribute>() const {
2319 return attribute_as_MatMulAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002320}
2321
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002322template<> inline const tosa::FullyConnectedAttribute *TosaOperator::attribute_as<tosa::FullyConnectedAttribute>() const {
2323 return attribute_as_FullyConnectedAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002324}
2325
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002326template<> inline const tosa::NegateAttribute *TosaOperator::attribute_as<tosa::NegateAttribute>() const {
2327 return attribute_as_NegateAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002328}
2329
2330struct TosaOperatorBuilder {
2331 typedef TosaOperator Table;
2332 flatbuffers::FlatBufferBuilder &fbb_;
2333 flatbuffers::uoffset_t start_;
2334 void add_op(tosa::Op op) {
2335 fbb_.AddElement<uint32_t>(TosaOperator::VT_OP, static_cast<uint32_t>(op), 0);
2336 }
2337 void add_attribute_type(tosa::Attribute attribute_type) {
2338 fbb_.AddElement<uint8_t>(TosaOperator::VT_ATTRIBUTE_TYPE, static_cast<uint8_t>(attribute_type), 0);
2339 }
2340 void add_attribute(flatbuffers::Offset<void> attribute) {
2341 fbb_.AddOffset(TosaOperator::VT_ATTRIBUTE, attribute);
2342 }
2343 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2344 fbb_.AddOffset(TosaOperator::VT_INPUTS, inputs);
2345 }
2346 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2347 fbb_.AddOffset(TosaOperator::VT_OUTPUTS, outputs);
2348 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002349 explicit TosaOperatorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2350 : fbb_(_fbb) {
2351 start_ = fbb_.StartTable();
2352 }
Eric Kunzeae906de2022-05-30 22:40:47 -07002353 TosaOperatorBuilder &operator=(const TosaOperatorBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002354 flatbuffers::Offset<TosaOperator> Finish() {
2355 const auto end = fbb_.EndTable(start_);
2356 auto o = flatbuffers::Offset<TosaOperator>(end);
2357 return o;
2358 }
2359};
2360
2361inline flatbuffers::Offset<TosaOperator> CreateTosaOperator(
2362 flatbuffers::FlatBufferBuilder &_fbb,
2363 tosa::Op op = tosa::Op_UNKNOWN,
2364 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2365 flatbuffers::Offset<void> attribute = 0,
2366 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002367 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002368 TosaOperatorBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002369 builder_.add_outputs(outputs);
2370 builder_.add_inputs(inputs);
2371 builder_.add_attribute(attribute);
2372 builder_.add_op(op);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002373 builder_.add_attribute_type(attribute_type);
2374 return builder_.Finish();
2375}
2376
2377inline flatbuffers::Offset<TosaOperator> CreateTosaOperatorDirect(
2378 flatbuffers::FlatBufferBuilder &_fbb,
2379 tosa::Op op = tosa::Op_UNKNOWN,
2380 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2381 flatbuffers::Offset<void> attribute = 0,
2382 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002383 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002384 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2385 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2386 return tosa::CreateTosaOperator(
2387 _fbb,
2388 op,
2389 attribute_type,
2390 attribute,
2391 inputs__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002392 outputs__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002393}
2394
2395struct TosaBasicBlock FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2396 typedef TosaBasicBlockBuilder Builder;
2397 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2398 VT_NAME = 4,
2399 VT_OPERATORS = 6,
2400 VT_TENSORS = 8,
2401 VT_INPUTS = 10,
2402 VT_OUTPUTS = 12
2403 };
2404 const flatbuffers::String *name() const {
2405 return GetPointer<const flatbuffers::String *>(VT_NAME);
2406 }
2407 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *operators() const {
2408 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *>(VT_OPERATORS);
2409 }
2410 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors() const {
2411 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *>(VT_TENSORS);
2412 }
2413 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2414 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2415 }
2416 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2417 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2418 }
2419 bool Verify(flatbuffers::Verifier &verifier) const {
2420 return VerifyTableStart(verifier) &&
2421 VerifyOffset(verifier, VT_NAME) &&
2422 verifier.VerifyString(name()) &&
2423 VerifyOffset(verifier, VT_OPERATORS) &&
2424 verifier.VerifyVector(operators()) &&
2425 verifier.VerifyVectorOfTables(operators()) &&
2426 VerifyOffset(verifier, VT_TENSORS) &&
2427 verifier.VerifyVector(tensors()) &&
2428 verifier.VerifyVectorOfTables(tensors()) &&
2429 VerifyOffset(verifier, VT_INPUTS) &&
2430 verifier.VerifyVector(inputs()) &&
2431 verifier.VerifyVectorOfStrings(inputs()) &&
2432 VerifyOffset(verifier, VT_OUTPUTS) &&
2433 verifier.VerifyVector(outputs()) &&
2434 verifier.VerifyVectorOfStrings(outputs()) &&
2435 verifier.EndTable();
2436 }
2437};
2438
2439struct TosaBasicBlockBuilder {
2440 typedef TosaBasicBlock Table;
2441 flatbuffers::FlatBufferBuilder &fbb_;
2442 flatbuffers::uoffset_t start_;
2443 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2444 fbb_.AddOffset(TosaBasicBlock::VT_NAME, name);
2445 }
2446 void add_operators(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators) {
2447 fbb_.AddOffset(TosaBasicBlock::VT_OPERATORS, operators);
2448 }
2449 void add_tensors(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors) {
2450 fbb_.AddOffset(TosaBasicBlock::VT_TENSORS, tensors);
2451 }
2452 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2453 fbb_.AddOffset(TosaBasicBlock::VT_INPUTS, inputs);
2454 }
2455 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2456 fbb_.AddOffset(TosaBasicBlock::VT_OUTPUTS, outputs);
2457 }
2458 explicit TosaBasicBlockBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2459 : fbb_(_fbb) {
2460 start_ = fbb_.StartTable();
2461 }
Eric Kunzeae906de2022-05-30 22:40:47 -07002462 TosaBasicBlockBuilder &operator=(const TosaBasicBlockBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002463 flatbuffers::Offset<TosaBasicBlock> Finish() {
2464 const auto end = fbb_.EndTable(start_);
2465 auto o = flatbuffers::Offset<TosaBasicBlock>(end);
2466 return o;
2467 }
2468};
2469
2470inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlock(
2471 flatbuffers::FlatBufferBuilder &_fbb,
2472 flatbuffers::Offset<flatbuffers::String> name = 0,
2473 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators = 0,
2474 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors = 0,
2475 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
2476 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
2477 TosaBasicBlockBuilder builder_(_fbb);
2478 builder_.add_outputs(outputs);
2479 builder_.add_inputs(inputs);
2480 builder_.add_tensors(tensors);
2481 builder_.add_operators(operators);
2482 builder_.add_name(name);
2483 return builder_.Finish();
2484}
2485
2486inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlockDirect(
2487 flatbuffers::FlatBufferBuilder &_fbb,
2488 const char *name = nullptr,
2489 const std::vector<flatbuffers::Offset<tosa::TosaOperator>> *operators = nullptr,
2490 const std::vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors = nullptr,
2491 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
2492 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
2493 auto name__ = name ? _fbb.CreateString(name) : 0;
2494 auto operators__ = operators ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaOperator>>(*operators) : 0;
2495 auto tensors__ = tensors ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaTensor>>(*tensors) : 0;
2496 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2497 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2498 return tosa::CreateTosaBasicBlock(
2499 _fbb,
2500 name__,
2501 operators__,
2502 tensors__,
2503 inputs__,
2504 outputs__);
2505}
2506
2507struct TosaGraph FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2508 typedef TosaGraphBuilder Builder;
2509 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2510 VT_VERSION = 4,
2511 VT_BLOCKS = 6
2512 };
2513 const tosa::Version *version() const {
2514 return GetPointer<const tosa::Version *>(VT_VERSION);
2515 }
2516 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks() const {
2517 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *>(VT_BLOCKS);
2518 }
2519 bool Verify(flatbuffers::Verifier &verifier) const {
2520 return VerifyTableStart(verifier) &&
2521 VerifyOffset(verifier, VT_VERSION) &&
2522 verifier.VerifyTable(version()) &&
2523 VerifyOffset(verifier, VT_BLOCKS) &&
2524 verifier.VerifyVector(blocks()) &&
2525 verifier.VerifyVectorOfTables(blocks()) &&
2526 verifier.EndTable();
2527 }
2528};
2529
2530struct TosaGraphBuilder {
2531 typedef TosaGraph Table;
2532 flatbuffers::FlatBufferBuilder &fbb_;
2533 flatbuffers::uoffset_t start_;
2534 void add_version(flatbuffers::Offset<tosa::Version> version) {
2535 fbb_.AddOffset(TosaGraph::VT_VERSION, version);
2536 }
2537 void add_blocks(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks) {
2538 fbb_.AddOffset(TosaGraph::VT_BLOCKS, blocks);
2539 }
2540 explicit TosaGraphBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2541 : fbb_(_fbb) {
2542 start_ = fbb_.StartTable();
2543 }
Eric Kunzeae906de2022-05-30 22:40:47 -07002544 TosaGraphBuilder &operator=(const TosaGraphBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002545 flatbuffers::Offset<TosaGraph> Finish() {
2546 const auto end = fbb_.EndTable(start_);
2547 auto o = flatbuffers::Offset<TosaGraph>(end);
2548 return o;
2549 }
2550};
2551
2552inline flatbuffers::Offset<TosaGraph> CreateTosaGraph(
2553 flatbuffers::FlatBufferBuilder &_fbb,
2554 flatbuffers::Offset<tosa::Version> version = 0,
2555 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks = 0) {
2556 TosaGraphBuilder builder_(_fbb);
2557 builder_.add_blocks(blocks);
2558 builder_.add_version(version);
2559 return builder_.Finish();
2560}
2561
2562inline flatbuffers::Offset<TosaGraph> CreateTosaGraphDirect(
2563 flatbuffers::FlatBufferBuilder &_fbb,
2564 flatbuffers::Offset<tosa::Version> version = 0,
2565 const std::vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks = nullptr) {
2566 auto blocks__ = blocks ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaBasicBlock>>(*blocks) : 0;
2567 return tosa::CreateTosaGraph(
2568 _fbb,
2569 version,
2570 blocks__);
2571}
2572
2573inline bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type) {
2574 switch (type) {
2575 case Attribute_NONE: {
2576 return true;
2577 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002578 case Attribute_PoolAttribute: {
2579 auto ptr = reinterpret_cast<const tosa::PoolAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002580 return verifier.VerifyTable(ptr);
2581 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002582 case Attribute_ConvAttribute: {
2583 auto ptr = reinterpret_cast<const tosa::ConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002584 return verifier.VerifyTable(ptr);
2585 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002586 case Attribute_TransposeConvAttribute: {
2587 auto ptr = reinterpret_cast<const tosa::TransposeConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002588 return verifier.VerifyTable(ptr);
2589 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002590 case Attribute_PadAttribute: {
2591 auto ptr = reinterpret_cast<const tosa::PadAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002592 return verifier.VerifyTable(ptr);
2593 }
2594 case Attribute_AxisAttribute: {
2595 auto ptr = reinterpret_cast<const tosa::AxisAttribute *>(obj);
2596 return verifier.VerifyTable(ptr);
2597 }
2598 case Attribute_ReshapeAttribute: {
2599 auto ptr = reinterpret_cast<const tosa::ReshapeAttribute *>(obj);
2600 return verifier.VerifyTable(ptr);
2601 }
2602 case Attribute_SliceAttribute: {
2603 auto ptr = reinterpret_cast<const tosa::SliceAttribute *>(obj);
2604 return verifier.VerifyTable(ptr);
2605 }
2606 case Attribute_TileAttribute: {
2607 auto ptr = reinterpret_cast<const tosa::TileAttribute *>(obj);
2608 return verifier.VerifyTable(ptr);
2609 }
2610 case Attribute_ResizeAttribute: {
2611 auto ptr = reinterpret_cast<const tosa::ResizeAttribute *>(obj);
2612 return verifier.VerifyTable(ptr);
2613 }
2614 case Attribute_ClampAttribute: {
2615 auto ptr = reinterpret_cast<const tosa::ClampAttribute *>(obj);
2616 return verifier.VerifyTable(ptr);
2617 }
2618 case Attribute_RescaleAttribute: {
2619 auto ptr = reinterpret_cast<const tosa::RescaleAttribute *>(obj);
2620 return verifier.VerifyTable(ptr);
2621 }
2622 case Attribute_MulAttribute: {
2623 auto ptr = reinterpret_cast<const tosa::MulAttribute *>(obj);
2624 return verifier.VerifyTable(ptr);
2625 }
2626 case Attribute_ArithmeticRightShiftAttribute: {
2627 auto ptr = reinterpret_cast<const tosa::ArithmeticRightShiftAttribute *>(obj);
2628 return verifier.VerifyTable(ptr);
2629 }
2630 case Attribute_CondIfAttribute: {
2631 auto ptr = reinterpret_cast<const tosa::CondIfAttribute *>(obj);
2632 return verifier.VerifyTable(ptr);
2633 }
2634 case Attribute_WhileLoopAttribute: {
2635 auto ptr = reinterpret_cast<const tosa::WhileLoopAttribute *>(obj);
2636 return verifier.VerifyTable(ptr);
2637 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002638 case Attribute_TransposeAttribute: {
2639 auto ptr = reinterpret_cast<const tosa::TransposeAttribute *>(obj);
2640 return verifier.VerifyTable(ptr);
2641 }
2642 case Attribute_TableAttribute: {
2643 auto ptr = reinterpret_cast<const tosa::TableAttribute *>(obj);
2644 return verifier.VerifyTable(ptr);
2645 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002646 case Attribute_MatMulAttribute: {
2647 auto ptr = reinterpret_cast<const tosa::MatMulAttribute *>(obj);
2648 return verifier.VerifyTable(ptr);
2649 }
2650 case Attribute_FullyConnectedAttribute: {
2651 auto ptr = reinterpret_cast<const tosa::FullyConnectedAttribute *>(obj);
2652 return verifier.VerifyTable(ptr);
2653 }
2654 case Attribute_NegateAttribute: {
2655 auto ptr = reinterpret_cast<const tosa::NegateAttribute *>(obj);
2656 return verifier.VerifyTable(ptr);
2657 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002658 default: return true;
2659 }
2660}
2661
2662inline bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
2663 if (!values || !types) return !values && !types;
2664 if (values->size() != types->size()) return false;
2665 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
2666 if (!VerifyAttribute(
2667 verifier, values->Get(i), types->GetEnum<Attribute>(i))) {
2668 return false;
2669 }
2670 }
2671 return true;
2672}
2673
Eric Kunze2364dcd2021-04-26 11:06:57 -07002674inline const tosa::TosaGraph *GetTosaGraph(const void *buf) {
2675 return flatbuffers::GetRoot<tosa::TosaGraph>(buf);
2676}
2677
2678inline const tosa::TosaGraph *GetSizePrefixedTosaGraph(const void *buf) {
2679 return flatbuffers::GetSizePrefixedRoot<tosa::TosaGraph>(buf);
2680}
2681
2682inline const char *TosaGraphIdentifier() {
2683 return "TOSA";
2684}
2685
2686inline bool TosaGraphBufferHasIdentifier(const void *buf) {
2687 return flatbuffers::BufferHasIdentifier(
2688 buf, TosaGraphIdentifier());
2689}
2690
2691inline bool VerifyTosaGraphBuffer(
2692 flatbuffers::Verifier &verifier) {
2693 return verifier.VerifyBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2694}
2695
2696inline bool VerifySizePrefixedTosaGraphBuffer(
2697 flatbuffers::Verifier &verifier) {
2698 return verifier.VerifySizePrefixedBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2699}
2700
2701inline const char *TosaGraphExtension() {
2702 return "tosa";
2703}
2704
2705inline void FinishTosaGraphBuffer(
2706 flatbuffers::FlatBufferBuilder &fbb,
2707 flatbuffers::Offset<tosa::TosaGraph> root) {
2708 fbb.Finish(root, TosaGraphIdentifier());
2709}
2710
2711inline void FinishSizePrefixedTosaGraphBuffer(
2712 flatbuffers::FlatBufferBuilder &fbb,
2713 flatbuffers::Offset<tosa::TosaGraph> root) {
2714 fbb.FinishSizePrefixed(root, TosaGraphIdentifier());
2715}
2716
2717} // namespace tosa
2718
2719#endif // FLATBUFFERS_GENERATED_TOSA_TOSA_H_