blob: b54a324530f191ecc1c44b702bfe51a998cfc8f5 [file] [log] [blame]
Eric Kunze2364dcd2021-04-26 11:06:57 -07001// automatically generated by the FlatBuffers compiler, do not modify
2
3
4#ifndef FLATBUFFERS_GENERATED_TOSA_TOSA_H_
5#define FLATBUFFERS_GENERATED_TOSA_TOSA_H_
6
7#include "flatbuffers/flatbuffers.h"
8
9namespace tosa {
10
Kevin Cheng79a41992021-08-31 16:04:40 -070011struct PoolAttribute;
12struct PoolAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070013
Kevin Cheng79a41992021-08-31 16:04:40 -070014struct ConvAttribute;
15struct ConvAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070016
Kevin Cheng79a41992021-08-31 16:04:40 -070017struct TransposeConvAttribute;
18struct TransposeConvAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070019
Kevin Cheng38d214c2021-10-15 15:49:19 -070020struct PadAttribute;
21struct PadAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070022
23struct AxisAttribute;
24struct AxisAttributeBuilder;
25
26struct ReshapeAttribute;
27struct ReshapeAttributeBuilder;
28
29struct SliceAttribute;
30struct SliceAttributeBuilder;
31
32struct TileAttribute;
33struct TileAttributeBuilder;
34
35struct ResizeAttribute;
36struct ResizeAttributeBuilder;
37
38struct ClampAttribute;
39struct ClampAttributeBuilder;
40
41struct RescaleAttribute;
42struct RescaleAttributeBuilder;
43
44struct MulAttribute;
45struct MulAttributeBuilder;
46
47struct ArithmeticRightShiftAttribute;
48struct ArithmeticRightShiftAttributeBuilder;
49
50struct CondIfAttribute;
51struct CondIfAttributeBuilder;
52
53struct WhileLoopAttribute;
54struct WhileLoopAttributeBuilder;
55
Kevin Cheng38d214c2021-10-15 15:49:19 -070056struct TransposeAttribute;
57struct TransposeAttributeBuilder;
58
59struct TableAttribute;
60struct TableAttributeBuilder;
61
Eric Kunzebdcc3fe2022-06-07 05:17:37 +000062struct MatMulAttribute;
63struct MatMulAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070064
Eric Kunzebdcc3fe2022-06-07 05:17:37 +000065struct FullyConnectedAttribute;
66struct FullyConnectedAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070067
Eric Kunzebdcc3fe2022-06-07 05:17:37 +000068struct NegateAttribute;
69struct NegateAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070070
71struct Version;
72struct VersionBuilder;
73
74struct TosaTensor;
75struct TosaTensorBuilder;
76
77struct TosaOperator;
78struct TosaOperatorBuilder;
79
80struct TosaBasicBlock;
81struct TosaBasicBlockBuilder;
82
83struct TosaGraph;
84struct TosaGraphBuilder;
85
Eric Kunze4381b3d2022-08-22 18:15:41 +000086enum DType : uint32_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -070087 DType_UNKNOWN = 0,
88 DType_BOOL = 1,
89 DType_UINT8 = 2,
90 DType_INT4 = 3,
91 DType_INT8 = 4,
92 DType_INT16 = 5,
93 DType_INT32 = 6,
94 DType_INT48 = 7,
95 DType_FLOAT = 8,
Jeremy Johnson41027732022-05-25 17:52:29 +010096 DType_UINT16 = 9,
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 Kunze4381b3d2022-08-22 18:15:41 +0000140enum ResizeMode : uint32_t {
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 Kunze4381b3d2022-08-22 18:15:41 +0000173enum Op : uint32_t {
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 Kunze4381b3d2022-08-22 18:15:41 +0000404enum Attribute : uint8_t {
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 Kunze4381b3d2022-08-22 18:15:41 +0000610 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
611 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP, 4) &&
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 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700639 flatbuffers::Offset<PoolAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700640 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700641 auto o = flatbuffers::Offset<PoolAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700642 return o;
643 }
644};
645
Kevin Cheng79a41992021-08-31 16:04:40 -0700646inline flatbuffers::Offset<PoolAttribute> CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700647 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700648 flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700649 flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000650 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
651 int32_t input_zp = 0,
652 int32_t output_zp = 0) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700653 PoolAttributeBuilder builder_(_fbb);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000654 builder_.add_output_zp(output_zp);
655 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700656 builder_.add_stride(stride);
657 builder_.add_kernel(kernel);
TatWai Chong7be71652022-05-10 17:26:20 -0700658 builder_.add_pad(pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700659 return builder_.Finish();
660}
661
Kevin Cheng79a41992021-08-31 16:04:40 -0700662inline flatbuffers::Offset<PoolAttribute> CreatePoolAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700663 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700664 const std::vector<int32_t> *pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700665 const std::vector<int32_t> *kernel = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000666 const std::vector<int32_t> *stride = nullptr,
667 int32_t input_zp = 0,
668 int32_t output_zp = 0) {
TatWai Chong7be71652022-05-10 17:26:20 -0700669 auto pad__ = pad ? _fbb.CreateVector<int32_t>(*pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700670 auto kernel__ = kernel ? _fbb.CreateVector<int32_t>(*kernel) : 0;
671 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700672 return tosa::CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700673 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700674 pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700675 kernel__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000676 stride__,
677 input_zp,
678 output_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700679}
680
Kevin Cheng79a41992021-08-31 16:04:40 -0700681struct ConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
682 typedef ConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700683 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -0700684 VT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700685 VT_STRIDE = 6,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000686 VT_DILATION = 8,
687 VT_INPUT_ZP = 10,
688 VT_WEIGHT_ZP = 12
Eric Kunze2364dcd2021-04-26 11:06:57 -0700689 };
TatWai Chong7be71652022-05-10 17:26:20 -0700690 const flatbuffers::Vector<int32_t> *pad() const {
691 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700692 }
693 const flatbuffers::Vector<int32_t> *stride() const {
694 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
695 }
696 const flatbuffers::Vector<int32_t> *dilation() const {
697 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_DILATION);
698 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000699 int32_t input_zp() const {
700 return GetField<int32_t>(VT_INPUT_ZP, 0);
701 }
702 int32_t weight_zp() const {
703 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
704 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700705 bool Verify(flatbuffers::Verifier &verifier) const {
706 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -0700707 VerifyOffset(verifier, VT_PAD) &&
708 verifier.VerifyVector(pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700709 VerifyOffset(verifier, VT_STRIDE) &&
710 verifier.VerifyVector(stride()) &&
711 VerifyOffset(verifier, VT_DILATION) &&
712 verifier.VerifyVector(dilation()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000713 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
714 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700715 verifier.EndTable();
716 }
717};
718
Kevin Cheng79a41992021-08-31 16:04:40 -0700719struct ConvAttributeBuilder {
720 typedef ConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700721 flatbuffers::FlatBufferBuilder &fbb_;
722 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -0700723 void add_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad) {
724 fbb_.AddOffset(ConvAttribute::VT_PAD, pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700725 }
726 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700727 fbb_.AddOffset(ConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700728 }
729 void add_dilation(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700730 fbb_.AddOffset(ConvAttribute::VT_DILATION, dilation);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700731 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000732 void add_input_zp(int32_t input_zp) {
733 fbb_.AddElement<int32_t>(ConvAttribute::VT_INPUT_ZP, input_zp, 0);
734 }
735 void add_weight_zp(int32_t weight_zp) {
736 fbb_.AddElement<int32_t>(ConvAttribute::VT_WEIGHT_ZP, weight_zp, 0);
737 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700738 explicit ConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700739 : fbb_(_fbb) {
740 start_ = fbb_.StartTable();
741 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700742 flatbuffers::Offset<ConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700743 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700744 auto o = flatbuffers::Offset<ConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700745 return o;
746 }
747};
748
Kevin Cheng79a41992021-08-31 16:04:40 -0700749inline flatbuffers::Offset<ConvAttribute> CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700750 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700751 flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700752 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000753 flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation = 0,
754 int32_t input_zp = 0,
755 int32_t weight_zp = 0) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700756 ConvAttributeBuilder builder_(_fbb);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000757 builder_.add_weight_zp(weight_zp);
758 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700759 builder_.add_dilation(dilation);
760 builder_.add_stride(stride);
TatWai Chong7be71652022-05-10 17:26:20 -0700761 builder_.add_pad(pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700762 return builder_.Finish();
763}
764
Kevin Cheng79a41992021-08-31 16:04:40 -0700765inline flatbuffers::Offset<ConvAttribute> CreateConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700766 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700767 const std::vector<int32_t> *pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700768 const std::vector<int32_t> *stride = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000769 const std::vector<int32_t> *dilation = nullptr,
770 int32_t input_zp = 0,
771 int32_t weight_zp = 0) {
TatWai Chong7be71652022-05-10 17:26:20 -0700772 auto pad__ = pad ? _fbb.CreateVector<int32_t>(*pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700773 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
774 auto dilation__ = dilation ? _fbb.CreateVector<int32_t>(*dilation) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700775 return tosa::CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700776 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700777 pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700778 stride__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000779 dilation__,
780 input_zp,
781 weight_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700782}
783
Kevin Cheng79a41992021-08-31 16:04:40 -0700784struct TransposeConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
785 typedef TransposeConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700786 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700787 VT_OUT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700788 VT_STRIDE = 6,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000789 VT_OUTPUT_SHAPE = 8,
790 VT_INPUT_ZP = 10,
791 VT_WEIGHT_ZP = 12
Eric Kunze2364dcd2021-04-26 11:06:57 -0700792 };
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700793 const flatbuffers::Vector<int32_t> *out_pad() const {
794 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700795 }
796 const flatbuffers::Vector<int32_t> *stride() const {
797 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
798 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700799 const flatbuffers::Vector<int32_t> *output_shape() const {
800 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUT_SHAPE);
801 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000802 int32_t input_zp() const {
803 return GetField<int32_t>(VT_INPUT_ZP, 0);
804 }
805 int32_t weight_zp() const {
806 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
807 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700808 bool Verify(flatbuffers::Verifier &verifier) const {
809 return VerifyTableStart(verifier) &&
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700810 VerifyOffset(verifier, VT_OUT_PAD) &&
811 verifier.VerifyVector(out_pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700812 VerifyOffset(verifier, VT_STRIDE) &&
813 verifier.VerifyVector(stride()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700814 VerifyOffset(verifier, VT_OUTPUT_SHAPE) &&
815 verifier.VerifyVector(output_shape()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000816 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
817 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700818 verifier.EndTable();
819 }
820};
821
Kevin Cheng79a41992021-08-31 16:04:40 -0700822struct TransposeConvAttributeBuilder {
823 typedef TransposeConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700824 flatbuffers::FlatBufferBuilder &fbb_;
825 flatbuffers::uoffset_t start_;
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700826 void add_out_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> out_pad) {
827 fbb_.AddOffset(TransposeConvAttribute::VT_OUT_PAD, out_pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700828 }
829 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700830 fbb_.AddOffset(TransposeConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700831 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700832 void add_output_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700833 fbb_.AddOffset(TransposeConvAttribute::VT_OUTPUT_SHAPE, output_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700834 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000835 void add_input_zp(int32_t input_zp) {
836 fbb_.AddElement<int32_t>(TransposeConvAttribute::VT_INPUT_ZP, input_zp, 0);
837 }
838 void add_weight_zp(int32_t weight_zp) {
839 fbb_.AddElement<int32_t>(TransposeConvAttribute::VT_WEIGHT_ZP, weight_zp, 0);
840 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700841 explicit TransposeConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700842 : fbb_(_fbb) {
843 start_ = fbb_.StartTable();
844 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700845 flatbuffers::Offset<TransposeConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700846 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700847 auto o = flatbuffers::Offset<TransposeConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700848 return o;
849 }
850};
851
Kevin Cheng79a41992021-08-31 16:04:40 -0700852inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700853 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700854 flatbuffers::Offset<flatbuffers::Vector<int32_t>> out_pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700855 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000856 flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape = 0,
857 int32_t input_zp = 0,
858 int32_t weight_zp = 0) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700859 TransposeConvAttributeBuilder builder_(_fbb);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000860 builder_.add_weight_zp(weight_zp);
861 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700862 builder_.add_output_shape(output_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700863 builder_.add_stride(stride);
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700864 builder_.add_out_pad(out_pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700865 return builder_.Finish();
866}
867
Kevin Cheng79a41992021-08-31 16:04:40 -0700868inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700869 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700870 const std::vector<int32_t> *out_pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700871 const std::vector<int32_t> *stride = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000872 const std::vector<int32_t> *output_shape = nullptr,
873 int32_t input_zp = 0,
874 int32_t weight_zp = 0) {
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700875 auto out_pad__ = out_pad ? _fbb.CreateVector<int32_t>(*out_pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700876 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700877 auto output_shape__ = output_shape ? _fbb.CreateVector<int32_t>(*output_shape) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700878 return tosa::CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700879 _fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700880 out_pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700881 stride__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000882 output_shape__,
883 input_zp,
884 weight_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700885}
886
Kevin Cheng38d214c2021-10-15 15:49:19 -0700887struct PadAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
888 typedef PadAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700889 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Kevin Cheng38d214c2021-10-15 15:49:19 -0700890 VT_PADDING = 4,
891 VT_PAD_CONST_INT = 6,
892 VT_PAD_CONST_FP = 8
Eric Kunze2364dcd2021-04-26 11:06:57 -0700893 };
Kevin Cheng38d214c2021-10-15 15:49:19 -0700894 const flatbuffers::Vector<int32_t> *padding() const {
895 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PADDING);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700896 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700897 int32_t pad_const_int() const {
898 return GetField<int32_t>(VT_PAD_CONST_INT, 0);
899 }
900 float pad_const_fp() const {
901 return GetField<float>(VT_PAD_CONST_FP, 0.0f);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700902 }
903 bool Verify(flatbuffers::Verifier &verifier) const {
904 return VerifyTableStart(verifier) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -0700905 VerifyOffset(verifier, VT_PADDING) &&
906 verifier.VerifyVector(padding()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000907 VerifyField<int32_t>(verifier, VT_PAD_CONST_INT, 4) &&
908 VerifyField<float>(verifier, VT_PAD_CONST_FP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700909 verifier.EndTable();
910 }
911};
912
Kevin Cheng38d214c2021-10-15 15:49:19 -0700913struct PadAttributeBuilder {
914 typedef PadAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700915 flatbuffers::FlatBufferBuilder &fbb_;
916 flatbuffers::uoffset_t start_;
Kevin Cheng38d214c2021-10-15 15:49:19 -0700917 void add_padding(flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding) {
918 fbb_.AddOffset(PadAttribute::VT_PADDING, padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700919 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700920 void add_pad_const_int(int32_t pad_const_int) {
921 fbb_.AddElement<int32_t>(PadAttribute::VT_PAD_CONST_INT, pad_const_int, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700922 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700923 void add_pad_const_fp(float pad_const_fp) {
924 fbb_.AddElement<float>(PadAttribute::VT_PAD_CONST_FP, pad_const_fp, 0.0f);
925 }
926 explicit PadAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700927 : fbb_(_fbb) {
928 start_ = fbb_.StartTable();
929 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700930 flatbuffers::Offset<PadAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700931 const auto end = fbb_.EndTable(start_);
Kevin Cheng38d214c2021-10-15 15:49:19 -0700932 auto o = flatbuffers::Offset<PadAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700933 return o;
934 }
935};
936
Kevin Cheng38d214c2021-10-15 15:49:19 -0700937inline flatbuffers::Offset<PadAttribute> CreatePadAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700938 flatbuffers::FlatBufferBuilder &_fbb,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700939 flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding = 0,
940 int32_t pad_const_int = 0,
941 float pad_const_fp = 0.0f) {
942 PadAttributeBuilder builder_(_fbb);
943 builder_.add_pad_const_fp(pad_const_fp);
944 builder_.add_pad_const_int(pad_const_int);
945 builder_.add_padding(padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700946 return builder_.Finish();
947}
948
Kevin Cheng38d214c2021-10-15 15:49:19 -0700949inline flatbuffers::Offset<PadAttribute> CreatePadAttributeDirect(
950 flatbuffers::FlatBufferBuilder &_fbb,
951 const std::vector<int32_t> *padding = nullptr,
952 int32_t pad_const_int = 0,
953 float pad_const_fp = 0.0f) {
954 auto padding__ = padding ? _fbb.CreateVector<int32_t>(*padding) : 0;
955 return tosa::CreatePadAttribute(
956 _fbb,
957 padding__,
958 pad_const_int,
959 pad_const_fp);
960}
961
Eric Kunze2364dcd2021-04-26 11:06:57 -0700962struct AxisAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
963 typedef AxisAttributeBuilder Builder;
964 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
965 VT_AXIS = 4
966 };
967 int32_t axis() const {
968 return GetField<int32_t>(VT_AXIS, 0);
969 }
970 bool Verify(flatbuffers::Verifier &verifier) const {
971 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000972 VerifyField<int32_t>(verifier, VT_AXIS, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700973 verifier.EndTable();
974 }
975};
976
977struct AxisAttributeBuilder {
978 typedef AxisAttribute Table;
979 flatbuffers::FlatBufferBuilder &fbb_;
980 flatbuffers::uoffset_t start_;
981 void add_axis(int32_t axis) {
982 fbb_.AddElement<int32_t>(AxisAttribute::VT_AXIS, axis, 0);
983 }
984 explicit AxisAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
985 : fbb_(_fbb) {
986 start_ = fbb_.StartTable();
987 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700988 flatbuffers::Offset<AxisAttribute> Finish() {
989 const auto end = fbb_.EndTable(start_);
990 auto o = flatbuffers::Offset<AxisAttribute>(end);
991 return o;
992 }
993};
994
995inline flatbuffers::Offset<AxisAttribute> CreateAxisAttribute(
996 flatbuffers::FlatBufferBuilder &_fbb,
997 int32_t axis = 0) {
998 AxisAttributeBuilder builder_(_fbb);
999 builder_.add_axis(axis);
1000 return builder_.Finish();
1001}
1002
1003struct ReshapeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1004 typedef ReshapeAttributeBuilder Builder;
1005 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001006 VT_NEW_SHAPE = 4
Eric Kunze2364dcd2021-04-26 11:06:57 -07001007 };
TatWai Chong7be71652022-05-10 17:26:20 -07001008 const flatbuffers::Vector<int32_t> *new_shape() const {
1009 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_NEW_SHAPE);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001010 }
1011 bool Verify(flatbuffers::Verifier &verifier) const {
1012 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001013 VerifyOffset(verifier, VT_NEW_SHAPE) &&
1014 verifier.VerifyVector(new_shape()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001015 verifier.EndTable();
1016 }
1017};
1018
1019struct ReshapeAttributeBuilder {
1020 typedef ReshapeAttribute Table;
1021 flatbuffers::FlatBufferBuilder &fbb_;
1022 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001023 void add_new_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> new_shape) {
1024 fbb_.AddOffset(ReshapeAttribute::VT_NEW_SHAPE, new_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001025 }
1026 explicit ReshapeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1027 : fbb_(_fbb) {
1028 start_ = fbb_.StartTable();
1029 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001030 flatbuffers::Offset<ReshapeAttribute> Finish() {
1031 const auto end = fbb_.EndTable(start_);
1032 auto o = flatbuffers::Offset<ReshapeAttribute>(end);
1033 return o;
1034 }
1035};
1036
1037inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttribute(
1038 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001039 flatbuffers::Offset<flatbuffers::Vector<int32_t>> new_shape = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001040 ReshapeAttributeBuilder builder_(_fbb);
TatWai Chong7be71652022-05-10 17:26:20 -07001041 builder_.add_new_shape(new_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001042 return builder_.Finish();
1043}
1044
1045inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttributeDirect(
1046 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001047 const std::vector<int32_t> *new_shape = nullptr) {
1048 auto new_shape__ = new_shape ? _fbb.CreateVector<int32_t>(*new_shape) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001049 return tosa::CreateReshapeAttribute(
1050 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001051 new_shape__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001052}
1053
1054struct SliceAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1055 typedef SliceAttributeBuilder Builder;
1056 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001057 VT_START = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001058 VT_SIZE = 6
1059 };
TatWai Chong7be71652022-05-10 17:26:20 -07001060 const flatbuffers::Vector<int32_t> *start() const {
1061 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_START);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001062 }
1063 const flatbuffers::Vector<int32_t> *size() const {
1064 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SIZE);
1065 }
1066 bool Verify(flatbuffers::Verifier &verifier) const {
1067 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001068 VerifyOffset(verifier, VT_START) &&
1069 verifier.VerifyVector(start()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001070 VerifyOffset(verifier, VT_SIZE) &&
1071 verifier.VerifyVector(size()) &&
1072 verifier.EndTable();
1073 }
1074};
1075
1076struct SliceAttributeBuilder {
1077 typedef SliceAttribute Table;
1078 flatbuffers::FlatBufferBuilder &fbb_;
1079 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001080 void add_start(flatbuffers::Offset<flatbuffers::Vector<int32_t>> start) {
1081 fbb_.AddOffset(SliceAttribute::VT_START, start);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001082 }
1083 void add_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> size) {
1084 fbb_.AddOffset(SliceAttribute::VT_SIZE, size);
1085 }
1086 explicit SliceAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1087 : fbb_(_fbb) {
1088 start_ = fbb_.StartTable();
1089 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001090 flatbuffers::Offset<SliceAttribute> Finish() {
1091 const auto end = fbb_.EndTable(start_);
1092 auto o = flatbuffers::Offset<SliceAttribute>(end);
1093 return o;
1094 }
1095};
1096
1097inline flatbuffers::Offset<SliceAttribute> CreateSliceAttribute(
1098 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001099 flatbuffers::Offset<flatbuffers::Vector<int32_t>> start = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001100 flatbuffers::Offset<flatbuffers::Vector<int32_t>> size = 0) {
1101 SliceAttributeBuilder builder_(_fbb);
1102 builder_.add_size(size);
TatWai Chong7be71652022-05-10 17:26:20 -07001103 builder_.add_start(start);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001104 return builder_.Finish();
1105}
1106
1107inline flatbuffers::Offset<SliceAttribute> CreateSliceAttributeDirect(
1108 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001109 const std::vector<int32_t> *start = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001110 const std::vector<int32_t> *size = nullptr) {
TatWai Chong7be71652022-05-10 17:26:20 -07001111 auto start__ = start ? _fbb.CreateVector<int32_t>(*start) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001112 auto size__ = size ? _fbb.CreateVector<int32_t>(*size) : 0;
1113 return tosa::CreateSliceAttribute(
1114 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001115 start__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001116 size__);
1117}
1118
1119struct TileAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1120 typedef TileAttributeBuilder Builder;
1121 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1122 VT_MULTIPLES = 4
1123 };
1124 const flatbuffers::Vector<int32_t> *multiples() const {
1125 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLES);
1126 }
1127 bool Verify(flatbuffers::Verifier &verifier) const {
1128 return VerifyTableStart(verifier) &&
1129 VerifyOffset(verifier, VT_MULTIPLES) &&
1130 verifier.VerifyVector(multiples()) &&
1131 verifier.EndTable();
1132 }
1133};
1134
1135struct TileAttributeBuilder {
1136 typedef TileAttribute Table;
1137 flatbuffers::FlatBufferBuilder &fbb_;
1138 flatbuffers::uoffset_t start_;
1139 void add_multiples(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples) {
1140 fbb_.AddOffset(TileAttribute::VT_MULTIPLES, multiples);
1141 }
1142 explicit TileAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1143 : fbb_(_fbb) {
1144 start_ = fbb_.StartTable();
1145 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001146 flatbuffers::Offset<TileAttribute> Finish() {
1147 const auto end = fbb_.EndTable(start_);
1148 auto o = flatbuffers::Offset<TileAttribute>(end);
1149 return o;
1150 }
1151};
1152
1153inline flatbuffers::Offset<TileAttribute> CreateTileAttribute(
1154 flatbuffers::FlatBufferBuilder &_fbb,
1155 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples = 0) {
1156 TileAttributeBuilder builder_(_fbb);
1157 builder_.add_multiples(multiples);
1158 return builder_.Finish();
1159}
1160
1161inline flatbuffers::Offset<TileAttribute> CreateTileAttributeDirect(
1162 flatbuffers::FlatBufferBuilder &_fbb,
1163 const std::vector<int32_t> *multiples = nullptr) {
1164 auto multiples__ = multiples ? _fbb.CreateVector<int32_t>(*multiples) : 0;
1165 return tosa::CreateTileAttribute(
1166 _fbb,
1167 multiples__);
1168}
1169
1170struct ResizeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1171 typedef ResizeAttributeBuilder Builder;
1172 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong49b1ca62022-06-10 01:49:13 -07001173 VT_SCALE = 4,
1174 VT_OFFSET = 6,
1175 VT_BORDER = 8,
1176 VT_MODE = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07001177 };
TatWai Chong49b1ca62022-06-10 01:49:13 -07001178 const flatbuffers::Vector<int16_t> *scale() const {
1179 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_SCALE);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001180 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001181 const flatbuffers::Vector<int16_t> *offset() const {
1182 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_OFFSET);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001183 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001184 const flatbuffers::Vector<int16_t> *border() const {
1185 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_BORDER);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001186 }
1187 tosa::ResizeMode mode() const {
1188 return static_cast<tosa::ResizeMode>(GetField<uint32_t>(VT_MODE, 0));
1189 }
1190 bool Verify(flatbuffers::Verifier &verifier) const {
1191 return VerifyTableStart(verifier) &&
TatWai Chong49b1ca62022-06-10 01:49:13 -07001192 VerifyOffset(verifier, VT_SCALE) &&
1193 verifier.VerifyVector(scale()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001194 VerifyOffset(verifier, VT_OFFSET) &&
1195 verifier.VerifyVector(offset()) &&
TatWai Chong49b1ca62022-06-10 01:49:13 -07001196 VerifyOffset(verifier, VT_BORDER) &&
1197 verifier.VerifyVector(border()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001198 VerifyField<uint32_t>(verifier, VT_MODE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001199 verifier.EndTable();
1200 }
1201};
1202
1203struct ResizeAttributeBuilder {
1204 typedef ResizeAttribute Table;
1205 flatbuffers::FlatBufferBuilder &fbb_;
1206 flatbuffers::uoffset_t start_;
TatWai Chong49b1ca62022-06-10 01:49:13 -07001207 void add_scale(flatbuffers::Offset<flatbuffers::Vector<int16_t>> scale) {
1208 fbb_.AddOffset(ResizeAttribute::VT_SCALE, scale);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001209 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001210 void add_offset(flatbuffers::Offset<flatbuffers::Vector<int16_t>> offset) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001211 fbb_.AddOffset(ResizeAttribute::VT_OFFSET, offset);
1212 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001213 void add_border(flatbuffers::Offset<flatbuffers::Vector<int16_t>> border) {
1214 fbb_.AddOffset(ResizeAttribute::VT_BORDER, border);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001215 }
1216 void add_mode(tosa::ResizeMode mode) {
1217 fbb_.AddElement<uint32_t>(ResizeAttribute::VT_MODE, static_cast<uint32_t>(mode), 0);
1218 }
1219 explicit ResizeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1220 : fbb_(_fbb) {
1221 start_ = fbb_.StartTable();
1222 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001223 flatbuffers::Offset<ResizeAttribute> Finish() {
1224 const auto end = fbb_.EndTable(start_);
1225 auto o = flatbuffers::Offset<ResizeAttribute>(end);
1226 return o;
1227 }
1228};
1229
1230inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttribute(
1231 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001232 flatbuffers::Offset<flatbuffers::Vector<int16_t>> scale = 0,
1233 flatbuffers::Offset<flatbuffers::Vector<int16_t>> offset = 0,
1234 flatbuffers::Offset<flatbuffers::Vector<int16_t>> border = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001235 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
1236 ResizeAttributeBuilder builder_(_fbb);
1237 builder_.add_mode(mode);
TatWai Chong49b1ca62022-06-10 01:49:13 -07001238 builder_.add_border(border);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001239 builder_.add_offset(offset);
TatWai Chong49b1ca62022-06-10 01:49:13 -07001240 builder_.add_scale(scale);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001241 return builder_.Finish();
1242}
1243
1244inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttributeDirect(
1245 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001246 const std::vector<int16_t> *scale = nullptr,
1247 const std::vector<int16_t> *offset = nullptr,
1248 const std::vector<int16_t> *border = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001249 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
TatWai Chong49b1ca62022-06-10 01:49:13 -07001250 auto scale__ = scale ? _fbb.CreateVector<int16_t>(*scale) : 0;
1251 auto offset__ = offset ? _fbb.CreateVector<int16_t>(*offset) : 0;
1252 auto border__ = border ? _fbb.CreateVector<int16_t>(*border) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001253 return tosa::CreateResizeAttribute(
1254 _fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001255 scale__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001256 offset__,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001257 border__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001258 mode);
1259}
1260
1261struct ClampAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1262 typedef ClampAttributeBuilder Builder;
1263 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1264 VT_MIN_INT = 4,
1265 VT_MAX_INT = 6,
1266 VT_MIN_FP = 8,
1267 VT_MAX_FP = 10
1268 };
1269 int32_t min_int() const {
1270 return GetField<int32_t>(VT_MIN_INT, 0);
1271 }
1272 int32_t max_int() const {
1273 return GetField<int32_t>(VT_MAX_INT, 0);
1274 }
1275 float min_fp() const {
1276 return GetField<float>(VT_MIN_FP, 0.0f);
1277 }
1278 float max_fp() const {
1279 return GetField<float>(VT_MAX_FP, 0.0f);
1280 }
1281 bool Verify(flatbuffers::Verifier &verifier) const {
1282 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001283 VerifyField<int32_t>(verifier, VT_MIN_INT, 4) &&
1284 VerifyField<int32_t>(verifier, VT_MAX_INT, 4) &&
1285 VerifyField<float>(verifier, VT_MIN_FP, 4) &&
1286 VerifyField<float>(verifier, VT_MAX_FP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001287 verifier.EndTable();
1288 }
1289};
1290
1291struct ClampAttributeBuilder {
1292 typedef ClampAttribute Table;
1293 flatbuffers::FlatBufferBuilder &fbb_;
1294 flatbuffers::uoffset_t start_;
1295 void add_min_int(int32_t min_int) {
1296 fbb_.AddElement<int32_t>(ClampAttribute::VT_MIN_INT, min_int, 0);
1297 }
1298 void add_max_int(int32_t max_int) {
1299 fbb_.AddElement<int32_t>(ClampAttribute::VT_MAX_INT, max_int, 0);
1300 }
1301 void add_min_fp(float min_fp) {
1302 fbb_.AddElement<float>(ClampAttribute::VT_MIN_FP, min_fp, 0.0f);
1303 }
1304 void add_max_fp(float max_fp) {
1305 fbb_.AddElement<float>(ClampAttribute::VT_MAX_FP, max_fp, 0.0f);
1306 }
1307 explicit ClampAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1308 : fbb_(_fbb) {
1309 start_ = fbb_.StartTable();
1310 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001311 flatbuffers::Offset<ClampAttribute> Finish() {
1312 const auto end = fbb_.EndTable(start_);
1313 auto o = flatbuffers::Offset<ClampAttribute>(end);
1314 return o;
1315 }
1316};
1317
1318inline flatbuffers::Offset<ClampAttribute> CreateClampAttribute(
1319 flatbuffers::FlatBufferBuilder &_fbb,
1320 int32_t min_int = 0,
1321 int32_t max_int = 0,
1322 float min_fp = 0.0f,
1323 float max_fp = 0.0f) {
1324 ClampAttributeBuilder builder_(_fbb);
1325 builder_.add_max_fp(max_fp);
1326 builder_.add_min_fp(min_fp);
1327 builder_.add_max_int(max_int);
1328 builder_.add_min_int(min_int);
1329 return builder_.Finish();
1330}
1331
1332struct RescaleAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1333 typedef RescaleAttributeBuilder Builder;
1334 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1335 VT_INPUT_ZP = 4,
1336 VT_OUTPUT_ZP = 6,
1337 VT_MULTIPLIER = 8,
1338 VT_SHIFT = 10,
1339 VT_SCALE32 = 12,
1340 VT_DOUBLE_ROUND = 14,
1341 VT_PER_CHANNEL = 16
1342 };
1343 int32_t input_zp() const {
1344 return GetField<int32_t>(VT_INPUT_ZP, 0);
1345 }
1346 int32_t output_zp() const {
1347 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1348 }
1349 const flatbuffers::Vector<int32_t> *multiplier() const {
1350 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLIER);
1351 }
1352 const flatbuffers::Vector<int32_t> *shift() const {
1353 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHIFT);
1354 }
1355 bool scale32() const {
1356 return GetField<uint8_t>(VT_SCALE32, 0) != 0;
1357 }
1358 bool double_round() const {
1359 return GetField<uint8_t>(VT_DOUBLE_ROUND, 0) != 0;
1360 }
1361 bool per_channel() const {
1362 return GetField<uint8_t>(VT_PER_CHANNEL, 0) != 0;
1363 }
1364 bool Verify(flatbuffers::Verifier &verifier) const {
1365 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001366 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
1367 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001368 VerifyOffset(verifier, VT_MULTIPLIER) &&
1369 verifier.VerifyVector(multiplier()) &&
1370 VerifyOffset(verifier, VT_SHIFT) &&
1371 verifier.VerifyVector(shift()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001372 VerifyField<uint8_t>(verifier, VT_SCALE32, 1) &&
1373 VerifyField<uint8_t>(verifier, VT_DOUBLE_ROUND, 1) &&
1374 VerifyField<uint8_t>(verifier, VT_PER_CHANNEL, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001375 verifier.EndTable();
1376 }
1377};
1378
1379struct RescaleAttributeBuilder {
1380 typedef RescaleAttribute Table;
1381 flatbuffers::FlatBufferBuilder &fbb_;
1382 flatbuffers::uoffset_t start_;
1383 void add_input_zp(int32_t input_zp) {
1384 fbb_.AddElement<int32_t>(RescaleAttribute::VT_INPUT_ZP, input_zp, 0);
1385 }
1386 void add_output_zp(int32_t output_zp) {
1387 fbb_.AddElement<int32_t>(RescaleAttribute::VT_OUTPUT_ZP, output_zp, 0);
1388 }
1389 void add_multiplier(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier) {
1390 fbb_.AddOffset(RescaleAttribute::VT_MULTIPLIER, multiplier);
1391 }
1392 void add_shift(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift) {
1393 fbb_.AddOffset(RescaleAttribute::VT_SHIFT, shift);
1394 }
1395 void add_scale32(bool scale32) {
1396 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_SCALE32, static_cast<uint8_t>(scale32), 0);
1397 }
1398 void add_double_round(bool double_round) {
1399 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_DOUBLE_ROUND, static_cast<uint8_t>(double_round), 0);
1400 }
1401 void add_per_channel(bool per_channel) {
1402 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_PER_CHANNEL, static_cast<uint8_t>(per_channel), 0);
1403 }
1404 explicit RescaleAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1405 : fbb_(_fbb) {
1406 start_ = fbb_.StartTable();
1407 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001408 flatbuffers::Offset<RescaleAttribute> Finish() {
1409 const auto end = fbb_.EndTable(start_);
1410 auto o = flatbuffers::Offset<RescaleAttribute>(end);
1411 return o;
1412 }
1413};
1414
1415inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttribute(
1416 flatbuffers::FlatBufferBuilder &_fbb,
1417 int32_t input_zp = 0,
1418 int32_t output_zp = 0,
1419 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier = 0,
1420 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift = 0,
1421 bool scale32 = false,
1422 bool double_round = false,
1423 bool per_channel = false) {
1424 RescaleAttributeBuilder builder_(_fbb);
1425 builder_.add_shift(shift);
1426 builder_.add_multiplier(multiplier);
1427 builder_.add_output_zp(output_zp);
1428 builder_.add_input_zp(input_zp);
1429 builder_.add_per_channel(per_channel);
1430 builder_.add_double_round(double_round);
1431 builder_.add_scale32(scale32);
1432 return builder_.Finish();
1433}
1434
1435inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttributeDirect(
1436 flatbuffers::FlatBufferBuilder &_fbb,
1437 int32_t input_zp = 0,
1438 int32_t output_zp = 0,
1439 const std::vector<int32_t> *multiplier = nullptr,
1440 const std::vector<int32_t> *shift = nullptr,
1441 bool scale32 = false,
1442 bool double_round = false,
1443 bool per_channel = false) {
1444 auto multiplier__ = multiplier ? _fbb.CreateVector<int32_t>(*multiplier) : 0;
1445 auto shift__ = shift ? _fbb.CreateVector<int32_t>(*shift) : 0;
1446 return tosa::CreateRescaleAttribute(
1447 _fbb,
1448 input_zp,
1449 output_zp,
1450 multiplier__,
1451 shift__,
1452 scale32,
1453 double_round,
1454 per_channel);
1455}
1456
1457struct MulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1458 typedef MulAttributeBuilder Builder;
1459 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1460 VT_SHIFT = 4
1461 };
1462 int32_t shift() const {
1463 return GetField<int32_t>(VT_SHIFT, 0);
1464 }
1465 bool Verify(flatbuffers::Verifier &verifier) const {
1466 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001467 VerifyField<int32_t>(verifier, VT_SHIFT, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001468 verifier.EndTable();
1469 }
1470};
1471
1472struct MulAttributeBuilder {
1473 typedef MulAttribute Table;
1474 flatbuffers::FlatBufferBuilder &fbb_;
1475 flatbuffers::uoffset_t start_;
1476 void add_shift(int32_t shift) {
1477 fbb_.AddElement<int32_t>(MulAttribute::VT_SHIFT, shift, 0);
1478 }
1479 explicit MulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1480 : fbb_(_fbb) {
1481 start_ = fbb_.StartTable();
1482 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001483 flatbuffers::Offset<MulAttribute> Finish() {
1484 const auto end = fbb_.EndTable(start_);
1485 auto o = flatbuffers::Offset<MulAttribute>(end);
1486 return o;
1487 }
1488};
1489
1490inline flatbuffers::Offset<MulAttribute> CreateMulAttribute(
1491 flatbuffers::FlatBufferBuilder &_fbb,
1492 int32_t shift = 0) {
1493 MulAttributeBuilder builder_(_fbb);
1494 builder_.add_shift(shift);
1495 return builder_.Finish();
1496}
1497
1498struct ArithmeticRightShiftAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1499 typedef ArithmeticRightShiftAttributeBuilder Builder;
1500 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1501 VT_ROUND = 4
1502 };
1503 bool round() const {
1504 return GetField<uint8_t>(VT_ROUND, 0) != 0;
1505 }
1506 bool Verify(flatbuffers::Verifier &verifier) const {
1507 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001508 VerifyField<uint8_t>(verifier, VT_ROUND, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001509 verifier.EndTable();
1510 }
1511};
1512
1513struct ArithmeticRightShiftAttributeBuilder {
1514 typedef ArithmeticRightShiftAttribute Table;
1515 flatbuffers::FlatBufferBuilder &fbb_;
1516 flatbuffers::uoffset_t start_;
1517 void add_round(bool round) {
1518 fbb_.AddElement<uint8_t>(ArithmeticRightShiftAttribute::VT_ROUND, static_cast<uint8_t>(round), 0);
1519 }
1520 explicit ArithmeticRightShiftAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1521 : fbb_(_fbb) {
1522 start_ = fbb_.StartTable();
1523 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001524 flatbuffers::Offset<ArithmeticRightShiftAttribute> Finish() {
1525 const auto end = fbb_.EndTable(start_);
1526 auto o = flatbuffers::Offset<ArithmeticRightShiftAttribute>(end);
1527 return o;
1528 }
1529};
1530
1531inline flatbuffers::Offset<ArithmeticRightShiftAttribute> CreateArithmeticRightShiftAttribute(
1532 flatbuffers::FlatBufferBuilder &_fbb,
1533 bool round = false) {
1534 ArithmeticRightShiftAttributeBuilder builder_(_fbb);
1535 builder_.add_round(round);
1536 return builder_.Finish();
1537}
1538
1539struct CondIfAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1540 typedef CondIfAttributeBuilder Builder;
1541 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1542 VT_THEN_BRANCH = 4,
1543 VT_ELSE_BRANCH = 6
1544 };
1545 const flatbuffers::String *then_branch() const {
1546 return GetPointer<const flatbuffers::String *>(VT_THEN_BRANCH);
1547 }
1548 const flatbuffers::String *else_branch() const {
1549 return GetPointer<const flatbuffers::String *>(VT_ELSE_BRANCH);
1550 }
1551 bool Verify(flatbuffers::Verifier &verifier) const {
1552 return VerifyTableStart(verifier) &&
1553 VerifyOffset(verifier, VT_THEN_BRANCH) &&
1554 verifier.VerifyString(then_branch()) &&
1555 VerifyOffset(verifier, VT_ELSE_BRANCH) &&
1556 verifier.VerifyString(else_branch()) &&
1557 verifier.EndTable();
1558 }
1559};
1560
1561struct CondIfAttributeBuilder {
1562 typedef CondIfAttribute Table;
1563 flatbuffers::FlatBufferBuilder &fbb_;
1564 flatbuffers::uoffset_t start_;
1565 void add_then_branch(flatbuffers::Offset<flatbuffers::String> then_branch) {
1566 fbb_.AddOffset(CondIfAttribute::VT_THEN_BRANCH, then_branch);
1567 }
1568 void add_else_branch(flatbuffers::Offset<flatbuffers::String> else_branch) {
1569 fbb_.AddOffset(CondIfAttribute::VT_ELSE_BRANCH, else_branch);
1570 }
1571 explicit CondIfAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1572 : fbb_(_fbb) {
1573 start_ = fbb_.StartTable();
1574 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001575 flatbuffers::Offset<CondIfAttribute> Finish() {
1576 const auto end = fbb_.EndTable(start_);
1577 auto o = flatbuffers::Offset<CondIfAttribute>(end);
1578 return o;
1579 }
1580};
1581
1582inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttribute(
1583 flatbuffers::FlatBufferBuilder &_fbb,
1584 flatbuffers::Offset<flatbuffers::String> then_branch = 0,
1585 flatbuffers::Offset<flatbuffers::String> else_branch = 0) {
1586 CondIfAttributeBuilder builder_(_fbb);
1587 builder_.add_else_branch(else_branch);
1588 builder_.add_then_branch(then_branch);
1589 return builder_.Finish();
1590}
1591
1592inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttributeDirect(
1593 flatbuffers::FlatBufferBuilder &_fbb,
1594 const char *then_branch = nullptr,
1595 const char *else_branch = nullptr) {
1596 auto then_branch__ = then_branch ? _fbb.CreateString(then_branch) : 0;
1597 auto else_branch__ = else_branch ? _fbb.CreateString(else_branch) : 0;
1598 return tosa::CreateCondIfAttribute(
1599 _fbb,
1600 then_branch__,
1601 else_branch__);
1602}
1603
1604struct WhileLoopAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1605 typedef WhileLoopAttributeBuilder Builder;
1606 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1607 VT_COND_BRANCH = 4,
1608 VT_BODY_BRANCH = 6
1609 };
1610 const flatbuffers::String *cond_branch() const {
1611 return GetPointer<const flatbuffers::String *>(VT_COND_BRANCH);
1612 }
1613 const flatbuffers::String *body_branch() const {
1614 return GetPointer<const flatbuffers::String *>(VT_BODY_BRANCH);
1615 }
1616 bool Verify(flatbuffers::Verifier &verifier) const {
1617 return VerifyTableStart(verifier) &&
1618 VerifyOffset(verifier, VT_COND_BRANCH) &&
1619 verifier.VerifyString(cond_branch()) &&
1620 VerifyOffset(verifier, VT_BODY_BRANCH) &&
1621 verifier.VerifyString(body_branch()) &&
1622 verifier.EndTable();
1623 }
1624};
1625
1626struct WhileLoopAttributeBuilder {
1627 typedef WhileLoopAttribute Table;
1628 flatbuffers::FlatBufferBuilder &fbb_;
1629 flatbuffers::uoffset_t start_;
1630 void add_cond_branch(flatbuffers::Offset<flatbuffers::String> cond_branch) {
1631 fbb_.AddOffset(WhileLoopAttribute::VT_COND_BRANCH, cond_branch);
1632 }
1633 void add_body_branch(flatbuffers::Offset<flatbuffers::String> body_branch) {
1634 fbb_.AddOffset(WhileLoopAttribute::VT_BODY_BRANCH, body_branch);
1635 }
1636 explicit WhileLoopAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1637 : fbb_(_fbb) {
1638 start_ = fbb_.StartTable();
1639 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001640 flatbuffers::Offset<WhileLoopAttribute> Finish() {
1641 const auto end = fbb_.EndTable(start_);
1642 auto o = flatbuffers::Offset<WhileLoopAttribute>(end);
1643 return o;
1644 }
1645};
1646
1647inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttribute(
1648 flatbuffers::FlatBufferBuilder &_fbb,
1649 flatbuffers::Offset<flatbuffers::String> cond_branch = 0,
1650 flatbuffers::Offset<flatbuffers::String> body_branch = 0) {
1651 WhileLoopAttributeBuilder builder_(_fbb);
1652 builder_.add_body_branch(body_branch);
1653 builder_.add_cond_branch(cond_branch);
1654 return builder_.Finish();
1655}
1656
1657inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttributeDirect(
1658 flatbuffers::FlatBufferBuilder &_fbb,
1659 const char *cond_branch = nullptr,
1660 const char *body_branch = nullptr) {
1661 auto cond_branch__ = cond_branch ? _fbb.CreateString(cond_branch) : 0;
1662 auto body_branch__ = body_branch ? _fbb.CreateString(body_branch) : 0;
1663 return tosa::CreateWhileLoopAttribute(
1664 _fbb,
1665 cond_branch__,
1666 body_branch__);
1667}
1668
Kevin Cheng38d214c2021-10-15 15:49:19 -07001669struct TransposeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1670 typedef TransposeAttributeBuilder Builder;
1671 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001672 VT_PERMS = 4
Kevin Cheng38d214c2021-10-15 15:49:19 -07001673 };
TatWai Chong7be71652022-05-10 17:26:20 -07001674 const flatbuffers::Vector<int32_t> *perms() const {
1675 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PERMS);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001676 }
1677 bool Verify(flatbuffers::Verifier &verifier) const {
1678 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001679 VerifyOffset(verifier, VT_PERMS) &&
1680 verifier.VerifyVector(perms()) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -07001681 verifier.EndTable();
1682 }
1683};
1684
1685struct TransposeAttributeBuilder {
1686 typedef TransposeAttribute Table;
1687 flatbuffers::FlatBufferBuilder &fbb_;
1688 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001689 void add_perms(flatbuffers::Offset<flatbuffers::Vector<int32_t>> perms) {
1690 fbb_.AddOffset(TransposeAttribute::VT_PERMS, perms);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001691 }
1692 explicit TransposeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1693 : fbb_(_fbb) {
1694 start_ = fbb_.StartTable();
1695 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07001696 flatbuffers::Offset<TransposeAttribute> Finish() {
1697 const auto end = fbb_.EndTable(start_);
1698 auto o = flatbuffers::Offset<TransposeAttribute>(end);
1699 return o;
1700 }
1701};
1702
1703inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttribute(
1704 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001705 flatbuffers::Offset<flatbuffers::Vector<int32_t>> perms = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001706 TransposeAttributeBuilder builder_(_fbb);
TatWai Chong7be71652022-05-10 17:26:20 -07001707 builder_.add_perms(perms);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001708 return builder_.Finish();
1709}
1710
1711inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttributeDirect(
1712 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001713 const std::vector<int32_t> *perms = nullptr) {
1714 auto perms__ = perms ? _fbb.CreateVector<int32_t>(*perms) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001715 return tosa::CreateTransposeAttribute(
1716 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001717 perms__);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001718}
1719
1720struct TableAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1721 typedef TableAttributeBuilder Builder;
1722 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1723 VT_TABLE = 4
1724 };
TatWai Chong7be71652022-05-10 17:26:20 -07001725 const flatbuffers::Vector<int16_t> *table() const {
1726 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_TABLE);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001727 }
1728 bool Verify(flatbuffers::Verifier &verifier) const {
1729 return VerifyTableStart(verifier) &&
1730 VerifyOffset(verifier, VT_TABLE) &&
1731 verifier.VerifyVector(table()) &&
1732 verifier.EndTable();
1733 }
1734};
1735
1736struct TableAttributeBuilder {
1737 typedef TableAttribute Table;
1738 flatbuffers::FlatBufferBuilder &fbb_;
1739 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001740 void add_table(flatbuffers::Offset<flatbuffers::Vector<int16_t>> table) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001741 fbb_.AddOffset(TableAttribute::VT_TABLE, table);
1742 }
1743 explicit TableAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1744 : fbb_(_fbb) {
1745 start_ = fbb_.StartTable();
1746 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07001747 flatbuffers::Offset<TableAttribute> Finish() {
1748 const auto end = fbb_.EndTable(start_);
1749 auto o = flatbuffers::Offset<TableAttribute>(end);
1750 return o;
1751 }
1752};
1753
1754inline flatbuffers::Offset<TableAttribute> CreateTableAttribute(
1755 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001756 flatbuffers::Offset<flatbuffers::Vector<int16_t>> table = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001757 TableAttributeBuilder builder_(_fbb);
1758 builder_.add_table(table);
1759 return builder_.Finish();
1760}
1761
1762inline flatbuffers::Offset<TableAttribute> CreateTableAttributeDirect(
1763 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001764 const std::vector<int16_t> *table = nullptr) {
1765 auto table__ = table ? _fbb.CreateVector<int16_t>(*table) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001766 return tosa::CreateTableAttribute(
1767 _fbb,
1768 table__);
1769}
1770
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001771struct MatMulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1772 typedef MatMulAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001773 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1774 VT_A_ZP = 4,
1775 VT_B_ZP = 6
1776 };
1777 int32_t a_zp() const {
1778 return GetField<int32_t>(VT_A_ZP, 0);
1779 }
1780 int32_t b_zp() const {
1781 return GetField<int32_t>(VT_B_ZP, 0);
1782 }
1783 bool Verify(flatbuffers::Verifier &verifier) const {
1784 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001785 VerifyField<int32_t>(verifier, VT_A_ZP, 4) &&
1786 VerifyField<int32_t>(verifier, VT_B_ZP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001787 verifier.EndTable();
1788 }
1789};
1790
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001791struct MatMulAttributeBuilder {
1792 typedef MatMulAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001793 flatbuffers::FlatBufferBuilder &fbb_;
1794 flatbuffers::uoffset_t start_;
1795 void add_a_zp(int32_t a_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001796 fbb_.AddElement<int32_t>(MatMulAttribute::VT_A_ZP, a_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001797 }
1798 void add_b_zp(int32_t b_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001799 fbb_.AddElement<int32_t>(MatMulAttribute::VT_B_ZP, b_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001800 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001801 explicit MatMulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -07001802 : fbb_(_fbb) {
1803 start_ = fbb_.StartTable();
1804 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001805 flatbuffers::Offset<MatMulAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001806 const auto end = fbb_.EndTable(start_);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001807 auto o = flatbuffers::Offset<MatMulAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001808 return o;
1809 }
1810};
1811
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001812inline flatbuffers::Offset<MatMulAttribute> CreateMatMulAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -07001813 flatbuffers::FlatBufferBuilder &_fbb,
1814 int32_t a_zp = 0,
1815 int32_t b_zp = 0) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001816 MatMulAttributeBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001817 builder_.add_b_zp(b_zp);
1818 builder_.add_a_zp(a_zp);
1819 return builder_.Finish();
1820}
1821
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001822struct FullyConnectedAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1823 typedef FullyConnectedAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001824 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001825 VT_INPUT_ZP = 4,
1826 VT_WEIGHT_ZP = 6
Eric Kunze2364dcd2021-04-26 11:06:57 -07001827 };
1828 int32_t input_zp() const {
1829 return GetField<int32_t>(VT_INPUT_ZP, 0);
1830 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001831 int32_t weight_zp() const {
1832 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
1833 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001834 bool Verify(flatbuffers::Verifier &verifier) const {
1835 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001836 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
1837 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001838 verifier.EndTable();
1839 }
1840};
1841
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001842struct FullyConnectedAttributeBuilder {
1843 typedef FullyConnectedAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001844 flatbuffers::FlatBufferBuilder &fbb_;
1845 flatbuffers::uoffset_t start_;
1846 void add_input_zp(int32_t input_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001847 fbb_.AddElement<int32_t>(FullyConnectedAttribute::VT_INPUT_ZP, input_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001848 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001849 void add_weight_zp(int32_t weight_zp) {
1850 fbb_.AddElement<int32_t>(FullyConnectedAttribute::VT_WEIGHT_ZP, weight_zp, 0);
1851 }
1852 explicit FullyConnectedAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -07001853 : fbb_(_fbb) {
1854 start_ = fbb_.StartTable();
1855 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001856 flatbuffers::Offset<FullyConnectedAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001857 const auto end = fbb_.EndTable(start_);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001858 auto o = flatbuffers::Offset<FullyConnectedAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001859 return o;
1860 }
1861};
1862
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001863inline flatbuffers::Offset<FullyConnectedAttribute> CreateFullyConnectedAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -07001864 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001865 int32_t input_zp = 0,
1866 int32_t weight_zp = 0) {
1867 FullyConnectedAttributeBuilder builder_(_fbb);
1868 builder_.add_weight_zp(weight_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001869 builder_.add_input_zp(input_zp);
1870 return builder_.Finish();
1871}
1872
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001873struct NegateAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1874 typedef NegateAttributeBuilder Builder;
1875 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1876 VT_INPUT1_ZP = 4,
1877 VT_OUTPUT_ZP = 6
1878 };
1879 int32_t input1_zp() const {
1880 return GetField<int32_t>(VT_INPUT1_ZP, 0);
1881 }
1882 int32_t output_zp() const {
1883 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1884 }
1885 bool Verify(flatbuffers::Verifier &verifier) const {
1886 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001887 VerifyField<int32_t>(verifier, VT_INPUT1_ZP, 4) &&
1888 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP, 4) &&
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001889 verifier.EndTable();
1890 }
1891};
1892
1893struct NegateAttributeBuilder {
1894 typedef NegateAttribute Table;
1895 flatbuffers::FlatBufferBuilder &fbb_;
1896 flatbuffers::uoffset_t start_;
1897 void add_input1_zp(int32_t input1_zp) {
1898 fbb_.AddElement<int32_t>(NegateAttribute::VT_INPUT1_ZP, input1_zp, 0);
1899 }
1900 void add_output_zp(int32_t output_zp) {
1901 fbb_.AddElement<int32_t>(NegateAttribute::VT_OUTPUT_ZP, output_zp, 0);
1902 }
1903 explicit NegateAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1904 : fbb_(_fbb) {
1905 start_ = fbb_.StartTable();
1906 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001907 flatbuffers::Offset<NegateAttribute> Finish() {
1908 const auto end = fbb_.EndTable(start_);
1909 auto o = flatbuffers::Offset<NegateAttribute>(end);
1910 return o;
1911 }
1912};
1913
1914inline flatbuffers::Offset<NegateAttribute> CreateNegateAttribute(
1915 flatbuffers::FlatBufferBuilder &_fbb,
1916 int32_t input1_zp = 0,
1917 int32_t output_zp = 0) {
1918 NegateAttributeBuilder builder_(_fbb);
1919 builder_.add_output_zp(output_zp);
1920 builder_.add_input1_zp(input1_zp);
1921 return builder_.Finish();
1922}
1923
Eric Kunze2364dcd2021-04-26 11:06:57 -07001924struct Version FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1925 typedef VersionBuilder Builder;
1926 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1927 VT__MAJOR = 4,
1928 VT__MINOR = 6,
1929 VT__PATCH = 8,
Kevin Chengb97cb1d2021-10-14 11:53:39 -07001930 VT__DRAFT = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07001931 };
1932 int32_t _major() const {
1933 return GetField<int32_t>(VT__MAJOR, 0);
1934 }
1935 int32_t _minor() const {
Eric Kunze24a68bb2022-09-08 23:54:21 +00001936 return GetField<int32_t>(VT__MINOR, 41);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001937 }
1938 int32_t _patch() const {
1939 return GetField<int32_t>(VT__PATCH, 0);
1940 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07001941 bool _draft() const {
Eric Kunze24a68bb2022-09-08 23:54:21 +00001942 return GetField<uint8_t>(VT__DRAFT, 1) != 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001943 }
1944 bool Verify(flatbuffers::Verifier &verifier) const {
1945 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001946 VerifyField<int32_t>(verifier, VT__MAJOR, 4) &&
1947 VerifyField<int32_t>(verifier, VT__MINOR, 4) &&
1948 VerifyField<int32_t>(verifier, VT__PATCH, 4) &&
1949 VerifyField<uint8_t>(verifier, VT__DRAFT, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001950 verifier.EndTable();
1951 }
1952};
1953
1954struct VersionBuilder {
1955 typedef Version Table;
1956 flatbuffers::FlatBufferBuilder &fbb_;
1957 flatbuffers::uoffset_t start_;
1958 void add__major(int32_t _major) {
1959 fbb_.AddElement<int32_t>(Version::VT__MAJOR, _major, 0);
1960 }
1961 void add__minor(int32_t _minor) {
Eric Kunze24a68bb2022-09-08 23:54:21 +00001962 fbb_.AddElement<int32_t>(Version::VT__MINOR, _minor, 41);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001963 }
1964 void add__patch(int32_t _patch) {
1965 fbb_.AddElement<int32_t>(Version::VT__PATCH, _patch, 0);
1966 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07001967 void add__draft(bool _draft) {
Eric Kunze24a68bb2022-09-08 23:54:21 +00001968 fbb_.AddElement<uint8_t>(Version::VT__DRAFT, static_cast<uint8_t>(_draft), 1);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001969 }
1970 explicit VersionBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1971 : fbb_(_fbb) {
1972 start_ = fbb_.StartTable();
1973 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001974 flatbuffers::Offset<Version> Finish() {
1975 const auto end = fbb_.EndTable(start_);
1976 auto o = flatbuffers::Offset<Version>(end);
1977 return o;
1978 }
1979};
1980
1981inline flatbuffers::Offset<Version> CreateVersion(
1982 flatbuffers::FlatBufferBuilder &_fbb,
1983 int32_t _major = 0,
Eric Kunze24a68bb2022-09-08 23:54:21 +00001984 int32_t _minor = 41,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001985 int32_t _patch = 0,
Eric Kunze24a68bb2022-09-08 23:54:21 +00001986 bool _draft = true) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001987 VersionBuilder builder_(_fbb);
1988 builder_.add__patch(_patch);
1989 builder_.add__minor(_minor);
1990 builder_.add__major(_major);
Kevin Chengb97cb1d2021-10-14 11:53:39 -07001991 builder_.add__draft(_draft);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001992 return builder_.Finish();
1993}
1994
1995struct TosaTensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1996 typedef TosaTensorBuilder Builder;
1997 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1998 VT_NAME = 4,
1999 VT_SHAPE = 6,
2000 VT_TYPE = 8,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002001 VT_DATA = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07002002 };
2003 const flatbuffers::String *name() const {
2004 return GetPointer<const flatbuffers::String *>(VT_NAME);
2005 }
2006 const flatbuffers::Vector<int32_t> *shape() const {
2007 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHAPE);
2008 }
2009 tosa::DType type() const {
2010 return static_cast<tosa::DType>(GetField<uint32_t>(VT_TYPE, 0));
2011 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002012 const flatbuffers::Vector<uint8_t> *data() const {
2013 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_DATA);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002014 }
2015 bool Verify(flatbuffers::Verifier &verifier) const {
2016 return VerifyTableStart(verifier) &&
2017 VerifyOffset(verifier, VT_NAME) &&
2018 verifier.VerifyString(name()) &&
2019 VerifyOffset(verifier, VT_SHAPE) &&
2020 verifier.VerifyVector(shape()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00002021 VerifyField<uint32_t>(verifier, VT_TYPE, 4) &&
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002022 VerifyOffset(verifier, VT_DATA) &&
2023 verifier.VerifyVector(data()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002024 verifier.EndTable();
2025 }
2026};
2027
2028struct TosaTensorBuilder {
2029 typedef TosaTensor Table;
2030 flatbuffers::FlatBufferBuilder &fbb_;
2031 flatbuffers::uoffset_t start_;
2032 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2033 fbb_.AddOffset(TosaTensor::VT_NAME, name);
2034 }
2035 void add_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape) {
2036 fbb_.AddOffset(TosaTensor::VT_SHAPE, shape);
2037 }
2038 void add_type(tosa::DType type) {
2039 fbb_.AddElement<uint32_t>(TosaTensor::VT_TYPE, static_cast<uint32_t>(type), 0);
2040 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002041 void add_data(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data) {
2042 fbb_.AddOffset(TosaTensor::VT_DATA, data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002043 }
2044 explicit TosaTensorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2045 : fbb_(_fbb) {
2046 start_ = fbb_.StartTable();
2047 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002048 flatbuffers::Offset<TosaTensor> Finish() {
2049 const auto end = fbb_.EndTable(start_);
2050 auto o = flatbuffers::Offset<TosaTensor>(end);
2051 return o;
2052 }
2053};
2054
2055inline flatbuffers::Offset<TosaTensor> CreateTosaTensor(
2056 flatbuffers::FlatBufferBuilder &_fbb,
2057 flatbuffers::Offset<flatbuffers::String> name = 0,
2058 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape = 0,
2059 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002060 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002061 TosaTensorBuilder builder_(_fbb);
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002062 builder_.add_data(data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002063 builder_.add_type(type);
2064 builder_.add_shape(shape);
2065 builder_.add_name(name);
2066 return builder_.Finish();
2067}
2068
2069inline flatbuffers::Offset<TosaTensor> CreateTosaTensorDirect(
2070 flatbuffers::FlatBufferBuilder &_fbb,
2071 const char *name = nullptr,
2072 const std::vector<int32_t> *shape = nullptr,
2073 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002074 const std::vector<uint8_t> *data = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002075 auto name__ = name ? _fbb.CreateString(name) : 0;
2076 auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0;
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002077 if (data) { _fbb.ForceVectorAlignment(data->size(), sizeof(uint8_t), 8); }
2078 auto data__ = data ? _fbb.CreateVector<uint8_t>(*data) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002079 return tosa::CreateTosaTensor(
2080 _fbb,
2081 name__,
2082 shape__,
2083 type,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002084 data__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002085}
2086
2087struct TosaOperator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2088 typedef TosaOperatorBuilder Builder;
2089 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2090 VT_OP = 4,
2091 VT_ATTRIBUTE_TYPE = 6,
2092 VT_ATTRIBUTE = 8,
2093 VT_INPUTS = 10,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002094 VT_OUTPUTS = 12
Eric Kunze2364dcd2021-04-26 11:06:57 -07002095 };
2096 tosa::Op op() const {
2097 return static_cast<tosa::Op>(GetField<uint32_t>(VT_OP, 0));
2098 }
2099 tosa::Attribute attribute_type() const {
2100 return static_cast<tosa::Attribute>(GetField<uint8_t>(VT_ATTRIBUTE_TYPE, 0));
2101 }
2102 const void *attribute() const {
2103 return GetPointer<const void *>(VT_ATTRIBUTE);
2104 }
2105 template<typename T> const T *attribute_as() const;
Kevin Cheng79a41992021-08-31 16:04:40 -07002106 const tosa::PoolAttribute *attribute_as_PoolAttribute() const {
2107 return attribute_type() == tosa::Attribute_PoolAttribute ? static_cast<const tosa::PoolAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002108 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002109 const tosa::ConvAttribute *attribute_as_ConvAttribute() const {
2110 return attribute_type() == tosa::Attribute_ConvAttribute ? static_cast<const tosa::ConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002111 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002112 const tosa::TransposeConvAttribute *attribute_as_TransposeConvAttribute() const {
2113 return attribute_type() == tosa::Attribute_TransposeConvAttribute ? static_cast<const tosa::TransposeConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002114 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002115 const tosa::PadAttribute *attribute_as_PadAttribute() const {
2116 return attribute_type() == tosa::Attribute_PadAttribute ? static_cast<const tosa::PadAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002117 }
2118 const tosa::AxisAttribute *attribute_as_AxisAttribute() const {
2119 return attribute_type() == tosa::Attribute_AxisAttribute ? static_cast<const tosa::AxisAttribute *>(attribute()) : nullptr;
2120 }
2121 const tosa::ReshapeAttribute *attribute_as_ReshapeAttribute() const {
2122 return attribute_type() == tosa::Attribute_ReshapeAttribute ? static_cast<const tosa::ReshapeAttribute *>(attribute()) : nullptr;
2123 }
2124 const tosa::SliceAttribute *attribute_as_SliceAttribute() const {
2125 return attribute_type() == tosa::Attribute_SliceAttribute ? static_cast<const tosa::SliceAttribute *>(attribute()) : nullptr;
2126 }
2127 const tosa::TileAttribute *attribute_as_TileAttribute() const {
2128 return attribute_type() == tosa::Attribute_TileAttribute ? static_cast<const tosa::TileAttribute *>(attribute()) : nullptr;
2129 }
2130 const tosa::ResizeAttribute *attribute_as_ResizeAttribute() const {
2131 return attribute_type() == tosa::Attribute_ResizeAttribute ? static_cast<const tosa::ResizeAttribute *>(attribute()) : nullptr;
2132 }
2133 const tosa::ClampAttribute *attribute_as_ClampAttribute() const {
2134 return attribute_type() == tosa::Attribute_ClampAttribute ? static_cast<const tosa::ClampAttribute *>(attribute()) : nullptr;
2135 }
2136 const tosa::RescaleAttribute *attribute_as_RescaleAttribute() const {
2137 return attribute_type() == tosa::Attribute_RescaleAttribute ? static_cast<const tosa::RescaleAttribute *>(attribute()) : nullptr;
2138 }
2139 const tosa::MulAttribute *attribute_as_MulAttribute() const {
2140 return attribute_type() == tosa::Attribute_MulAttribute ? static_cast<const tosa::MulAttribute *>(attribute()) : nullptr;
2141 }
2142 const tosa::ArithmeticRightShiftAttribute *attribute_as_ArithmeticRightShiftAttribute() const {
2143 return attribute_type() == tosa::Attribute_ArithmeticRightShiftAttribute ? static_cast<const tosa::ArithmeticRightShiftAttribute *>(attribute()) : nullptr;
2144 }
2145 const tosa::CondIfAttribute *attribute_as_CondIfAttribute() const {
2146 return attribute_type() == tosa::Attribute_CondIfAttribute ? static_cast<const tosa::CondIfAttribute *>(attribute()) : nullptr;
2147 }
2148 const tosa::WhileLoopAttribute *attribute_as_WhileLoopAttribute() const {
2149 return attribute_type() == tosa::Attribute_WhileLoopAttribute ? static_cast<const tosa::WhileLoopAttribute *>(attribute()) : nullptr;
2150 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002151 const tosa::TransposeAttribute *attribute_as_TransposeAttribute() const {
2152 return attribute_type() == tosa::Attribute_TransposeAttribute ? static_cast<const tosa::TransposeAttribute *>(attribute()) : nullptr;
2153 }
2154 const tosa::TableAttribute *attribute_as_TableAttribute() const {
2155 return attribute_type() == tosa::Attribute_TableAttribute ? static_cast<const tosa::TableAttribute *>(attribute()) : nullptr;
2156 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002157 const tosa::MatMulAttribute *attribute_as_MatMulAttribute() const {
2158 return attribute_type() == tosa::Attribute_MatMulAttribute ? static_cast<const tosa::MatMulAttribute *>(attribute()) : nullptr;
2159 }
2160 const tosa::FullyConnectedAttribute *attribute_as_FullyConnectedAttribute() const {
2161 return attribute_type() == tosa::Attribute_FullyConnectedAttribute ? static_cast<const tosa::FullyConnectedAttribute *>(attribute()) : nullptr;
2162 }
2163 const tosa::NegateAttribute *attribute_as_NegateAttribute() const {
2164 return attribute_type() == tosa::Attribute_NegateAttribute ? static_cast<const tosa::NegateAttribute *>(attribute()) : nullptr;
2165 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002166 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2167 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2168 }
2169 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2170 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2171 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002172 bool Verify(flatbuffers::Verifier &verifier) const {
2173 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00002174 VerifyField<uint32_t>(verifier, VT_OP, 4) &&
2175 VerifyField<uint8_t>(verifier, VT_ATTRIBUTE_TYPE, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002176 VerifyOffset(verifier, VT_ATTRIBUTE) &&
2177 VerifyAttribute(verifier, attribute(), attribute_type()) &&
2178 VerifyOffset(verifier, VT_INPUTS) &&
2179 verifier.VerifyVector(inputs()) &&
2180 verifier.VerifyVectorOfStrings(inputs()) &&
2181 VerifyOffset(verifier, VT_OUTPUTS) &&
2182 verifier.VerifyVector(outputs()) &&
2183 verifier.VerifyVectorOfStrings(outputs()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002184 verifier.EndTable();
2185 }
2186};
2187
Kevin Cheng79a41992021-08-31 16:04:40 -07002188template<> inline const tosa::PoolAttribute *TosaOperator::attribute_as<tosa::PoolAttribute>() const {
2189 return attribute_as_PoolAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002190}
2191
Kevin Cheng79a41992021-08-31 16:04:40 -07002192template<> inline const tosa::ConvAttribute *TosaOperator::attribute_as<tosa::ConvAttribute>() const {
2193 return attribute_as_ConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002194}
2195
Kevin Cheng79a41992021-08-31 16:04:40 -07002196template<> inline const tosa::TransposeConvAttribute *TosaOperator::attribute_as<tosa::TransposeConvAttribute>() const {
2197 return attribute_as_TransposeConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002198}
2199
Kevin Cheng38d214c2021-10-15 15:49:19 -07002200template<> inline const tosa::PadAttribute *TosaOperator::attribute_as<tosa::PadAttribute>() const {
2201 return attribute_as_PadAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002202}
2203
2204template<> inline const tosa::AxisAttribute *TosaOperator::attribute_as<tosa::AxisAttribute>() const {
2205 return attribute_as_AxisAttribute();
2206}
2207
2208template<> inline const tosa::ReshapeAttribute *TosaOperator::attribute_as<tosa::ReshapeAttribute>() const {
2209 return attribute_as_ReshapeAttribute();
2210}
2211
2212template<> inline const tosa::SliceAttribute *TosaOperator::attribute_as<tosa::SliceAttribute>() const {
2213 return attribute_as_SliceAttribute();
2214}
2215
2216template<> inline const tosa::TileAttribute *TosaOperator::attribute_as<tosa::TileAttribute>() const {
2217 return attribute_as_TileAttribute();
2218}
2219
2220template<> inline const tosa::ResizeAttribute *TosaOperator::attribute_as<tosa::ResizeAttribute>() const {
2221 return attribute_as_ResizeAttribute();
2222}
2223
2224template<> inline const tosa::ClampAttribute *TosaOperator::attribute_as<tosa::ClampAttribute>() const {
2225 return attribute_as_ClampAttribute();
2226}
2227
2228template<> inline const tosa::RescaleAttribute *TosaOperator::attribute_as<tosa::RescaleAttribute>() const {
2229 return attribute_as_RescaleAttribute();
2230}
2231
2232template<> inline const tosa::MulAttribute *TosaOperator::attribute_as<tosa::MulAttribute>() const {
2233 return attribute_as_MulAttribute();
2234}
2235
2236template<> inline const tosa::ArithmeticRightShiftAttribute *TosaOperator::attribute_as<tosa::ArithmeticRightShiftAttribute>() const {
2237 return attribute_as_ArithmeticRightShiftAttribute();
2238}
2239
2240template<> inline const tosa::CondIfAttribute *TosaOperator::attribute_as<tosa::CondIfAttribute>() const {
2241 return attribute_as_CondIfAttribute();
2242}
2243
2244template<> inline const tosa::WhileLoopAttribute *TosaOperator::attribute_as<tosa::WhileLoopAttribute>() const {
2245 return attribute_as_WhileLoopAttribute();
2246}
2247
Kevin Cheng38d214c2021-10-15 15:49:19 -07002248template<> inline const tosa::TransposeAttribute *TosaOperator::attribute_as<tosa::TransposeAttribute>() const {
2249 return attribute_as_TransposeAttribute();
2250}
2251
2252template<> inline const tosa::TableAttribute *TosaOperator::attribute_as<tosa::TableAttribute>() const {
2253 return attribute_as_TableAttribute();
2254}
2255
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002256template<> inline const tosa::MatMulAttribute *TosaOperator::attribute_as<tosa::MatMulAttribute>() const {
2257 return attribute_as_MatMulAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002258}
2259
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002260template<> inline const tosa::FullyConnectedAttribute *TosaOperator::attribute_as<tosa::FullyConnectedAttribute>() const {
2261 return attribute_as_FullyConnectedAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002262}
2263
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002264template<> inline const tosa::NegateAttribute *TosaOperator::attribute_as<tosa::NegateAttribute>() const {
2265 return attribute_as_NegateAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002266}
2267
2268struct TosaOperatorBuilder {
2269 typedef TosaOperator Table;
2270 flatbuffers::FlatBufferBuilder &fbb_;
2271 flatbuffers::uoffset_t start_;
2272 void add_op(tosa::Op op) {
2273 fbb_.AddElement<uint32_t>(TosaOperator::VT_OP, static_cast<uint32_t>(op), 0);
2274 }
2275 void add_attribute_type(tosa::Attribute attribute_type) {
2276 fbb_.AddElement<uint8_t>(TosaOperator::VT_ATTRIBUTE_TYPE, static_cast<uint8_t>(attribute_type), 0);
2277 }
2278 void add_attribute(flatbuffers::Offset<void> attribute) {
2279 fbb_.AddOffset(TosaOperator::VT_ATTRIBUTE, attribute);
2280 }
2281 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2282 fbb_.AddOffset(TosaOperator::VT_INPUTS, inputs);
2283 }
2284 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2285 fbb_.AddOffset(TosaOperator::VT_OUTPUTS, outputs);
2286 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002287 explicit TosaOperatorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2288 : fbb_(_fbb) {
2289 start_ = fbb_.StartTable();
2290 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002291 flatbuffers::Offset<TosaOperator> Finish() {
2292 const auto end = fbb_.EndTable(start_);
2293 auto o = flatbuffers::Offset<TosaOperator>(end);
2294 return o;
2295 }
2296};
2297
2298inline flatbuffers::Offset<TosaOperator> CreateTosaOperator(
2299 flatbuffers::FlatBufferBuilder &_fbb,
2300 tosa::Op op = tosa::Op_UNKNOWN,
2301 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2302 flatbuffers::Offset<void> attribute = 0,
2303 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002304 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002305 TosaOperatorBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002306 builder_.add_outputs(outputs);
2307 builder_.add_inputs(inputs);
2308 builder_.add_attribute(attribute);
2309 builder_.add_op(op);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002310 builder_.add_attribute_type(attribute_type);
2311 return builder_.Finish();
2312}
2313
2314inline flatbuffers::Offset<TosaOperator> CreateTosaOperatorDirect(
2315 flatbuffers::FlatBufferBuilder &_fbb,
2316 tosa::Op op = tosa::Op_UNKNOWN,
2317 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2318 flatbuffers::Offset<void> attribute = 0,
2319 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002320 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002321 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2322 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2323 return tosa::CreateTosaOperator(
2324 _fbb,
2325 op,
2326 attribute_type,
2327 attribute,
2328 inputs__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002329 outputs__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002330}
2331
2332struct TosaBasicBlock FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2333 typedef TosaBasicBlockBuilder Builder;
2334 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2335 VT_NAME = 4,
2336 VT_OPERATORS = 6,
2337 VT_TENSORS = 8,
2338 VT_INPUTS = 10,
2339 VT_OUTPUTS = 12
2340 };
2341 const flatbuffers::String *name() const {
2342 return GetPointer<const flatbuffers::String *>(VT_NAME);
2343 }
2344 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *operators() const {
2345 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *>(VT_OPERATORS);
2346 }
2347 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors() const {
2348 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *>(VT_TENSORS);
2349 }
2350 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2351 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2352 }
2353 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2354 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2355 }
2356 bool Verify(flatbuffers::Verifier &verifier) const {
2357 return VerifyTableStart(verifier) &&
2358 VerifyOffset(verifier, VT_NAME) &&
2359 verifier.VerifyString(name()) &&
2360 VerifyOffset(verifier, VT_OPERATORS) &&
2361 verifier.VerifyVector(operators()) &&
2362 verifier.VerifyVectorOfTables(operators()) &&
2363 VerifyOffset(verifier, VT_TENSORS) &&
2364 verifier.VerifyVector(tensors()) &&
2365 verifier.VerifyVectorOfTables(tensors()) &&
2366 VerifyOffset(verifier, VT_INPUTS) &&
2367 verifier.VerifyVector(inputs()) &&
2368 verifier.VerifyVectorOfStrings(inputs()) &&
2369 VerifyOffset(verifier, VT_OUTPUTS) &&
2370 verifier.VerifyVector(outputs()) &&
2371 verifier.VerifyVectorOfStrings(outputs()) &&
2372 verifier.EndTable();
2373 }
2374};
2375
2376struct TosaBasicBlockBuilder {
2377 typedef TosaBasicBlock Table;
2378 flatbuffers::FlatBufferBuilder &fbb_;
2379 flatbuffers::uoffset_t start_;
2380 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2381 fbb_.AddOffset(TosaBasicBlock::VT_NAME, name);
2382 }
2383 void add_operators(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators) {
2384 fbb_.AddOffset(TosaBasicBlock::VT_OPERATORS, operators);
2385 }
2386 void add_tensors(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors) {
2387 fbb_.AddOffset(TosaBasicBlock::VT_TENSORS, tensors);
2388 }
2389 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2390 fbb_.AddOffset(TosaBasicBlock::VT_INPUTS, inputs);
2391 }
2392 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2393 fbb_.AddOffset(TosaBasicBlock::VT_OUTPUTS, outputs);
2394 }
2395 explicit TosaBasicBlockBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2396 : fbb_(_fbb) {
2397 start_ = fbb_.StartTable();
2398 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002399 flatbuffers::Offset<TosaBasicBlock> Finish() {
2400 const auto end = fbb_.EndTable(start_);
2401 auto o = flatbuffers::Offset<TosaBasicBlock>(end);
2402 return o;
2403 }
2404};
2405
2406inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlock(
2407 flatbuffers::FlatBufferBuilder &_fbb,
2408 flatbuffers::Offset<flatbuffers::String> name = 0,
2409 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators = 0,
2410 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors = 0,
2411 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
2412 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
2413 TosaBasicBlockBuilder builder_(_fbb);
2414 builder_.add_outputs(outputs);
2415 builder_.add_inputs(inputs);
2416 builder_.add_tensors(tensors);
2417 builder_.add_operators(operators);
2418 builder_.add_name(name);
2419 return builder_.Finish();
2420}
2421
2422inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlockDirect(
2423 flatbuffers::FlatBufferBuilder &_fbb,
2424 const char *name = nullptr,
2425 const std::vector<flatbuffers::Offset<tosa::TosaOperator>> *operators = nullptr,
2426 const std::vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors = nullptr,
2427 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
2428 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
2429 auto name__ = name ? _fbb.CreateString(name) : 0;
2430 auto operators__ = operators ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaOperator>>(*operators) : 0;
2431 auto tensors__ = tensors ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaTensor>>(*tensors) : 0;
2432 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2433 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2434 return tosa::CreateTosaBasicBlock(
2435 _fbb,
2436 name__,
2437 operators__,
2438 tensors__,
2439 inputs__,
2440 outputs__);
2441}
2442
2443struct TosaGraph FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2444 typedef TosaGraphBuilder Builder;
2445 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2446 VT_VERSION = 4,
2447 VT_BLOCKS = 6
2448 };
2449 const tosa::Version *version() const {
2450 return GetPointer<const tosa::Version *>(VT_VERSION);
2451 }
2452 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks() const {
2453 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *>(VT_BLOCKS);
2454 }
2455 bool Verify(flatbuffers::Verifier &verifier) const {
2456 return VerifyTableStart(verifier) &&
2457 VerifyOffset(verifier, VT_VERSION) &&
2458 verifier.VerifyTable(version()) &&
2459 VerifyOffset(verifier, VT_BLOCKS) &&
2460 verifier.VerifyVector(blocks()) &&
2461 verifier.VerifyVectorOfTables(blocks()) &&
2462 verifier.EndTable();
2463 }
2464};
2465
2466struct TosaGraphBuilder {
2467 typedef TosaGraph Table;
2468 flatbuffers::FlatBufferBuilder &fbb_;
2469 flatbuffers::uoffset_t start_;
2470 void add_version(flatbuffers::Offset<tosa::Version> version) {
2471 fbb_.AddOffset(TosaGraph::VT_VERSION, version);
2472 }
2473 void add_blocks(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks) {
2474 fbb_.AddOffset(TosaGraph::VT_BLOCKS, blocks);
2475 }
2476 explicit TosaGraphBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2477 : fbb_(_fbb) {
2478 start_ = fbb_.StartTable();
2479 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002480 flatbuffers::Offset<TosaGraph> Finish() {
2481 const auto end = fbb_.EndTable(start_);
2482 auto o = flatbuffers::Offset<TosaGraph>(end);
2483 return o;
2484 }
2485};
2486
2487inline flatbuffers::Offset<TosaGraph> CreateTosaGraph(
2488 flatbuffers::FlatBufferBuilder &_fbb,
2489 flatbuffers::Offset<tosa::Version> version = 0,
2490 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks = 0) {
2491 TosaGraphBuilder builder_(_fbb);
2492 builder_.add_blocks(blocks);
2493 builder_.add_version(version);
2494 return builder_.Finish();
2495}
2496
2497inline flatbuffers::Offset<TosaGraph> CreateTosaGraphDirect(
2498 flatbuffers::FlatBufferBuilder &_fbb,
2499 flatbuffers::Offset<tosa::Version> version = 0,
2500 const std::vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks = nullptr) {
2501 auto blocks__ = blocks ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaBasicBlock>>(*blocks) : 0;
2502 return tosa::CreateTosaGraph(
2503 _fbb,
2504 version,
2505 blocks__);
2506}
2507
2508inline bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type) {
2509 switch (type) {
2510 case Attribute_NONE: {
2511 return true;
2512 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002513 case Attribute_PoolAttribute: {
2514 auto ptr = reinterpret_cast<const tosa::PoolAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002515 return verifier.VerifyTable(ptr);
2516 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002517 case Attribute_ConvAttribute: {
2518 auto ptr = reinterpret_cast<const tosa::ConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002519 return verifier.VerifyTable(ptr);
2520 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002521 case Attribute_TransposeConvAttribute: {
2522 auto ptr = reinterpret_cast<const tosa::TransposeConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002523 return verifier.VerifyTable(ptr);
2524 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002525 case Attribute_PadAttribute: {
2526 auto ptr = reinterpret_cast<const tosa::PadAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002527 return verifier.VerifyTable(ptr);
2528 }
2529 case Attribute_AxisAttribute: {
2530 auto ptr = reinterpret_cast<const tosa::AxisAttribute *>(obj);
2531 return verifier.VerifyTable(ptr);
2532 }
2533 case Attribute_ReshapeAttribute: {
2534 auto ptr = reinterpret_cast<const tosa::ReshapeAttribute *>(obj);
2535 return verifier.VerifyTable(ptr);
2536 }
2537 case Attribute_SliceAttribute: {
2538 auto ptr = reinterpret_cast<const tosa::SliceAttribute *>(obj);
2539 return verifier.VerifyTable(ptr);
2540 }
2541 case Attribute_TileAttribute: {
2542 auto ptr = reinterpret_cast<const tosa::TileAttribute *>(obj);
2543 return verifier.VerifyTable(ptr);
2544 }
2545 case Attribute_ResizeAttribute: {
2546 auto ptr = reinterpret_cast<const tosa::ResizeAttribute *>(obj);
2547 return verifier.VerifyTable(ptr);
2548 }
2549 case Attribute_ClampAttribute: {
2550 auto ptr = reinterpret_cast<const tosa::ClampAttribute *>(obj);
2551 return verifier.VerifyTable(ptr);
2552 }
2553 case Attribute_RescaleAttribute: {
2554 auto ptr = reinterpret_cast<const tosa::RescaleAttribute *>(obj);
2555 return verifier.VerifyTable(ptr);
2556 }
2557 case Attribute_MulAttribute: {
2558 auto ptr = reinterpret_cast<const tosa::MulAttribute *>(obj);
2559 return verifier.VerifyTable(ptr);
2560 }
2561 case Attribute_ArithmeticRightShiftAttribute: {
2562 auto ptr = reinterpret_cast<const tosa::ArithmeticRightShiftAttribute *>(obj);
2563 return verifier.VerifyTable(ptr);
2564 }
2565 case Attribute_CondIfAttribute: {
2566 auto ptr = reinterpret_cast<const tosa::CondIfAttribute *>(obj);
2567 return verifier.VerifyTable(ptr);
2568 }
2569 case Attribute_WhileLoopAttribute: {
2570 auto ptr = reinterpret_cast<const tosa::WhileLoopAttribute *>(obj);
2571 return verifier.VerifyTable(ptr);
2572 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002573 case Attribute_TransposeAttribute: {
2574 auto ptr = reinterpret_cast<const tosa::TransposeAttribute *>(obj);
2575 return verifier.VerifyTable(ptr);
2576 }
2577 case Attribute_TableAttribute: {
2578 auto ptr = reinterpret_cast<const tosa::TableAttribute *>(obj);
2579 return verifier.VerifyTable(ptr);
2580 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002581 case Attribute_MatMulAttribute: {
2582 auto ptr = reinterpret_cast<const tosa::MatMulAttribute *>(obj);
2583 return verifier.VerifyTable(ptr);
2584 }
2585 case Attribute_FullyConnectedAttribute: {
2586 auto ptr = reinterpret_cast<const tosa::FullyConnectedAttribute *>(obj);
2587 return verifier.VerifyTable(ptr);
2588 }
2589 case Attribute_NegateAttribute: {
2590 auto ptr = reinterpret_cast<const tosa::NegateAttribute *>(obj);
2591 return verifier.VerifyTable(ptr);
2592 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002593 default: return true;
2594 }
2595}
2596
2597inline bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
2598 if (!values || !types) return !values && !types;
2599 if (values->size() != types->size()) return false;
2600 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
2601 if (!VerifyAttribute(
2602 verifier, values->Get(i), types->GetEnum<Attribute>(i))) {
2603 return false;
2604 }
2605 }
2606 return true;
2607}
2608
Eric Kunze2364dcd2021-04-26 11:06:57 -07002609inline const tosa::TosaGraph *GetTosaGraph(const void *buf) {
2610 return flatbuffers::GetRoot<tosa::TosaGraph>(buf);
2611}
2612
2613inline const tosa::TosaGraph *GetSizePrefixedTosaGraph(const void *buf) {
2614 return flatbuffers::GetSizePrefixedRoot<tosa::TosaGraph>(buf);
2615}
2616
2617inline const char *TosaGraphIdentifier() {
2618 return "TOSA";
2619}
2620
2621inline bool TosaGraphBufferHasIdentifier(const void *buf) {
2622 return flatbuffers::BufferHasIdentifier(
2623 buf, TosaGraphIdentifier());
2624}
2625
Eric Kunze4381b3d2022-08-22 18:15:41 +00002626inline bool SizePrefixedTosaGraphBufferHasIdentifier(const void *buf) {
2627 return flatbuffers::BufferHasIdentifier(
2628 buf, TosaGraphIdentifier(), true);
2629}
2630
Eric Kunze2364dcd2021-04-26 11:06:57 -07002631inline bool VerifyTosaGraphBuffer(
2632 flatbuffers::Verifier &verifier) {
2633 return verifier.VerifyBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2634}
2635
2636inline bool VerifySizePrefixedTosaGraphBuffer(
2637 flatbuffers::Verifier &verifier) {
2638 return verifier.VerifySizePrefixedBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2639}
2640
2641inline const char *TosaGraphExtension() {
2642 return "tosa";
2643}
2644
2645inline void FinishTosaGraphBuffer(
2646 flatbuffers::FlatBufferBuilder &fbb,
2647 flatbuffers::Offset<tosa::TosaGraph> root) {
2648 fbb.Finish(root, TosaGraphIdentifier());
2649}
2650
2651inline void FinishSizePrefixedTosaGraphBuffer(
2652 flatbuffers::FlatBufferBuilder &fbb,
2653 flatbuffers::Offset<tosa::TosaGraph> root) {
2654 fbb.FinishSizePrefixed(root, TosaGraphIdentifier());
2655}
2656
2657} // namespace tosa
2658
2659#endif // FLATBUFFERS_GENERATED_TOSA_TOSA_H_