blob: 58fe4a70f814710614f34b530b0d2ffc8721afbd [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 Kunze2364dcd2021-04-26 11:06:57 -070062struct UnaryQuantInfo;
63struct UnaryQuantInfoBuilder;
64
65struct ConvQuantInfo;
66struct ConvQuantInfoBuilder;
67
68struct MatMulQuantInfo;
69struct MatMulQuantInfoBuilder;
70
71struct PadQuantInfo;
72struct PadQuantInfoBuilder;
73
74struct Version;
75struct VersionBuilder;
76
77struct TosaTensor;
78struct TosaTensorBuilder;
79
80struct TosaOperator;
81struct TosaOperatorBuilder;
82
83struct TosaBasicBlock;
84struct TosaBasicBlockBuilder;
85
86struct TosaGraph;
87struct TosaGraphBuilder;
88
Eric Kunzeae906de2022-05-30 22:40:47 -070089enum DType {
Eric Kunze2364dcd2021-04-26 11:06:57 -070090 DType_UNKNOWN = 0,
91 DType_BOOL = 1,
92 DType_UINT8 = 2,
93 DType_INT4 = 3,
94 DType_INT8 = 4,
95 DType_INT16 = 5,
96 DType_INT32 = 6,
97 DType_INT48 = 7,
98 DType_FLOAT = 8,
Jeremy Johnson41027732022-05-25 17:52:29 +010099 DType_UINT16 = 9,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700100 DType_MIN = DType_UNKNOWN,
Jeremy Johnson41027732022-05-25 17:52:29 +0100101 DType_MAX = DType_UINT16
Eric Kunze2364dcd2021-04-26 11:06:57 -0700102};
103
Jeremy Johnson41027732022-05-25 17:52:29 +0100104inline const DType (&EnumValuesDType())[10] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700105 static const DType values[] = {
106 DType_UNKNOWN,
107 DType_BOOL,
108 DType_UINT8,
109 DType_INT4,
110 DType_INT8,
111 DType_INT16,
112 DType_INT32,
113 DType_INT48,
Jeremy Johnson41027732022-05-25 17:52:29 +0100114 DType_FLOAT,
115 DType_UINT16
Eric Kunze2364dcd2021-04-26 11:06:57 -0700116 };
117 return values;
118}
119
120inline const char * const *EnumNamesDType() {
Jeremy Johnson41027732022-05-25 17:52:29 +0100121 static const char * const names[11] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700122 "UNKNOWN",
123 "BOOL",
124 "UINT8",
125 "INT4",
126 "INT8",
127 "INT16",
128 "INT32",
129 "INT48",
130 "FLOAT",
Jeremy Johnson41027732022-05-25 17:52:29 +0100131 "UINT16",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700132 nullptr
133 };
134 return names;
135}
136
137inline const char *EnumNameDType(DType e) {
Jeremy Johnson41027732022-05-25 17:52:29 +0100138 if (flatbuffers::IsOutRange(e, DType_UNKNOWN, DType_UINT16)) return "";
Eric Kunze2364dcd2021-04-26 11:06:57 -0700139 const size_t index = static_cast<size_t>(e);
140 return EnumNamesDType()[index];
141}
142
Eric Kunzeae906de2022-05-30 22:40:47 -0700143enum ResizeMode {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700144 ResizeMode_UNKNOWN = 0,
145 ResizeMode_NEAREST = 1,
146 ResizeMode_BILINEAR = 2,
147 ResizeMode_MIN = ResizeMode_UNKNOWN,
148 ResizeMode_MAX = ResizeMode_BILINEAR
149};
150
151inline const ResizeMode (&EnumValuesResizeMode())[3] {
152 static const ResizeMode values[] = {
153 ResizeMode_UNKNOWN,
154 ResizeMode_NEAREST,
155 ResizeMode_BILINEAR
156 };
157 return values;
158}
159
160inline const char * const *EnumNamesResizeMode() {
161 static const char * const names[4] = {
162 "UNKNOWN",
163 "NEAREST",
164 "BILINEAR",
165 nullptr
166 };
167 return names;
168}
169
170inline const char *EnumNameResizeMode(ResizeMode e) {
171 if (flatbuffers::IsOutRange(e, ResizeMode_UNKNOWN, ResizeMode_BILINEAR)) return "";
172 const size_t index = static_cast<size_t>(e);
173 return EnumNamesResizeMode()[index];
174}
175
Eric Kunzeae906de2022-05-30 22:40:47 -0700176enum Op {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700177 Op_UNKNOWN = 0,
178 Op_ARGMAX = 1,
179 Op_AVG_POOL2D = 2,
180 Op_CONV2D = 3,
181 Op_CONV3D = 4,
182 Op_DEPTHWISE_CONV2D = 5,
183 Op_FULLY_CONNECTED = 6,
184 Op_MATMUL = 7,
185 Op_MAX_POOL2D = 8,
186 Op_TRANSPOSE_CONV2D = 9,
187 Op_CLAMP = 10,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700188 Op_RESERVED = 11,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700189 Op_SIGMOID = 12,
190 Op_TANH = 13,
191 Op_ADD = 14,
192 Op_ARITHMETIC_RIGHT_SHIFT = 15,
193 Op_BITWISE_AND = 16,
194 Op_BITWISE_OR = 17,
195 Op_BITWISE_XOR = 18,
Matthew Haddonab905ec2021-08-23 16:40:57 +0100196 Op_INTDIV = 19,
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700197 Op_LOGICAL_AND = 20,
198 Op_LOGICAL_LEFT_SHIFT = 21,
199 Op_LOGICAL_RIGHT_SHIFT = 22,
200 Op_LOGICAL_OR = 23,
201 Op_LOGICAL_XOR = 24,
202 Op_MAXIMUM = 25,
203 Op_MINIMUM = 26,
204 Op_MUL = 27,
205 Op_POW = 28,
206 Op_SUB = 29,
207 Op_TABLE = 30,
208 Op_ABS = 31,
209 Op_BITWISE_NOT = 32,
210 Op_CEIL = 33,
211 Op_CLZ = 34,
212 Op_EXP = 35,
213 Op_FLOOR = 36,
214 Op_LOG = 37,
215 Op_LOGICAL_NOT = 38,
216 Op_NEGATE = 39,
217 Op_RECIPROCAL = 40,
218 Op_RSQRT = 41,
219 Op_SELECT = 42,
220 Op_EQUAL = 43,
221 Op_GREATER = 44,
222 Op_GREATER_EQUAL = 45,
223 Op_REDUCE_ANY = 46,
224 Op_REDUCE_ALL = 47,
225 Op_REDUCE_MAX = 48,
226 Op_REDUCE_MIN = 49,
227 Op_REDUCE_PRODUCT = 50,
228 Op_REDUCE_SUM = 51,
229 Op_CONCAT = 52,
230 Op_PAD = 53,
231 Op_RESHAPE = 54,
232 Op_REVERSE = 55,
233 Op_SLICE = 56,
234 Op_TILE = 57,
235 Op_TRANSPOSE = 58,
236 Op_GATHER = 59,
237 Op_SCATTER = 60,
238 Op_RESIZE = 61,
239 Op_CAST = 62,
240 Op_RESCALE = 63,
241 Op_CONST = 64,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700242 Op_IDENTITY = 65,
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700243 Op_CUSTOM = 66,
244 Op_COND_IF = 67,
245 Op_WHILE_LOOP = 68,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700246 Op_MIN = Op_UNKNOWN,
247 Op_MAX = Op_WHILE_LOOP
248};
249
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700250inline const Op (&EnumValuesOp())[69] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700251 static const Op values[] = {
252 Op_UNKNOWN,
253 Op_ARGMAX,
254 Op_AVG_POOL2D,
255 Op_CONV2D,
256 Op_CONV3D,
257 Op_DEPTHWISE_CONV2D,
258 Op_FULLY_CONNECTED,
259 Op_MATMUL,
260 Op_MAX_POOL2D,
261 Op_TRANSPOSE_CONV2D,
262 Op_CLAMP,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700263 Op_RESERVED,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700264 Op_SIGMOID,
265 Op_TANH,
266 Op_ADD,
267 Op_ARITHMETIC_RIGHT_SHIFT,
268 Op_BITWISE_AND,
269 Op_BITWISE_OR,
270 Op_BITWISE_XOR,
Matthew Haddonab905ec2021-08-23 16:40:57 +0100271 Op_INTDIV,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700272 Op_LOGICAL_AND,
273 Op_LOGICAL_LEFT_SHIFT,
274 Op_LOGICAL_RIGHT_SHIFT,
275 Op_LOGICAL_OR,
276 Op_LOGICAL_XOR,
277 Op_MAXIMUM,
278 Op_MINIMUM,
279 Op_MUL,
280 Op_POW,
281 Op_SUB,
282 Op_TABLE,
283 Op_ABS,
284 Op_BITWISE_NOT,
285 Op_CEIL,
286 Op_CLZ,
287 Op_EXP,
288 Op_FLOOR,
289 Op_LOG,
290 Op_LOGICAL_NOT,
291 Op_NEGATE,
292 Op_RECIPROCAL,
293 Op_RSQRT,
294 Op_SELECT,
295 Op_EQUAL,
296 Op_GREATER,
297 Op_GREATER_EQUAL,
298 Op_REDUCE_ANY,
299 Op_REDUCE_ALL,
300 Op_REDUCE_MAX,
301 Op_REDUCE_MIN,
302 Op_REDUCE_PRODUCT,
303 Op_REDUCE_SUM,
304 Op_CONCAT,
305 Op_PAD,
306 Op_RESHAPE,
307 Op_REVERSE,
308 Op_SLICE,
309 Op_TILE,
310 Op_TRANSPOSE,
311 Op_GATHER,
312 Op_SCATTER,
313 Op_RESIZE,
314 Op_CAST,
315 Op_RESCALE,
316 Op_CONST,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700317 Op_IDENTITY,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700318 Op_CUSTOM,
319 Op_COND_IF,
320 Op_WHILE_LOOP
321 };
322 return values;
323}
324
325inline const char * const *EnumNamesOp() {
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700326 static const char * const names[70] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700327 "UNKNOWN",
328 "ARGMAX",
329 "AVG_POOL2D",
330 "CONV2D",
331 "CONV3D",
332 "DEPTHWISE_CONV2D",
333 "FULLY_CONNECTED",
334 "MATMUL",
335 "MAX_POOL2D",
336 "TRANSPOSE_CONV2D",
337 "CLAMP",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700338 "RESERVED",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700339 "SIGMOID",
340 "TANH",
341 "ADD",
342 "ARITHMETIC_RIGHT_SHIFT",
343 "BITWISE_AND",
344 "BITWISE_OR",
345 "BITWISE_XOR",
Matthew Haddonab905ec2021-08-23 16:40:57 +0100346 "INTDIV",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700347 "LOGICAL_AND",
348 "LOGICAL_LEFT_SHIFT",
349 "LOGICAL_RIGHT_SHIFT",
350 "LOGICAL_OR",
351 "LOGICAL_XOR",
352 "MAXIMUM",
353 "MINIMUM",
354 "MUL",
355 "POW",
356 "SUB",
357 "TABLE",
358 "ABS",
359 "BITWISE_NOT",
360 "CEIL",
361 "CLZ",
362 "EXP",
363 "FLOOR",
364 "LOG",
365 "LOGICAL_NOT",
366 "NEGATE",
367 "RECIPROCAL",
368 "RSQRT",
369 "SELECT",
370 "EQUAL",
371 "GREATER",
372 "GREATER_EQUAL",
373 "REDUCE_ANY",
374 "REDUCE_ALL",
375 "REDUCE_MAX",
376 "REDUCE_MIN",
377 "REDUCE_PRODUCT",
378 "REDUCE_SUM",
379 "CONCAT",
380 "PAD",
381 "RESHAPE",
382 "REVERSE",
383 "SLICE",
384 "TILE",
385 "TRANSPOSE",
386 "GATHER",
387 "SCATTER",
388 "RESIZE",
389 "CAST",
390 "RESCALE",
391 "CONST",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700392 "IDENTITY",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700393 "CUSTOM",
394 "COND_IF",
395 "WHILE_LOOP",
396 nullptr
397 };
398 return names;
399}
400
401inline const char *EnumNameOp(Op e) {
402 if (flatbuffers::IsOutRange(e, Op_UNKNOWN, Op_WHILE_LOOP)) return "";
403 const size_t index = static_cast<size_t>(e);
404 return EnumNamesOp()[index];
405}
406
Eric Kunzeae906de2022-05-30 22:40:47 -0700407enum Attribute {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700408 Attribute_NONE = 0,
Kevin Cheng79a41992021-08-31 16:04:40 -0700409 Attribute_PoolAttribute = 1,
410 Attribute_ConvAttribute = 2,
411 Attribute_TransposeConvAttribute = 3,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700412 Attribute_PadAttribute = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700413 Attribute_AxisAttribute = 5,
414 Attribute_ReshapeAttribute = 6,
415 Attribute_SliceAttribute = 7,
416 Attribute_TileAttribute = 8,
417 Attribute_ResizeAttribute = 9,
418 Attribute_ClampAttribute = 10,
419 Attribute_RescaleAttribute = 11,
420 Attribute_MulAttribute = 12,
421 Attribute_ArithmeticRightShiftAttribute = 13,
422 Attribute_CondIfAttribute = 14,
423 Attribute_WhileLoopAttribute = 15,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700424 Attribute_TransposeAttribute = 16,
425 Attribute_TableAttribute = 17,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700426 Attribute_MIN = Attribute_NONE,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700427 Attribute_MAX = Attribute_TableAttribute
Eric Kunze2364dcd2021-04-26 11:06:57 -0700428};
429
Kevin Cheng38d214c2021-10-15 15:49:19 -0700430inline const Attribute (&EnumValuesAttribute())[18] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700431 static const Attribute values[] = {
432 Attribute_NONE,
Kevin Cheng79a41992021-08-31 16:04:40 -0700433 Attribute_PoolAttribute,
434 Attribute_ConvAttribute,
435 Attribute_TransposeConvAttribute,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700436 Attribute_PadAttribute,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700437 Attribute_AxisAttribute,
438 Attribute_ReshapeAttribute,
439 Attribute_SliceAttribute,
440 Attribute_TileAttribute,
441 Attribute_ResizeAttribute,
442 Attribute_ClampAttribute,
443 Attribute_RescaleAttribute,
444 Attribute_MulAttribute,
445 Attribute_ArithmeticRightShiftAttribute,
446 Attribute_CondIfAttribute,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700447 Attribute_WhileLoopAttribute,
448 Attribute_TransposeAttribute,
449 Attribute_TableAttribute
Eric Kunze2364dcd2021-04-26 11:06:57 -0700450 };
451 return values;
452}
453
454inline const char * const *EnumNamesAttribute() {
Kevin Cheng38d214c2021-10-15 15:49:19 -0700455 static const char * const names[19] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700456 "NONE",
Kevin Cheng79a41992021-08-31 16:04:40 -0700457 "PoolAttribute",
458 "ConvAttribute",
459 "TransposeConvAttribute",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700460 "PadAttribute",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700461 "AxisAttribute",
462 "ReshapeAttribute",
463 "SliceAttribute",
464 "TileAttribute",
465 "ResizeAttribute",
466 "ClampAttribute",
467 "RescaleAttribute",
468 "MulAttribute",
469 "ArithmeticRightShiftAttribute",
470 "CondIfAttribute",
471 "WhileLoopAttribute",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700472 "TransposeAttribute",
473 "TableAttribute",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700474 nullptr
475 };
476 return names;
477}
478
479inline const char *EnumNameAttribute(Attribute e) {
Kevin Cheng38d214c2021-10-15 15:49:19 -0700480 if (flatbuffers::IsOutRange(e, Attribute_NONE, Attribute_TableAttribute)) return "";
Eric Kunze2364dcd2021-04-26 11:06:57 -0700481 const size_t index = static_cast<size_t>(e);
482 return EnumNamesAttribute()[index];
483}
484
485template<typename T> struct AttributeTraits {
486 static const Attribute enum_value = Attribute_NONE;
487};
488
Kevin Cheng79a41992021-08-31 16:04:40 -0700489template<> struct AttributeTraits<tosa::PoolAttribute> {
490 static const Attribute enum_value = Attribute_PoolAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700491};
492
Kevin Cheng79a41992021-08-31 16:04:40 -0700493template<> struct AttributeTraits<tosa::ConvAttribute> {
494 static const Attribute enum_value = Attribute_ConvAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700495};
496
Kevin Cheng79a41992021-08-31 16:04:40 -0700497template<> struct AttributeTraits<tosa::TransposeConvAttribute> {
498 static const Attribute enum_value = Attribute_TransposeConvAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700499};
500
Kevin Cheng38d214c2021-10-15 15:49:19 -0700501template<> struct AttributeTraits<tosa::PadAttribute> {
502 static const Attribute enum_value = Attribute_PadAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700503};
504
505template<> struct AttributeTraits<tosa::AxisAttribute> {
506 static const Attribute enum_value = Attribute_AxisAttribute;
507};
508
509template<> struct AttributeTraits<tosa::ReshapeAttribute> {
510 static const Attribute enum_value = Attribute_ReshapeAttribute;
511};
512
513template<> struct AttributeTraits<tosa::SliceAttribute> {
514 static const Attribute enum_value = Attribute_SliceAttribute;
515};
516
517template<> struct AttributeTraits<tosa::TileAttribute> {
518 static const Attribute enum_value = Attribute_TileAttribute;
519};
520
521template<> struct AttributeTraits<tosa::ResizeAttribute> {
522 static const Attribute enum_value = Attribute_ResizeAttribute;
523};
524
525template<> struct AttributeTraits<tosa::ClampAttribute> {
526 static const Attribute enum_value = Attribute_ClampAttribute;
527};
528
529template<> struct AttributeTraits<tosa::RescaleAttribute> {
530 static const Attribute enum_value = Attribute_RescaleAttribute;
531};
532
533template<> struct AttributeTraits<tosa::MulAttribute> {
534 static const Attribute enum_value = Attribute_MulAttribute;
535};
536
537template<> struct AttributeTraits<tosa::ArithmeticRightShiftAttribute> {
538 static const Attribute enum_value = Attribute_ArithmeticRightShiftAttribute;
539};
540
541template<> struct AttributeTraits<tosa::CondIfAttribute> {
542 static const Attribute enum_value = Attribute_CondIfAttribute;
543};
544
545template<> struct AttributeTraits<tosa::WhileLoopAttribute> {
546 static const Attribute enum_value = Attribute_WhileLoopAttribute;
547};
548
Kevin Cheng38d214c2021-10-15 15:49:19 -0700549template<> struct AttributeTraits<tosa::TransposeAttribute> {
550 static const Attribute enum_value = Attribute_TransposeAttribute;
551};
552
553template<> struct AttributeTraits<tosa::TableAttribute> {
554 static const Attribute enum_value = Attribute_TableAttribute;
555};
556
Eric Kunze2364dcd2021-04-26 11:06:57 -0700557bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type);
558bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types);
559
Eric Kunzeae906de2022-05-30 22:40:47 -0700560enum QuantInfo {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700561 QuantInfo_NONE = 0,
562 QuantInfo_UnaryQuantInfo = 1,
563 QuantInfo_ConvQuantInfo = 2,
564 QuantInfo_MatMulQuantInfo = 3,
565 QuantInfo_PadQuantInfo = 4,
566 QuantInfo_MIN = QuantInfo_NONE,
567 QuantInfo_MAX = QuantInfo_PadQuantInfo
568};
569
570inline const QuantInfo (&EnumValuesQuantInfo())[5] {
571 static const QuantInfo values[] = {
572 QuantInfo_NONE,
573 QuantInfo_UnaryQuantInfo,
574 QuantInfo_ConvQuantInfo,
575 QuantInfo_MatMulQuantInfo,
576 QuantInfo_PadQuantInfo
577 };
578 return values;
579}
580
581inline const char * const *EnumNamesQuantInfo() {
582 static const char * const names[6] = {
583 "NONE",
584 "UnaryQuantInfo",
585 "ConvQuantInfo",
586 "MatMulQuantInfo",
587 "PadQuantInfo",
588 nullptr
589 };
590 return names;
591}
592
593inline const char *EnumNameQuantInfo(QuantInfo e) {
594 if (flatbuffers::IsOutRange(e, QuantInfo_NONE, QuantInfo_PadQuantInfo)) return "";
595 const size_t index = static_cast<size_t>(e);
596 return EnumNamesQuantInfo()[index];
597}
598
599template<typename T> struct QuantInfoTraits {
600 static const QuantInfo enum_value = QuantInfo_NONE;
601};
602
603template<> struct QuantInfoTraits<tosa::UnaryQuantInfo> {
604 static const QuantInfo enum_value = QuantInfo_UnaryQuantInfo;
605};
606
607template<> struct QuantInfoTraits<tosa::ConvQuantInfo> {
608 static const QuantInfo enum_value = QuantInfo_ConvQuantInfo;
609};
610
611template<> struct QuantInfoTraits<tosa::MatMulQuantInfo> {
612 static const QuantInfo enum_value = QuantInfo_MatMulQuantInfo;
613};
614
615template<> struct QuantInfoTraits<tosa::PadQuantInfo> {
616 static const QuantInfo enum_value = QuantInfo_PadQuantInfo;
617};
618
619bool VerifyQuantInfo(flatbuffers::Verifier &verifier, const void *obj, QuantInfo type);
620bool VerifyQuantInfoVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types);
621
Kevin Cheng79a41992021-08-31 16:04:40 -0700622struct PoolAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
623 typedef PoolAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700624 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -0700625 VT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700626 VT_KERNEL = 6,
627 VT_STRIDE = 8
628 };
TatWai Chong7be71652022-05-10 17:26:20 -0700629 const flatbuffers::Vector<int32_t> *pad() const {
630 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700631 }
632 const flatbuffers::Vector<int32_t> *kernel() const {
633 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_KERNEL);
634 }
635 const flatbuffers::Vector<int32_t> *stride() const {
636 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
637 }
638 bool Verify(flatbuffers::Verifier &verifier) const {
639 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -0700640 VerifyOffset(verifier, VT_PAD) &&
641 verifier.VerifyVector(pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700642 VerifyOffset(verifier, VT_KERNEL) &&
643 verifier.VerifyVector(kernel()) &&
644 VerifyOffset(verifier, VT_STRIDE) &&
645 verifier.VerifyVector(stride()) &&
646 verifier.EndTable();
647 }
648};
649
Kevin Cheng79a41992021-08-31 16:04:40 -0700650struct PoolAttributeBuilder {
651 typedef PoolAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700652 flatbuffers::FlatBufferBuilder &fbb_;
653 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -0700654 void add_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad) {
655 fbb_.AddOffset(PoolAttribute::VT_PAD, pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700656 }
657 void add_kernel(flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700658 fbb_.AddOffset(PoolAttribute::VT_KERNEL, kernel);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700659 }
660 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700661 fbb_.AddOffset(PoolAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700662 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700663 explicit PoolAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700664 : fbb_(_fbb) {
665 start_ = fbb_.StartTable();
666 }
Eric Kunzeae906de2022-05-30 22:40:47 -0700667 PoolAttributeBuilder &operator=(const PoolAttributeBuilder &);
Kevin Cheng79a41992021-08-31 16:04:40 -0700668 flatbuffers::Offset<PoolAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700669 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700670 auto o = flatbuffers::Offset<PoolAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700671 return o;
672 }
673};
674
Kevin Cheng79a41992021-08-31 16:04:40 -0700675inline flatbuffers::Offset<PoolAttribute> CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700676 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700677 flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700678 flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel = 0,
679 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700680 PoolAttributeBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700681 builder_.add_stride(stride);
682 builder_.add_kernel(kernel);
TatWai Chong7be71652022-05-10 17:26:20 -0700683 builder_.add_pad(pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700684 return builder_.Finish();
685}
686
Kevin Cheng79a41992021-08-31 16:04:40 -0700687inline flatbuffers::Offset<PoolAttribute> CreatePoolAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700688 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700689 const std::vector<int32_t> *pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700690 const std::vector<int32_t> *kernel = nullptr,
691 const std::vector<int32_t> *stride = nullptr) {
TatWai Chong7be71652022-05-10 17:26:20 -0700692 auto pad__ = pad ? _fbb.CreateVector<int32_t>(*pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700693 auto kernel__ = kernel ? _fbb.CreateVector<int32_t>(*kernel) : 0;
694 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700695 return tosa::CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700696 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700697 pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700698 kernel__,
699 stride__);
700}
701
Kevin Cheng79a41992021-08-31 16:04:40 -0700702struct ConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
703 typedef ConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700704 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -0700705 VT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700706 VT_STRIDE = 6,
707 VT_DILATION = 8
708 };
TatWai Chong7be71652022-05-10 17:26:20 -0700709 const flatbuffers::Vector<int32_t> *pad() const {
710 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700711 }
712 const flatbuffers::Vector<int32_t> *stride() const {
713 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
714 }
715 const flatbuffers::Vector<int32_t> *dilation() const {
716 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_DILATION);
717 }
718 bool Verify(flatbuffers::Verifier &verifier) const {
719 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -0700720 VerifyOffset(verifier, VT_PAD) &&
721 verifier.VerifyVector(pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700722 VerifyOffset(verifier, VT_STRIDE) &&
723 verifier.VerifyVector(stride()) &&
724 VerifyOffset(verifier, VT_DILATION) &&
725 verifier.VerifyVector(dilation()) &&
726 verifier.EndTable();
727 }
728};
729
Kevin Cheng79a41992021-08-31 16:04:40 -0700730struct ConvAttributeBuilder {
731 typedef ConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700732 flatbuffers::FlatBufferBuilder &fbb_;
733 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -0700734 void add_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad) {
735 fbb_.AddOffset(ConvAttribute::VT_PAD, pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700736 }
737 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700738 fbb_.AddOffset(ConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700739 }
740 void add_dilation(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700741 fbb_.AddOffset(ConvAttribute::VT_DILATION, dilation);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700742 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700743 explicit ConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700744 : fbb_(_fbb) {
745 start_ = fbb_.StartTable();
746 }
Eric Kunzeae906de2022-05-30 22:40:47 -0700747 ConvAttributeBuilder &operator=(const ConvAttributeBuilder &);
Kevin Cheng79a41992021-08-31 16:04:40 -0700748 flatbuffers::Offset<ConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700749 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700750 auto o = flatbuffers::Offset<ConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700751 return o;
752 }
753};
754
Kevin Cheng79a41992021-08-31 16:04:40 -0700755inline flatbuffers::Offset<ConvAttribute> CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700756 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700757 flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700758 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
759 flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation = 0) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700760 ConvAttributeBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700761 builder_.add_dilation(dilation);
762 builder_.add_stride(stride);
TatWai Chong7be71652022-05-10 17:26:20 -0700763 builder_.add_pad(pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700764 return builder_.Finish();
765}
766
Kevin Cheng79a41992021-08-31 16:04:40 -0700767inline flatbuffers::Offset<ConvAttribute> CreateConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700768 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700769 const std::vector<int32_t> *pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700770 const std::vector<int32_t> *stride = nullptr,
771 const std::vector<int32_t> *dilation = nullptr) {
TatWai Chong7be71652022-05-10 17:26:20 -0700772 auto pad__ = pad ? _fbb.CreateVector<int32_t>(*pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700773 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
774 auto dilation__ = dilation ? _fbb.CreateVector<int32_t>(*dilation) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700775 return tosa::CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700776 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700777 pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700778 stride__,
779 dilation__);
780}
781
Kevin Cheng79a41992021-08-31 16:04:40 -0700782struct TransposeConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
783 typedef TransposeConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700784 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700785 VT_OUT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700786 VT_STRIDE = 6,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700787 VT_OUTPUT_SHAPE = 8
Eric Kunze2364dcd2021-04-26 11:06:57 -0700788 };
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700789 const flatbuffers::Vector<int32_t> *out_pad() const {
790 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700791 }
792 const flatbuffers::Vector<int32_t> *stride() const {
793 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
794 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700795 const flatbuffers::Vector<int32_t> *output_shape() const {
796 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUT_SHAPE);
797 }
798 bool Verify(flatbuffers::Verifier &verifier) const {
799 return VerifyTableStart(verifier) &&
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700800 VerifyOffset(verifier, VT_OUT_PAD) &&
801 verifier.VerifyVector(out_pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700802 VerifyOffset(verifier, VT_STRIDE) &&
803 verifier.VerifyVector(stride()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700804 VerifyOffset(verifier, VT_OUTPUT_SHAPE) &&
805 verifier.VerifyVector(output_shape()) &&
806 verifier.EndTable();
807 }
808};
809
Kevin Cheng79a41992021-08-31 16:04:40 -0700810struct TransposeConvAttributeBuilder {
811 typedef TransposeConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700812 flatbuffers::FlatBufferBuilder &fbb_;
813 flatbuffers::uoffset_t start_;
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700814 void add_out_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> out_pad) {
815 fbb_.AddOffset(TransposeConvAttribute::VT_OUT_PAD, out_pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700816 }
817 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700818 fbb_.AddOffset(TransposeConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700819 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700820 void add_output_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700821 fbb_.AddOffset(TransposeConvAttribute::VT_OUTPUT_SHAPE, output_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700822 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700823 explicit TransposeConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700824 : fbb_(_fbb) {
825 start_ = fbb_.StartTable();
826 }
Eric Kunzeae906de2022-05-30 22:40:47 -0700827 TransposeConvAttributeBuilder &operator=(const TransposeConvAttributeBuilder &);
Kevin Cheng79a41992021-08-31 16:04:40 -0700828 flatbuffers::Offset<TransposeConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700829 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700830 auto o = flatbuffers::Offset<TransposeConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700831 return o;
832 }
833};
834
Kevin Cheng79a41992021-08-31 16:04:40 -0700835inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700836 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700837 flatbuffers::Offset<flatbuffers::Vector<int32_t>> out_pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700838 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700839 flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape = 0) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700840 TransposeConvAttributeBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700841 builder_.add_output_shape(output_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700842 builder_.add_stride(stride);
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700843 builder_.add_out_pad(out_pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700844 return builder_.Finish();
845}
846
Kevin Cheng79a41992021-08-31 16:04:40 -0700847inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700848 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700849 const std::vector<int32_t> *out_pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700850 const std::vector<int32_t> *stride = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700851 const std::vector<int32_t> *output_shape = nullptr) {
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700852 auto out_pad__ = out_pad ? _fbb.CreateVector<int32_t>(*out_pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700853 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700854 auto output_shape__ = output_shape ? _fbb.CreateVector<int32_t>(*output_shape) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700855 return tosa::CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700856 _fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700857 out_pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700858 stride__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700859 output_shape__);
860}
861
Kevin Cheng38d214c2021-10-15 15:49:19 -0700862struct PadAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
863 typedef PadAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700864 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Kevin Cheng38d214c2021-10-15 15:49:19 -0700865 VT_PADDING = 4,
866 VT_PAD_CONST_INT = 6,
867 VT_PAD_CONST_FP = 8
Eric Kunze2364dcd2021-04-26 11:06:57 -0700868 };
Kevin Cheng38d214c2021-10-15 15:49:19 -0700869 const flatbuffers::Vector<int32_t> *padding() const {
870 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PADDING);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700871 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700872 int32_t pad_const_int() const {
873 return GetField<int32_t>(VT_PAD_CONST_INT, 0);
874 }
875 float pad_const_fp() const {
876 return GetField<float>(VT_PAD_CONST_FP, 0.0f);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700877 }
878 bool Verify(flatbuffers::Verifier &verifier) const {
879 return VerifyTableStart(verifier) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -0700880 VerifyOffset(verifier, VT_PADDING) &&
881 verifier.VerifyVector(padding()) &&
882 VerifyField<int32_t>(verifier, VT_PAD_CONST_INT) &&
883 VerifyField<float>(verifier, VT_PAD_CONST_FP) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700884 verifier.EndTable();
885 }
886};
887
Kevin Cheng38d214c2021-10-15 15:49:19 -0700888struct PadAttributeBuilder {
889 typedef PadAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700890 flatbuffers::FlatBufferBuilder &fbb_;
891 flatbuffers::uoffset_t start_;
Kevin Cheng38d214c2021-10-15 15:49:19 -0700892 void add_padding(flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding) {
893 fbb_.AddOffset(PadAttribute::VT_PADDING, padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700894 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700895 void add_pad_const_int(int32_t pad_const_int) {
896 fbb_.AddElement<int32_t>(PadAttribute::VT_PAD_CONST_INT, pad_const_int, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700897 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700898 void add_pad_const_fp(float pad_const_fp) {
899 fbb_.AddElement<float>(PadAttribute::VT_PAD_CONST_FP, pad_const_fp, 0.0f);
900 }
901 explicit PadAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700902 : fbb_(_fbb) {
903 start_ = fbb_.StartTable();
904 }
Eric Kunzeae906de2022-05-30 22:40:47 -0700905 PadAttributeBuilder &operator=(const PadAttributeBuilder &);
Kevin Cheng38d214c2021-10-15 15:49:19 -0700906 flatbuffers::Offset<PadAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700907 const auto end = fbb_.EndTable(start_);
Kevin Cheng38d214c2021-10-15 15:49:19 -0700908 auto o = flatbuffers::Offset<PadAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700909 return o;
910 }
911};
912
Kevin Cheng38d214c2021-10-15 15:49:19 -0700913inline flatbuffers::Offset<PadAttribute> CreatePadAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700914 flatbuffers::FlatBufferBuilder &_fbb,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700915 flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding = 0,
916 int32_t pad_const_int = 0,
917 float pad_const_fp = 0.0f) {
918 PadAttributeBuilder builder_(_fbb);
919 builder_.add_pad_const_fp(pad_const_fp);
920 builder_.add_pad_const_int(pad_const_int);
921 builder_.add_padding(padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700922 return builder_.Finish();
923}
924
Kevin Cheng38d214c2021-10-15 15:49:19 -0700925inline flatbuffers::Offset<PadAttribute> CreatePadAttributeDirect(
926 flatbuffers::FlatBufferBuilder &_fbb,
927 const std::vector<int32_t> *padding = nullptr,
928 int32_t pad_const_int = 0,
929 float pad_const_fp = 0.0f) {
930 auto padding__ = padding ? _fbb.CreateVector<int32_t>(*padding) : 0;
931 return tosa::CreatePadAttribute(
932 _fbb,
933 padding__,
934 pad_const_int,
935 pad_const_fp);
936}
937
Eric Kunze2364dcd2021-04-26 11:06:57 -0700938struct AxisAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
939 typedef AxisAttributeBuilder Builder;
940 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
941 VT_AXIS = 4
942 };
943 int32_t axis() const {
944 return GetField<int32_t>(VT_AXIS, 0);
945 }
946 bool Verify(flatbuffers::Verifier &verifier) const {
947 return VerifyTableStart(verifier) &&
948 VerifyField<int32_t>(verifier, VT_AXIS) &&
949 verifier.EndTable();
950 }
951};
952
953struct AxisAttributeBuilder {
954 typedef AxisAttribute Table;
955 flatbuffers::FlatBufferBuilder &fbb_;
956 flatbuffers::uoffset_t start_;
957 void add_axis(int32_t axis) {
958 fbb_.AddElement<int32_t>(AxisAttribute::VT_AXIS, axis, 0);
959 }
960 explicit AxisAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
961 : fbb_(_fbb) {
962 start_ = fbb_.StartTable();
963 }
Eric Kunzeae906de2022-05-30 22:40:47 -0700964 AxisAttributeBuilder &operator=(const AxisAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700965 flatbuffers::Offset<AxisAttribute> Finish() {
966 const auto end = fbb_.EndTable(start_);
967 auto o = flatbuffers::Offset<AxisAttribute>(end);
968 return o;
969 }
970};
971
972inline flatbuffers::Offset<AxisAttribute> CreateAxisAttribute(
973 flatbuffers::FlatBufferBuilder &_fbb,
974 int32_t axis = 0) {
975 AxisAttributeBuilder builder_(_fbb);
976 builder_.add_axis(axis);
977 return builder_.Finish();
978}
979
980struct ReshapeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
981 typedef ReshapeAttributeBuilder Builder;
982 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -0700983 VT_NEW_SHAPE = 4
Eric Kunze2364dcd2021-04-26 11:06:57 -0700984 };
TatWai Chong7be71652022-05-10 17:26:20 -0700985 const flatbuffers::Vector<int32_t> *new_shape() const {
986 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_NEW_SHAPE);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700987 }
988 bool Verify(flatbuffers::Verifier &verifier) const {
989 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -0700990 VerifyOffset(verifier, VT_NEW_SHAPE) &&
991 verifier.VerifyVector(new_shape()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700992 verifier.EndTable();
993 }
994};
995
996struct ReshapeAttributeBuilder {
997 typedef ReshapeAttribute Table;
998 flatbuffers::FlatBufferBuilder &fbb_;
999 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001000 void add_new_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> new_shape) {
1001 fbb_.AddOffset(ReshapeAttribute::VT_NEW_SHAPE, new_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001002 }
1003 explicit ReshapeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1004 : fbb_(_fbb) {
1005 start_ = fbb_.StartTable();
1006 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001007 ReshapeAttributeBuilder &operator=(const ReshapeAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001008 flatbuffers::Offset<ReshapeAttribute> Finish() {
1009 const auto end = fbb_.EndTable(start_);
1010 auto o = flatbuffers::Offset<ReshapeAttribute>(end);
1011 return o;
1012 }
1013};
1014
1015inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttribute(
1016 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001017 flatbuffers::Offset<flatbuffers::Vector<int32_t>> new_shape = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001018 ReshapeAttributeBuilder builder_(_fbb);
TatWai Chong7be71652022-05-10 17:26:20 -07001019 builder_.add_new_shape(new_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001020 return builder_.Finish();
1021}
1022
1023inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttributeDirect(
1024 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001025 const std::vector<int32_t> *new_shape = nullptr) {
1026 auto new_shape__ = new_shape ? _fbb.CreateVector<int32_t>(*new_shape) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001027 return tosa::CreateReshapeAttribute(
1028 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001029 new_shape__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001030}
1031
1032struct SliceAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1033 typedef SliceAttributeBuilder Builder;
1034 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001035 VT_START = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001036 VT_SIZE = 6
1037 };
TatWai Chong7be71652022-05-10 17:26:20 -07001038 const flatbuffers::Vector<int32_t> *start() const {
1039 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_START);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001040 }
1041 const flatbuffers::Vector<int32_t> *size() const {
1042 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SIZE);
1043 }
1044 bool Verify(flatbuffers::Verifier &verifier) const {
1045 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001046 VerifyOffset(verifier, VT_START) &&
1047 verifier.VerifyVector(start()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001048 VerifyOffset(verifier, VT_SIZE) &&
1049 verifier.VerifyVector(size()) &&
1050 verifier.EndTable();
1051 }
1052};
1053
1054struct SliceAttributeBuilder {
1055 typedef SliceAttribute Table;
1056 flatbuffers::FlatBufferBuilder &fbb_;
1057 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001058 void add_start(flatbuffers::Offset<flatbuffers::Vector<int32_t>> start) {
1059 fbb_.AddOffset(SliceAttribute::VT_START, start);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001060 }
1061 void add_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> size) {
1062 fbb_.AddOffset(SliceAttribute::VT_SIZE, size);
1063 }
1064 explicit SliceAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1065 : fbb_(_fbb) {
1066 start_ = fbb_.StartTable();
1067 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001068 SliceAttributeBuilder &operator=(const SliceAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001069 flatbuffers::Offset<SliceAttribute> Finish() {
1070 const auto end = fbb_.EndTable(start_);
1071 auto o = flatbuffers::Offset<SliceAttribute>(end);
1072 return o;
1073 }
1074};
1075
1076inline flatbuffers::Offset<SliceAttribute> CreateSliceAttribute(
1077 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001078 flatbuffers::Offset<flatbuffers::Vector<int32_t>> start = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001079 flatbuffers::Offset<flatbuffers::Vector<int32_t>> size = 0) {
1080 SliceAttributeBuilder builder_(_fbb);
1081 builder_.add_size(size);
TatWai Chong7be71652022-05-10 17:26:20 -07001082 builder_.add_start(start);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001083 return builder_.Finish();
1084}
1085
1086inline flatbuffers::Offset<SliceAttribute> CreateSliceAttributeDirect(
1087 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001088 const std::vector<int32_t> *start = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001089 const std::vector<int32_t> *size = nullptr) {
TatWai Chong7be71652022-05-10 17:26:20 -07001090 auto start__ = start ? _fbb.CreateVector<int32_t>(*start) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001091 auto size__ = size ? _fbb.CreateVector<int32_t>(*size) : 0;
1092 return tosa::CreateSliceAttribute(
1093 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001094 start__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001095 size__);
1096}
1097
1098struct TileAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1099 typedef TileAttributeBuilder Builder;
1100 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1101 VT_MULTIPLES = 4
1102 };
1103 const flatbuffers::Vector<int32_t> *multiples() const {
1104 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLES);
1105 }
1106 bool Verify(flatbuffers::Verifier &verifier) const {
1107 return VerifyTableStart(verifier) &&
1108 VerifyOffset(verifier, VT_MULTIPLES) &&
1109 verifier.VerifyVector(multiples()) &&
1110 verifier.EndTable();
1111 }
1112};
1113
1114struct TileAttributeBuilder {
1115 typedef TileAttribute Table;
1116 flatbuffers::FlatBufferBuilder &fbb_;
1117 flatbuffers::uoffset_t start_;
1118 void add_multiples(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples) {
1119 fbb_.AddOffset(TileAttribute::VT_MULTIPLES, multiples);
1120 }
1121 explicit TileAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1122 : fbb_(_fbb) {
1123 start_ = fbb_.StartTable();
1124 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001125 TileAttributeBuilder &operator=(const TileAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001126 flatbuffers::Offset<TileAttribute> Finish() {
1127 const auto end = fbb_.EndTable(start_);
1128 auto o = flatbuffers::Offset<TileAttribute>(end);
1129 return o;
1130 }
1131};
1132
1133inline flatbuffers::Offset<TileAttribute> CreateTileAttribute(
1134 flatbuffers::FlatBufferBuilder &_fbb,
1135 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples = 0) {
1136 TileAttributeBuilder builder_(_fbb);
1137 builder_.add_multiples(multiples);
1138 return builder_.Finish();
1139}
1140
1141inline flatbuffers::Offset<TileAttribute> CreateTileAttributeDirect(
1142 flatbuffers::FlatBufferBuilder &_fbb,
1143 const std::vector<int32_t> *multiples = nullptr) {
1144 auto multiples__ = multiples ? _fbb.CreateVector<int32_t>(*multiples) : 0;
1145 return tosa::CreateTileAttribute(
1146 _fbb,
1147 multiples__);
1148}
1149
1150struct ResizeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1151 typedef ResizeAttributeBuilder Builder;
1152 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1153 VT_OUTPUT_SIZE = 4,
1154 VT_STRIDE = 6,
1155 VT_OFFSET = 8,
1156 VT_SHIFT = 10,
1157 VT_STRIDE_FP = 12,
1158 VT_OFFSET_FP = 14,
1159 VT_MODE = 16
1160 };
1161 const flatbuffers::Vector<int32_t> *output_size() const {
1162 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUT_SIZE);
1163 }
1164 const flatbuffers::Vector<int32_t> *stride() const {
1165 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
1166 }
1167 const flatbuffers::Vector<int32_t> *offset() const {
1168 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OFFSET);
1169 }
1170 int32_t shift() const {
1171 return GetField<int32_t>(VT_SHIFT, 0);
1172 }
1173 const flatbuffers::Vector<float> *stride_fp() const {
1174 return GetPointer<const flatbuffers::Vector<float> *>(VT_STRIDE_FP);
1175 }
1176 const flatbuffers::Vector<float> *offset_fp() const {
1177 return GetPointer<const flatbuffers::Vector<float> *>(VT_OFFSET_FP);
1178 }
1179 tosa::ResizeMode mode() const {
1180 return static_cast<tosa::ResizeMode>(GetField<uint32_t>(VT_MODE, 0));
1181 }
1182 bool Verify(flatbuffers::Verifier &verifier) const {
1183 return VerifyTableStart(verifier) &&
1184 VerifyOffset(verifier, VT_OUTPUT_SIZE) &&
1185 verifier.VerifyVector(output_size()) &&
1186 VerifyOffset(verifier, VT_STRIDE) &&
1187 verifier.VerifyVector(stride()) &&
1188 VerifyOffset(verifier, VT_OFFSET) &&
1189 verifier.VerifyVector(offset()) &&
1190 VerifyField<int32_t>(verifier, VT_SHIFT) &&
1191 VerifyOffset(verifier, VT_STRIDE_FP) &&
1192 verifier.VerifyVector(stride_fp()) &&
1193 VerifyOffset(verifier, VT_OFFSET_FP) &&
1194 verifier.VerifyVector(offset_fp()) &&
1195 VerifyField<uint32_t>(verifier, VT_MODE) &&
1196 verifier.EndTable();
1197 }
1198};
1199
1200struct ResizeAttributeBuilder {
1201 typedef ResizeAttribute Table;
1202 flatbuffers::FlatBufferBuilder &fbb_;
1203 flatbuffers::uoffset_t start_;
1204 void add_output_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_size) {
1205 fbb_.AddOffset(ResizeAttribute::VT_OUTPUT_SIZE, output_size);
1206 }
1207 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
1208 fbb_.AddOffset(ResizeAttribute::VT_STRIDE, stride);
1209 }
1210 void add_offset(flatbuffers::Offset<flatbuffers::Vector<int32_t>> offset) {
1211 fbb_.AddOffset(ResizeAttribute::VT_OFFSET, offset);
1212 }
1213 void add_shift(int32_t shift) {
1214 fbb_.AddElement<int32_t>(ResizeAttribute::VT_SHIFT, shift, 0);
1215 }
1216 void add_stride_fp(flatbuffers::Offset<flatbuffers::Vector<float>> stride_fp) {
1217 fbb_.AddOffset(ResizeAttribute::VT_STRIDE_FP, stride_fp);
1218 }
1219 void add_offset_fp(flatbuffers::Offset<flatbuffers::Vector<float>> offset_fp) {
1220 fbb_.AddOffset(ResizeAttribute::VT_OFFSET_FP, offset_fp);
1221 }
1222 void add_mode(tosa::ResizeMode mode) {
1223 fbb_.AddElement<uint32_t>(ResizeAttribute::VT_MODE, static_cast<uint32_t>(mode), 0);
1224 }
1225 explicit ResizeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1226 : fbb_(_fbb) {
1227 start_ = fbb_.StartTable();
1228 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001229 ResizeAttributeBuilder &operator=(const ResizeAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001230 flatbuffers::Offset<ResizeAttribute> Finish() {
1231 const auto end = fbb_.EndTable(start_);
1232 auto o = flatbuffers::Offset<ResizeAttribute>(end);
1233 return o;
1234 }
1235};
1236
1237inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttribute(
1238 flatbuffers::FlatBufferBuilder &_fbb,
1239 flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_size = 0,
1240 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
1241 flatbuffers::Offset<flatbuffers::Vector<int32_t>> offset = 0,
1242 int32_t shift = 0,
1243 flatbuffers::Offset<flatbuffers::Vector<float>> stride_fp = 0,
1244 flatbuffers::Offset<flatbuffers::Vector<float>> offset_fp = 0,
1245 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
1246 ResizeAttributeBuilder builder_(_fbb);
1247 builder_.add_mode(mode);
1248 builder_.add_offset_fp(offset_fp);
1249 builder_.add_stride_fp(stride_fp);
1250 builder_.add_shift(shift);
1251 builder_.add_offset(offset);
1252 builder_.add_stride(stride);
1253 builder_.add_output_size(output_size);
1254 return builder_.Finish();
1255}
1256
1257inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttributeDirect(
1258 flatbuffers::FlatBufferBuilder &_fbb,
1259 const std::vector<int32_t> *output_size = nullptr,
1260 const std::vector<int32_t> *stride = nullptr,
1261 const std::vector<int32_t> *offset = nullptr,
1262 int32_t shift = 0,
1263 const std::vector<float> *stride_fp = nullptr,
1264 const std::vector<float> *offset_fp = nullptr,
1265 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
1266 auto output_size__ = output_size ? _fbb.CreateVector<int32_t>(*output_size) : 0;
1267 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
1268 auto offset__ = offset ? _fbb.CreateVector<int32_t>(*offset) : 0;
1269 auto stride_fp__ = stride_fp ? _fbb.CreateVector<float>(*stride_fp) : 0;
1270 auto offset_fp__ = offset_fp ? _fbb.CreateVector<float>(*offset_fp) : 0;
1271 return tosa::CreateResizeAttribute(
1272 _fbb,
1273 output_size__,
1274 stride__,
1275 offset__,
1276 shift,
1277 stride_fp__,
1278 offset_fp__,
1279 mode);
1280}
1281
1282struct ClampAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1283 typedef ClampAttributeBuilder Builder;
1284 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1285 VT_MIN_INT = 4,
1286 VT_MAX_INT = 6,
1287 VT_MIN_FP = 8,
1288 VT_MAX_FP = 10
1289 };
1290 int32_t min_int() const {
1291 return GetField<int32_t>(VT_MIN_INT, 0);
1292 }
1293 int32_t max_int() const {
1294 return GetField<int32_t>(VT_MAX_INT, 0);
1295 }
1296 float min_fp() const {
1297 return GetField<float>(VT_MIN_FP, 0.0f);
1298 }
1299 float max_fp() const {
1300 return GetField<float>(VT_MAX_FP, 0.0f);
1301 }
1302 bool Verify(flatbuffers::Verifier &verifier) const {
1303 return VerifyTableStart(verifier) &&
1304 VerifyField<int32_t>(verifier, VT_MIN_INT) &&
1305 VerifyField<int32_t>(verifier, VT_MAX_INT) &&
1306 VerifyField<float>(verifier, VT_MIN_FP) &&
1307 VerifyField<float>(verifier, VT_MAX_FP) &&
1308 verifier.EndTable();
1309 }
1310};
1311
1312struct ClampAttributeBuilder {
1313 typedef ClampAttribute Table;
1314 flatbuffers::FlatBufferBuilder &fbb_;
1315 flatbuffers::uoffset_t start_;
1316 void add_min_int(int32_t min_int) {
1317 fbb_.AddElement<int32_t>(ClampAttribute::VT_MIN_INT, min_int, 0);
1318 }
1319 void add_max_int(int32_t max_int) {
1320 fbb_.AddElement<int32_t>(ClampAttribute::VT_MAX_INT, max_int, 0);
1321 }
1322 void add_min_fp(float min_fp) {
1323 fbb_.AddElement<float>(ClampAttribute::VT_MIN_FP, min_fp, 0.0f);
1324 }
1325 void add_max_fp(float max_fp) {
1326 fbb_.AddElement<float>(ClampAttribute::VT_MAX_FP, max_fp, 0.0f);
1327 }
1328 explicit ClampAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1329 : fbb_(_fbb) {
1330 start_ = fbb_.StartTable();
1331 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001332 ClampAttributeBuilder &operator=(const ClampAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001333 flatbuffers::Offset<ClampAttribute> Finish() {
1334 const auto end = fbb_.EndTable(start_);
1335 auto o = flatbuffers::Offset<ClampAttribute>(end);
1336 return o;
1337 }
1338};
1339
1340inline flatbuffers::Offset<ClampAttribute> CreateClampAttribute(
1341 flatbuffers::FlatBufferBuilder &_fbb,
1342 int32_t min_int = 0,
1343 int32_t max_int = 0,
1344 float min_fp = 0.0f,
1345 float max_fp = 0.0f) {
1346 ClampAttributeBuilder builder_(_fbb);
1347 builder_.add_max_fp(max_fp);
1348 builder_.add_min_fp(min_fp);
1349 builder_.add_max_int(max_int);
1350 builder_.add_min_int(min_int);
1351 return builder_.Finish();
1352}
1353
1354struct RescaleAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1355 typedef RescaleAttributeBuilder Builder;
1356 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1357 VT_INPUT_ZP = 4,
1358 VT_OUTPUT_ZP = 6,
1359 VT_MULTIPLIER = 8,
1360 VT_SHIFT = 10,
1361 VT_SCALE32 = 12,
1362 VT_DOUBLE_ROUND = 14,
1363 VT_PER_CHANNEL = 16
1364 };
1365 int32_t input_zp() const {
1366 return GetField<int32_t>(VT_INPUT_ZP, 0);
1367 }
1368 int32_t output_zp() const {
1369 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1370 }
1371 const flatbuffers::Vector<int32_t> *multiplier() const {
1372 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLIER);
1373 }
1374 const flatbuffers::Vector<int32_t> *shift() const {
1375 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHIFT);
1376 }
1377 bool scale32() const {
1378 return GetField<uint8_t>(VT_SCALE32, 0) != 0;
1379 }
1380 bool double_round() const {
1381 return GetField<uint8_t>(VT_DOUBLE_ROUND, 0) != 0;
1382 }
1383 bool per_channel() const {
1384 return GetField<uint8_t>(VT_PER_CHANNEL, 0) != 0;
1385 }
1386 bool Verify(flatbuffers::Verifier &verifier) const {
1387 return VerifyTableStart(verifier) &&
1388 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1389 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP) &&
1390 VerifyOffset(verifier, VT_MULTIPLIER) &&
1391 verifier.VerifyVector(multiplier()) &&
1392 VerifyOffset(verifier, VT_SHIFT) &&
1393 verifier.VerifyVector(shift()) &&
1394 VerifyField<uint8_t>(verifier, VT_SCALE32) &&
1395 VerifyField<uint8_t>(verifier, VT_DOUBLE_ROUND) &&
1396 VerifyField<uint8_t>(verifier, VT_PER_CHANNEL) &&
1397 verifier.EndTable();
1398 }
1399};
1400
1401struct RescaleAttributeBuilder {
1402 typedef RescaleAttribute Table;
1403 flatbuffers::FlatBufferBuilder &fbb_;
1404 flatbuffers::uoffset_t start_;
1405 void add_input_zp(int32_t input_zp) {
1406 fbb_.AddElement<int32_t>(RescaleAttribute::VT_INPUT_ZP, input_zp, 0);
1407 }
1408 void add_output_zp(int32_t output_zp) {
1409 fbb_.AddElement<int32_t>(RescaleAttribute::VT_OUTPUT_ZP, output_zp, 0);
1410 }
1411 void add_multiplier(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier) {
1412 fbb_.AddOffset(RescaleAttribute::VT_MULTIPLIER, multiplier);
1413 }
1414 void add_shift(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift) {
1415 fbb_.AddOffset(RescaleAttribute::VT_SHIFT, shift);
1416 }
1417 void add_scale32(bool scale32) {
1418 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_SCALE32, static_cast<uint8_t>(scale32), 0);
1419 }
1420 void add_double_round(bool double_round) {
1421 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_DOUBLE_ROUND, static_cast<uint8_t>(double_round), 0);
1422 }
1423 void add_per_channel(bool per_channel) {
1424 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_PER_CHANNEL, static_cast<uint8_t>(per_channel), 0);
1425 }
1426 explicit RescaleAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1427 : fbb_(_fbb) {
1428 start_ = fbb_.StartTable();
1429 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001430 RescaleAttributeBuilder &operator=(const RescaleAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001431 flatbuffers::Offset<RescaleAttribute> Finish() {
1432 const auto end = fbb_.EndTable(start_);
1433 auto o = flatbuffers::Offset<RescaleAttribute>(end);
1434 return o;
1435 }
1436};
1437
1438inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttribute(
1439 flatbuffers::FlatBufferBuilder &_fbb,
1440 int32_t input_zp = 0,
1441 int32_t output_zp = 0,
1442 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier = 0,
1443 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift = 0,
1444 bool scale32 = false,
1445 bool double_round = false,
1446 bool per_channel = false) {
1447 RescaleAttributeBuilder builder_(_fbb);
1448 builder_.add_shift(shift);
1449 builder_.add_multiplier(multiplier);
1450 builder_.add_output_zp(output_zp);
1451 builder_.add_input_zp(input_zp);
1452 builder_.add_per_channel(per_channel);
1453 builder_.add_double_round(double_round);
1454 builder_.add_scale32(scale32);
1455 return builder_.Finish();
1456}
1457
1458inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttributeDirect(
1459 flatbuffers::FlatBufferBuilder &_fbb,
1460 int32_t input_zp = 0,
1461 int32_t output_zp = 0,
1462 const std::vector<int32_t> *multiplier = nullptr,
1463 const std::vector<int32_t> *shift = nullptr,
1464 bool scale32 = false,
1465 bool double_round = false,
1466 bool per_channel = false) {
1467 auto multiplier__ = multiplier ? _fbb.CreateVector<int32_t>(*multiplier) : 0;
1468 auto shift__ = shift ? _fbb.CreateVector<int32_t>(*shift) : 0;
1469 return tosa::CreateRescaleAttribute(
1470 _fbb,
1471 input_zp,
1472 output_zp,
1473 multiplier__,
1474 shift__,
1475 scale32,
1476 double_round,
1477 per_channel);
1478}
1479
1480struct MulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1481 typedef MulAttributeBuilder Builder;
1482 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1483 VT_SHIFT = 4
1484 };
1485 int32_t shift() const {
1486 return GetField<int32_t>(VT_SHIFT, 0);
1487 }
1488 bool Verify(flatbuffers::Verifier &verifier) const {
1489 return VerifyTableStart(verifier) &&
1490 VerifyField<int32_t>(verifier, VT_SHIFT) &&
1491 verifier.EndTable();
1492 }
1493};
1494
1495struct MulAttributeBuilder {
1496 typedef MulAttribute Table;
1497 flatbuffers::FlatBufferBuilder &fbb_;
1498 flatbuffers::uoffset_t start_;
1499 void add_shift(int32_t shift) {
1500 fbb_.AddElement<int32_t>(MulAttribute::VT_SHIFT, shift, 0);
1501 }
1502 explicit MulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1503 : fbb_(_fbb) {
1504 start_ = fbb_.StartTable();
1505 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001506 MulAttributeBuilder &operator=(const MulAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001507 flatbuffers::Offset<MulAttribute> Finish() {
1508 const auto end = fbb_.EndTable(start_);
1509 auto o = flatbuffers::Offset<MulAttribute>(end);
1510 return o;
1511 }
1512};
1513
1514inline flatbuffers::Offset<MulAttribute> CreateMulAttribute(
1515 flatbuffers::FlatBufferBuilder &_fbb,
1516 int32_t shift = 0) {
1517 MulAttributeBuilder builder_(_fbb);
1518 builder_.add_shift(shift);
1519 return builder_.Finish();
1520}
1521
1522struct ArithmeticRightShiftAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1523 typedef ArithmeticRightShiftAttributeBuilder Builder;
1524 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1525 VT_ROUND = 4
1526 };
1527 bool round() const {
1528 return GetField<uint8_t>(VT_ROUND, 0) != 0;
1529 }
1530 bool Verify(flatbuffers::Verifier &verifier) const {
1531 return VerifyTableStart(verifier) &&
1532 VerifyField<uint8_t>(verifier, VT_ROUND) &&
1533 verifier.EndTable();
1534 }
1535};
1536
1537struct ArithmeticRightShiftAttributeBuilder {
1538 typedef ArithmeticRightShiftAttribute Table;
1539 flatbuffers::FlatBufferBuilder &fbb_;
1540 flatbuffers::uoffset_t start_;
1541 void add_round(bool round) {
1542 fbb_.AddElement<uint8_t>(ArithmeticRightShiftAttribute::VT_ROUND, static_cast<uint8_t>(round), 0);
1543 }
1544 explicit ArithmeticRightShiftAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1545 : fbb_(_fbb) {
1546 start_ = fbb_.StartTable();
1547 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001548 ArithmeticRightShiftAttributeBuilder &operator=(const ArithmeticRightShiftAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001549 flatbuffers::Offset<ArithmeticRightShiftAttribute> Finish() {
1550 const auto end = fbb_.EndTable(start_);
1551 auto o = flatbuffers::Offset<ArithmeticRightShiftAttribute>(end);
1552 return o;
1553 }
1554};
1555
1556inline flatbuffers::Offset<ArithmeticRightShiftAttribute> CreateArithmeticRightShiftAttribute(
1557 flatbuffers::FlatBufferBuilder &_fbb,
1558 bool round = false) {
1559 ArithmeticRightShiftAttributeBuilder builder_(_fbb);
1560 builder_.add_round(round);
1561 return builder_.Finish();
1562}
1563
1564struct CondIfAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1565 typedef CondIfAttributeBuilder Builder;
1566 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1567 VT_THEN_BRANCH = 4,
1568 VT_ELSE_BRANCH = 6
1569 };
1570 const flatbuffers::String *then_branch() const {
1571 return GetPointer<const flatbuffers::String *>(VT_THEN_BRANCH);
1572 }
1573 const flatbuffers::String *else_branch() const {
1574 return GetPointer<const flatbuffers::String *>(VT_ELSE_BRANCH);
1575 }
1576 bool Verify(flatbuffers::Verifier &verifier) const {
1577 return VerifyTableStart(verifier) &&
1578 VerifyOffset(verifier, VT_THEN_BRANCH) &&
1579 verifier.VerifyString(then_branch()) &&
1580 VerifyOffset(verifier, VT_ELSE_BRANCH) &&
1581 verifier.VerifyString(else_branch()) &&
1582 verifier.EndTable();
1583 }
1584};
1585
1586struct CondIfAttributeBuilder {
1587 typedef CondIfAttribute Table;
1588 flatbuffers::FlatBufferBuilder &fbb_;
1589 flatbuffers::uoffset_t start_;
1590 void add_then_branch(flatbuffers::Offset<flatbuffers::String> then_branch) {
1591 fbb_.AddOffset(CondIfAttribute::VT_THEN_BRANCH, then_branch);
1592 }
1593 void add_else_branch(flatbuffers::Offset<flatbuffers::String> else_branch) {
1594 fbb_.AddOffset(CondIfAttribute::VT_ELSE_BRANCH, else_branch);
1595 }
1596 explicit CondIfAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1597 : fbb_(_fbb) {
1598 start_ = fbb_.StartTable();
1599 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001600 CondIfAttributeBuilder &operator=(const CondIfAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001601 flatbuffers::Offset<CondIfAttribute> Finish() {
1602 const auto end = fbb_.EndTable(start_);
1603 auto o = flatbuffers::Offset<CondIfAttribute>(end);
1604 return o;
1605 }
1606};
1607
1608inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttribute(
1609 flatbuffers::FlatBufferBuilder &_fbb,
1610 flatbuffers::Offset<flatbuffers::String> then_branch = 0,
1611 flatbuffers::Offset<flatbuffers::String> else_branch = 0) {
1612 CondIfAttributeBuilder builder_(_fbb);
1613 builder_.add_else_branch(else_branch);
1614 builder_.add_then_branch(then_branch);
1615 return builder_.Finish();
1616}
1617
1618inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttributeDirect(
1619 flatbuffers::FlatBufferBuilder &_fbb,
1620 const char *then_branch = nullptr,
1621 const char *else_branch = nullptr) {
1622 auto then_branch__ = then_branch ? _fbb.CreateString(then_branch) : 0;
1623 auto else_branch__ = else_branch ? _fbb.CreateString(else_branch) : 0;
1624 return tosa::CreateCondIfAttribute(
1625 _fbb,
1626 then_branch__,
1627 else_branch__);
1628}
1629
1630struct WhileLoopAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1631 typedef WhileLoopAttributeBuilder Builder;
1632 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1633 VT_COND_BRANCH = 4,
1634 VT_BODY_BRANCH = 6
1635 };
1636 const flatbuffers::String *cond_branch() const {
1637 return GetPointer<const flatbuffers::String *>(VT_COND_BRANCH);
1638 }
1639 const flatbuffers::String *body_branch() const {
1640 return GetPointer<const flatbuffers::String *>(VT_BODY_BRANCH);
1641 }
1642 bool Verify(flatbuffers::Verifier &verifier) const {
1643 return VerifyTableStart(verifier) &&
1644 VerifyOffset(verifier, VT_COND_BRANCH) &&
1645 verifier.VerifyString(cond_branch()) &&
1646 VerifyOffset(verifier, VT_BODY_BRANCH) &&
1647 verifier.VerifyString(body_branch()) &&
1648 verifier.EndTable();
1649 }
1650};
1651
1652struct WhileLoopAttributeBuilder {
1653 typedef WhileLoopAttribute Table;
1654 flatbuffers::FlatBufferBuilder &fbb_;
1655 flatbuffers::uoffset_t start_;
1656 void add_cond_branch(flatbuffers::Offset<flatbuffers::String> cond_branch) {
1657 fbb_.AddOffset(WhileLoopAttribute::VT_COND_BRANCH, cond_branch);
1658 }
1659 void add_body_branch(flatbuffers::Offset<flatbuffers::String> body_branch) {
1660 fbb_.AddOffset(WhileLoopAttribute::VT_BODY_BRANCH, body_branch);
1661 }
1662 explicit WhileLoopAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1663 : fbb_(_fbb) {
1664 start_ = fbb_.StartTable();
1665 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001666 WhileLoopAttributeBuilder &operator=(const WhileLoopAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001667 flatbuffers::Offset<WhileLoopAttribute> Finish() {
1668 const auto end = fbb_.EndTable(start_);
1669 auto o = flatbuffers::Offset<WhileLoopAttribute>(end);
1670 return o;
1671 }
1672};
1673
1674inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttribute(
1675 flatbuffers::FlatBufferBuilder &_fbb,
1676 flatbuffers::Offset<flatbuffers::String> cond_branch = 0,
1677 flatbuffers::Offset<flatbuffers::String> body_branch = 0) {
1678 WhileLoopAttributeBuilder builder_(_fbb);
1679 builder_.add_body_branch(body_branch);
1680 builder_.add_cond_branch(cond_branch);
1681 return builder_.Finish();
1682}
1683
1684inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttributeDirect(
1685 flatbuffers::FlatBufferBuilder &_fbb,
1686 const char *cond_branch = nullptr,
1687 const char *body_branch = nullptr) {
1688 auto cond_branch__ = cond_branch ? _fbb.CreateString(cond_branch) : 0;
1689 auto body_branch__ = body_branch ? _fbb.CreateString(body_branch) : 0;
1690 return tosa::CreateWhileLoopAttribute(
1691 _fbb,
1692 cond_branch__,
1693 body_branch__);
1694}
1695
Kevin Cheng38d214c2021-10-15 15:49:19 -07001696struct TransposeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1697 typedef TransposeAttributeBuilder Builder;
1698 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001699 VT_PERMS = 4
Kevin Cheng38d214c2021-10-15 15:49:19 -07001700 };
TatWai Chong7be71652022-05-10 17:26:20 -07001701 const flatbuffers::Vector<int32_t> *perms() const {
1702 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PERMS);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001703 }
1704 bool Verify(flatbuffers::Verifier &verifier) const {
1705 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001706 VerifyOffset(verifier, VT_PERMS) &&
1707 verifier.VerifyVector(perms()) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -07001708 verifier.EndTable();
1709 }
1710};
1711
1712struct TransposeAttributeBuilder {
1713 typedef TransposeAttribute Table;
1714 flatbuffers::FlatBufferBuilder &fbb_;
1715 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001716 void add_perms(flatbuffers::Offset<flatbuffers::Vector<int32_t>> perms) {
1717 fbb_.AddOffset(TransposeAttribute::VT_PERMS, perms);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001718 }
1719 explicit TransposeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1720 : fbb_(_fbb) {
1721 start_ = fbb_.StartTable();
1722 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001723 TransposeAttributeBuilder &operator=(const TransposeAttributeBuilder &);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001724 flatbuffers::Offset<TransposeAttribute> Finish() {
1725 const auto end = fbb_.EndTable(start_);
1726 auto o = flatbuffers::Offset<TransposeAttribute>(end);
1727 return o;
1728 }
1729};
1730
1731inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttribute(
1732 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001733 flatbuffers::Offset<flatbuffers::Vector<int32_t>> perms = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001734 TransposeAttributeBuilder builder_(_fbb);
TatWai Chong7be71652022-05-10 17:26:20 -07001735 builder_.add_perms(perms);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001736 return builder_.Finish();
1737}
1738
1739inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttributeDirect(
1740 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001741 const std::vector<int32_t> *perms = nullptr) {
1742 auto perms__ = perms ? _fbb.CreateVector<int32_t>(*perms) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001743 return tosa::CreateTransposeAttribute(
1744 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001745 perms__);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001746}
1747
1748struct TableAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1749 typedef TableAttributeBuilder Builder;
1750 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1751 VT_TABLE = 4
1752 };
TatWai Chong7be71652022-05-10 17:26:20 -07001753 const flatbuffers::Vector<int16_t> *table() const {
1754 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_TABLE);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001755 }
1756 bool Verify(flatbuffers::Verifier &verifier) const {
1757 return VerifyTableStart(verifier) &&
1758 VerifyOffset(verifier, VT_TABLE) &&
1759 verifier.VerifyVector(table()) &&
1760 verifier.EndTable();
1761 }
1762};
1763
1764struct TableAttributeBuilder {
1765 typedef TableAttribute Table;
1766 flatbuffers::FlatBufferBuilder &fbb_;
1767 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001768 void add_table(flatbuffers::Offset<flatbuffers::Vector<int16_t>> table) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001769 fbb_.AddOffset(TableAttribute::VT_TABLE, table);
1770 }
1771 explicit TableAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1772 : fbb_(_fbb) {
1773 start_ = fbb_.StartTable();
1774 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001775 TableAttributeBuilder &operator=(const TableAttributeBuilder &);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001776 flatbuffers::Offset<TableAttribute> Finish() {
1777 const auto end = fbb_.EndTable(start_);
1778 auto o = flatbuffers::Offset<TableAttribute>(end);
1779 return o;
1780 }
1781};
1782
1783inline flatbuffers::Offset<TableAttribute> CreateTableAttribute(
1784 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001785 flatbuffers::Offset<flatbuffers::Vector<int16_t>> table = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001786 TableAttributeBuilder builder_(_fbb);
1787 builder_.add_table(table);
1788 return builder_.Finish();
1789}
1790
1791inline flatbuffers::Offset<TableAttribute> CreateTableAttributeDirect(
1792 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001793 const std::vector<int16_t> *table = nullptr) {
1794 auto table__ = table ? _fbb.CreateVector<int16_t>(*table) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001795 return tosa::CreateTableAttribute(
1796 _fbb,
1797 table__);
1798}
1799
Eric Kunze2364dcd2021-04-26 11:06:57 -07001800struct UnaryQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1801 typedef UnaryQuantInfoBuilder Builder;
1802 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1803 VT_INPUT_ZP = 4,
1804 VT_OUTPUT_ZP = 6
1805 };
1806 int32_t input_zp() const {
1807 return GetField<int32_t>(VT_INPUT_ZP, 0);
1808 }
1809 int32_t output_zp() const {
1810 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1811 }
1812 bool Verify(flatbuffers::Verifier &verifier) const {
1813 return VerifyTableStart(verifier) &&
1814 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1815 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP) &&
1816 verifier.EndTable();
1817 }
1818};
1819
1820struct UnaryQuantInfoBuilder {
1821 typedef UnaryQuantInfo Table;
1822 flatbuffers::FlatBufferBuilder &fbb_;
1823 flatbuffers::uoffset_t start_;
1824 void add_input_zp(int32_t input_zp) {
1825 fbb_.AddElement<int32_t>(UnaryQuantInfo::VT_INPUT_ZP, input_zp, 0);
1826 }
1827 void add_output_zp(int32_t output_zp) {
1828 fbb_.AddElement<int32_t>(UnaryQuantInfo::VT_OUTPUT_ZP, output_zp, 0);
1829 }
1830 explicit UnaryQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1831 : fbb_(_fbb) {
1832 start_ = fbb_.StartTable();
1833 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001834 UnaryQuantInfoBuilder &operator=(const UnaryQuantInfoBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001835 flatbuffers::Offset<UnaryQuantInfo> Finish() {
1836 const auto end = fbb_.EndTable(start_);
1837 auto o = flatbuffers::Offset<UnaryQuantInfo>(end);
1838 return o;
1839 }
1840};
1841
1842inline flatbuffers::Offset<UnaryQuantInfo> CreateUnaryQuantInfo(
1843 flatbuffers::FlatBufferBuilder &_fbb,
1844 int32_t input_zp = 0,
1845 int32_t output_zp = 0) {
1846 UnaryQuantInfoBuilder builder_(_fbb);
1847 builder_.add_output_zp(output_zp);
1848 builder_.add_input_zp(input_zp);
1849 return builder_.Finish();
1850}
1851
1852struct ConvQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1853 typedef ConvQuantInfoBuilder Builder;
1854 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1855 VT_INPUT_ZP = 4,
1856 VT_WEIGHT_ZP = 6
1857 };
1858 int32_t input_zp() const {
1859 return GetField<int32_t>(VT_INPUT_ZP, 0);
1860 }
1861 int32_t weight_zp() const {
1862 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
1863 }
1864 bool Verify(flatbuffers::Verifier &verifier) const {
1865 return VerifyTableStart(verifier) &&
1866 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1867 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP) &&
1868 verifier.EndTable();
1869 }
1870};
1871
1872struct ConvQuantInfoBuilder {
1873 typedef ConvQuantInfo Table;
1874 flatbuffers::FlatBufferBuilder &fbb_;
1875 flatbuffers::uoffset_t start_;
1876 void add_input_zp(int32_t input_zp) {
1877 fbb_.AddElement<int32_t>(ConvQuantInfo::VT_INPUT_ZP, input_zp, 0);
1878 }
1879 void add_weight_zp(int32_t weight_zp) {
1880 fbb_.AddElement<int32_t>(ConvQuantInfo::VT_WEIGHT_ZP, weight_zp, 0);
1881 }
1882 explicit ConvQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1883 : fbb_(_fbb) {
1884 start_ = fbb_.StartTable();
1885 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001886 ConvQuantInfoBuilder &operator=(const ConvQuantInfoBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001887 flatbuffers::Offset<ConvQuantInfo> Finish() {
1888 const auto end = fbb_.EndTable(start_);
1889 auto o = flatbuffers::Offset<ConvQuantInfo>(end);
1890 return o;
1891 }
1892};
1893
1894inline flatbuffers::Offset<ConvQuantInfo> CreateConvQuantInfo(
1895 flatbuffers::FlatBufferBuilder &_fbb,
1896 int32_t input_zp = 0,
1897 int32_t weight_zp = 0) {
1898 ConvQuantInfoBuilder builder_(_fbb);
1899 builder_.add_weight_zp(weight_zp);
1900 builder_.add_input_zp(input_zp);
1901 return builder_.Finish();
1902}
1903
1904struct MatMulQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1905 typedef MatMulQuantInfoBuilder Builder;
1906 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1907 VT_A_ZP = 4,
1908 VT_B_ZP = 6
1909 };
1910 int32_t a_zp() const {
1911 return GetField<int32_t>(VT_A_ZP, 0);
1912 }
1913 int32_t b_zp() const {
1914 return GetField<int32_t>(VT_B_ZP, 0);
1915 }
1916 bool Verify(flatbuffers::Verifier &verifier) const {
1917 return VerifyTableStart(verifier) &&
1918 VerifyField<int32_t>(verifier, VT_A_ZP) &&
1919 VerifyField<int32_t>(verifier, VT_B_ZP) &&
1920 verifier.EndTable();
1921 }
1922};
1923
1924struct MatMulQuantInfoBuilder {
1925 typedef MatMulQuantInfo Table;
1926 flatbuffers::FlatBufferBuilder &fbb_;
1927 flatbuffers::uoffset_t start_;
1928 void add_a_zp(int32_t a_zp) {
1929 fbb_.AddElement<int32_t>(MatMulQuantInfo::VT_A_ZP, a_zp, 0);
1930 }
1931 void add_b_zp(int32_t b_zp) {
1932 fbb_.AddElement<int32_t>(MatMulQuantInfo::VT_B_ZP, b_zp, 0);
1933 }
1934 explicit MatMulQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1935 : fbb_(_fbb) {
1936 start_ = fbb_.StartTable();
1937 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001938 MatMulQuantInfoBuilder &operator=(const MatMulQuantInfoBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001939 flatbuffers::Offset<MatMulQuantInfo> Finish() {
1940 const auto end = fbb_.EndTable(start_);
1941 auto o = flatbuffers::Offset<MatMulQuantInfo>(end);
1942 return o;
1943 }
1944};
1945
1946inline flatbuffers::Offset<MatMulQuantInfo> CreateMatMulQuantInfo(
1947 flatbuffers::FlatBufferBuilder &_fbb,
1948 int32_t a_zp = 0,
1949 int32_t b_zp = 0) {
1950 MatMulQuantInfoBuilder builder_(_fbb);
1951 builder_.add_b_zp(b_zp);
1952 builder_.add_a_zp(a_zp);
1953 return builder_.Finish();
1954}
1955
1956struct PadQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1957 typedef PadQuantInfoBuilder Builder;
1958 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1959 VT_INPUT_ZP = 4
1960 };
1961 int32_t input_zp() const {
1962 return GetField<int32_t>(VT_INPUT_ZP, 0);
1963 }
1964 bool Verify(flatbuffers::Verifier &verifier) const {
1965 return VerifyTableStart(verifier) &&
1966 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1967 verifier.EndTable();
1968 }
1969};
1970
1971struct PadQuantInfoBuilder {
1972 typedef PadQuantInfo Table;
1973 flatbuffers::FlatBufferBuilder &fbb_;
1974 flatbuffers::uoffset_t start_;
1975 void add_input_zp(int32_t input_zp) {
1976 fbb_.AddElement<int32_t>(PadQuantInfo::VT_INPUT_ZP, input_zp, 0);
1977 }
1978 explicit PadQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1979 : fbb_(_fbb) {
1980 start_ = fbb_.StartTable();
1981 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001982 PadQuantInfoBuilder &operator=(const PadQuantInfoBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001983 flatbuffers::Offset<PadQuantInfo> Finish() {
1984 const auto end = fbb_.EndTable(start_);
1985 auto o = flatbuffers::Offset<PadQuantInfo>(end);
1986 return o;
1987 }
1988};
1989
1990inline flatbuffers::Offset<PadQuantInfo> CreatePadQuantInfo(
1991 flatbuffers::FlatBufferBuilder &_fbb,
1992 int32_t input_zp = 0) {
1993 PadQuantInfoBuilder builder_(_fbb);
1994 builder_.add_input_zp(input_zp);
1995 return builder_.Finish();
1996}
1997
1998struct Version FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1999 typedef VersionBuilder Builder;
2000 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2001 VT__MAJOR = 4,
2002 VT__MINOR = 6,
2003 VT__PATCH = 8,
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002004 VT__DRAFT = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07002005 };
2006 int32_t _major() const {
2007 return GetField<int32_t>(VT__MAJOR, 0);
2008 }
2009 int32_t _minor() const {
Eric Kunzee6596402022-06-09 21:27:36 +00002010 return GetField<int32_t>(VT__MINOR, 25);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002011 }
2012 int32_t _patch() const {
2013 return GetField<int32_t>(VT__PATCH, 0);
2014 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002015 bool _draft() const {
Eric Kunzea687b612021-11-03 17:02:57 -07002016 return GetField<uint8_t>(VT__DRAFT, 1) != 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002017 }
2018 bool Verify(flatbuffers::Verifier &verifier) const {
2019 return VerifyTableStart(verifier) &&
2020 VerifyField<int32_t>(verifier, VT__MAJOR) &&
2021 VerifyField<int32_t>(verifier, VT__MINOR) &&
2022 VerifyField<int32_t>(verifier, VT__PATCH) &&
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002023 VerifyField<uint8_t>(verifier, VT__DRAFT) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002024 verifier.EndTable();
2025 }
2026};
2027
2028struct VersionBuilder {
2029 typedef Version Table;
2030 flatbuffers::FlatBufferBuilder &fbb_;
2031 flatbuffers::uoffset_t start_;
2032 void add__major(int32_t _major) {
2033 fbb_.AddElement<int32_t>(Version::VT__MAJOR, _major, 0);
2034 }
2035 void add__minor(int32_t _minor) {
Eric Kunzee6596402022-06-09 21:27:36 +00002036 fbb_.AddElement<int32_t>(Version::VT__MINOR, _minor, 25);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002037 }
2038 void add__patch(int32_t _patch) {
2039 fbb_.AddElement<int32_t>(Version::VT__PATCH, _patch, 0);
2040 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002041 void add__draft(bool _draft) {
Eric Kunzea687b612021-11-03 17:02:57 -07002042 fbb_.AddElement<uint8_t>(Version::VT__DRAFT, static_cast<uint8_t>(_draft), 1);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002043 }
2044 explicit VersionBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2045 : fbb_(_fbb) {
2046 start_ = fbb_.StartTable();
2047 }
Eric Kunzeae906de2022-05-30 22:40:47 -07002048 VersionBuilder &operator=(const VersionBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002049 flatbuffers::Offset<Version> Finish() {
2050 const auto end = fbb_.EndTable(start_);
2051 auto o = flatbuffers::Offset<Version>(end);
2052 return o;
2053 }
2054};
2055
2056inline flatbuffers::Offset<Version> CreateVersion(
2057 flatbuffers::FlatBufferBuilder &_fbb,
2058 int32_t _major = 0,
Eric Kunzee6596402022-06-09 21:27:36 +00002059 int32_t _minor = 25,
Eric Kunze2364dcd2021-04-26 11:06:57 -07002060 int32_t _patch = 0,
Eric Kunzea687b612021-11-03 17:02:57 -07002061 bool _draft = true) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002062 VersionBuilder builder_(_fbb);
2063 builder_.add__patch(_patch);
2064 builder_.add__minor(_minor);
2065 builder_.add__major(_major);
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002066 builder_.add__draft(_draft);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002067 return builder_.Finish();
2068}
2069
2070struct TosaTensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2071 typedef TosaTensorBuilder Builder;
2072 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2073 VT_NAME = 4,
2074 VT_SHAPE = 6,
2075 VT_TYPE = 8,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002076 VT_DATA = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07002077 };
2078 const flatbuffers::String *name() const {
2079 return GetPointer<const flatbuffers::String *>(VT_NAME);
2080 }
2081 const flatbuffers::Vector<int32_t> *shape() const {
2082 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHAPE);
2083 }
2084 tosa::DType type() const {
2085 return static_cast<tosa::DType>(GetField<uint32_t>(VT_TYPE, 0));
2086 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002087 const flatbuffers::Vector<uint8_t> *data() const {
2088 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_DATA);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002089 }
2090 bool Verify(flatbuffers::Verifier &verifier) const {
2091 return VerifyTableStart(verifier) &&
2092 VerifyOffset(verifier, VT_NAME) &&
2093 verifier.VerifyString(name()) &&
2094 VerifyOffset(verifier, VT_SHAPE) &&
2095 verifier.VerifyVector(shape()) &&
2096 VerifyField<uint32_t>(verifier, VT_TYPE) &&
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002097 VerifyOffset(verifier, VT_DATA) &&
2098 verifier.VerifyVector(data()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002099 verifier.EndTable();
2100 }
2101};
2102
2103struct TosaTensorBuilder {
2104 typedef TosaTensor Table;
2105 flatbuffers::FlatBufferBuilder &fbb_;
2106 flatbuffers::uoffset_t start_;
2107 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2108 fbb_.AddOffset(TosaTensor::VT_NAME, name);
2109 }
2110 void add_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape) {
2111 fbb_.AddOffset(TosaTensor::VT_SHAPE, shape);
2112 }
2113 void add_type(tosa::DType type) {
2114 fbb_.AddElement<uint32_t>(TosaTensor::VT_TYPE, static_cast<uint32_t>(type), 0);
2115 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002116 void add_data(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data) {
2117 fbb_.AddOffset(TosaTensor::VT_DATA, data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002118 }
2119 explicit TosaTensorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2120 : fbb_(_fbb) {
2121 start_ = fbb_.StartTable();
2122 }
Eric Kunzeae906de2022-05-30 22:40:47 -07002123 TosaTensorBuilder &operator=(const TosaTensorBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002124 flatbuffers::Offset<TosaTensor> Finish() {
2125 const auto end = fbb_.EndTable(start_);
2126 auto o = flatbuffers::Offset<TosaTensor>(end);
2127 return o;
2128 }
2129};
2130
2131inline flatbuffers::Offset<TosaTensor> CreateTosaTensor(
2132 flatbuffers::FlatBufferBuilder &_fbb,
2133 flatbuffers::Offset<flatbuffers::String> name = 0,
2134 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape = 0,
2135 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002136 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002137 TosaTensorBuilder builder_(_fbb);
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002138 builder_.add_data(data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002139 builder_.add_type(type);
2140 builder_.add_shape(shape);
2141 builder_.add_name(name);
2142 return builder_.Finish();
2143}
2144
2145inline flatbuffers::Offset<TosaTensor> CreateTosaTensorDirect(
2146 flatbuffers::FlatBufferBuilder &_fbb,
2147 const char *name = nullptr,
2148 const std::vector<int32_t> *shape = nullptr,
2149 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002150 const std::vector<uint8_t> *data = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002151 auto name__ = name ? _fbb.CreateString(name) : 0;
2152 auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0;
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002153 if (data) { _fbb.ForceVectorAlignment(data->size(), sizeof(uint8_t), 8); }
2154 auto data__ = data ? _fbb.CreateVector<uint8_t>(*data) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002155 return tosa::CreateTosaTensor(
2156 _fbb,
2157 name__,
2158 shape__,
2159 type,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002160 data__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002161}
2162
2163struct TosaOperator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2164 typedef TosaOperatorBuilder Builder;
2165 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2166 VT_OP = 4,
2167 VT_ATTRIBUTE_TYPE = 6,
2168 VT_ATTRIBUTE = 8,
2169 VT_INPUTS = 10,
2170 VT_OUTPUTS = 12,
2171 VT_QUANT_INFO_TYPE = 14,
2172 VT_QUANT_INFO = 16
2173 };
2174 tosa::Op op() const {
2175 return static_cast<tosa::Op>(GetField<uint32_t>(VT_OP, 0));
2176 }
2177 tosa::Attribute attribute_type() const {
2178 return static_cast<tosa::Attribute>(GetField<uint8_t>(VT_ATTRIBUTE_TYPE, 0));
2179 }
2180 const void *attribute() const {
2181 return GetPointer<const void *>(VT_ATTRIBUTE);
2182 }
2183 template<typename T> const T *attribute_as() const;
Kevin Cheng79a41992021-08-31 16:04:40 -07002184 const tosa::PoolAttribute *attribute_as_PoolAttribute() const {
2185 return attribute_type() == tosa::Attribute_PoolAttribute ? static_cast<const tosa::PoolAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002186 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002187 const tosa::ConvAttribute *attribute_as_ConvAttribute() const {
2188 return attribute_type() == tosa::Attribute_ConvAttribute ? static_cast<const tosa::ConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002189 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002190 const tosa::TransposeConvAttribute *attribute_as_TransposeConvAttribute() const {
2191 return attribute_type() == tosa::Attribute_TransposeConvAttribute ? static_cast<const tosa::TransposeConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002192 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002193 const tosa::PadAttribute *attribute_as_PadAttribute() const {
2194 return attribute_type() == tosa::Attribute_PadAttribute ? static_cast<const tosa::PadAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002195 }
2196 const tosa::AxisAttribute *attribute_as_AxisAttribute() const {
2197 return attribute_type() == tosa::Attribute_AxisAttribute ? static_cast<const tosa::AxisAttribute *>(attribute()) : nullptr;
2198 }
2199 const tosa::ReshapeAttribute *attribute_as_ReshapeAttribute() const {
2200 return attribute_type() == tosa::Attribute_ReshapeAttribute ? static_cast<const tosa::ReshapeAttribute *>(attribute()) : nullptr;
2201 }
2202 const tosa::SliceAttribute *attribute_as_SliceAttribute() const {
2203 return attribute_type() == tosa::Attribute_SliceAttribute ? static_cast<const tosa::SliceAttribute *>(attribute()) : nullptr;
2204 }
2205 const tosa::TileAttribute *attribute_as_TileAttribute() const {
2206 return attribute_type() == tosa::Attribute_TileAttribute ? static_cast<const tosa::TileAttribute *>(attribute()) : nullptr;
2207 }
2208 const tosa::ResizeAttribute *attribute_as_ResizeAttribute() const {
2209 return attribute_type() == tosa::Attribute_ResizeAttribute ? static_cast<const tosa::ResizeAttribute *>(attribute()) : nullptr;
2210 }
2211 const tosa::ClampAttribute *attribute_as_ClampAttribute() const {
2212 return attribute_type() == tosa::Attribute_ClampAttribute ? static_cast<const tosa::ClampAttribute *>(attribute()) : nullptr;
2213 }
2214 const tosa::RescaleAttribute *attribute_as_RescaleAttribute() const {
2215 return attribute_type() == tosa::Attribute_RescaleAttribute ? static_cast<const tosa::RescaleAttribute *>(attribute()) : nullptr;
2216 }
2217 const tosa::MulAttribute *attribute_as_MulAttribute() const {
2218 return attribute_type() == tosa::Attribute_MulAttribute ? static_cast<const tosa::MulAttribute *>(attribute()) : nullptr;
2219 }
2220 const tosa::ArithmeticRightShiftAttribute *attribute_as_ArithmeticRightShiftAttribute() const {
2221 return attribute_type() == tosa::Attribute_ArithmeticRightShiftAttribute ? static_cast<const tosa::ArithmeticRightShiftAttribute *>(attribute()) : nullptr;
2222 }
2223 const tosa::CondIfAttribute *attribute_as_CondIfAttribute() const {
2224 return attribute_type() == tosa::Attribute_CondIfAttribute ? static_cast<const tosa::CondIfAttribute *>(attribute()) : nullptr;
2225 }
2226 const tosa::WhileLoopAttribute *attribute_as_WhileLoopAttribute() const {
2227 return attribute_type() == tosa::Attribute_WhileLoopAttribute ? static_cast<const tosa::WhileLoopAttribute *>(attribute()) : nullptr;
2228 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002229 const tosa::TransposeAttribute *attribute_as_TransposeAttribute() const {
2230 return attribute_type() == tosa::Attribute_TransposeAttribute ? static_cast<const tosa::TransposeAttribute *>(attribute()) : nullptr;
2231 }
2232 const tosa::TableAttribute *attribute_as_TableAttribute() const {
2233 return attribute_type() == tosa::Attribute_TableAttribute ? static_cast<const tosa::TableAttribute *>(attribute()) : nullptr;
2234 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002235 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2236 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2237 }
2238 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2239 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2240 }
2241 tosa::QuantInfo quant_info_type() const {
2242 return static_cast<tosa::QuantInfo>(GetField<uint8_t>(VT_QUANT_INFO_TYPE, 0));
2243 }
2244 const void *quant_info() const {
2245 return GetPointer<const void *>(VT_QUANT_INFO);
2246 }
2247 template<typename T> const T *quant_info_as() const;
2248 const tosa::UnaryQuantInfo *quant_info_as_UnaryQuantInfo() const {
2249 return quant_info_type() == tosa::QuantInfo_UnaryQuantInfo ? static_cast<const tosa::UnaryQuantInfo *>(quant_info()) : nullptr;
2250 }
2251 const tosa::ConvQuantInfo *quant_info_as_ConvQuantInfo() const {
2252 return quant_info_type() == tosa::QuantInfo_ConvQuantInfo ? static_cast<const tosa::ConvQuantInfo *>(quant_info()) : nullptr;
2253 }
2254 const tosa::MatMulQuantInfo *quant_info_as_MatMulQuantInfo() const {
2255 return quant_info_type() == tosa::QuantInfo_MatMulQuantInfo ? static_cast<const tosa::MatMulQuantInfo *>(quant_info()) : nullptr;
2256 }
2257 const tosa::PadQuantInfo *quant_info_as_PadQuantInfo() const {
2258 return quant_info_type() == tosa::QuantInfo_PadQuantInfo ? static_cast<const tosa::PadQuantInfo *>(quant_info()) : nullptr;
2259 }
2260 bool Verify(flatbuffers::Verifier &verifier) const {
2261 return VerifyTableStart(verifier) &&
2262 VerifyField<uint32_t>(verifier, VT_OP) &&
2263 VerifyField<uint8_t>(verifier, VT_ATTRIBUTE_TYPE) &&
2264 VerifyOffset(verifier, VT_ATTRIBUTE) &&
2265 VerifyAttribute(verifier, attribute(), attribute_type()) &&
2266 VerifyOffset(verifier, VT_INPUTS) &&
2267 verifier.VerifyVector(inputs()) &&
2268 verifier.VerifyVectorOfStrings(inputs()) &&
2269 VerifyOffset(verifier, VT_OUTPUTS) &&
2270 verifier.VerifyVector(outputs()) &&
2271 verifier.VerifyVectorOfStrings(outputs()) &&
2272 VerifyField<uint8_t>(verifier, VT_QUANT_INFO_TYPE) &&
2273 VerifyOffset(verifier, VT_QUANT_INFO) &&
2274 VerifyQuantInfo(verifier, quant_info(), quant_info_type()) &&
2275 verifier.EndTable();
2276 }
2277};
2278
Kevin Cheng79a41992021-08-31 16:04:40 -07002279template<> inline const tosa::PoolAttribute *TosaOperator::attribute_as<tosa::PoolAttribute>() const {
2280 return attribute_as_PoolAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002281}
2282
Kevin Cheng79a41992021-08-31 16:04:40 -07002283template<> inline const tosa::ConvAttribute *TosaOperator::attribute_as<tosa::ConvAttribute>() const {
2284 return attribute_as_ConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002285}
2286
Kevin Cheng79a41992021-08-31 16:04:40 -07002287template<> inline const tosa::TransposeConvAttribute *TosaOperator::attribute_as<tosa::TransposeConvAttribute>() const {
2288 return attribute_as_TransposeConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002289}
2290
Kevin Cheng38d214c2021-10-15 15:49:19 -07002291template<> inline const tosa::PadAttribute *TosaOperator::attribute_as<tosa::PadAttribute>() const {
2292 return attribute_as_PadAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002293}
2294
2295template<> inline const tosa::AxisAttribute *TosaOperator::attribute_as<tosa::AxisAttribute>() const {
2296 return attribute_as_AxisAttribute();
2297}
2298
2299template<> inline const tosa::ReshapeAttribute *TosaOperator::attribute_as<tosa::ReshapeAttribute>() const {
2300 return attribute_as_ReshapeAttribute();
2301}
2302
2303template<> inline const tosa::SliceAttribute *TosaOperator::attribute_as<tosa::SliceAttribute>() const {
2304 return attribute_as_SliceAttribute();
2305}
2306
2307template<> inline const tosa::TileAttribute *TosaOperator::attribute_as<tosa::TileAttribute>() const {
2308 return attribute_as_TileAttribute();
2309}
2310
2311template<> inline const tosa::ResizeAttribute *TosaOperator::attribute_as<tosa::ResizeAttribute>() const {
2312 return attribute_as_ResizeAttribute();
2313}
2314
2315template<> inline const tosa::ClampAttribute *TosaOperator::attribute_as<tosa::ClampAttribute>() const {
2316 return attribute_as_ClampAttribute();
2317}
2318
2319template<> inline const tosa::RescaleAttribute *TosaOperator::attribute_as<tosa::RescaleAttribute>() const {
2320 return attribute_as_RescaleAttribute();
2321}
2322
2323template<> inline const tosa::MulAttribute *TosaOperator::attribute_as<tosa::MulAttribute>() const {
2324 return attribute_as_MulAttribute();
2325}
2326
2327template<> inline const tosa::ArithmeticRightShiftAttribute *TosaOperator::attribute_as<tosa::ArithmeticRightShiftAttribute>() const {
2328 return attribute_as_ArithmeticRightShiftAttribute();
2329}
2330
2331template<> inline const tosa::CondIfAttribute *TosaOperator::attribute_as<tosa::CondIfAttribute>() const {
2332 return attribute_as_CondIfAttribute();
2333}
2334
2335template<> inline const tosa::WhileLoopAttribute *TosaOperator::attribute_as<tosa::WhileLoopAttribute>() const {
2336 return attribute_as_WhileLoopAttribute();
2337}
2338
Kevin Cheng38d214c2021-10-15 15:49:19 -07002339template<> inline const tosa::TransposeAttribute *TosaOperator::attribute_as<tosa::TransposeAttribute>() const {
2340 return attribute_as_TransposeAttribute();
2341}
2342
2343template<> inline const tosa::TableAttribute *TosaOperator::attribute_as<tosa::TableAttribute>() const {
2344 return attribute_as_TableAttribute();
2345}
2346
Eric Kunze2364dcd2021-04-26 11:06:57 -07002347template<> inline const tosa::UnaryQuantInfo *TosaOperator::quant_info_as<tosa::UnaryQuantInfo>() const {
2348 return quant_info_as_UnaryQuantInfo();
2349}
2350
2351template<> inline const tosa::ConvQuantInfo *TosaOperator::quant_info_as<tosa::ConvQuantInfo>() const {
2352 return quant_info_as_ConvQuantInfo();
2353}
2354
2355template<> inline const tosa::MatMulQuantInfo *TosaOperator::quant_info_as<tosa::MatMulQuantInfo>() const {
2356 return quant_info_as_MatMulQuantInfo();
2357}
2358
2359template<> inline const tosa::PadQuantInfo *TosaOperator::quant_info_as<tosa::PadQuantInfo>() const {
2360 return quant_info_as_PadQuantInfo();
2361}
2362
2363struct TosaOperatorBuilder {
2364 typedef TosaOperator Table;
2365 flatbuffers::FlatBufferBuilder &fbb_;
2366 flatbuffers::uoffset_t start_;
2367 void add_op(tosa::Op op) {
2368 fbb_.AddElement<uint32_t>(TosaOperator::VT_OP, static_cast<uint32_t>(op), 0);
2369 }
2370 void add_attribute_type(tosa::Attribute attribute_type) {
2371 fbb_.AddElement<uint8_t>(TosaOperator::VT_ATTRIBUTE_TYPE, static_cast<uint8_t>(attribute_type), 0);
2372 }
2373 void add_attribute(flatbuffers::Offset<void> attribute) {
2374 fbb_.AddOffset(TosaOperator::VT_ATTRIBUTE, attribute);
2375 }
2376 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2377 fbb_.AddOffset(TosaOperator::VT_INPUTS, inputs);
2378 }
2379 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2380 fbb_.AddOffset(TosaOperator::VT_OUTPUTS, outputs);
2381 }
2382 void add_quant_info_type(tosa::QuantInfo quant_info_type) {
2383 fbb_.AddElement<uint8_t>(TosaOperator::VT_QUANT_INFO_TYPE, static_cast<uint8_t>(quant_info_type), 0);
2384 }
2385 void add_quant_info(flatbuffers::Offset<void> quant_info) {
2386 fbb_.AddOffset(TosaOperator::VT_QUANT_INFO, quant_info);
2387 }
2388 explicit TosaOperatorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2389 : fbb_(_fbb) {
2390 start_ = fbb_.StartTable();
2391 }
Eric Kunzeae906de2022-05-30 22:40:47 -07002392 TosaOperatorBuilder &operator=(const TosaOperatorBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002393 flatbuffers::Offset<TosaOperator> Finish() {
2394 const auto end = fbb_.EndTable(start_);
2395 auto o = flatbuffers::Offset<TosaOperator>(end);
2396 return o;
2397 }
2398};
2399
2400inline flatbuffers::Offset<TosaOperator> CreateTosaOperator(
2401 flatbuffers::FlatBufferBuilder &_fbb,
2402 tosa::Op op = tosa::Op_UNKNOWN,
2403 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2404 flatbuffers::Offset<void> attribute = 0,
2405 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
2406 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0,
2407 tosa::QuantInfo quant_info_type = tosa::QuantInfo_NONE,
2408 flatbuffers::Offset<void> quant_info = 0) {
2409 TosaOperatorBuilder builder_(_fbb);
2410 builder_.add_quant_info(quant_info);
2411 builder_.add_outputs(outputs);
2412 builder_.add_inputs(inputs);
2413 builder_.add_attribute(attribute);
2414 builder_.add_op(op);
2415 builder_.add_quant_info_type(quant_info_type);
2416 builder_.add_attribute_type(attribute_type);
2417 return builder_.Finish();
2418}
2419
2420inline flatbuffers::Offset<TosaOperator> CreateTosaOperatorDirect(
2421 flatbuffers::FlatBufferBuilder &_fbb,
2422 tosa::Op op = tosa::Op_UNKNOWN,
2423 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2424 flatbuffers::Offset<void> attribute = 0,
2425 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
2426 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr,
2427 tosa::QuantInfo quant_info_type = tosa::QuantInfo_NONE,
2428 flatbuffers::Offset<void> quant_info = 0) {
2429 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2430 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2431 return tosa::CreateTosaOperator(
2432 _fbb,
2433 op,
2434 attribute_type,
2435 attribute,
2436 inputs__,
2437 outputs__,
2438 quant_info_type,
2439 quant_info);
2440}
2441
2442struct TosaBasicBlock FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2443 typedef TosaBasicBlockBuilder Builder;
2444 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2445 VT_NAME = 4,
2446 VT_OPERATORS = 6,
2447 VT_TENSORS = 8,
2448 VT_INPUTS = 10,
2449 VT_OUTPUTS = 12
2450 };
2451 const flatbuffers::String *name() const {
2452 return GetPointer<const flatbuffers::String *>(VT_NAME);
2453 }
2454 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *operators() const {
2455 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *>(VT_OPERATORS);
2456 }
2457 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors() const {
2458 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *>(VT_TENSORS);
2459 }
2460 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2461 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2462 }
2463 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2464 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2465 }
2466 bool Verify(flatbuffers::Verifier &verifier) const {
2467 return VerifyTableStart(verifier) &&
2468 VerifyOffset(verifier, VT_NAME) &&
2469 verifier.VerifyString(name()) &&
2470 VerifyOffset(verifier, VT_OPERATORS) &&
2471 verifier.VerifyVector(operators()) &&
2472 verifier.VerifyVectorOfTables(operators()) &&
2473 VerifyOffset(verifier, VT_TENSORS) &&
2474 verifier.VerifyVector(tensors()) &&
2475 verifier.VerifyVectorOfTables(tensors()) &&
2476 VerifyOffset(verifier, VT_INPUTS) &&
2477 verifier.VerifyVector(inputs()) &&
2478 verifier.VerifyVectorOfStrings(inputs()) &&
2479 VerifyOffset(verifier, VT_OUTPUTS) &&
2480 verifier.VerifyVector(outputs()) &&
2481 verifier.VerifyVectorOfStrings(outputs()) &&
2482 verifier.EndTable();
2483 }
2484};
2485
2486struct TosaBasicBlockBuilder {
2487 typedef TosaBasicBlock Table;
2488 flatbuffers::FlatBufferBuilder &fbb_;
2489 flatbuffers::uoffset_t start_;
2490 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2491 fbb_.AddOffset(TosaBasicBlock::VT_NAME, name);
2492 }
2493 void add_operators(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators) {
2494 fbb_.AddOffset(TosaBasicBlock::VT_OPERATORS, operators);
2495 }
2496 void add_tensors(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors) {
2497 fbb_.AddOffset(TosaBasicBlock::VT_TENSORS, tensors);
2498 }
2499 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2500 fbb_.AddOffset(TosaBasicBlock::VT_INPUTS, inputs);
2501 }
2502 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2503 fbb_.AddOffset(TosaBasicBlock::VT_OUTPUTS, outputs);
2504 }
2505 explicit TosaBasicBlockBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2506 : fbb_(_fbb) {
2507 start_ = fbb_.StartTable();
2508 }
Eric Kunzeae906de2022-05-30 22:40:47 -07002509 TosaBasicBlockBuilder &operator=(const TosaBasicBlockBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002510 flatbuffers::Offset<TosaBasicBlock> Finish() {
2511 const auto end = fbb_.EndTable(start_);
2512 auto o = flatbuffers::Offset<TosaBasicBlock>(end);
2513 return o;
2514 }
2515};
2516
2517inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlock(
2518 flatbuffers::FlatBufferBuilder &_fbb,
2519 flatbuffers::Offset<flatbuffers::String> name = 0,
2520 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators = 0,
2521 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors = 0,
2522 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
2523 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
2524 TosaBasicBlockBuilder builder_(_fbb);
2525 builder_.add_outputs(outputs);
2526 builder_.add_inputs(inputs);
2527 builder_.add_tensors(tensors);
2528 builder_.add_operators(operators);
2529 builder_.add_name(name);
2530 return builder_.Finish();
2531}
2532
2533inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlockDirect(
2534 flatbuffers::FlatBufferBuilder &_fbb,
2535 const char *name = nullptr,
2536 const std::vector<flatbuffers::Offset<tosa::TosaOperator>> *operators = nullptr,
2537 const std::vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors = nullptr,
2538 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
2539 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
2540 auto name__ = name ? _fbb.CreateString(name) : 0;
2541 auto operators__ = operators ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaOperator>>(*operators) : 0;
2542 auto tensors__ = tensors ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaTensor>>(*tensors) : 0;
2543 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2544 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2545 return tosa::CreateTosaBasicBlock(
2546 _fbb,
2547 name__,
2548 operators__,
2549 tensors__,
2550 inputs__,
2551 outputs__);
2552}
2553
2554struct TosaGraph FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2555 typedef TosaGraphBuilder Builder;
2556 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2557 VT_VERSION = 4,
2558 VT_BLOCKS = 6
2559 };
2560 const tosa::Version *version() const {
2561 return GetPointer<const tosa::Version *>(VT_VERSION);
2562 }
2563 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks() const {
2564 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *>(VT_BLOCKS);
2565 }
2566 bool Verify(flatbuffers::Verifier &verifier) const {
2567 return VerifyTableStart(verifier) &&
2568 VerifyOffset(verifier, VT_VERSION) &&
2569 verifier.VerifyTable(version()) &&
2570 VerifyOffset(verifier, VT_BLOCKS) &&
2571 verifier.VerifyVector(blocks()) &&
2572 verifier.VerifyVectorOfTables(blocks()) &&
2573 verifier.EndTable();
2574 }
2575};
2576
2577struct TosaGraphBuilder {
2578 typedef TosaGraph Table;
2579 flatbuffers::FlatBufferBuilder &fbb_;
2580 flatbuffers::uoffset_t start_;
2581 void add_version(flatbuffers::Offset<tosa::Version> version) {
2582 fbb_.AddOffset(TosaGraph::VT_VERSION, version);
2583 }
2584 void add_blocks(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks) {
2585 fbb_.AddOffset(TosaGraph::VT_BLOCKS, blocks);
2586 }
2587 explicit TosaGraphBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2588 : fbb_(_fbb) {
2589 start_ = fbb_.StartTable();
2590 }
Eric Kunzeae906de2022-05-30 22:40:47 -07002591 TosaGraphBuilder &operator=(const TosaGraphBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002592 flatbuffers::Offset<TosaGraph> Finish() {
2593 const auto end = fbb_.EndTable(start_);
2594 auto o = flatbuffers::Offset<TosaGraph>(end);
2595 return o;
2596 }
2597};
2598
2599inline flatbuffers::Offset<TosaGraph> CreateTosaGraph(
2600 flatbuffers::FlatBufferBuilder &_fbb,
2601 flatbuffers::Offset<tosa::Version> version = 0,
2602 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks = 0) {
2603 TosaGraphBuilder builder_(_fbb);
2604 builder_.add_blocks(blocks);
2605 builder_.add_version(version);
2606 return builder_.Finish();
2607}
2608
2609inline flatbuffers::Offset<TosaGraph> CreateTosaGraphDirect(
2610 flatbuffers::FlatBufferBuilder &_fbb,
2611 flatbuffers::Offset<tosa::Version> version = 0,
2612 const std::vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks = nullptr) {
2613 auto blocks__ = blocks ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaBasicBlock>>(*blocks) : 0;
2614 return tosa::CreateTosaGraph(
2615 _fbb,
2616 version,
2617 blocks__);
2618}
2619
2620inline bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type) {
2621 switch (type) {
2622 case Attribute_NONE: {
2623 return true;
2624 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002625 case Attribute_PoolAttribute: {
2626 auto ptr = reinterpret_cast<const tosa::PoolAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002627 return verifier.VerifyTable(ptr);
2628 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002629 case Attribute_ConvAttribute: {
2630 auto ptr = reinterpret_cast<const tosa::ConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002631 return verifier.VerifyTable(ptr);
2632 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002633 case Attribute_TransposeConvAttribute: {
2634 auto ptr = reinterpret_cast<const tosa::TransposeConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002635 return verifier.VerifyTable(ptr);
2636 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002637 case Attribute_PadAttribute: {
2638 auto ptr = reinterpret_cast<const tosa::PadAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002639 return verifier.VerifyTable(ptr);
2640 }
2641 case Attribute_AxisAttribute: {
2642 auto ptr = reinterpret_cast<const tosa::AxisAttribute *>(obj);
2643 return verifier.VerifyTable(ptr);
2644 }
2645 case Attribute_ReshapeAttribute: {
2646 auto ptr = reinterpret_cast<const tosa::ReshapeAttribute *>(obj);
2647 return verifier.VerifyTable(ptr);
2648 }
2649 case Attribute_SliceAttribute: {
2650 auto ptr = reinterpret_cast<const tosa::SliceAttribute *>(obj);
2651 return verifier.VerifyTable(ptr);
2652 }
2653 case Attribute_TileAttribute: {
2654 auto ptr = reinterpret_cast<const tosa::TileAttribute *>(obj);
2655 return verifier.VerifyTable(ptr);
2656 }
2657 case Attribute_ResizeAttribute: {
2658 auto ptr = reinterpret_cast<const tosa::ResizeAttribute *>(obj);
2659 return verifier.VerifyTable(ptr);
2660 }
2661 case Attribute_ClampAttribute: {
2662 auto ptr = reinterpret_cast<const tosa::ClampAttribute *>(obj);
2663 return verifier.VerifyTable(ptr);
2664 }
2665 case Attribute_RescaleAttribute: {
2666 auto ptr = reinterpret_cast<const tosa::RescaleAttribute *>(obj);
2667 return verifier.VerifyTable(ptr);
2668 }
2669 case Attribute_MulAttribute: {
2670 auto ptr = reinterpret_cast<const tosa::MulAttribute *>(obj);
2671 return verifier.VerifyTable(ptr);
2672 }
2673 case Attribute_ArithmeticRightShiftAttribute: {
2674 auto ptr = reinterpret_cast<const tosa::ArithmeticRightShiftAttribute *>(obj);
2675 return verifier.VerifyTable(ptr);
2676 }
2677 case Attribute_CondIfAttribute: {
2678 auto ptr = reinterpret_cast<const tosa::CondIfAttribute *>(obj);
2679 return verifier.VerifyTable(ptr);
2680 }
2681 case Attribute_WhileLoopAttribute: {
2682 auto ptr = reinterpret_cast<const tosa::WhileLoopAttribute *>(obj);
2683 return verifier.VerifyTable(ptr);
2684 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002685 case Attribute_TransposeAttribute: {
2686 auto ptr = reinterpret_cast<const tosa::TransposeAttribute *>(obj);
2687 return verifier.VerifyTable(ptr);
2688 }
2689 case Attribute_TableAttribute: {
2690 auto ptr = reinterpret_cast<const tosa::TableAttribute *>(obj);
2691 return verifier.VerifyTable(ptr);
2692 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002693 default: return true;
2694 }
2695}
2696
2697inline bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
2698 if (!values || !types) return !values && !types;
2699 if (values->size() != types->size()) return false;
2700 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
2701 if (!VerifyAttribute(
2702 verifier, values->Get(i), types->GetEnum<Attribute>(i))) {
2703 return false;
2704 }
2705 }
2706 return true;
2707}
2708
2709inline bool VerifyQuantInfo(flatbuffers::Verifier &verifier, const void *obj, QuantInfo type) {
2710 switch (type) {
2711 case QuantInfo_NONE: {
2712 return true;
2713 }
2714 case QuantInfo_UnaryQuantInfo: {
2715 auto ptr = reinterpret_cast<const tosa::UnaryQuantInfo *>(obj);
2716 return verifier.VerifyTable(ptr);
2717 }
2718 case QuantInfo_ConvQuantInfo: {
2719 auto ptr = reinterpret_cast<const tosa::ConvQuantInfo *>(obj);
2720 return verifier.VerifyTable(ptr);
2721 }
2722 case QuantInfo_MatMulQuantInfo: {
2723 auto ptr = reinterpret_cast<const tosa::MatMulQuantInfo *>(obj);
2724 return verifier.VerifyTable(ptr);
2725 }
2726 case QuantInfo_PadQuantInfo: {
2727 auto ptr = reinterpret_cast<const tosa::PadQuantInfo *>(obj);
2728 return verifier.VerifyTable(ptr);
2729 }
2730 default: return true;
2731 }
2732}
2733
2734inline bool VerifyQuantInfoVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
2735 if (!values || !types) return !values && !types;
2736 if (values->size() != types->size()) return false;
2737 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
2738 if (!VerifyQuantInfo(
2739 verifier, values->Get(i), types->GetEnum<QuantInfo>(i))) {
2740 return false;
2741 }
2742 }
2743 return true;
2744}
2745
2746inline const tosa::TosaGraph *GetTosaGraph(const void *buf) {
2747 return flatbuffers::GetRoot<tosa::TosaGraph>(buf);
2748}
2749
2750inline const tosa::TosaGraph *GetSizePrefixedTosaGraph(const void *buf) {
2751 return flatbuffers::GetSizePrefixedRoot<tosa::TosaGraph>(buf);
2752}
2753
2754inline const char *TosaGraphIdentifier() {
2755 return "TOSA";
2756}
2757
2758inline bool TosaGraphBufferHasIdentifier(const void *buf) {
2759 return flatbuffers::BufferHasIdentifier(
2760 buf, TosaGraphIdentifier());
2761}
2762
2763inline bool VerifyTosaGraphBuffer(
2764 flatbuffers::Verifier &verifier) {
2765 return verifier.VerifyBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2766}
2767
2768inline bool VerifySizePrefixedTosaGraphBuffer(
2769 flatbuffers::Verifier &verifier) {
2770 return verifier.VerifySizePrefixedBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2771}
2772
2773inline const char *TosaGraphExtension() {
2774 return "tosa";
2775}
2776
2777inline void FinishTosaGraphBuffer(
2778 flatbuffers::FlatBufferBuilder &fbb,
2779 flatbuffers::Offset<tosa::TosaGraph> root) {
2780 fbb.Finish(root, TosaGraphIdentifier());
2781}
2782
2783inline void FinishSizePrefixedTosaGraphBuffer(
2784 flatbuffers::FlatBufferBuilder &fbb,
2785 flatbuffers::Offset<tosa::TosaGraph> root) {
2786 fbb.FinishSizePrefixed(root, TosaGraphIdentifier());
2787}
2788
2789} // namespace tosa
2790
2791#endif // FLATBUFFERS_GENERATED_TOSA_TOSA_H_