blob: bb501be51152498562cbede431b2d26a948f8b71 [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
Eric Kunze497ab5d2022-10-21 16:39:01 -070071struct CustomAttribute;
72struct CustomAttributeBuilder;
73
Eric Kunze2364dcd2021-04-26 11:06:57 -070074struct Version;
75struct VersionBuilder;
76
77struct TosaTensor;
78struct TosaTensorBuilder;
79
80struct TosaOperator;
81struct TosaOperatorBuilder;
82
83struct TosaBasicBlock;
84struct TosaBasicBlockBuilder;
85
Jerry Ge13c78a62022-10-04 20:32:39 -070086struct TosaRegion;
87struct TosaRegionBuilder;
88
Eric Kunze2364dcd2021-04-26 11:06:57 -070089struct TosaGraph;
90struct TosaGraphBuilder;
91
Eric Kunze4381b3d2022-08-22 18:15:41 +000092enum DType : uint32_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -070093 DType_UNKNOWN = 0,
94 DType_BOOL = 1,
95 DType_UINT8 = 2,
96 DType_INT4 = 3,
97 DType_INT8 = 4,
98 DType_INT16 = 5,
99 DType_INT32 = 6,
100 DType_INT48 = 7,
Jeremy Johnsone1072a92022-09-27 12:44:11 +0100101 DType_FP32 = 8,
Jeremy Johnson41027732022-05-25 17:52:29 +0100102 DType_UINT16 = 9,
James Ward485a11d2022-08-05 13:48:37 +0100103 DType_FP16 = 10,
James Ward34a62792022-10-18 17:27:40 +0100104 DType_BF16 = 11,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700105 DType_MIN = DType_UNKNOWN,
James Ward34a62792022-10-18 17:27:40 +0100106 DType_MAX = DType_BF16
Eric Kunze2364dcd2021-04-26 11:06:57 -0700107};
108
James Ward34a62792022-10-18 17:27:40 +0100109inline const DType (&EnumValuesDType())[12] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700110 static const DType values[] = {
111 DType_UNKNOWN,
112 DType_BOOL,
113 DType_UINT8,
114 DType_INT4,
115 DType_INT8,
116 DType_INT16,
117 DType_INT32,
118 DType_INT48,
Jeremy Johnsone1072a92022-09-27 12:44:11 +0100119 DType_FP32,
James Ward485a11d2022-08-05 13:48:37 +0100120 DType_UINT16,
James Ward34a62792022-10-18 17:27:40 +0100121 DType_FP16,
122 DType_BF16
Eric Kunze2364dcd2021-04-26 11:06:57 -0700123 };
124 return values;
125}
126
127inline const char * const *EnumNamesDType() {
James Ward34a62792022-10-18 17:27:40 +0100128 static const char * const names[13] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700129 "UNKNOWN",
130 "BOOL",
131 "UINT8",
132 "INT4",
133 "INT8",
134 "INT16",
135 "INT32",
136 "INT48",
Jeremy Johnsone1072a92022-09-27 12:44:11 +0100137 "FP32",
Jeremy Johnson41027732022-05-25 17:52:29 +0100138 "UINT16",
James Ward485a11d2022-08-05 13:48:37 +0100139 "FP16",
James Ward34a62792022-10-18 17:27:40 +0100140 "BF16",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700141 nullptr
142 };
143 return names;
144}
145
146inline const char *EnumNameDType(DType e) {
James Ward34a62792022-10-18 17:27:40 +0100147 if (flatbuffers::IsOutRange(e, DType_UNKNOWN, DType_BF16)) return "";
Eric Kunze2364dcd2021-04-26 11:06:57 -0700148 const size_t index = static_cast<size_t>(e);
149 return EnumNamesDType()[index];
150}
151
Eric Kunze4381b3d2022-08-22 18:15:41 +0000152enum ResizeMode : uint32_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700153 ResizeMode_UNKNOWN = 0,
154 ResizeMode_NEAREST = 1,
155 ResizeMode_BILINEAR = 2,
156 ResizeMode_MIN = ResizeMode_UNKNOWN,
157 ResizeMode_MAX = ResizeMode_BILINEAR
158};
159
160inline const ResizeMode (&EnumValuesResizeMode())[3] {
161 static const ResizeMode values[] = {
162 ResizeMode_UNKNOWN,
163 ResizeMode_NEAREST,
164 ResizeMode_BILINEAR
165 };
166 return values;
167}
168
169inline const char * const *EnumNamesResizeMode() {
170 static const char * const names[4] = {
171 "UNKNOWN",
172 "NEAREST",
173 "BILINEAR",
174 nullptr
175 };
176 return names;
177}
178
179inline const char *EnumNameResizeMode(ResizeMode e) {
180 if (flatbuffers::IsOutRange(e, ResizeMode_UNKNOWN, ResizeMode_BILINEAR)) return "";
181 const size_t index = static_cast<size_t>(e);
182 return EnumNamesResizeMode()[index];
183}
184
Eric Kunze4381b3d2022-08-22 18:15:41 +0000185enum Op : uint32_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700186 Op_UNKNOWN = 0,
187 Op_ARGMAX = 1,
188 Op_AVG_POOL2D = 2,
189 Op_CONV2D = 3,
190 Op_CONV3D = 4,
191 Op_DEPTHWISE_CONV2D = 5,
192 Op_FULLY_CONNECTED = 6,
193 Op_MATMUL = 7,
194 Op_MAX_POOL2D = 8,
195 Op_TRANSPOSE_CONV2D = 9,
196 Op_CLAMP = 10,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700197 Op_RESERVED = 11,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700198 Op_SIGMOID = 12,
199 Op_TANH = 13,
200 Op_ADD = 14,
201 Op_ARITHMETIC_RIGHT_SHIFT = 15,
202 Op_BITWISE_AND = 16,
203 Op_BITWISE_OR = 17,
204 Op_BITWISE_XOR = 18,
Matthew Haddonab905ec2021-08-23 16:40:57 +0100205 Op_INTDIV = 19,
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700206 Op_LOGICAL_AND = 20,
207 Op_LOGICAL_LEFT_SHIFT = 21,
208 Op_LOGICAL_RIGHT_SHIFT = 22,
209 Op_LOGICAL_OR = 23,
210 Op_LOGICAL_XOR = 24,
211 Op_MAXIMUM = 25,
212 Op_MINIMUM = 26,
213 Op_MUL = 27,
214 Op_POW = 28,
215 Op_SUB = 29,
216 Op_TABLE = 30,
217 Op_ABS = 31,
218 Op_BITWISE_NOT = 32,
219 Op_CEIL = 33,
220 Op_CLZ = 34,
221 Op_EXP = 35,
222 Op_FLOOR = 36,
223 Op_LOG = 37,
224 Op_LOGICAL_NOT = 38,
225 Op_NEGATE = 39,
226 Op_RECIPROCAL = 40,
227 Op_RSQRT = 41,
228 Op_SELECT = 42,
229 Op_EQUAL = 43,
230 Op_GREATER = 44,
231 Op_GREATER_EQUAL = 45,
232 Op_REDUCE_ANY = 46,
233 Op_REDUCE_ALL = 47,
234 Op_REDUCE_MAX = 48,
235 Op_REDUCE_MIN = 49,
236 Op_REDUCE_PRODUCT = 50,
237 Op_REDUCE_SUM = 51,
238 Op_CONCAT = 52,
239 Op_PAD = 53,
240 Op_RESHAPE = 54,
241 Op_REVERSE = 55,
242 Op_SLICE = 56,
243 Op_TILE = 57,
244 Op_TRANSPOSE = 58,
245 Op_GATHER = 59,
246 Op_SCATTER = 60,
247 Op_RESIZE = 61,
248 Op_CAST = 62,
249 Op_RESCALE = 63,
250 Op_CONST = 64,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700251 Op_IDENTITY = 65,
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700252 Op_CUSTOM = 66,
253 Op_COND_IF = 67,
254 Op_WHILE_LOOP = 68,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700255 Op_MIN = Op_UNKNOWN,
256 Op_MAX = Op_WHILE_LOOP
257};
258
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700259inline const Op (&EnumValuesOp())[69] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700260 static const Op values[] = {
261 Op_UNKNOWN,
262 Op_ARGMAX,
263 Op_AVG_POOL2D,
264 Op_CONV2D,
265 Op_CONV3D,
266 Op_DEPTHWISE_CONV2D,
267 Op_FULLY_CONNECTED,
268 Op_MATMUL,
269 Op_MAX_POOL2D,
270 Op_TRANSPOSE_CONV2D,
271 Op_CLAMP,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700272 Op_RESERVED,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700273 Op_SIGMOID,
274 Op_TANH,
275 Op_ADD,
276 Op_ARITHMETIC_RIGHT_SHIFT,
277 Op_BITWISE_AND,
278 Op_BITWISE_OR,
279 Op_BITWISE_XOR,
Matthew Haddonab905ec2021-08-23 16:40:57 +0100280 Op_INTDIV,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700281 Op_LOGICAL_AND,
282 Op_LOGICAL_LEFT_SHIFT,
283 Op_LOGICAL_RIGHT_SHIFT,
284 Op_LOGICAL_OR,
285 Op_LOGICAL_XOR,
286 Op_MAXIMUM,
287 Op_MINIMUM,
288 Op_MUL,
289 Op_POW,
290 Op_SUB,
291 Op_TABLE,
292 Op_ABS,
293 Op_BITWISE_NOT,
294 Op_CEIL,
295 Op_CLZ,
296 Op_EXP,
297 Op_FLOOR,
298 Op_LOG,
299 Op_LOGICAL_NOT,
300 Op_NEGATE,
301 Op_RECIPROCAL,
302 Op_RSQRT,
303 Op_SELECT,
304 Op_EQUAL,
305 Op_GREATER,
306 Op_GREATER_EQUAL,
307 Op_REDUCE_ANY,
308 Op_REDUCE_ALL,
309 Op_REDUCE_MAX,
310 Op_REDUCE_MIN,
311 Op_REDUCE_PRODUCT,
312 Op_REDUCE_SUM,
313 Op_CONCAT,
314 Op_PAD,
315 Op_RESHAPE,
316 Op_REVERSE,
317 Op_SLICE,
318 Op_TILE,
319 Op_TRANSPOSE,
320 Op_GATHER,
321 Op_SCATTER,
322 Op_RESIZE,
323 Op_CAST,
324 Op_RESCALE,
325 Op_CONST,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700326 Op_IDENTITY,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700327 Op_CUSTOM,
328 Op_COND_IF,
329 Op_WHILE_LOOP
330 };
331 return values;
332}
333
334inline const char * const *EnumNamesOp() {
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700335 static const char * const names[70] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700336 "UNKNOWN",
337 "ARGMAX",
338 "AVG_POOL2D",
339 "CONV2D",
340 "CONV3D",
341 "DEPTHWISE_CONV2D",
342 "FULLY_CONNECTED",
343 "MATMUL",
344 "MAX_POOL2D",
345 "TRANSPOSE_CONV2D",
346 "CLAMP",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700347 "RESERVED",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700348 "SIGMOID",
349 "TANH",
350 "ADD",
351 "ARITHMETIC_RIGHT_SHIFT",
352 "BITWISE_AND",
353 "BITWISE_OR",
354 "BITWISE_XOR",
Matthew Haddonab905ec2021-08-23 16:40:57 +0100355 "INTDIV",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700356 "LOGICAL_AND",
357 "LOGICAL_LEFT_SHIFT",
358 "LOGICAL_RIGHT_SHIFT",
359 "LOGICAL_OR",
360 "LOGICAL_XOR",
361 "MAXIMUM",
362 "MINIMUM",
363 "MUL",
364 "POW",
365 "SUB",
366 "TABLE",
367 "ABS",
368 "BITWISE_NOT",
369 "CEIL",
370 "CLZ",
371 "EXP",
372 "FLOOR",
373 "LOG",
374 "LOGICAL_NOT",
375 "NEGATE",
376 "RECIPROCAL",
377 "RSQRT",
378 "SELECT",
379 "EQUAL",
380 "GREATER",
381 "GREATER_EQUAL",
382 "REDUCE_ANY",
383 "REDUCE_ALL",
384 "REDUCE_MAX",
385 "REDUCE_MIN",
386 "REDUCE_PRODUCT",
387 "REDUCE_SUM",
388 "CONCAT",
389 "PAD",
390 "RESHAPE",
391 "REVERSE",
392 "SLICE",
393 "TILE",
394 "TRANSPOSE",
395 "GATHER",
396 "SCATTER",
397 "RESIZE",
398 "CAST",
399 "RESCALE",
400 "CONST",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700401 "IDENTITY",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700402 "CUSTOM",
403 "COND_IF",
404 "WHILE_LOOP",
405 nullptr
406 };
407 return names;
408}
409
410inline const char *EnumNameOp(Op e) {
411 if (flatbuffers::IsOutRange(e, Op_UNKNOWN, Op_WHILE_LOOP)) return "";
412 const size_t index = static_cast<size_t>(e);
413 return EnumNamesOp()[index];
414}
415
Eric Kunze4381b3d2022-08-22 18:15:41 +0000416enum Attribute : uint8_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700417 Attribute_NONE = 0,
Kevin Cheng79a41992021-08-31 16:04:40 -0700418 Attribute_PoolAttribute = 1,
419 Attribute_ConvAttribute = 2,
420 Attribute_TransposeConvAttribute = 3,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700421 Attribute_PadAttribute = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700422 Attribute_AxisAttribute = 5,
423 Attribute_ReshapeAttribute = 6,
424 Attribute_SliceAttribute = 7,
425 Attribute_TileAttribute = 8,
426 Attribute_ResizeAttribute = 9,
427 Attribute_ClampAttribute = 10,
428 Attribute_RescaleAttribute = 11,
429 Attribute_MulAttribute = 12,
430 Attribute_ArithmeticRightShiftAttribute = 13,
431 Attribute_CondIfAttribute = 14,
432 Attribute_WhileLoopAttribute = 15,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700433 Attribute_TransposeAttribute = 16,
434 Attribute_TableAttribute = 17,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000435 Attribute_MatMulAttribute = 18,
436 Attribute_FullyConnectedAttribute = 19,
437 Attribute_NegateAttribute = 20,
Eric Kunze497ab5d2022-10-21 16:39:01 -0700438 Attribute_CustomAttribute = 21,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700439 Attribute_MIN = Attribute_NONE,
Eric Kunze497ab5d2022-10-21 16:39:01 -0700440 Attribute_MAX = Attribute_CustomAttribute
Eric Kunze2364dcd2021-04-26 11:06:57 -0700441};
442
Eric Kunze497ab5d2022-10-21 16:39:01 -0700443inline const Attribute (&EnumValuesAttribute())[22] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700444 static const Attribute values[] = {
445 Attribute_NONE,
Kevin Cheng79a41992021-08-31 16:04:40 -0700446 Attribute_PoolAttribute,
447 Attribute_ConvAttribute,
448 Attribute_TransposeConvAttribute,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700449 Attribute_PadAttribute,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700450 Attribute_AxisAttribute,
451 Attribute_ReshapeAttribute,
452 Attribute_SliceAttribute,
453 Attribute_TileAttribute,
454 Attribute_ResizeAttribute,
455 Attribute_ClampAttribute,
456 Attribute_RescaleAttribute,
457 Attribute_MulAttribute,
458 Attribute_ArithmeticRightShiftAttribute,
459 Attribute_CondIfAttribute,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700460 Attribute_WhileLoopAttribute,
461 Attribute_TransposeAttribute,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000462 Attribute_TableAttribute,
463 Attribute_MatMulAttribute,
464 Attribute_FullyConnectedAttribute,
Eric Kunze497ab5d2022-10-21 16:39:01 -0700465 Attribute_NegateAttribute,
466 Attribute_CustomAttribute
Eric Kunze2364dcd2021-04-26 11:06:57 -0700467 };
468 return values;
469}
470
471inline const char * const *EnumNamesAttribute() {
Eric Kunze497ab5d2022-10-21 16:39:01 -0700472 static const char * const names[23] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700473 "NONE",
Kevin Cheng79a41992021-08-31 16:04:40 -0700474 "PoolAttribute",
475 "ConvAttribute",
476 "TransposeConvAttribute",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700477 "PadAttribute",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700478 "AxisAttribute",
479 "ReshapeAttribute",
480 "SliceAttribute",
481 "TileAttribute",
482 "ResizeAttribute",
483 "ClampAttribute",
484 "RescaleAttribute",
485 "MulAttribute",
486 "ArithmeticRightShiftAttribute",
487 "CondIfAttribute",
488 "WhileLoopAttribute",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700489 "TransposeAttribute",
490 "TableAttribute",
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000491 "MatMulAttribute",
492 "FullyConnectedAttribute",
493 "NegateAttribute",
Eric Kunze497ab5d2022-10-21 16:39:01 -0700494 "CustomAttribute",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700495 nullptr
496 };
497 return names;
498}
499
500inline const char *EnumNameAttribute(Attribute e) {
Eric Kunze497ab5d2022-10-21 16:39:01 -0700501 if (flatbuffers::IsOutRange(e, Attribute_NONE, Attribute_CustomAttribute)) return "";
Eric Kunze2364dcd2021-04-26 11:06:57 -0700502 const size_t index = static_cast<size_t>(e);
503 return EnumNamesAttribute()[index];
504}
505
506template<typename T> struct AttributeTraits {
507 static const Attribute enum_value = Attribute_NONE;
508};
509
Kevin Cheng79a41992021-08-31 16:04:40 -0700510template<> struct AttributeTraits<tosa::PoolAttribute> {
511 static const Attribute enum_value = Attribute_PoolAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700512};
513
Kevin Cheng79a41992021-08-31 16:04:40 -0700514template<> struct AttributeTraits<tosa::ConvAttribute> {
515 static const Attribute enum_value = Attribute_ConvAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700516};
517
Kevin Cheng79a41992021-08-31 16:04:40 -0700518template<> struct AttributeTraits<tosa::TransposeConvAttribute> {
519 static const Attribute enum_value = Attribute_TransposeConvAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700520};
521
Kevin Cheng38d214c2021-10-15 15:49:19 -0700522template<> struct AttributeTraits<tosa::PadAttribute> {
523 static const Attribute enum_value = Attribute_PadAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700524};
525
526template<> struct AttributeTraits<tosa::AxisAttribute> {
527 static const Attribute enum_value = Attribute_AxisAttribute;
528};
529
530template<> struct AttributeTraits<tosa::ReshapeAttribute> {
531 static const Attribute enum_value = Attribute_ReshapeAttribute;
532};
533
534template<> struct AttributeTraits<tosa::SliceAttribute> {
535 static const Attribute enum_value = Attribute_SliceAttribute;
536};
537
538template<> struct AttributeTraits<tosa::TileAttribute> {
539 static const Attribute enum_value = Attribute_TileAttribute;
540};
541
542template<> struct AttributeTraits<tosa::ResizeAttribute> {
543 static const Attribute enum_value = Attribute_ResizeAttribute;
544};
545
546template<> struct AttributeTraits<tosa::ClampAttribute> {
547 static const Attribute enum_value = Attribute_ClampAttribute;
548};
549
550template<> struct AttributeTraits<tosa::RescaleAttribute> {
551 static const Attribute enum_value = Attribute_RescaleAttribute;
552};
553
554template<> struct AttributeTraits<tosa::MulAttribute> {
555 static const Attribute enum_value = Attribute_MulAttribute;
556};
557
558template<> struct AttributeTraits<tosa::ArithmeticRightShiftAttribute> {
559 static const Attribute enum_value = Attribute_ArithmeticRightShiftAttribute;
560};
561
562template<> struct AttributeTraits<tosa::CondIfAttribute> {
563 static const Attribute enum_value = Attribute_CondIfAttribute;
564};
565
566template<> struct AttributeTraits<tosa::WhileLoopAttribute> {
567 static const Attribute enum_value = Attribute_WhileLoopAttribute;
568};
569
Kevin Cheng38d214c2021-10-15 15:49:19 -0700570template<> struct AttributeTraits<tosa::TransposeAttribute> {
571 static const Attribute enum_value = Attribute_TransposeAttribute;
572};
573
574template<> struct AttributeTraits<tosa::TableAttribute> {
575 static const Attribute enum_value = Attribute_TableAttribute;
576};
577
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000578template<> struct AttributeTraits<tosa::MatMulAttribute> {
579 static const Attribute enum_value = Attribute_MatMulAttribute;
580};
581
582template<> struct AttributeTraits<tosa::FullyConnectedAttribute> {
583 static const Attribute enum_value = Attribute_FullyConnectedAttribute;
584};
585
586template<> struct AttributeTraits<tosa::NegateAttribute> {
587 static const Attribute enum_value = Attribute_NegateAttribute;
588};
589
Eric Kunze497ab5d2022-10-21 16:39:01 -0700590template<> struct AttributeTraits<tosa::CustomAttribute> {
591 static const Attribute enum_value = Attribute_CustomAttribute;
592};
593
Eric Kunze2364dcd2021-04-26 11:06:57 -0700594bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type);
595bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types);
596
Kevin Cheng79a41992021-08-31 16:04:40 -0700597struct PoolAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
598 typedef PoolAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700599 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -0700600 VT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700601 VT_KERNEL = 6,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000602 VT_STRIDE = 8,
603 VT_INPUT_ZP = 10,
James Ward485a11d2022-08-05 13:48:37 +0100604 VT_OUTPUT_ZP = 12,
605 VT_ACCUM_DTYPE = 14
Eric Kunze2364dcd2021-04-26 11:06:57 -0700606 };
TatWai Chong7be71652022-05-10 17:26:20 -0700607 const flatbuffers::Vector<int32_t> *pad() const {
608 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700609 }
610 const flatbuffers::Vector<int32_t> *kernel() const {
611 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_KERNEL);
612 }
613 const flatbuffers::Vector<int32_t> *stride() const {
614 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
615 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000616 int32_t input_zp() const {
617 return GetField<int32_t>(VT_INPUT_ZP, 0);
618 }
619 int32_t output_zp() const {
620 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
621 }
James Ward485a11d2022-08-05 13:48:37 +0100622 tosa::DType accum_dtype() const {
623 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
624 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700625 bool Verify(flatbuffers::Verifier &verifier) const {
626 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -0700627 VerifyOffset(verifier, VT_PAD) &&
628 verifier.VerifyVector(pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700629 VerifyOffset(verifier, VT_KERNEL) &&
630 verifier.VerifyVector(kernel()) &&
631 VerifyOffset(verifier, VT_STRIDE) &&
632 verifier.VerifyVector(stride()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000633 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
634 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +0100635 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700636 verifier.EndTable();
637 }
638};
639
Kevin Cheng79a41992021-08-31 16:04:40 -0700640struct PoolAttributeBuilder {
641 typedef PoolAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700642 flatbuffers::FlatBufferBuilder &fbb_;
643 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -0700644 void add_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad) {
645 fbb_.AddOffset(PoolAttribute::VT_PAD, pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700646 }
647 void add_kernel(flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700648 fbb_.AddOffset(PoolAttribute::VT_KERNEL, kernel);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700649 }
650 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700651 fbb_.AddOffset(PoolAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700652 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000653 void add_input_zp(int32_t input_zp) {
654 fbb_.AddElement<int32_t>(PoolAttribute::VT_INPUT_ZP, input_zp, 0);
655 }
656 void add_output_zp(int32_t output_zp) {
657 fbb_.AddElement<int32_t>(PoolAttribute::VT_OUTPUT_ZP, output_zp, 0);
658 }
James Ward485a11d2022-08-05 13:48:37 +0100659 void add_accum_dtype(tosa::DType accum_dtype) {
660 fbb_.AddElement<uint32_t>(PoolAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
661 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700662 explicit PoolAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700663 : fbb_(_fbb) {
664 start_ = fbb_.StartTable();
665 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700666 flatbuffers::Offset<PoolAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700667 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700668 auto o = flatbuffers::Offset<PoolAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700669 return o;
670 }
671};
672
Kevin Cheng79a41992021-08-31 16:04:40 -0700673inline flatbuffers::Offset<PoolAttribute> CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700674 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700675 flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700676 flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000677 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
678 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100679 int32_t output_zp = 0,
680 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700681 PoolAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +0100682 builder_.add_accum_dtype(accum_dtype);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000683 builder_.add_output_zp(output_zp);
684 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700685 builder_.add_stride(stride);
686 builder_.add_kernel(kernel);
TatWai Chong7be71652022-05-10 17:26:20 -0700687 builder_.add_pad(pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700688 return builder_.Finish();
689}
690
Kevin Cheng79a41992021-08-31 16:04:40 -0700691inline flatbuffers::Offset<PoolAttribute> CreatePoolAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700692 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700693 const std::vector<int32_t> *pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700694 const std::vector<int32_t> *kernel = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000695 const std::vector<int32_t> *stride = nullptr,
696 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100697 int32_t output_zp = 0,
698 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
TatWai Chong7be71652022-05-10 17:26:20 -0700699 auto pad__ = pad ? _fbb.CreateVector<int32_t>(*pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700700 auto kernel__ = kernel ? _fbb.CreateVector<int32_t>(*kernel) : 0;
701 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700702 return tosa::CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700703 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700704 pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700705 kernel__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000706 stride__,
707 input_zp,
James Ward485a11d2022-08-05 13:48:37 +0100708 output_zp,
709 accum_dtype);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700710}
711
Kevin Cheng79a41992021-08-31 16:04:40 -0700712struct ConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
713 typedef ConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700714 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -0700715 VT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700716 VT_STRIDE = 6,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000717 VT_DILATION = 8,
718 VT_INPUT_ZP = 10,
James Ward485a11d2022-08-05 13:48:37 +0100719 VT_WEIGHT_ZP = 12,
720 VT_ACCUM_DTYPE = 14
Eric Kunze2364dcd2021-04-26 11:06:57 -0700721 };
TatWai Chong7be71652022-05-10 17:26:20 -0700722 const flatbuffers::Vector<int32_t> *pad() const {
723 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700724 }
725 const flatbuffers::Vector<int32_t> *stride() const {
726 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
727 }
728 const flatbuffers::Vector<int32_t> *dilation() const {
729 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_DILATION);
730 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000731 int32_t input_zp() const {
732 return GetField<int32_t>(VT_INPUT_ZP, 0);
733 }
734 int32_t weight_zp() const {
735 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
736 }
James Ward485a11d2022-08-05 13:48:37 +0100737 tosa::DType accum_dtype() const {
738 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
739 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700740 bool Verify(flatbuffers::Verifier &verifier) const {
741 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -0700742 VerifyOffset(verifier, VT_PAD) &&
743 verifier.VerifyVector(pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700744 VerifyOffset(verifier, VT_STRIDE) &&
745 verifier.VerifyVector(stride()) &&
746 VerifyOffset(verifier, VT_DILATION) &&
747 verifier.VerifyVector(dilation()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000748 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
749 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +0100750 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700751 verifier.EndTable();
752 }
753};
754
Kevin Cheng79a41992021-08-31 16:04:40 -0700755struct ConvAttributeBuilder {
756 typedef ConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700757 flatbuffers::FlatBufferBuilder &fbb_;
758 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -0700759 void add_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad) {
760 fbb_.AddOffset(ConvAttribute::VT_PAD, pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700761 }
762 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700763 fbb_.AddOffset(ConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700764 }
765 void add_dilation(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700766 fbb_.AddOffset(ConvAttribute::VT_DILATION, dilation);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700767 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000768 void add_input_zp(int32_t input_zp) {
769 fbb_.AddElement<int32_t>(ConvAttribute::VT_INPUT_ZP, input_zp, 0);
770 }
771 void add_weight_zp(int32_t weight_zp) {
772 fbb_.AddElement<int32_t>(ConvAttribute::VT_WEIGHT_ZP, weight_zp, 0);
773 }
James Ward485a11d2022-08-05 13:48:37 +0100774 void add_accum_dtype(tosa::DType accum_dtype) {
775 fbb_.AddElement<uint32_t>(ConvAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
776 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700777 explicit ConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700778 : fbb_(_fbb) {
779 start_ = fbb_.StartTable();
780 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700781 flatbuffers::Offset<ConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700782 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700783 auto o = flatbuffers::Offset<ConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700784 return o;
785 }
786};
787
Kevin Cheng79a41992021-08-31 16:04:40 -0700788inline flatbuffers::Offset<ConvAttribute> CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700789 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700790 flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700791 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000792 flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation = 0,
793 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100794 int32_t weight_zp = 0,
795 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700796 ConvAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +0100797 builder_.add_accum_dtype(accum_dtype);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000798 builder_.add_weight_zp(weight_zp);
799 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700800 builder_.add_dilation(dilation);
801 builder_.add_stride(stride);
TatWai Chong7be71652022-05-10 17:26:20 -0700802 builder_.add_pad(pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700803 return builder_.Finish();
804}
805
Kevin Cheng79a41992021-08-31 16:04:40 -0700806inline flatbuffers::Offset<ConvAttribute> CreateConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700807 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700808 const std::vector<int32_t> *pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700809 const std::vector<int32_t> *stride = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000810 const std::vector<int32_t> *dilation = nullptr,
811 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100812 int32_t weight_zp = 0,
813 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
TatWai Chong7be71652022-05-10 17:26:20 -0700814 auto pad__ = pad ? _fbb.CreateVector<int32_t>(*pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700815 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
816 auto dilation__ = dilation ? _fbb.CreateVector<int32_t>(*dilation) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700817 return tosa::CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700818 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700819 pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700820 stride__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000821 dilation__,
822 input_zp,
James Ward485a11d2022-08-05 13:48:37 +0100823 weight_zp,
824 accum_dtype);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700825}
826
Kevin Cheng79a41992021-08-31 16:04:40 -0700827struct TransposeConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
828 typedef TransposeConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700829 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700830 VT_OUT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700831 VT_STRIDE = 6,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000832 VT_OUTPUT_SHAPE = 8,
833 VT_INPUT_ZP = 10,
James Ward485a11d2022-08-05 13:48:37 +0100834 VT_WEIGHT_ZP = 12,
835 VT_ACCUM_DTYPE = 14
Eric Kunze2364dcd2021-04-26 11:06:57 -0700836 };
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700837 const flatbuffers::Vector<int32_t> *out_pad() const {
838 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700839 }
840 const flatbuffers::Vector<int32_t> *stride() const {
841 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
842 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700843 const flatbuffers::Vector<int32_t> *output_shape() const {
844 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUT_SHAPE);
845 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000846 int32_t input_zp() const {
847 return GetField<int32_t>(VT_INPUT_ZP, 0);
848 }
849 int32_t weight_zp() const {
850 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
851 }
James Ward485a11d2022-08-05 13:48:37 +0100852 tosa::DType accum_dtype() const {
853 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
854 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700855 bool Verify(flatbuffers::Verifier &verifier) const {
856 return VerifyTableStart(verifier) &&
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700857 VerifyOffset(verifier, VT_OUT_PAD) &&
858 verifier.VerifyVector(out_pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700859 VerifyOffset(verifier, VT_STRIDE) &&
860 verifier.VerifyVector(stride()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700861 VerifyOffset(verifier, VT_OUTPUT_SHAPE) &&
862 verifier.VerifyVector(output_shape()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000863 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
864 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +0100865 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700866 verifier.EndTable();
867 }
868};
869
Kevin Cheng79a41992021-08-31 16:04:40 -0700870struct TransposeConvAttributeBuilder {
871 typedef TransposeConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700872 flatbuffers::FlatBufferBuilder &fbb_;
873 flatbuffers::uoffset_t start_;
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700874 void add_out_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> out_pad) {
875 fbb_.AddOffset(TransposeConvAttribute::VT_OUT_PAD, out_pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700876 }
877 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700878 fbb_.AddOffset(TransposeConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700879 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700880 void add_output_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700881 fbb_.AddOffset(TransposeConvAttribute::VT_OUTPUT_SHAPE, output_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700882 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000883 void add_input_zp(int32_t input_zp) {
884 fbb_.AddElement<int32_t>(TransposeConvAttribute::VT_INPUT_ZP, input_zp, 0);
885 }
886 void add_weight_zp(int32_t weight_zp) {
887 fbb_.AddElement<int32_t>(TransposeConvAttribute::VT_WEIGHT_ZP, weight_zp, 0);
888 }
James Ward485a11d2022-08-05 13:48:37 +0100889 void add_accum_dtype(tosa::DType accum_dtype) {
890 fbb_.AddElement<uint32_t>(TransposeConvAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
891 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700892 explicit TransposeConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700893 : fbb_(_fbb) {
894 start_ = fbb_.StartTable();
895 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700896 flatbuffers::Offset<TransposeConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700897 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700898 auto o = flatbuffers::Offset<TransposeConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700899 return o;
900 }
901};
902
Kevin Cheng79a41992021-08-31 16:04:40 -0700903inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700904 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700905 flatbuffers::Offset<flatbuffers::Vector<int32_t>> out_pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700906 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000907 flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape = 0,
908 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100909 int32_t weight_zp = 0,
910 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700911 TransposeConvAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +0100912 builder_.add_accum_dtype(accum_dtype);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000913 builder_.add_weight_zp(weight_zp);
914 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700915 builder_.add_output_shape(output_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700916 builder_.add_stride(stride);
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700917 builder_.add_out_pad(out_pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700918 return builder_.Finish();
919}
920
Kevin Cheng79a41992021-08-31 16:04:40 -0700921inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700922 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700923 const std::vector<int32_t> *out_pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700924 const std::vector<int32_t> *stride = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000925 const std::vector<int32_t> *output_shape = nullptr,
926 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100927 int32_t weight_zp = 0,
928 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700929 auto out_pad__ = out_pad ? _fbb.CreateVector<int32_t>(*out_pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700930 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700931 auto output_shape__ = output_shape ? _fbb.CreateVector<int32_t>(*output_shape) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700932 return tosa::CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700933 _fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700934 out_pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700935 stride__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000936 output_shape__,
937 input_zp,
James Ward485a11d2022-08-05 13:48:37 +0100938 weight_zp,
939 accum_dtype);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700940}
941
Kevin Cheng38d214c2021-10-15 15:49:19 -0700942struct PadAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
943 typedef PadAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700944 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Kevin Cheng38d214c2021-10-15 15:49:19 -0700945 VT_PADDING = 4,
946 VT_PAD_CONST_INT = 6,
947 VT_PAD_CONST_FP = 8
Eric Kunze2364dcd2021-04-26 11:06:57 -0700948 };
Kevin Cheng38d214c2021-10-15 15:49:19 -0700949 const flatbuffers::Vector<int32_t> *padding() const {
950 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PADDING);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700951 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700952 int32_t pad_const_int() const {
953 return GetField<int32_t>(VT_PAD_CONST_INT, 0);
954 }
955 float pad_const_fp() const {
956 return GetField<float>(VT_PAD_CONST_FP, 0.0f);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700957 }
958 bool Verify(flatbuffers::Verifier &verifier) const {
959 return VerifyTableStart(verifier) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -0700960 VerifyOffset(verifier, VT_PADDING) &&
961 verifier.VerifyVector(padding()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000962 VerifyField<int32_t>(verifier, VT_PAD_CONST_INT, 4) &&
963 VerifyField<float>(verifier, VT_PAD_CONST_FP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700964 verifier.EndTable();
965 }
966};
967
Kevin Cheng38d214c2021-10-15 15:49:19 -0700968struct PadAttributeBuilder {
969 typedef PadAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700970 flatbuffers::FlatBufferBuilder &fbb_;
971 flatbuffers::uoffset_t start_;
Kevin Cheng38d214c2021-10-15 15:49:19 -0700972 void add_padding(flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding) {
973 fbb_.AddOffset(PadAttribute::VT_PADDING, padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700974 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700975 void add_pad_const_int(int32_t pad_const_int) {
976 fbb_.AddElement<int32_t>(PadAttribute::VT_PAD_CONST_INT, pad_const_int, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700977 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700978 void add_pad_const_fp(float pad_const_fp) {
979 fbb_.AddElement<float>(PadAttribute::VT_PAD_CONST_FP, pad_const_fp, 0.0f);
980 }
981 explicit PadAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700982 : fbb_(_fbb) {
983 start_ = fbb_.StartTable();
984 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700985 flatbuffers::Offset<PadAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700986 const auto end = fbb_.EndTable(start_);
Kevin Cheng38d214c2021-10-15 15:49:19 -0700987 auto o = flatbuffers::Offset<PadAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700988 return o;
989 }
990};
991
Kevin Cheng38d214c2021-10-15 15:49:19 -0700992inline flatbuffers::Offset<PadAttribute> CreatePadAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700993 flatbuffers::FlatBufferBuilder &_fbb,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700994 flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding = 0,
995 int32_t pad_const_int = 0,
996 float pad_const_fp = 0.0f) {
997 PadAttributeBuilder builder_(_fbb);
998 builder_.add_pad_const_fp(pad_const_fp);
999 builder_.add_pad_const_int(pad_const_int);
1000 builder_.add_padding(padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001001 return builder_.Finish();
1002}
1003
Kevin Cheng38d214c2021-10-15 15:49:19 -07001004inline flatbuffers::Offset<PadAttribute> CreatePadAttributeDirect(
1005 flatbuffers::FlatBufferBuilder &_fbb,
1006 const std::vector<int32_t> *padding = nullptr,
1007 int32_t pad_const_int = 0,
1008 float pad_const_fp = 0.0f) {
1009 auto padding__ = padding ? _fbb.CreateVector<int32_t>(*padding) : 0;
1010 return tosa::CreatePadAttribute(
1011 _fbb,
1012 padding__,
1013 pad_const_int,
1014 pad_const_fp);
1015}
1016
Eric Kunze2364dcd2021-04-26 11:06:57 -07001017struct AxisAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1018 typedef AxisAttributeBuilder Builder;
1019 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1020 VT_AXIS = 4
1021 };
1022 int32_t axis() const {
1023 return GetField<int32_t>(VT_AXIS, 0);
1024 }
1025 bool Verify(flatbuffers::Verifier &verifier) const {
1026 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001027 VerifyField<int32_t>(verifier, VT_AXIS, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001028 verifier.EndTable();
1029 }
1030};
1031
1032struct AxisAttributeBuilder {
1033 typedef AxisAttribute Table;
1034 flatbuffers::FlatBufferBuilder &fbb_;
1035 flatbuffers::uoffset_t start_;
1036 void add_axis(int32_t axis) {
1037 fbb_.AddElement<int32_t>(AxisAttribute::VT_AXIS, axis, 0);
1038 }
1039 explicit AxisAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1040 : fbb_(_fbb) {
1041 start_ = fbb_.StartTable();
1042 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001043 flatbuffers::Offset<AxisAttribute> Finish() {
1044 const auto end = fbb_.EndTable(start_);
1045 auto o = flatbuffers::Offset<AxisAttribute>(end);
1046 return o;
1047 }
1048};
1049
1050inline flatbuffers::Offset<AxisAttribute> CreateAxisAttribute(
1051 flatbuffers::FlatBufferBuilder &_fbb,
1052 int32_t axis = 0) {
1053 AxisAttributeBuilder builder_(_fbb);
1054 builder_.add_axis(axis);
1055 return builder_.Finish();
1056}
1057
1058struct ReshapeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1059 typedef ReshapeAttributeBuilder Builder;
1060 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001061 VT_NEW_SHAPE = 4
Eric Kunze2364dcd2021-04-26 11:06:57 -07001062 };
TatWai Chong7be71652022-05-10 17:26:20 -07001063 const flatbuffers::Vector<int32_t> *new_shape() const {
1064 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_NEW_SHAPE);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001065 }
1066 bool Verify(flatbuffers::Verifier &verifier) const {
1067 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001068 VerifyOffset(verifier, VT_NEW_SHAPE) &&
1069 verifier.VerifyVector(new_shape()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001070 verifier.EndTable();
1071 }
1072};
1073
1074struct ReshapeAttributeBuilder {
1075 typedef ReshapeAttribute Table;
1076 flatbuffers::FlatBufferBuilder &fbb_;
1077 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001078 void add_new_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> new_shape) {
1079 fbb_.AddOffset(ReshapeAttribute::VT_NEW_SHAPE, new_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001080 }
1081 explicit ReshapeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1082 : fbb_(_fbb) {
1083 start_ = fbb_.StartTable();
1084 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001085 flatbuffers::Offset<ReshapeAttribute> Finish() {
1086 const auto end = fbb_.EndTable(start_);
1087 auto o = flatbuffers::Offset<ReshapeAttribute>(end);
1088 return o;
1089 }
1090};
1091
1092inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttribute(
1093 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001094 flatbuffers::Offset<flatbuffers::Vector<int32_t>> new_shape = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001095 ReshapeAttributeBuilder builder_(_fbb);
TatWai Chong7be71652022-05-10 17:26:20 -07001096 builder_.add_new_shape(new_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001097 return builder_.Finish();
1098}
1099
1100inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttributeDirect(
1101 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001102 const std::vector<int32_t> *new_shape = nullptr) {
1103 auto new_shape__ = new_shape ? _fbb.CreateVector<int32_t>(*new_shape) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001104 return tosa::CreateReshapeAttribute(
1105 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001106 new_shape__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001107}
1108
1109struct SliceAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1110 typedef SliceAttributeBuilder Builder;
1111 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001112 VT_START = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001113 VT_SIZE = 6
1114 };
TatWai Chong7be71652022-05-10 17:26:20 -07001115 const flatbuffers::Vector<int32_t> *start() const {
1116 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_START);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001117 }
1118 const flatbuffers::Vector<int32_t> *size() const {
1119 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SIZE);
1120 }
1121 bool Verify(flatbuffers::Verifier &verifier) const {
1122 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001123 VerifyOffset(verifier, VT_START) &&
1124 verifier.VerifyVector(start()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001125 VerifyOffset(verifier, VT_SIZE) &&
1126 verifier.VerifyVector(size()) &&
1127 verifier.EndTable();
1128 }
1129};
1130
1131struct SliceAttributeBuilder {
1132 typedef SliceAttribute Table;
1133 flatbuffers::FlatBufferBuilder &fbb_;
1134 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001135 void add_start(flatbuffers::Offset<flatbuffers::Vector<int32_t>> start) {
1136 fbb_.AddOffset(SliceAttribute::VT_START, start);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001137 }
1138 void add_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> size) {
1139 fbb_.AddOffset(SliceAttribute::VT_SIZE, size);
1140 }
1141 explicit SliceAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1142 : fbb_(_fbb) {
1143 start_ = fbb_.StartTable();
1144 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001145 flatbuffers::Offset<SliceAttribute> Finish() {
1146 const auto end = fbb_.EndTable(start_);
1147 auto o = flatbuffers::Offset<SliceAttribute>(end);
1148 return o;
1149 }
1150};
1151
1152inline flatbuffers::Offset<SliceAttribute> CreateSliceAttribute(
1153 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001154 flatbuffers::Offset<flatbuffers::Vector<int32_t>> start = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001155 flatbuffers::Offset<flatbuffers::Vector<int32_t>> size = 0) {
1156 SliceAttributeBuilder builder_(_fbb);
1157 builder_.add_size(size);
TatWai Chong7be71652022-05-10 17:26:20 -07001158 builder_.add_start(start);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001159 return builder_.Finish();
1160}
1161
1162inline flatbuffers::Offset<SliceAttribute> CreateSliceAttributeDirect(
1163 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001164 const std::vector<int32_t> *start = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001165 const std::vector<int32_t> *size = nullptr) {
TatWai Chong7be71652022-05-10 17:26:20 -07001166 auto start__ = start ? _fbb.CreateVector<int32_t>(*start) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001167 auto size__ = size ? _fbb.CreateVector<int32_t>(*size) : 0;
1168 return tosa::CreateSliceAttribute(
1169 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001170 start__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001171 size__);
1172}
1173
1174struct TileAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1175 typedef TileAttributeBuilder Builder;
1176 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1177 VT_MULTIPLES = 4
1178 };
1179 const flatbuffers::Vector<int32_t> *multiples() const {
1180 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLES);
1181 }
1182 bool Verify(flatbuffers::Verifier &verifier) const {
1183 return VerifyTableStart(verifier) &&
1184 VerifyOffset(verifier, VT_MULTIPLES) &&
1185 verifier.VerifyVector(multiples()) &&
1186 verifier.EndTable();
1187 }
1188};
1189
1190struct TileAttributeBuilder {
1191 typedef TileAttribute Table;
1192 flatbuffers::FlatBufferBuilder &fbb_;
1193 flatbuffers::uoffset_t start_;
1194 void add_multiples(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples) {
1195 fbb_.AddOffset(TileAttribute::VT_MULTIPLES, multiples);
1196 }
1197 explicit TileAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1198 : fbb_(_fbb) {
1199 start_ = fbb_.StartTable();
1200 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001201 flatbuffers::Offset<TileAttribute> Finish() {
1202 const auto end = fbb_.EndTable(start_);
1203 auto o = flatbuffers::Offset<TileAttribute>(end);
1204 return o;
1205 }
1206};
1207
1208inline flatbuffers::Offset<TileAttribute> CreateTileAttribute(
1209 flatbuffers::FlatBufferBuilder &_fbb,
1210 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples = 0) {
1211 TileAttributeBuilder builder_(_fbb);
1212 builder_.add_multiples(multiples);
1213 return builder_.Finish();
1214}
1215
1216inline flatbuffers::Offset<TileAttribute> CreateTileAttributeDirect(
1217 flatbuffers::FlatBufferBuilder &_fbb,
1218 const std::vector<int32_t> *multiples = nullptr) {
1219 auto multiples__ = multiples ? _fbb.CreateVector<int32_t>(*multiples) : 0;
1220 return tosa::CreateTileAttribute(
1221 _fbb,
1222 multiples__);
1223}
1224
1225struct ResizeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1226 typedef ResizeAttributeBuilder Builder;
1227 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong49b1ca62022-06-10 01:49:13 -07001228 VT_SCALE = 4,
1229 VT_OFFSET = 6,
1230 VT_BORDER = 8,
1231 VT_MODE = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07001232 };
TatWai Chong49b1ca62022-06-10 01:49:13 -07001233 const flatbuffers::Vector<int16_t> *scale() const {
1234 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_SCALE);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001235 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001236 const flatbuffers::Vector<int16_t> *offset() const {
1237 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_OFFSET);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001238 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001239 const flatbuffers::Vector<int16_t> *border() const {
1240 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_BORDER);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001241 }
1242 tosa::ResizeMode mode() const {
1243 return static_cast<tosa::ResizeMode>(GetField<uint32_t>(VT_MODE, 0));
1244 }
1245 bool Verify(flatbuffers::Verifier &verifier) const {
1246 return VerifyTableStart(verifier) &&
TatWai Chong49b1ca62022-06-10 01:49:13 -07001247 VerifyOffset(verifier, VT_SCALE) &&
1248 verifier.VerifyVector(scale()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001249 VerifyOffset(verifier, VT_OFFSET) &&
1250 verifier.VerifyVector(offset()) &&
TatWai Chong49b1ca62022-06-10 01:49:13 -07001251 VerifyOffset(verifier, VT_BORDER) &&
1252 verifier.VerifyVector(border()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001253 VerifyField<uint32_t>(verifier, VT_MODE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001254 verifier.EndTable();
1255 }
1256};
1257
1258struct ResizeAttributeBuilder {
1259 typedef ResizeAttribute Table;
1260 flatbuffers::FlatBufferBuilder &fbb_;
1261 flatbuffers::uoffset_t start_;
TatWai Chong49b1ca62022-06-10 01:49:13 -07001262 void add_scale(flatbuffers::Offset<flatbuffers::Vector<int16_t>> scale) {
1263 fbb_.AddOffset(ResizeAttribute::VT_SCALE, scale);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001264 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001265 void add_offset(flatbuffers::Offset<flatbuffers::Vector<int16_t>> offset) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001266 fbb_.AddOffset(ResizeAttribute::VT_OFFSET, offset);
1267 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001268 void add_border(flatbuffers::Offset<flatbuffers::Vector<int16_t>> border) {
1269 fbb_.AddOffset(ResizeAttribute::VT_BORDER, border);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001270 }
1271 void add_mode(tosa::ResizeMode mode) {
1272 fbb_.AddElement<uint32_t>(ResizeAttribute::VT_MODE, static_cast<uint32_t>(mode), 0);
1273 }
1274 explicit ResizeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1275 : fbb_(_fbb) {
1276 start_ = fbb_.StartTable();
1277 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001278 flatbuffers::Offset<ResizeAttribute> Finish() {
1279 const auto end = fbb_.EndTable(start_);
1280 auto o = flatbuffers::Offset<ResizeAttribute>(end);
1281 return o;
1282 }
1283};
1284
1285inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttribute(
1286 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001287 flatbuffers::Offset<flatbuffers::Vector<int16_t>> scale = 0,
1288 flatbuffers::Offset<flatbuffers::Vector<int16_t>> offset = 0,
1289 flatbuffers::Offset<flatbuffers::Vector<int16_t>> border = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001290 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
1291 ResizeAttributeBuilder builder_(_fbb);
1292 builder_.add_mode(mode);
TatWai Chong49b1ca62022-06-10 01:49:13 -07001293 builder_.add_border(border);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001294 builder_.add_offset(offset);
TatWai Chong49b1ca62022-06-10 01:49:13 -07001295 builder_.add_scale(scale);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001296 return builder_.Finish();
1297}
1298
1299inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttributeDirect(
1300 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001301 const std::vector<int16_t> *scale = nullptr,
1302 const std::vector<int16_t> *offset = nullptr,
1303 const std::vector<int16_t> *border = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001304 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
TatWai Chong49b1ca62022-06-10 01:49:13 -07001305 auto scale__ = scale ? _fbb.CreateVector<int16_t>(*scale) : 0;
1306 auto offset__ = offset ? _fbb.CreateVector<int16_t>(*offset) : 0;
1307 auto border__ = border ? _fbb.CreateVector<int16_t>(*border) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001308 return tosa::CreateResizeAttribute(
1309 _fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001310 scale__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001311 offset__,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001312 border__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001313 mode);
1314}
1315
1316struct ClampAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1317 typedef ClampAttributeBuilder Builder;
1318 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1319 VT_MIN_INT = 4,
1320 VT_MAX_INT = 6,
1321 VT_MIN_FP = 8,
1322 VT_MAX_FP = 10
1323 };
1324 int32_t min_int() const {
1325 return GetField<int32_t>(VT_MIN_INT, 0);
1326 }
1327 int32_t max_int() const {
1328 return GetField<int32_t>(VT_MAX_INT, 0);
1329 }
1330 float min_fp() const {
1331 return GetField<float>(VT_MIN_FP, 0.0f);
1332 }
1333 float max_fp() const {
1334 return GetField<float>(VT_MAX_FP, 0.0f);
1335 }
1336 bool Verify(flatbuffers::Verifier &verifier) const {
1337 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001338 VerifyField<int32_t>(verifier, VT_MIN_INT, 4) &&
1339 VerifyField<int32_t>(verifier, VT_MAX_INT, 4) &&
1340 VerifyField<float>(verifier, VT_MIN_FP, 4) &&
1341 VerifyField<float>(verifier, VT_MAX_FP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001342 verifier.EndTable();
1343 }
1344};
1345
1346struct ClampAttributeBuilder {
1347 typedef ClampAttribute Table;
1348 flatbuffers::FlatBufferBuilder &fbb_;
1349 flatbuffers::uoffset_t start_;
1350 void add_min_int(int32_t min_int) {
1351 fbb_.AddElement<int32_t>(ClampAttribute::VT_MIN_INT, min_int, 0);
1352 }
1353 void add_max_int(int32_t max_int) {
1354 fbb_.AddElement<int32_t>(ClampAttribute::VT_MAX_INT, max_int, 0);
1355 }
1356 void add_min_fp(float min_fp) {
1357 fbb_.AddElement<float>(ClampAttribute::VT_MIN_FP, min_fp, 0.0f);
1358 }
1359 void add_max_fp(float max_fp) {
1360 fbb_.AddElement<float>(ClampAttribute::VT_MAX_FP, max_fp, 0.0f);
1361 }
1362 explicit ClampAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1363 : fbb_(_fbb) {
1364 start_ = fbb_.StartTable();
1365 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001366 flatbuffers::Offset<ClampAttribute> Finish() {
1367 const auto end = fbb_.EndTable(start_);
1368 auto o = flatbuffers::Offset<ClampAttribute>(end);
1369 return o;
1370 }
1371};
1372
1373inline flatbuffers::Offset<ClampAttribute> CreateClampAttribute(
1374 flatbuffers::FlatBufferBuilder &_fbb,
1375 int32_t min_int = 0,
1376 int32_t max_int = 0,
1377 float min_fp = 0.0f,
1378 float max_fp = 0.0f) {
1379 ClampAttributeBuilder builder_(_fbb);
1380 builder_.add_max_fp(max_fp);
1381 builder_.add_min_fp(min_fp);
1382 builder_.add_max_int(max_int);
1383 builder_.add_min_int(min_int);
1384 return builder_.Finish();
1385}
1386
1387struct RescaleAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1388 typedef RescaleAttributeBuilder Builder;
1389 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1390 VT_INPUT_ZP = 4,
1391 VT_OUTPUT_ZP = 6,
1392 VT_MULTIPLIER = 8,
1393 VT_SHIFT = 10,
1394 VT_SCALE32 = 12,
1395 VT_DOUBLE_ROUND = 14,
1396 VT_PER_CHANNEL = 16
1397 };
1398 int32_t input_zp() const {
1399 return GetField<int32_t>(VT_INPUT_ZP, 0);
1400 }
1401 int32_t output_zp() const {
1402 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1403 }
1404 const flatbuffers::Vector<int32_t> *multiplier() const {
1405 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLIER);
1406 }
1407 const flatbuffers::Vector<int32_t> *shift() const {
1408 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHIFT);
1409 }
1410 bool scale32() const {
1411 return GetField<uint8_t>(VT_SCALE32, 0) != 0;
1412 }
1413 bool double_round() const {
1414 return GetField<uint8_t>(VT_DOUBLE_ROUND, 0) != 0;
1415 }
1416 bool per_channel() const {
1417 return GetField<uint8_t>(VT_PER_CHANNEL, 0) != 0;
1418 }
1419 bool Verify(flatbuffers::Verifier &verifier) const {
1420 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001421 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
1422 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001423 VerifyOffset(verifier, VT_MULTIPLIER) &&
1424 verifier.VerifyVector(multiplier()) &&
1425 VerifyOffset(verifier, VT_SHIFT) &&
1426 verifier.VerifyVector(shift()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001427 VerifyField<uint8_t>(verifier, VT_SCALE32, 1) &&
1428 VerifyField<uint8_t>(verifier, VT_DOUBLE_ROUND, 1) &&
1429 VerifyField<uint8_t>(verifier, VT_PER_CHANNEL, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001430 verifier.EndTable();
1431 }
1432};
1433
1434struct RescaleAttributeBuilder {
1435 typedef RescaleAttribute Table;
1436 flatbuffers::FlatBufferBuilder &fbb_;
1437 flatbuffers::uoffset_t start_;
1438 void add_input_zp(int32_t input_zp) {
1439 fbb_.AddElement<int32_t>(RescaleAttribute::VT_INPUT_ZP, input_zp, 0);
1440 }
1441 void add_output_zp(int32_t output_zp) {
1442 fbb_.AddElement<int32_t>(RescaleAttribute::VT_OUTPUT_ZP, output_zp, 0);
1443 }
1444 void add_multiplier(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier) {
1445 fbb_.AddOffset(RescaleAttribute::VT_MULTIPLIER, multiplier);
1446 }
1447 void add_shift(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift) {
1448 fbb_.AddOffset(RescaleAttribute::VT_SHIFT, shift);
1449 }
1450 void add_scale32(bool scale32) {
1451 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_SCALE32, static_cast<uint8_t>(scale32), 0);
1452 }
1453 void add_double_round(bool double_round) {
1454 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_DOUBLE_ROUND, static_cast<uint8_t>(double_round), 0);
1455 }
1456 void add_per_channel(bool per_channel) {
1457 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_PER_CHANNEL, static_cast<uint8_t>(per_channel), 0);
1458 }
1459 explicit RescaleAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1460 : fbb_(_fbb) {
1461 start_ = fbb_.StartTable();
1462 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001463 flatbuffers::Offset<RescaleAttribute> Finish() {
1464 const auto end = fbb_.EndTable(start_);
1465 auto o = flatbuffers::Offset<RescaleAttribute>(end);
1466 return o;
1467 }
1468};
1469
1470inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttribute(
1471 flatbuffers::FlatBufferBuilder &_fbb,
1472 int32_t input_zp = 0,
1473 int32_t output_zp = 0,
1474 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier = 0,
1475 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift = 0,
1476 bool scale32 = false,
1477 bool double_round = false,
1478 bool per_channel = false) {
1479 RescaleAttributeBuilder builder_(_fbb);
1480 builder_.add_shift(shift);
1481 builder_.add_multiplier(multiplier);
1482 builder_.add_output_zp(output_zp);
1483 builder_.add_input_zp(input_zp);
1484 builder_.add_per_channel(per_channel);
1485 builder_.add_double_round(double_round);
1486 builder_.add_scale32(scale32);
1487 return builder_.Finish();
1488}
1489
1490inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttributeDirect(
1491 flatbuffers::FlatBufferBuilder &_fbb,
1492 int32_t input_zp = 0,
1493 int32_t output_zp = 0,
1494 const std::vector<int32_t> *multiplier = nullptr,
1495 const std::vector<int32_t> *shift = nullptr,
1496 bool scale32 = false,
1497 bool double_round = false,
1498 bool per_channel = false) {
1499 auto multiplier__ = multiplier ? _fbb.CreateVector<int32_t>(*multiplier) : 0;
1500 auto shift__ = shift ? _fbb.CreateVector<int32_t>(*shift) : 0;
1501 return tosa::CreateRescaleAttribute(
1502 _fbb,
1503 input_zp,
1504 output_zp,
1505 multiplier__,
1506 shift__,
1507 scale32,
1508 double_round,
1509 per_channel);
1510}
1511
1512struct MulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1513 typedef MulAttributeBuilder Builder;
1514 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1515 VT_SHIFT = 4
1516 };
1517 int32_t shift() const {
1518 return GetField<int32_t>(VT_SHIFT, 0);
1519 }
1520 bool Verify(flatbuffers::Verifier &verifier) const {
1521 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001522 VerifyField<int32_t>(verifier, VT_SHIFT, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001523 verifier.EndTable();
1524 }
1525};
1526
1527struct MulAttributeBuilder {
1528 typedef MulAttribute Table;
1529 flatbuffers::FlatBufferBuilder &fbb_;
1530 flatbuffers::uoffset_t start_;
1531 void add_shift(int32_t shift) {
1532 fbb_.AddElement<int32_t>(MulAttribute::VT_SHIFT, shift, 0);
1533 }
1534 explicit MulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1535 : fbb_(_fbb) {
1536 start_ = fbb_.StartTable();
1537 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001538 flatbuffers::Offset<MulAttribute> Finish() {
1539 const auto end = fbb_.EndTable(start_);
1540 auto o = flatbuffers::Offset<MulAttribute>(end);
1541 return o;
1542 }
1543};
1544
1545inline flatbuffers::Offset<MulAttribute> CreateMulAttribute(
1546 flatbuffers::FlatBufferBuilder &_fbb,
1547 int32_t shift = 0) {
1548 MulAttributeBuilder builder_(_fbb);
1549 builder_.add_shift(shift);
1550 return builder_.Finish();
1551}
1552
1553struct ArithmeticRightShiftAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1554 typedef ArithmeticRightShiftAttributeBuilder Builder;
1555 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1556 VT_ROUND = 4
1557 };
1558 bool round() const {
1559 return GetField<uint8_t>(VT_ROUND, 0) != 0;
1560 }
1561 bool Verify(flatbuffers::Verifier &verifier) const {
1562 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001563 VerifyField<uint8_t>(verifier, VT_ROUND, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001564 verifier.EndTable();
1565 }
1566};
1567
1568struct ArithmeticRightShiftAttributeBuilder {
1569 typedef ArithmeticRightShiftAttribute Table;
1570 flatbuffers::FlatBufferBuilder &fbb_;
1571 flatbuffers::uoffset_t start_;
1572 void add_round(bool round) {
1573 fbb_.AddElement<uint8_t>(ArithmeticRightShiftAttribute::VT_ROUND, static_cast<uint8_t>(round), 0);
1574 }
1575 explicit ArithmeticRightShiftAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1576 : fbb_(_fbb) {
1577 start_ = fbb_.StartTable();
1578 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001579 flatbuffers::Offset<ArithmeticRightShiftAttribute> Finish() {
1580 const auto end = fbb_.EndTable(start_);
1581 auto o = flatbuffers::Offset<ArithmeticRightShiftAttribute>(end);
1582 return o;
1583 }
1584};
1585
1586inline flatbuffers::Offset<ArithmeticRightShiftAttribute> CreateArithmeticRightShiftAttribute(
1587 flatbuffers::FlatBufferBuilder &_fbb,
1588 bool round = false) {
1589 ArithmeticRightShiftAttributeBuilder builder_(_fbb);
1590 builder_.add_round(round);
1591 return builder_.Finish();
1592}
1593
1594struct CondIfAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1595 typedef CondIfAttributeBuilder Builder;
1596 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1597 VT_THEN_BRANCH = 4,
1598 VT_ELSE_BRANCH = 6
1599 };
1600 const flatbuffers::String *then_branch() const {
1601 return GetPointer<const flatbuffers::String *>(VT_THEN_BRANCH);
1602 }
1603 const flatbuffers::String *else_branch() const {
1604 return GetPointer<const flatbuffers::String *>(VT_ELSE_BRANCH);
1605 }
1606 bool Verify(flatbuffers::Verifier &verifier) const {
1607 return VerifyTableStart(verifier) &&
1608 VerifyOffset(verifier, VT_THEN_BRANCH) &&
1609 verifier.VerifyString(then_branch()) &&
1610 VerifyOffset(verifier, VT_ELSE_BRANCH) &&
1611 verifier.VerifyString(else_branch()) &&
1612 verifier.EndTable();
1613 }
1614};
1615
1616struct CondIfAttributeBuilder {
1617 typedef CondIfAttribute Table;
1618 flatbuffers::FlatBufferBuilder &fbb_;
1619 flatbuffers::uoffset_t start_;
1620 void add_then_branch(flatbuffers::Offset<flatbuffers::String> then_branch) {
1621 fbb_.AddOffset(CondIfAttribute::VT_THEN_BRANCH, then_branch);
1622 }
1623 void add_else_branch(flatbuffers::Offset<flatbuffers::String> else_branch) {
1624 fbb_.AddOffset(CondIfAttribute::VT_ELSE_BRANCH, else_branch);
1625 }
1626 explicit CondIfAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1627 : fbb_(_fbb) {
1628 start_ = fbb_.StartTable();
1629 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001630 flatbuffers::Offset<CondIfAttribute> Finish() {
1631 const auto end = fbb_.EndTable(start_);
1632 auto o = flatbuffers::Offset<CondIfAttribute>(end);
1633 return o;
1634 }
1635};
1636
1637inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttribute(
1638 flatbuffers::FlatBufferBuilder &_fbb,
1639 flatbuffers::Offset<flatbuffers::String> then_branch = 0,
1640 flatbuffers::Offset<flatbuffers::String> else_branch = 0) {
1641 CondIfAttributeBuilder builder_(_fbb);
1642 builder_.add_else_branch(else_branch);
1643 builder_.add_then_branch(then_branch);
1644 return builder_.Finish();
1645}
1646
1647inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttributeDirect(
1648 flatbuffers::FlatBufferBuilder &_fbb,
1649 const char *then_branch = nullptr,
1650 const char *else_branch = nullptr) {
1651 auto then_branch__ = then_branch ? _fbb.CreateString(then_branch) : 0;
1652 auto else_branch__ = else_branch ? _fbb.CreateString(else_branch) : 0;
1653 return tosa::CreateCondIfAttribute(
1654 _fbb,
1655 then_branch__,
1656 else_branch__);
1657}
1658
1659struct WhileLoopAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1660 typedef WhileLoopAttributeBuilder Builder;
1661 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1662 VT_COND_BRANCH = 4,
1663 VT_BODY_BRANCH = 6
1664 };
1665 const flatbuffers::String *cond_branch() const {
1666 return GetPointer<const flatbuffers::String *>(VT_COND_BRANCH);
1667 }
1668 const flatbuffers::String *body_branch() const {
1669 return GetPointer<const flatbuffers::String *>(VT_BODY_BRANCH);
1670 }
1671 bool Verify(flatbuffers::Verifier &verifier) const {
1672 return VerifyTableStart(verifier) &&
1673 VerifyOffset(verifier, VT_COND_BRANCH) &&
1674 verifier.VerifyString(cond_branch()) &&
1675 VerifyOffset(verifier, VT_BODY_BRANCH) &&
1676 verifier.VerifyString(body_branch()) &&
1677 verifier.EndTable();
1678 }
1679};
1680
1681struct WhileLoopAttributeBuilder {
1682 typedef WhileLoopAttribute Table;
1683 flatbuffers::FlatBufferBuilder &fbb_;
1684 flatbuffers::uoffset_t start_;
1685 void add_cond_branch(flatbuffers::Offset<flatbuffers::String> cond_branch) {
1686 fbb_.AddOffset(WhileLoopAttribute::VT_COND_BRANCH, cond_branch);
1687 }
1688 void add_body_branch(flatbuffers::Offset<flatbuffers::String> body_branch) {
1689 fbb_.AddOffset(WhileLoopAttribute::VT_BODY_BRANCH, body_branch);
1690 }
1691 explicit WhileLoopAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1692 : fbb_(_fbb) {
1693 start_ = fbb_.StartTable();
1694 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001695 flatbuffers::Offset<WhileLoopAttribute> Finish() {
1696 const auto end = fbb_.EndTable(start_);
1697 auto o = flatbuffers::Offset<WhileLoopAttribute>(end);
1698 return o;
1699 }
1700};
1701
1702inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttribute(
1703 flatbuffers::FlatBufferBuilder &_fbb,
1704 flatbuffers::Offset<flatbuffers::String> cond_branch = 0,
1705 flatbuffers::Offset<flatbuffers::String> body_branch = 0) {
1706 WhileLoopAttributeBuilder builder_(_fbb);
1707 builder_.add_body_branch(body_branch);
1708 builder_.add_cond_branch(cond_branch);
1709 return builder_.Finish();
1710}
1711
1712inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttributeDirect(
1713 flatbuffers::FlatBufferBuilder &_fbb,
1714 const char *cond_branch = nullptr,
1715 const char *body_branch = nullptr) {
1716 auto cond_branch__ = cond_branch ? _fbb.CreateString(cond_branch) : 0;
1717 auto body_branch__ = body_branch ? _fbb.CreateString(body_branch) : 0;
1718 return tosa::CreateWhileLoopAttribute(
1719 _fbb,
1720 cond_branch__,
1721 body_branch__);
1722}
1723
Kevin Cheng38d214c2021-10-15 15:49:19 -07001724struct TransposeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1725 typedef TransposeAttributeBuilder Builder;
1726 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001727 VT_PERMS = 4
Kevin Cheng38d214c2021-10-15 15:49:19 -07001728 };
TatWai Chong7be71652022-05-10 17:26:20 -07001729 const flatbuffers::Vector<int32_t> *perms() const {
1730 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PERMS);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001731 }
1732 bool Verify(flatbuffers::Verifier &verifier) const {
1733 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001734 VerifyOffset(verifier, VT_PERMS) &&
1735 verifier.VerifyVector(perms()) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -07001736 verifier.EndTable();
1737 }
1738};
1739
1740struct TransposeAttributeBuilder {
1741 typedef TransposeAttribute Table;
1742 flatbuffers::FlatBufferBuilder &fbb_;
1743 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001744 void add_perms(flatbuffers::Offset<flatbuffers::Vector<int32_t>> perms) {
1745 fbb_.AddOffset(TransposeAttribute::VT_PERMS, perms);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001746 }
1747 explicit TransposeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1748 : fbb_(_fbb) {
1749 start_ = fbb_.StartTable();
1750 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07001751 flatbuffers::Offset<TransposeAttribute> Finish() {
1752 const auto end = fbb_.EndTable(start_);
1753 auto o = flatbuffers::Offset<TransposeAttribute>(end);
1754 return o;
1755 }
1756};
1757
1758inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttribute(
1759 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001760 flatbuffers::Offset<flatbuffers::Vector<int32_t>> perms = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001761 TransposeAttributeBuilder builder_(_fbb);
TatWai Chong7be71652022-05-10 17:26:20 -07001762 builder_.add_perms(perms);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001763 return builder_.Finish();
1764}
1765
1766inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttributeDirect(
1767 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001768 const std::vector<int32_t> *perms = nullptr) {
1769 auto perms__ = perms ? _fbb.CreateVector<int32_t>(*perms) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001770 return tosa::CreateTransposeAttribute(
1771 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001772 perms__);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001773}
1774
1775struct TableAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1776 typedef TableAttributeBuilder Builder;
1777 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1778 VT_TABLE = 4
1779 };
TatWai Chong7be71652022-05-10 17:26:20 -07001780 const flatbuffers::Vector<int16_t> *table() const {
1781 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_TABLE);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001782 }
1783 bool Verify(flatbuffers::Verifier &verifier) const {
1784 return VerifyTableStart(verifier) &&
1785 VerifyOffset(verifier, VT_TABLE) &&
1786 verifier.VerifyVector(table()) &&
1787 verifier.EndTable();
1788 }
1789};
1790
1791struct TableAttributeBuilder {
1792 typedef TableAttribute Table;
1793 flatbuffers::FlatBufferBuilder &fbb_;
1794 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001795 void add_table(flatbuffers::Offset<flatbuffers::Vector<int16_t>> table) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001796 fbb_.AddOffset(TableAttribute::VT_TABLE, table);
1797 }
1798 explicit TableAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1799 : fbb_(_fbb) {
1800 start_ = fbb_.StartTable();
1801 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07001802 flatbuffers::Offset<TableAttribute> Finish() {
1803 const auto end = fbb_.EndTable(start_);
1804 auto o = flatbuffers::Offset<TableAttribute>(end);
1805 return o;
1806 }
1807};
1808
1809inline flatbuffers::Offset<TableAttribute> CreateTableAttribute(
1810 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001811 flatbuffers::Offset<flatbuffers::Vector<int16_t>> table = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001812 TableAttributeBuilder builder_(_fbb);
1813 builder_.add_table(table);
1814 return builder_.Finish();
1815}
1816
1817inline flatbuffers::Offset<TableAttribute> CreateTableAttributeDirect(
1818 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001819 const std::vector<int16_t> *table = nullptr) {
1820 auto table__ = table ? _fbb.CreateVector<int16_t>(*table) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001821 return tosa::CreateTableAttribute(
1822 _fbb,
1823 table__);
1824}
1825
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001826struct MatMulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1827 typedef MatMulAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001828 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1829 VT_A_ZP = 4,
James Ward485a11d2022-08-05 13:48:37 +01001830 VT_B_ZP = 6,
1831 VT_ACCUM_DTYPE = 8
Eric Kunze2364dcd2021-04-26 11:06:57 -07001832 };
1833 int32_t a_zp() const {
1834 return GetField<int32_t>(VT_A_ZP, 0);
1835 }
1836 int32_t b_zp() const {
1837 return GetField<int32_t>(VT_B_ZP, 0);
1838 }
James Ward485a11d2022-08-05 13:48:37 +01001839 tosa::DType accum_dtype() const {
1840 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
1841 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001842 bool Verify(flatbuffers::Verifier &verifier) const {
1843 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001844 VerifyField<int32_t>(verifier, VT_A_ZP, 4) &&
1845 VerifyField<int32_t>(verifier, VT_B_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +01001846 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001847 verifier.EndTable();
1848 }
1849};
1850
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001851struct MatMulAttributeBuilder {
1852 typedef MatMulAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001853 flatbuffers::FlatBufferBuilder &fbb_;
1854 flatbuffers::uoffset_t start_;
1855 void add_a_zp(int32_t a_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001856 fbb_.AddElement<int32_t>(MatMulAttribute::VT_A_ZP, a_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001857 }
1858 void add_b_zp(int32_t b_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001859 fbb_.AddElement<int32_t>(MatMulAttribute::VT_B_ZP, b_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001860 }
James Ward485a11d2022-08-05 13:48:37 +01001861 void add_accum_dtype(tosa::DType accum_dtype) {
1862 fbb_.AddElement<uint32_t>(MatMulAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
1863 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001864 explicit MatMulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -07001865 : fbb_(_fbb) {
1866 start_ = fbb_.StartTable();
1867 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001868 flatbuffers::Offset<MatMulAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001869 const auto end = fbb_.EndTable(start_);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001870 auto o = flatbuffers::Offset<MatMulAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001871 return o;
1872 }
1873};
1874
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001875inline flatbuffers::Offset<MatMulAttribute> CreateMatMulAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -07001876 flatbuffers::FlatBufferBuilder &_fbb,
1877 int32_t a_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +01001878 int32_t b_zp = 0,
1879 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001880 MatMulAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +01001881 builder_.add_accum_dtype(accum_dtype);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001882 builder_.add_b_zp(b_zp);
1883 builder_.add_a_zp(a_zp);
1884 return builder_.Finish();
1885}
1886
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001887struct FullyConnectedAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1888 typedef FullyConnectedAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001889 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001890 VT_INPUT_ZP = 4,
James Ward485a11d2022-08-05 13:48:37 +01001891 VT_WEIGHT_ZP = 6,
1892 VT_ACCUM_DTYPE = 8
Eric Kunze2364dcd2021-04-26 11:06:57 -07001893 };
1894 int32_t input_zp() const {
1895 return GetField<int32_t>(VT_INPUT_ZP, 0);
1896 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001897 int32_t weight_zp() const {
1898 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
1899 }
James Ward485a11d2022-08-05 13:48:37 +01001900 tosa::DType accum_dtype() const {
1901 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
1902 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001903 bool Verify(flatbuffers::Verifier &verifier) const {
1904 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001905 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
1906 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +01001907 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001908 verifier.EndTable();
1909 }
1910};
1911
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001912struct FullyConnectedAttributeBuilder {
1913 typedef FullyConnectedAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001914 flatbuffers::FlatBufferBuilder &fbb_;
1915 flatbuffers::uoffset_t start_;
1916 void add_input_zp(int32_t input_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001917 fbb_.AddElement<int32_t>(FullyConnectedAttribute::VT_INPUT_ZP, input_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001918 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001919 void add_weight_zp(int32_t weight_zp) {
1920 fbb_.AddElement<int32_t>(FullyConnectedAttribute::VT_WEIGHT_ZP, weight_zp, 0);
1921 }
James Ward485a11d2022-08-05 13:48:37 +01001922 void add_accum_dtype(tosa::DType accum_dtype) {
1923 fbb_.AddElement<uint32_t>(FullyConnectedAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
1924 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001925 explicit FullyConnectedAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -07001926 : fbb_(_fbb) {
1927 start_ = fbb_.StartTable();
1928 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001929 flatbuffers::Offset<FullyConnectedAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001930 const auto end = fbb_.EndTable(start_);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001931 auto o = flatbuffers::Offset<FullyConnectedAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001932 return o;
1933 }
1934};
1935
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001936inline flatbuffers::Offset<FullyConnectedAttribute> CreateFullyConnectedAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -07001937 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001938 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +01001939 int32_t weight_zp = 0,
1940 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001941 FullyConnectedAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +01001942 builder_.add_accum_dtype(accum_dtype);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001943 builder_.add_weight_zp(weight_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001944 builder_.add_input_zp(input_zp);
1945 return builder_.Finish();
1946}
1947
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001948struct NegateAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1949 typedef NegateAttributeBuilder Builder;
1950 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1951 VT_INPUT1_ZP = 4,
1952 VT_OUTPUT_ZP = 6
1953 };
1954 int32_t input1_zp() const {
1955 return GetField<int32_t>(VT_INPUT1_ZP, 0);
1956 }
1957 int32_t output_zp() const {
1958 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1959 }
1960 bool Verify(flatbuffers::Verifier &verifier) const {
1961 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001962 VerifyField<int32_t>(verifier, VT_INPUT1_ZP, 4) &&
1963 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP, 4) &&
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001964 verifier.EndTable();
1965 }
1966};
1967
1968struct NegateAttributeBuilder {
1969 typedef NegateAttribute Table;
1970 flatbuffers::FlatBufferBuilder &fbb_;
1971 flatbuffers::uoffset_t start_;
1972 void add_input1_zp(int32_t input1_zp) {
1973 fbb_.AddElement<int32_t>(NegateAttribute::VT_INPUT1_ZP, input1_zp, 0);
1974 }
1975 void add_output_zp(int32_t output_zp) {
1976 fbb_.AddElement<int32_t>(NegateAttribute::VT_OUTPUT_ZP, output_zp, 0);
1977 }
1978 explicit NegateAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1979 : fbb_(_fbb) {
1980 start_ = fbb_.StartTable();
1981 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001982 flatbuffers::Offset<NegateAttribute> Finish() {
1983 const auto end = fbb_.EndTable(start_);
1984 auto o = flatbuffers::Offset<NegateAttribute>(end);
1985 return o;
1986 }
1987};
1988
1989inline flatbuffers::Offset<NegateAttribute> CreateNegateAttribute(
1990 flatbuffers::FlatBufferBuilder &_fbb,
1991 int32_t input1_zp = 0,
1992 int32_t output_zp = 0) {
1993 NegateAttributeBuilder builder_(_fbb);
1994 builder_.add_output_zp(output_zp);
1995 builder_.add_input1_zp(input1_zp);
1996 return builder_.Finish();
1997}
1998
Eric Kunze497ab5d2022-10-21 16:39:01 -07001999struct CustomAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2000 typedef CustomAttributeBuilder Builder;
2001 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2002 VT_IDENTIFIER = 4,
2003 VT_CONFIG = 6,
2004 VT_IMPLEMENTATION_ATTRS = 8
2005 };
2006 const flatbuffers::String *identifier() const {
2007 return GetPointer<const flatbuffers::String *>(VT_IDENTIFIER);
2008 }
2009 const flatbuffers::String *config() const {
2010 return GetPointer<const flatbuffers::String *>(VT_CONFIG);
2011 }
2012 const flatbuffers::Vector<uint8_t> *implementation_attrs() const {
2013 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_IMPLEMENTATION_ATTRS);
2014 }
2015 bool Verify(flatbuffers::Verifier &verifier) const {
2016 return VerifyTableStart(verifier) &&
2017 VerifyOffset(verifier, VT_IDENTIFIER) &&
2018 verifier.VerifyString(identifier()) &&
2019 VerifyOffset(verifier, VT_CONFIG) &&
2020 verifier.VerifyString(config()) &&
2021 VerifyOffset(verifier, VT_IMPLEMENTATION_ATTRS) &&
2022 verifier.VerifyVector(implementation_attrs()) &&
2023 verifier.EndTable();
2024 }
2025};
2026
2027struct CustomAttributeBuilder {
2028 typedef CustomAttribute Table;
2029 flatbuffers::FlatBufferBuilder &fbb_;
2030 flatbuffers::uoffset_t start_;
2031 void add_identifier(flatbuffers::Offset<flatbuffers::String> identifier) {
2032 fbb_.AddOffset(CustomAttribute::VT_IDENTIFIER, identifier);
2033 }
2034 void add_config(flatbuffers::Offset<flatbuffers::String> config) {
2035 fbb_.AddOffset(CustomAttribute::VT_CONFIG, config);
2036 }
2037 void add_implementation_attrs(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> implementation_attrs) {
2038 fbb_.AddOffset(CustomAttribute::VT_IMPLEMENTATION_ATTRS, implementation_attrs);
2039 }
2040 explicit CustomAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2041 : fbb_(_fbb) {
2042 start_ = fbb_.StartTable();
2043 }
2044 flatbuffers::Offset<CustomAttribute> Finish() {
2045 const auto end = fbb_.EndTable(start_);
2046 auto o = flatbuffers::Offset<CustomAttribute>(end);
2047 return o;
2048 }
2049};
2050
2051inline flatbuffers::Offset<CustomAttribute> CreateCustomAttribute(
2052 flatbuffers::FlatBufferBuilder &_fbb,
2053 flatbuffers::Offset<flatbuffers::String> identifier = 0,
2054 flatbuffers::Offset<flatbuffers::String> config = 0,
2055 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> implementation_attrs = 0) {
2056 CustomAttributeBuilder builder_(_fbb);
2057 builder_.add_implementation_attrs(implementation_attrs);
2058 builder_.add_config(config);
2059 builder_.add_identifier(identifier);
2060 return builder_.Finish();
2061}
2062
2063inline flatbuffers::Offset<CustomAttribute> CreateCustomAttributeDirect(
2064 flatbuffers::FlatBufferBuilder &_fbb,
2065 const char *identifier = nullptr,
2066 const char *config = nullptr,
2067 const std::vector<uint8_t> *implementation_attrs = nullptr) {
2068 auto identifier__ = identifier ? _fbb.CreateString(identifier) : 0;
2069 auto config__ = config ? _fbb.CreateString(config) : 0;
2070 auto implementation_attrs__ = implementation_attrs ? _fbb.CreateVector<uint8_t>(*implementation_attrs) : 0;
2071 return tosa::CreateCustomAttribute(
2072 _fbb,
2073 identifier__,
2074 config__,
2075 implementation_attrs__);
2076}
2077
Eric Kunze2364dcd2021-04-26 11:06:57 -07002078struct Version FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2079 typedef VersionBuilder Builder;
2080 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2081 VT__MAJOR = 4,
2082 VT__MINOR = 6,
2083 VT__PATCH = 8,
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002084 VT__DRAFT = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07002085 };
2086 int32_t _major() const {
2087 return GetField<int32_t>(VT__MAJOR, 0);
2088 }
2089 int32_t _minor() const {
Eric Kunze6388a092022-12-07 21:59:31 +00002090 return GetField<int32_t>(VT__MINOR, 51);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002091 }
2092 int32_t _patch() const {
2093 return GetField<int32_t>(VT__PATCH, 0);
2094 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002095 bool _draft() const {
Eric Kunze6388a092022-12-07 21:59:31 +00002096 return GetField<uint8_t>(VT__DRAFT, 1) != 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002097 }
2098 bool Verify(flatbuffers::Verifier &verifier) const {
2099 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00002100 VerifyField<int32_t>(verifier, VT__MAJOR, 4) &&
2101 VerifyField<int32_t>(verifier, VT__MINOR, 4) &&
2102 VerifyField<int32_t>(verifier, VT__PATCH, 4) &&
2103 VerifyField<uint8_t>(verifier, VT__DRAFT, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002104 verifier.EndTable();
2105 }
2106};
2107
2108struct VersionBuilder {
2109 typedef Version Table;
2110 flatbuffers::FlatBufferBuilder &fbb_;
2111 flatbuffers::uoffset_t start_;
2112 void add__major(int32_t _major) {
2113 fbb_.AddElement<int32_t>(Version::VT__MAJOR, _major, 0);
2114 }
2115 void add__minor(int32_t _minor) {
Eric Kunze6388a092022-12-07 21:59:31 +00002116 fbb_.AddElement<int32_t>(Version::VT__MINOR, _minor, 51);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002117 }
2118 void add__patch(int32_t _patch) {
2119 fbb_.AddElement<int32_t>(Version::VT__PATCH, _patch, 0);
2120 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002121 void add__draft(bool _draft) {
Eric Kunze6388a092022-12-07 21:59:31 +00002122 fbb_.AddElement<uint8_t>(Version::VT__DRAFT, static_cast<uint8_t>(_draft), 1);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002123 }
2124 explicit VersionBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2125 : fbb_(_fbb) {
2126 start_ = fbb_.StartTable();
2127 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002128 flatbuffers::Offset<Version> Finish() {
2129 const auto end = fbb_.EndTable(start_);
2130 auto o = flatbuffers::Offset<Version>(end);
2131 return o;
2132 }
2133};
2134
2135inline flatbuffers::Offset<Version> CreateVersion(
2136 flatbuffers::FlatBufferBuilder &_fbb,
2137 int32_t _major = 0,
Eric Kunze6388a092022-12-07 21:59:31 +00002138 int32_t _minor = 51,
Eric Kunze2364dcd2021-04-26 11:06:57 -07002139 int32_t _patch = 0,
Eric Kunze6388a092022-12-07 21:59:31 +00002140 bool _draft = true) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002141 VersionBuilder builder_(_fbb);
2142 builder_.add__patch(_patch);
2143 builder_.add__minor(_minor);
2144 builder_.add__major(_major);
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002145 builder_.add__draft(_draft);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002146 return builder_.Finish();
2147}
2148
2149struct TosaTensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2150 typedef TosaTensorBuilder Builder;
2151 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2152 VT_NAME = 4,
2153 VT_SHAPE = 6,
2154 VT_TYPE = 8,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002155 VT_DATA = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07002156 };
2157 const flatbuffers::String *name() const {
2158 return GetPointer<const flatbuffers::String *>(VT_NAME);
2159 }
2160 const flatbuffers::Vector<int32_t> *shape() const {
2161 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHAPE);
2162 }
2163 tosa::DType type() const {
2164 return static_cast<tosa::DType>(GetField<uint32_t>(VT_TYPE, 0));
2165 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002166 const flatbuffers::Vector<uint8_t> *data() const {
2167 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_DATA);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002168 }
2169 bool Verify(flatbuffers::Verifier &verifier) const {
2170 return VerifyTableStart(verifier) &&
2171 VerifyOffset(verifier, VT_NAME) &&
2172 verifier.VerifyString(name()) &&
2173 VerifyOffset(verifier, VT_SHAPE) &&
2174 verifier.VerifyVector(shape()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00002175 VerifyField<uint32_t>(verifier, VT_TYPE, 4) &&
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002176 VerifyOffset(verifier, VT_DATA) &&
2177 verifier.VerifyVector(data()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002178 verifier.EndTable();
2179 }
2180};
2181
2182struct TosaTensorBuilder {
2183 typedef TosaTensor Table;
2184 flatbuffers::FlatBufferBuilder &fbb_;
2185 flatbuffers::uoffset_t start_;
2186 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2187 fbb_.AddOffset(TosaTensor::VT_NAME, name);
2188 }
2189 void add_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape) {
2190 fbb_.AddOffset(TosaTensor::VT_SHAPE, shape);
2191 }
2192 void add_type(tosa::DType type) {
2193 fbb_.AddElement<uint32_t>(TosaTensor::VT_TYPE, static_cast<uint32_t>(type), 0);
2194 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002195 void add_data(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data) {
2196 fbb_.AddOffset(TosaTensor::VT_DATA, data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002197 }
2198 explicit TosaTensorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2199 : fbb_(_fbb) {
2200 start_ = fbb_.StartTable();
2201 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002202 flatbuffers::Offset<TosaTensor> Finish() {
2203 const auto end = fbb_.EndTable(start_);
2204 auto o = flatbuffers::Offset<TosaTensor>(end);
2205 return o;
2206 }
2207};
2208
2209inline flatbuffers::Offset<TosaTensor> CreateTosaTensor(
2210 flatbuffers::FlatBufferBuilder &_fbb,
2211 flatbuffers::Offset<flatbuffers::String> name = 0,
2212 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape = 0,
2213 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002214 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002215 TosaTensorBuilder builder_(_fbb);
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002216 builder_.add_data(data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002217 builder_.add_type(type);
2218 builder_.add_shape(shape);
2219 builder_.add_name(name);
2220 return builder_.Finish();
2221}
2222
2223inline flatbuffers::Offset<TosaTensor> CreateTosaTensorDirect(
2224 flatbuffers::FlatBufferBuilder &_fbb,
2225 const char *name = nullptr,
2226 const std::vector<int32_t> *shape = nullptr,
2227 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002228 const std::vector<uint8_t> *data = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002229 auto name__ = name ? _fbb.CreateString(name) : 0;
2230 auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0;
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002231 if (data) { _fbb.ForceVectorAlignment(data->size(), sizeof(uint8_t), 8); }
2232 auto data__ = data ? _fbb.CreateVector<uint8_t>(*data) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002233 return tosa::CreateTosaTensor(
2234 _fbb,
2235 name__,
2236 shape__,
2237 type,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002238 data__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002239}
2240
2241struct TosaOperator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2242 typedef TosaOperatorBuilder Builder;
2243 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2244 VT_OP = 4,
2245 VT_ATTRIBUTE_TYPE = 6,
2246 VT_ATTRIBUTE = 8,
2247 VT_INPUTS = 10,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002248 VT_OUTPUTS = 12
Eric Kunze2364dcd2021-04-26 11:06:57 -07002249 };
2250 tosa::Op op() const {
2251 return static_cast<tosa::Op>(GetField<uint32_t>(VT_OP, 0));
2252 }
2253 tosa::Attribute attribute_type() const {
2254 return static_cast<tosa::Attribute>(GetField<uint8_t>(VT_ATTRIBUTE_TYPE, 0));
2255 }
2256 const void *attribute() const {
2257 return GetPointer<const void *>(VT_ATTRIBUTE);
2258 }
2259 template<typename T> const T *attribute_as() const;
Kevin Cheng79a41992021-08-31 16:04:40 -07002260 const tosa::PoolAttribute *attribute_as_PoolAttribute() const {
2261 return attribute_type() == tosa::Attribute_PoolAttribute ? static_cast<const tosa::PoolAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002262 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002263 const tosa::ConvAttribute *attribute_as_ConvAttribute() const {
2264 return attribute_type() == tosa::Attribute_ConvAttribute ? static_cast<const tosa::ConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002265 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002266 const tosa::TransposeConvAttribute *attribute_as_TransposeConvAttribute() const {
2267 return attribute_type() == tosa::Attribute_TransposeConvAttribute ? static_cast<const tosa::TransposeConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002268 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002269 const tosa::PadAttribute *attribute_as_PadAttribute() const {
2270 return attribute_type() == tosa::Attribute_PadAttribute ? static_cast<const tosa::PadAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002271 }
2272 const tosa::AxisAttribute *attribute_as_AxisAttribute() const {
2273 return attribute_type() == tosa::Attribute_AxisAttribute ? static_cast<const tosa::AxisAttribute *>(attribute()) : nullptr;
2274 }
2275 const tosa::ReshapeAttribute *attribute_as_ReshapeAttribute() const {
2276 return attribute_type() == tosa::Attribute_ReshapeAttribute ? static_cast<const tosa::ReshapeAttribute *>(attribute()) : nullptr;
2277 }
2278 const tosa::SliceAttribute *attribute_as_SliceAttribute() const {
2279 return attribute_type() == tosa::Attribute_SliceAttribute ? static_cast<const tosa::SliceAttribute *>(attribute()) : nullptr;
2280 }
2281 const tosa::TileAttribute *attribute_as_TileAttribute() const {
2282 return attribute_type() == tosa::Attribute_TileAttribute ? static_cast<const tosa::TileAttribute *>(attribute()) : nullptr;
2283 }
2284 const tosa::ResizeAttribute *attribute_as_ResizeAttribute() const {
2285 return attribute_type() == tosa::Attribute_ResizeAttribute ? static_cast<const tosa::ResizeAttribute *>(attribute()) : nullptr;
2286 }
2287 const tosa::ClampAttribute *attribute_as_ClampAttribute() const {
2288 return attribute_type() == tosa::Attribute_ClampAttribute ? static_cast<const tosa::ClampAttribute *>(attribute()) : nullptr;
2289 }
2290 const tosa::RescaleAttribute *attribute_as_RescaleAttribute() const {
2291 return attribute_type() == tosa::Attribute_RescaleAttribute ? static_cast<const tosa::RescaleAttribute *>(attribute()) : nullptr;
2292 }
2293 const tosa::MulAttribute *attribute_as_MulAttribute() const {
2294 return attribute_type() == tosa::Attribute_MulAttribute ? static_cast<const tosa::MulAttribute *>(attribute()) : nullptr;
2295 }
2296 const tosa::ArithmeticRightShiftAttribute *attribute_as_ArithmeticRightShiftAttribute() const {
2297 return attribute_type() == tosa::Attribute_ArithmeticRightShiftAttribute ? static_cast<const tosa::ArithmeticRightShiftAttribute *>(attribute()) : nullptr;
2298 }
2299 const tosa::CondIfAttribute *attribute_as_CondIfAttribute() const {
2300 return attribute_type() == tosa::Attribute_CondIfAttribute ? static_cast<const tosa::CondIfAttribute *>(attribute()) : nullptr;
2301 }
2302 const tosa::WhileLoopAttribute *attribute_as_WhileLoopAttribute() const {
2303 return attribute_type() == tosa::Attribute_WhileLoopAttribute ? static_cast<const tosa::WhileLoopAttribute *>(attribute()) : nullptr;
2304 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002305 const tosa::TransposeAttribute *attribute_as_TransposeAttribute() const {
2306 return attribute_type() == tosa::Attribute_TransposeAttribute ? static_cast<const tosa::TransposeAttribute *>(attribute()) : nullptr;
2307 }
2308 const tosa::TableAttribute *attribute_as_TableAttribute() const {
2309 return attribute_type() == tosa::Attribute_TableAttribute ? static_cast<const tosa::TableAttribute *>(attribute()) : nullptr;
2310 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002311 const tosa::MatMulAttribute *attribute_as_MatMulAttribute() const {
2312 return attribute_type() == tosa::Attribute_MatMulAttribute ? static_cast<const tosa::MatMulAttribute *>(attribute()) : nullptr;
2313 }
2314 const tosa::FullyConnectedAttribute *attribute_as_FullyConnectedAttribute() const {
2315 return attribute_type() == tosa::Attribute_FullyConnectedAttribute ? static_cast<const tosa::FullyConnectedAttribute *>(attribute()) : nullptr;
2316 }
2317 const tosa::NegateAttribute *attribute_as_NegateAttribute() const {
2318 return attribute_type() == tosa::Attribute_NegateAttribute ? static_cast<const tosa::NegateAttribute *>(attribute()) : nullptr;
2319 }
Eric Kunze497ab5d2022-10-21 16:39:01 -07002320 const tosa::CustomAttribute *attribute_as_CustomAttribute() const {
2321 return attribute_type() == tosa::Attribute_CustomAttribute ? static_cast<const tosa::CustomAttribute *>(attribute()) : nullptr;
2322 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002323 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2324 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2325 }
2326 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2327 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2328 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002329 bool Verify(flatbuffers::Verifier &verifier) const {
2330 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00002331 VerifyField<uint32_t>(verifier, VT_OP, 4) &&
2332 VerifyField<uint8_t>(verifier, VT_ATTRIBUTE_TYPE, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002333 VerifyOffset(verifier, VT_ATTRIBUTE) &&
2334 VerifyAttribute(verifier, attribute(), attribute_type()) &&
2335 VerifyOffset(verifier, VT_INPUTS) &&
2336 verifier.VerifyVector(inputs()) &&
2337 verifier.VerifyVectorOfStrings(inputs()) &&
2338 VerifyOffset(verifier, VT_OUTPUTS) &&
2339 verifier.VerifyVector(outputs()) &&
2340 verifier.VerifyVectorOfStrings(outputs()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002341 verifier.EndTable();
2342 }
2343};
2344
Kevin Cheng79a41992021-08-31 16:04:40 -07002345template<> inline const tosa::PoolAttribute *TosaOperator::attribute_as<tosa::PoolAttribute>() const {
2346 return attribute_as_PoolAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002347}
2348
Kevin Cheng79a41992021-08-31 16:04:40 -07002349template<> inline const tosa::ConvAttribute *TosaOperator::attribute_as<tosa::ConvAttribute>() const {
2350 return attribute_as_ConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002351}
2352
Kevin Cheng79a41992021-08-31 16:04:40 -07002353template<> inline const tosa::TransposeConvAttribute *TosaOperator::attribute_as<tosa::TransposeConvAttribute>() const {
2354 return attribute_as_TransposeConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002355}
2356
Kevin Cheng38d214c2021-10-15 15:49:19 -07002357template<> inline const tosa::PadAttribute *TosaOperator::attribute_as<tosa::PadAttribute>() const {
2358 return attribute_as_PadAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002359}
2360
2361template<> inline const tosa::AxisAttribute *TosaOperator::attribute_as<tosa::AxisAttribute>() const {
2362 return attribute_as_AxisAttribute();
2363}
2364
2365template<> inline const tosa::ReshapeAttribute *TosaOperator::attribute_as<tosa::ReshapeAttribute>() const {
2366 return attribute_as_ReshapeAttribute();
2367}
2368
2369template<> inline const tosa::SliceAttribute *TosaOperator::attribute_as<tosa::SliceAttribute>() const {
2370 return attribute_as_SliceAttribute();
2371}
2372
2373template<> inline const tosa::TileAttribute *TosaOperator::attribute_as<tosa::TileAttribute>() const {
2374 return attribute_as_TileAttribute();
2375}
2376
2377template<> inline const tosa::ResizeAttribute *TosaOperator::attribute_as<tosa::ResizeAttribute>() const {
2378 return attribute_as_ResizeAttribute();
2379}
2380
2381template<> inline const tosa::ClampAttribute *TosaOperator::attribute_as<tosa::ClampAttribute>() const {
2382 return attribute_as_ClampAttribute();
2383}
2384
2385template<> inline const tosa::RescaleAttribute *TosaOperator::attribute_as<tosa::RescaleAttribute>() const {
2386 return attribute_as_RescaleAttribute();
2387}
2388
2389template<> inline const tosa::MulAttribute *TosaOperator::attribute_as<tosa::MulAttribute>() const {
2390 return attribute_as_MulAttribute();
2391}
2392
2393template<> inline const tosa::ArithmeticRightShiftAttribute *TosaOperator::attribute_as<tosa::ArithmeticRightShiftAttribute>() const {
2394 return attribute_as_ArithmeticRightShiftAttribute();
2395}
2396
2397template<> inline const tosa::CondIfAttribute *TosaOperator::attribute_as<tosa::CondIfAttribute>() const {
2398 return attribute_as_CondIfAttribute();
2399}
2400
2401template<> inline const tosa::WhileLoopAttribute *TosaOperator::attribute_as<tosa::WhileLoopAttribute>() const {
2402 return attribute_as_WhileLoopAttribute();
2403}
2404
Kevin Cheng38d214c2021-10-15 15:49:19 -07002405template<> inline const tosa::TransposeAttribute *TosaOperator::attribute_as<tosa::TransposeAttribute>() const {
2406 return attribute_as_TransposeAttribute();
2407}
2408
2409template<> inline const tosa::TableAttribute *TosaOperator::attribute_as<tosa::TableAttribute>() const {
2410 return attribute_as_TableAttribute();
2411}
2412
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002413template<> inline const tosa::MatMulAttribute *TosaOperator::attribute_as<tosa::MatMulAttribute>() const {
2414 return attribute_as_MatMulAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002415}
2416
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002417template<> inline const tosa::FullyConnectedAttribute *TosaOperator::attribute_as<tosa::FullyConnectedAttribute>() const {
2418 return attribute_as_FullyConnectedAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002419}
2420
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002421template<> inline const tosa::NegateAttribute *TosaOperator::attribute_as<tosa::NegateAttribute>() const {
2422 return attribute_as_NegateAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002423}
2424
Eric Kunze497ab5d2022-10-21 16:39:01 -07002425template<> inline const tosa::CustomAttribute *TosaOperator::attribute_as<tosa::CustomAttribute>() const {
2426 return attribute_as_CustomAttribute();
2427}
2428
Eric Kunze2364dcd2021-04-26 11:06:57 -07002429struct TosaOperatorBuilder {
2430 typedef TosaOperator Table;
2431 flatbuffers::FlatBufferBuilder &fbb_;
2432 flatbuffers::uoffset_t start_;
2433 void add_op(tosa::Op op) {
2434 fbb_.AddElement<uint32_t>(TosaOperator::VT_OP, static_cast<uint32_t>(op), 0);
2435 }
2436 void add_attribute_type(tosa::Attribute attribute_type) {
2437 fbb_.AddElement<uint8_t>(TosaOperator::VT_ATTRIBUTE_TYPE, static_cast<uint8_t>(attribute_type), 0);
2438 }
2439 void add_attribute(flatbuffers::Offset<void> attribute) {
2440 fbb_.AddOffset(TosaOperator::VT_ATTRIBUTE, attribute);
2441 }
2442 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2443 fbb_.AddOffset(TosaOperator::VT_INPUTS, inputs);
2444 }
2445 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2446 fbb_.AddOffset(TosaOperator::VT_OUTPUTS, outputs);
2447 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002448 explicit TosaOperatorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2449 : fbb_(_fbb) {
2450 start_ = fbb_.StartTable();
2451 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002452 flatbuffers::Offset<TosaOperator> Finish() {
2453 const auto end = fbb_.EndTable(start_);
2454 auto o = flatbuffers::Offset<TosaOperator>(end);
2455 return o;
2456 }
2457};
2458
2459inline flatbuffers::Offset<TosaOperator> CreateTosaOperator(
2460 flatbuffers::FlatBufferBuilder &_fbb,
2461 tosa::Op op = tosa::Op_UNKNOWN,
2462 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2463 flatbuffers::Offset<void> attribute = 0,
2464 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002465 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002466 TosaOperatorBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002467 builder_.add_outputs(outputs);
2468 builder_.add_inputs(inputs);
2469 builder_.add_attribute(attribute);
2470 builder_.add_op(op);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002471 builder_.add_attribute_type(attribute_type);
2472 return builder_.Finish();
2473}
2474
2475inline flatbuffers::Offset<TosaOperator> CreateTosaOperatorDirect(
2476 flatbuffers::FlatBufferBuilder &_fbb,
2477 tosa::Op op = tosa::Op_UNKNOWN,
2478 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2479 flatbuffers::Offset<void> attribute = 0,
2480 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002481 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002482 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2483 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2484 return tosa::CreateTosaOperator(
2485 _fbb,
2486 op,
2487 attribute_type,
2488 attribute,
2489 inputs__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002490 outputs__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002491}
2492
2493struct TosaBasicBlock FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2494 typedef TosaBasicBlockBuilder Builder;
2495 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2496 VT_NAME = 4,
2497 VT_OPERATORS = 6,
2498 VT_TENSORS = 8,
2499 VT_INPUTS = 10,
2500 VT_OUTPUTS = 12
2501 };
2502 const flatbuffers::String *name() const {
2503 return GetPointer<const flatbuffers::String *>(VT_NAME);
2504 }
2505 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *operators() const {
2506 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *>(VT_OPERATORS);
2507 }
2508 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors() const {
2509 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *>(VT_TENSORS);
2510 }
2511 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2512 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2513 }
2514 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2515 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2516 }
2517 bool Verify(flatbuffers::Verifier &verifier) const {
2518 return VerifyTableStart(verifier) &&
2519 VerifyOffset(verifier, VT_NAME) &&
2520 verifier.VerifyString(name()) &&
2521 VerifyOffset(verifier, VT_OPERATORS) &&
2522 verifier.VerifyVector(operators()) &&
2523 verifier.VerifyVectorOfTables(operators()) &&
2524 VerifyOffset(verifier, VT_TENSORS) &&
2525 verifier.VerifyVector(tensors()) &&
2526 verifier.VerifyVectorOfTables(tensors()) &&
2527 VerifyOffset(verifier, VT_INPUTS) &&
2528 verifier.VerifyVector(inputs()) &&
2529 verifier.VerifyVectorOfStrings(inputs()) &&
2530 VerifyOffset(verifier, VT_OUTPUTS) &&
2531 verifier.VerifyVector(outputs()) &&
2532 verifier.VerifyVectorOfStrings(outputs()) &&
2533 verifier.EndTable();
2534 }
2535};
2536
2537struct TosaBasicBlockBuilder {
2538 typedef TosaBasicBlock Table;
2539 flatbuffers::FlatBufferBuilder &fbb_;
2540 flatbuffers::uoffset_t start_;
2541 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2542 fbb_.AddOffset(TosaBasicBlock::VT_NAME, name);
2543 }
2544 void add_operators(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators) {
2545 fbb_.AddOffset(TosaBasicBlock::VT_OPERATORS, operators);
2546 }
2547 void add_tensors(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors) {
2548 fbb_.AddOffset(TosaBasicBlock::VT_TENSORS, tensors);
2549 }
2550 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2551 fbb_.AddOffset(TosaBasicBlock::VT_INPUTS, inputs);
2552 }
2553 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2554 fbb_.AddOffset(TosaBasicBlock::VT_OUTPUTS, outputs);
2555 }
2556 explicit TosaBasicBlockBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2557 : fbb_(_fbb) {
2558 start_ = fbb_.StartTable();
2559 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002560 flatbuffers::Offset<TosaBasicBlock> Finish() {
2561 const auto end = fbb_.EndTable(start_);
2562 auto o = flatbuffers::Offset<TosaBasicBlock>(end);
2563 return o;
2564 }
2565};
2566
2567inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlock(
2568 flatbuffers::FlatBufferBuilder &_fbb,
2569 flatbuffers::Offset<flatbuffers::String> name = 0,
2570 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators = 0,
2571 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors = 0,
2572 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
2573 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
2574 TosaBasicBlockBuilder builder_(_fbb);
2575 builder_.add_outputs(outputs);
2576 builder_.add_inputs(inputs);
2577 builder_.add_tensors(tensors);
2578 builder_.add_operators(operators);
2579 builder_.add_name(name);
2580 return builder_.Finish();
2581}
2582
2583inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlockDirect(
2584 flatbuffers::FlatBufferBuilder &_fbb,
2585 const char *name = nullptr,
2586 const std::vector<flatbuffers::Offset<tosa::TosaOperator>> *operators = nullptr,
2587 const std::vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors = nullptr,
2588 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
2589 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
2590 auto name__ = name ? _fbb.CreateString(name) : 0;
2591 auto operators__ = operators ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaOperator>>(*operators) : 0;
2592 auto tensors__ = tensors ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaTensor>>(*tensors) : 0;
2593 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2594 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2595 return tosa::CreateTosaBasicBlock(
2596 _fbb,
2597 name__,
2598 operators__,
2599 tensors__,
2600 inputs__,
2601 outputs__);
2602}
2603
Jerry Ge13c78a62022-10-04 20:32:39 -07002604struct TosaRegion FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2605 typedef TosaRegionBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002606 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Jerry Ge13c78a62022-10-04 20:32:39 -07002607 VT_NAME = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -07002608 VT_BLOCKS = 6
2609 };
Jerry Ge13c78a62022-10-04 20:32:39 -07002610 const flatbuffers::String *name() const {
2611 return GetPointer<const flatbuffers::String *>(VT_NAME);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002612 }
2613 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks() const {
2614 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *>(VT_BLOCKS);
2615 }
2616 bool Verify(flatbuffers::Verifier &verifier) const {
2617 return VerifyTableStart(verifier) &&
Jerry Ge13c78a62022-10-04 20:32:39 -07002618 VerifyOffset(verifier, VT_NAME) &&
2619 verifier.VerifyString(name()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002620 VerifyOffset(verifier, VT_BLOCKS) &&
2621 verifier.VerifyVector(blocks()) &&
2622 verifier.VerifyVectorOfTables(blocks()) &&
2623 verifier.EndTable();
2624 }
2625};
2626
Jerry Ge13c78a62022-10-04 20:32:39 -07002627struct TosaRegionBuilder {
2628 typedef TosaRegion Table;
2629 flatbuffers::FlatBufferBuilder &fbb_;
2630 flatbuffers::uoffset_t start_;
2631 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2632 fbb_.AddOffset(TosaRegion::VT_NAME, name);
2633 }
2634 void add_blocks(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks) {
2635 fbb_.AddOffset(TosaRegion::VT_BLOCKS, blocks);
2636 }
2637 explicit TosaRegionBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2638 : fbb_(_fbb) {
2639 start_ = fbb_.StartTable();
2640 }
2641 flatbuffers::Offset<TosaRegion> Finish() {
2642 const auto end = fbb_.EndTable(start_);
2643 auto o = flatbuffers::Offset<TosaRegion>(end);
2644 return o;
2645 }
2646};
2647
2648inline flatbuffers::Offset<TosaRegion> CreateTosaRegion(
2649 flatbuffers::FlatBufferBuilder &_fbb,
2650 flatbuffers::Offset<flatbuffers::String> name = 0,
2651 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks = 0) {
2652 TosaRegionBuilder builder_(_fbb);
2653 builder_.add_blocks(blocks);
2654 builder_.add_name(name);
2655 return builder_.Finish();
2656}
2657
2658inline flatbuffers::Offset<TosaRegion> CreateTosaRegionDirect(
2659 flatbuffers::FlatBufferBuilder &_fbb,
2660 const char *name = nullptr,
2661 const std::vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks = nullptr) {
2662 auto name__ = name ? _fbb.CreateString(name) : 0;
2663 auto blocks__ = blocks ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaBasicBlock>>(*blocks) : 0;
2664 return tosa::CreateTosaRegion(
2665 _fbb,
2666 name__,
2667 blocks__);
2668}
2669
2670struct TosaGraph FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2671 typedef TosaGraphBuilder Builder;
2672 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2673 VT_VERSION = 4,
2674 VT_REGIONS = 6
2675 };
2676 const tosa::Version *version() const {
2677 return GetPointer<const tosa::Version *>(VT_VERSION);
2678 }
2679 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaRegion>> *regions() const {
2680 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaRegion>> *>(VT_REGIONS);
2681 }
2682 bool Verify(flatbuffers::Verifier &verifier) const {
2683 return VerifyTableStart(verifier) &&
2684 VerifyOffset(verifier, VT_VERSION) &&
2685 verifier.VerifyTable(version()) &&
2686 VerifyOffset(verifier, VT_REGIONS) &&
2687 verifier.VerifyVector(regions()) &&
2688 verifier.VerifyVectorOfTables(regions()) &&
2689 verifier.EndTable();
2690 }
2691};
2692
Eric Kunze2364dcd2021-04-26 11:06:57 -07002693struct TosaGraphBuilder {
2694 typedef TosaGraph Table;
2695 flatbuffers::FlatBufferBuilder &fbb_;
2696 flatbuffers::uoffset_t start_;
2697 void add_version(flatbuffers::Offset<tosa::Version> version) {
2698 fbb_.AddOffset(TosaGraph::VT_VERSION, version);
2699 }
Jerry Ge13c78a62022-10-04 20:32:39 -07002700 void add_regions(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaRegion>>> regions) {
2701 fbb_.AddOffset(TosaGraph::VT_REGIONS, regions);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002702 }
2703 explicit TosaGraphBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2704 : fbb_(_fbb) {
2705 start_ = fbb_.StartTable();
2706 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002707 flatbuffers::Offset<TosaGraph> Finish() {
2708 const auto end = fbb_.EndTable(start_);
2709 auto o = flatbuffers::Offset<TosaGraph>(end);
2710 return o;
2711 }
2712};
2713
2714inline flatbuffers::Offset<TosaGraph> CreateTosaGraph(
2715 flatbuffers::FlatBufferBuilder &_fbb,
2716 flatbuffers::Offset<tosa::Version> version = 0,
Jerry Ge13c78a62022-10-04 20:32:39 -07002717 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaRegion>>> regions = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002718 TosaGraphBuilder builder_(_fbb);
Jerry Ge13c78a62022-10-04 20:32:39 -07002719 builder_.add_regions(regions);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002720 builder_.add_version(version);
2721 return builder_.Finish();
2722}
2723
2724inline flatbuffers::Offset<TosaGraph> CreateTosaGraphDirect(
2725 flatbuffers::FlatBufferBuilder &_fbb,
2726 flatbuffers::Offset<tosa::Version> version = 0,
Jerry Ge13c78a62022-10-04 20:32:39 -07002727 const std::vector<flatbuffers::Offset<tosa::TosaRegion>> *regions = nullptr) {
2728 auto regions__ = regions ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaRegion>>(*regions) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002729 return tosa::CreateTosaGraph(
2730 _fbb,
2731 version,
Jerry Ge13c78a62022-10-04 20:32:39 -07002732 regions__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002733}
2734
2735inline bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type) {
2736 switch (type) {
2737 case Attribute_NONE: {
2738 return true;
2739 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002740 case Attribute_PoolAttribute: {
2741 auto ptr = reinterpret_cast<const tosa::PoolAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002742 return verifier.VerifyTable(ptr);
2743 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002744 case Attribute_ConvAttribute: {
2745 auto ptr = reinterpret_cast<const tosa::ConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002746 return verifier.VerifyTable(ptr);
2747 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002748 case Attribute_TransposeConvAttribute: {
2749 auto ptr = reinterpret_cast<const tosa::TransposeConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002750 return verifier.VerifyTable(ptr);
2751 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002752 case Attribute_PadAttribute: {
2753 auto ptr = reinterpret_cast<const tosa::PadAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002754 return verifier.VerifyTable(ptr);
2755 }
2756 case Attribute_AxisAttribute: {
2757 auto ptr = reinterpret_cast<const tosa::AxisAttribute *>(obj);
2758 return verifier.VerifyTable(ptr);
2759 }
2760 case Attribute_ReshapeAttribute: {
2761 auto ptr = reinterpret_cast<const tosa::ReshapeAttribute *>(obj);
2762 return verifier.VerifyTable(ptr);
2763 }
2764 case Attribute_SliceAttribute: {
2765 auto ptr = reinterpret_cast<const tosa::SliceAttribute *>(obj);
2766 return verifier.VerifyTable(ptr);
2767 }
2768 case Attribute_TileAttribute: {
2769 auto ptr = reinterpret_cast<const tosa::TileAttribute *>(obj);
2770 return verifier.VerifyTable(ptr);
2771 }
2772 case Attribute_ResizeAttribute: {
2773 auto ptr = reinterpret_cast<const tosa::ResizeAttribute *>(obj);
2774 return verifier.VerifyTable(ptr);
2775 }
2776 case Attribute_ClampAttribute: {
2777 auto ptr = reinterpret_cast<const tosa::ClampAttribute *>(obj);
2778 return verifier.VerifyTable(ptr);
2779 }
2780 case Attribute_RescaleAttribute: {
2781 auto ptr = reinterpret_cast<const tosa::RescaleAttribute *>(obj);
2782 return verifier.VerifyTable(ptr);
2783 }
2784 case Attribute_MulAttribute: {
2785 auto ptr = reinterpret_cast<const tosa::MulAttribute *>(obj);
2786 return verifier.VerifyTable(ptr);
2787 }
2788 case Attribute_ArithmeticRightShiftAttribute: {
2789 auto ptr = reinterpret_cast<const tosa::ArithmeticRightShiftAttribute *>(obj);
2790 return verifier.VerifyTable(ptr);
2791 }
2792 case Attribute_CondIfAttribute: {
2793 auto ptr = reinterpret_cast<const tosa::CondIfAttribute *>(obj);
2794 return verifier.VerifyTable(ptr);
2795 }
2796 case Attribute_WhileLoopAttribute: {
2797 auto ptr = reinterpret_cast<const tosa::WhileLoopAttribute *>(obj);
2798 return verifier.VerifyTable(ptr);
2799 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002800 case Attribute_TransposeAttribute: {
2801 auto ptr = reinterpret_cast<const tosa::TransposeAttribute *>(obj);
2802 return verifier.VerifyTable(ptr);
2803 }
2804 case Attribute_TableAttribute: {
2805 auto ptr = reinterpret_cast<const tosa::TableAttribute *>(obj);
2806 return verifier.VerifyTable(ptr);
2807 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002808 case Attribute_MatMulAttribute: {
2809 auto ptr = reinterpret_cast<const tosa::MatMulAttribute *>(obj);
2810 return verifier.VerifyTable(ptr);
2811 }
2812 case Attribute_FullyConnectedAttribute: {
2813 auto ptr = reinterpret_cast<const tosa::FullyConnectedAttribute *>(obj);
2814 return verifier.VerifyTable(ptr);
2815 }
2816 case Attribute_NegateAttribute: {
2817 auto ptr = reinterpret_cast<const tosa::NegateAttribute *>(obj);
2818 return verifier.VerifyTable(ptr);
2819 }
Eric Kunze497ab5d2022-10-21 16:39:01 -07002820 case Attribute_CustomAttribute: {
2821 auto ptr = reinterpret_cast<const tosa::CustomAttribute *>(obj);
2822 return verifier.VerifyTable(ptr);
2823 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002824 default: return true;
2825 }
2826}
2827
2828inline bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
2829 if (!values || !types) return !values && !types;
2830 if (values->size() != types->size()) return false;
2831 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
2832 if (!VerifyAttribute(
2833 verifier, values->Get(i), types->GetEnum<Attribute>(i))) {
2834 return false;
2835 }
2836 }
2837 return true;
2838}
2839
Eric Kunze2364dcd2021-04-26 11:06:57 -07002840inline const tosa::TosaGraph *GetTosaGraph(const void *buf) {
2841 return flatbuffers::GetRoot<tosa::TosaGraph>(buf);
2842}
2843
2844inline const tosa::TosaGraph *GetSizePrefixedTosaGraph(const void *buf) {
2845 return flatbuffers::GetSizePrefixedRoot<tosa::TosaGraph>(buf);
2846}
2847
2848inline const char *TosaGraphIdentifier() {
2849 return "TOSA";
2850}
2851
2852inline bool TosaGraphBufferHasIdentifier(const void *buf) {
2853 return flatbuffers::BufferHasIdentifier(
2854 buf, TosaGraphIdentifier());
2855}
2856
Eric Kunze4381b3d2022-08-22 18:15:41 +00002857inline bool SizePrefixedTosaGraphBufferHasIdentifier(const void *buf) {
2858 return flatbuffers::BufferHasIdentifier(
2859 buf, TosaGraphIdentifier(), true);
2860}
2861
Eric Kunze2364dcd2021-04-26 11:06:57 -07002862inline bool VerifyTosaGraphBuffer(
2863 flatbuffers::Verifier &verifier) {
2864 return verifier.VerifyBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2865}
2866
2867inline bool VerifySizePrefixedTosaGraphBuffer(
2868 flatbuffers::Verifier &verifier) {
2869 return verifier.VerifySizePrefixedBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2870}
2871
2872inline const char *TosaGraphExtension() {
2873 return "tosa";
2874}
2875
2876inline void FinishTosaGraphBuffer(
2877 flatbuffers::FlatBufferBuilder &fbb,
2878 flatbuffers::Offset<tosa::TosaGraph> root) {
2879 fbb.Finish(root, TosaGraphIdentifier());
2880}
2881
2882inline void FinishSizePrefixedTosaGraphBuffer(
2883 flatbuffers::FlatBufferBuilder &fbb,
2884 flatbuffers::Offset<tosa::TosaGraph> root) {
2885 fbb.FinishSizePrefixed(root, TosaGraphIdentifier());
2886}
2887
2888} // namespace tosa
2889
2890#endif // FLATBUFFERS_GENERATED_TOSA_TOSA_H_