blob: f3fab51fc348906d8473ec2d1efc40712fce671e [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 {
785 VT_OUTPAD = 4,
786 VT_STRIDE = 6,
787 VT_DILATION = 8,
788 VT_OUTPUT_SHAPE = 10
789 };
790 const flatbuffers::Vector<int32_t> *outpad() const {
791 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPAD);
792 }
793 const flatbuffers::Vector<int32_t> *stride() const {
794 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
795 }
796 const flatbuffers::Vector<int32_t> *dilation() const {
797 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_DILATION);
798 }
799 const flatbuffers::Vector<int32_t> *output_shape() const {
800 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUT_SHAPE);
801 }
802 bool Verify(flatbuffers::Verifier &verifier) const {
803 return VerifyTableStart(verifier) &&
804 VerifyOffset(verifier, VT_OUTPAD) &&
805 verifier.VerifyVector(outpad()) &&
806 VerifyOffset(verifier, VT_STRIDE) &&
807 verifier.VerifyVector(stride()) &&
808 VerifyOffset(verifier, VT_DILATION) &&
809 verifier.VerifyVector(dilation()) &&
810 VerifyOffset(verifier, VT_OUTPUT_SHAPE) &&
811 verifier.VerifyVector(output_shape()) &&
812 verifier.EndTable();
813 }
814};
815
Kevin Cheng79a41992021-08-31 16:04:40 -0700816struct TransposeConvAttributeBuilder {
817 typedef TransposeConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700818 flatbuffers::FlatBufferBuilder &fbb_;
819 flatbuffers::uoffset_t start_;
820 void add_outpad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> outpad) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700821 fbb_.AddOffset(TransposeConvAttribute::VT_OUTPAD, outpad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700822 }
823 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700824 fbb_.AddOffset(TransposeConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700825 }
826 void add_dilation(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700827 fbb_.AddOffset(TransposeConvAttribute::VT_DILATION, dilation);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700828 }
829 void add_output_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700830 fbb_.AddOffset(TransposeConvAttribute::VT_OUTPUT_SHAPE, output_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700831 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700832 explicit TransposeConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700833 : fbb_(_fbb) {
834 start_ = fbb_.StartTable();
835 }
Eric Kunzeae906de2022-05-30 22:40:47 -0700836 TransposeConvAttributeBuilder &operator=(const TransposeConvAttributeBuilder &);
Kevin Cheng79a41992021-08-31 16:04:40 -0700837 flatbuffers::Offset<TransposeConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700838 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700839 auto o = flatbuffers::Offset<TransposeConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700840 return o;
841 }
842};
843
Kevin Cheng79a41992021-08-31 16:04:40 -0700844inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700845 flatbuffers::FlatBufferBuilder &_fbb,
846 flatbuffers::Offset<flatbuffers::Vector<int32_t>> outpad = 0,
847 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
848 flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation = 0,
849 flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape = 0) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700850 TransposeConvAttributeBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700851 builder_.add_output_shape(output_shape);
852 builder_.add_dilation(dilation);
853 builder_.add_stride(stride);
854 builder_.add_outpad(outpad);
855 return builder_.Finish();
856}
857
Kevin Cheng79a41992021-08-31 16:04:40 -0700858inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700859 flatbuffers::FlatBufferBuilder &_fbb,
860 const std::vector<int32_t> *outpad = nullptr,
861 const std::vector<int32_t> *stride = nullptr,
862 const std::vector<int32_t> *dilation = nullptr,
863 const std::vector<int32_t> *output_shape = nullptr) {
864 auto outpad__ = outpad ? _fbb.CreateVector<int32_t>(*outpad) : 0;
865 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
866 auto dilation__ = dilation ? _fbb.CreateVector<int32_t>(*dilation) : 0;
867 auto output_shape__ = output_shape ? _fbb.CreateVector<int32_t>(*output_shape) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700868 return tosa::CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700869 _fbb,
870 outpad__,
871 stride__,
872 dilation__,
873 output_shape__);
874}
875
Kevin Cheng38d214c2021-10-15 15:49:19 -0700876struct PadAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
877 typedef PadAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700878 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Kevin Cheng38d214c2021-10-15 15:49:19 -0700879 VT_PADDING = 4,
880 VT_PAD_CONST_INT = 6,
881 VT_PAD_CONST_FP = 8
Eric Kunze2364dcd2021-04-26 11:06:57 -0700882 };
Kevin Cheng38d214c2021-10-15 15:49:19 -0700883 const flatbuffers::Vector<int32_t> *padding() const {
884 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PADDING);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700885 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700886 int32_t pad_const_int() const {
887 return GetField<int32_t>(VT_PAD_CONST_INT, 0);
888 }
889 float pad_const_fp() const {
890 return GetField<float>(VT_PAD_CONST_FP, 0.0f);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700891 }
892 bool Verify(flatbuffers::Verifier &verifier) const {
893 return VerifyTableStart(verifier) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -0700894 VerifyOffset(verifier, VT_PADDING) &&
895 verifier.VerifyVector(padding()) &&
896 VerifyField<int32_t>(verifier, VT_PAD_CONST_INT) &&
897 VerifyField<float>(verifier, VT_PAD_CONST_FP) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700898 verifier.EndTable();
899 }
900};
901
Kevin Cheng38d214c2021-10-15 15:49:19 -0700902struct PadAttributeBuilder {
903 typedef PadAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700904 flatbuffers::FlatBufferBuilder &fbb_;
905 flatbuffers::uoffset_t start_;
Kevin Cheng38d214c2021-10-15 15:49:19 -0700906 void add_padding(flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding) {
907 fbb_.AddOffset(PadAttribute::VT_PADDING, padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700908 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700909 void add_pad_const_int(int32_t pad_const_int) {
910 fbb_.AddElement<int32_t>(PadAttribute::VT_PAD_CONST_INT, pad_const_int, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700911 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700912 void add_pad_const_fp(float pad_const_fp) {
913 fbb_.AddElement<float>(PadAttribute::VT_PAD_CONST_FP, pad_const_fp, 0.0f);
914 }
915 explicit PadAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700916 : fbb_(_fbb) {
917 start_ = fbb_.StartTable();
918 }
Eric Kunzeae906de2022-05-30 22:40:47 -0700919 PadAttributeBuilder &operator=(const PadAttributeBuilder &);
Kevin Cheng38d214c2021-10-15 15:49:19 -0700920 flatbuffers::Offset<PadAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700921 const auto end = fbb_.EndTable(start_);
Kevin Cheng38d214c2021-10-15 15:49:19 -0700922 auto o = flatbuffers::Offset<PadAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700923 return o;
924 }
925};
926
Kevin Cheng38d214c2021-10-15 15:49:19 -0700927inline flatbuffers::Offset<PadAttribute> CreatePadAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700928 flatbuffers::FlatBufferBuilder &_fbb,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700929 flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding = 0,
930 int32_t pad_const_int = 0,
931 float pad_const_fp = 0.0f) {
932 PadAttributeBuilder builder_(_fbb);
933 builder_.add_pad_const_fp(pad_const_fp);
934 builder_.add_pad_const_int(pad_const_int);
935 builder_.add_padding(padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700936 return builder_.Finish();
937}
938
Kevin Cheng38d214c2021-10-15 15:49:19 -0700939inline flatbuffers::Offset<PadAttribute> CreatePadAttributeDirect(
940 flatbuffers::FlatBufferBuilder &_fbb,
941 const std::vector<int32_t> *padding = nullptr,
942 int32_t pad_const_int = 0,
943 float pad_const_fp = 0.0f) {
944 auto padding__ = padding ? _fbb.CreateVector<int32_t>(*padding) : 0;
945 return tosa::CreatePadAttribute(
946 _fbb,
947 padding__,
948 pad_const_int,
949 pad_const_fp);
950}
951
Eric Kunze2364dcd2021-04-26 11:06:57 -0700952struct AxisAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
953 typedef AxisAttributeBuilder Builder;
954 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
955 VT_AXIS = 4
956 };
957 int32_t axis() const {
958 return GetField<int32_t>(VT_AXIS, 0);
959 }
960 bool Verify(flatbuffers::Verifier &verifier) const {
961 return VerifyTableStart(verifier) &&
962 VerifyField<int32_t>(verifier, VT_AXIS) &&
963 verifier.EndTable();
964 }
965};
966
967struct AxisAttributeBuilder {
968 typedef AxisAttribute Table;
969 flatbuffers::FlatBufferBuilder &fbb_;
970 flatbuffers::uoffset_t start_;
971 void add_axis(int32_t axis) {
972 fbb_.AddElement<int32_t>(AxisAttribute::VT_AXIS, axis, 0);
973 }
974 explicit AxisAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
975 : fbb_(_fbb) {
976 start_ = fbb_.StartTable();
977 }
Eric Kunzeae906de2022-05-30 22:40:47 -0700978 AxisAttributeBuilder &operator=(const AxisAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700979 flatbuffers::Offset<AxisAttribute> Finish() {
980 const auto end = fbb_.EndTable(start_);
981 auto o = flatbuffers::Offset<AxisAttribute>(end);
982 return o;
983 }
984};
985
986inline flatbuffers::Offset<AxisAttribute> CreateAxisAttribute(
987 flatbuffers::FlatBufferBuilder &_fbb,
988 int32_t axis = 0) {
989 AxisAttributeBuilder builder_(_fbb);
990 builder_.add_axis(axis);
991 return builder_.Finish();
992}
993
994struct ReshapeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
995 typedef ReshapeAttributeBuilder Builder;
996 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -0700997 VT_NEW_SHAPE = 4
Eric Kunze2364dcd2021-04-26 11:06:57 -0700998 };
TatWai Chong7be71652022-05-10 17:26:20 -0700999 const flatbuffers::Vector<int32_t> *new_shape() const {
1000 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_NEW_SHAPE);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001001 }
1002 bool Verify(flatbuffers::Verifier &verifier) const {
1003 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001004 VerifyOffset(verifier, VT_NEW_SHAPE) &&
1005 verifier.VerifyVector(new_shape()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001006 verifier.EndTable();
1007 }
1008};
1009
1010struct ReshapeAttributeBuilder {
1011 typedef ReshapeAttribute Table;
1012 flatbuffers::FlatBufferBuilder &fbb_;
1013 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001014 void add_new_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> new_shape) {
1015 fbb_.AddOffset(ReshapeAttribute::VT_NEW_SHAPE, new_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001016 }
1017 explicit ReshapeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1018 : fbb_(_fbb) {
1019 start_ = fbb_.StartTable();
1020 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001021 ReshapeAttributeBuilder &operator=(const ReshapeAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001022 flatbuffers::Offset<ReshapeAttribute> Finish() {
1023 const auto end = fbb_.EndTable(start_);
1024 auto o = flatbuffers::Offset<ReshapeAttribute>(end);
1025 return o;
1026 }
1027};
1028
1029inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttribute(
1030 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001031 flatbuffers::Offset<flatbuffers::Vector<int32_t>> new_shape = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001032 ReshapeAttributeBuilder builder_(_fbb);
TatWai Chong7be71652022-05-10 17:26:20 -07001033 builder_.add_new_shape(new_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001034 return builder_.Finish();
1035}
1036
1037inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttributeDirect(
1038 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001039 const std::vector<int32_t> *new_shape = nullptr) {
1040 auto new_shape__ = new_shape ? _fbb.CreateVector<int32_t>(*new_shape) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001041 return tosa::CreateReshapeAttribute(
1042 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001043 new_shape__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001044}
1045
1046struct SliceAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1047 typedef SliceAttributeBuilder Builder;
1048 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001049 VT_START = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001050 VT_SIZE = 6
1051 };
TatWai Chong7be71652022-05-10 17:26:20 -07001052 const flatbuffers::Vector<int32_t> *start() const {
1053 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_START);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001054 }
1055 const flatbuffers::Vector<int32_t> *size() const {
1056 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SIZE);
1057 }
1058 bool Verify(flatbuffers::Verifier &verifier) const {
1059 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001060 VerifyOffset(verifier, VT_START) &&
1061 verifier.VerifyVector(start()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001062 VerifyOffset(verifier, VT_SIZE) &&
1063 verifier.VerifyVector(size()) &&
1064 verifier.EndTable();
1065 }
1066};
1067
1068struct SliceAttributeBuilder {
1069 typedef SliceAttribute Table;
1070 flatbuffers::FlatBufferBuilder &fbb_;
1071 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001072 void add_start(flatbuffers::Offset<flatbuffers::Vector<int32_t>> start) {
1073 fbb_.AddOffset(SliceAttribute::VT_START, start);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001074 }
1075 void add_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> size) {
1076 fbb_.AddOffset(SliceAttribute::VT_SIZE, size);
1077 }
1078 explicit SliceAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1079 : fbb_(_fbb) {
1080 start_ = fbb_.StartTable();
1081 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001082 SliceAttributeBuilder &operator=(const SliceAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001083 flatbuffers::Offset<SliceAttribute> Finish() {
1084 const auto end = fbb_.EndTable(start_);
1085 auto o = flatbuffers::Offset<SliceAttribute>(end);
1086 return o;
1087 }
1088};
1089
1090inline flatbuffers::Offset<SliceAttribute> CreateSliceAttribute(
1091 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001092 flatbuffers::Offset<flatbuffers::Vector<int32_t>> start = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001093 flatbuffers::Offset<flatbuffers::Vector<int32_t>> size = 0) {
1094 SliceAttributeBuilder builder_(_fbb);
1095 builder_.add_size(size);
TatWai Chong7be71652022-05-10 17:26:20 -07001096 builder_.add_start(start);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001097 return builder_.Finish();
1098}
1099
1100inline flatbuffers::Offset<SliceAttribute> CreateSliceAttributeDirect(
1101 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001102 const std::vector<int32_t> *start = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001103 const std::vector<int32_t> *size = nullptr) {
TatWai Chong7be71652022-05-10 17:26:20 -07001104 auto start__ = start ? _fbb.CreateVector<int32_t>(*start) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001105 auto size__ = size ? _fbb.CreateVector<int32_t>(*size) : 0;
1106 return tosa::CreateSliceAttribute(
1107 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001108 start__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001109 size__);
1110}
1111
1112struct TileAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1113 typedef TileAttributeBuilder Builder;
1114 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1115 VT_MULTIPLES = 4
1116 };
1117 const flatbuffers::Vector<int32_t> *multiples() const {
1118 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLES);
1119 }
1120 bool Verify(flatbuffers::Verifier &verifier) const {
1121 return VerifyTableStart(verifier) &&
1122 VerifyOffset(verifier, VT_MULTIPLES) &&
1123 verifier.VerifyVector(multiples()) &&
1124 verifier.EndTable();
1125 }
1126};
1127
1128struct TileAttributeBuilder {
1129 typedef TileAttribute Table;
1130 flatbuffers::FlatBufferBuilder &fbb_;
1131 flatbuffers::uoffset_t start_;
1132 void add_multiples(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples) {
1133 fbb_.AddOffset(TileAttribute::VT_MULTIPLES, multiples);
1134 }
1135 explicit TileAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1136 : fbb_(_fbb) {
1137 start_ = fbb_.StartTable();
1138 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001139 TileAttributeBuilder &operator=(const TileAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001140 flatbuffers::Offset<TileAttribute> Finish() {
1141 const auto end = fbb_.EndTable(start_);
1142 auto o = flatbuffers::Offset<TileAttribute>(end);
1143 return o;
1144 }
1145};
1146
1147inline flatbuffers::Offset<TileAttribute> CreateTileAttribute(
1148 flatbuffers::FlatBufferBuilder &_fbb,
1149 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples = 0) {
1150 TileAttributeBuilder builder_(_fbb);
1151 builder_.add_multiples(multiples);
1152 return builder_.Finish();
1153}
1154
1155inline flatbuffers::Offset<TileAttribute> CreateTileAttributeDirect(
1156 flatbuffers::FlatBufferBuilder &_fbb,
1157 const std::vector<int32_t> *multiples = nullptr) {
1158 auto multiples__ = multiples ? _fbb.CreateVector<int32_t>(*multiples) : 0;
1159 return tosa::CreateTileAttribute(
1160 _fbb,
1161 multiples__);
1162}
1163
1164struct ResizeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1165 typedef ResizeAttributeBuilder Builder;
1166 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1167 VT_OUTPUT_SIZE = 4,
1168 VT_STRIDE = 6,
1169 VT_OFFSET = 8,
1170 VT_SHIFT = 10,
1171 VT_STRIDE_FP = 12,
1172 VT_OFFSET_FP = 14,
1173 VT_MODE = 16
1174 };
1175 const flatbuffers::Vector<int32_t> *output_size() const {
1176 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUT_SIZE);
1177 }
1178 const flatbuffers::Vector<int32_t> *stride() const {
1179 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
1180 }
1181 const flatbuffers::Vector<int32_t> *offset() const {
1182 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OFFSET);
1183 }
1184 int32_t shift() const {
1185 return GetField<int32_t>(VT_SHIFT, 0);
1186 }
1187 const flatbuffers::Vector<float> *stride_fp() const {
1188 return GetPointer<const flatbuffers::Vector<float> *>(VT_STRIDE_FP);
1189 }
1190 const flatbuffers::Vector<float> *offset_fp() const {
1191 return GetPointer<const flatbuffers::Vector<float> *>(VT_OFFSET_FP);
1192 }
1193 tosa::ResizeMode mode() const {
1194 return static_cast<tosa::ResizeMode>(GetField<uint32_t>(VT_MODE, 0));
1195 }
1196 bool Verify(flatbuffers::Verifier &verifier) const {
1197 return VerifyTableStart(verifier) &&
1198 VerifyOffset(verifier, VT_OUTPUT_SIZE) &&
1199 verifier.VerifyVector(output_size()) &&
1200 VerifyOffset(verifier, VT_STRIDE) &&
1201 verifier.VerifyVector(stride()) &&
1202 VerifyOffset(verifier, VT_OFFSET) &&
1203 verifier.VerifyVector(offset()) &&
1204 VerifyField<int32_t>(verifier, VT_SHIFT) &&
1205 VerifyOffset(verifier, VT_STRIDE_FP) &&
1206 verifier.VerifyVector(stride_fp()) &&
1207 VerifyOffset(verifier, VT_OFFSET_FP) &&
1208 verifier.VerifyVector(offset_fp()) &&
1209 VerifyField<uint32_t>(verifier, VT_MODE) &&
1210 verifier.EndTable();
1211 }
1212};
1213
1214struct ResizeAttributeBuilder {
1215 typedef ResizeAttribute Table;
1216 flatbuffers::FlatBufferBuilder &fbb_;
1217 flatbuffers::uoffset_t start_;
1218 void add_output_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_size) {
1219 fbb_.AddOffset(ResizeAttribute::VT_OUTPUT_SIZE, output_size);
1220 }
1221 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
1222 fbb_.AddOffset(ResizeAttribute::VT_STRIDE, stride);
1223 }
1224 void add_offset(flatbuffers::Offset<flatbuffers::Vector<int32_t>> offset) {
1225 fbb_.AddOffset(ResizeAttribute::VT_OFFSET, offset);
1226 }
1227 void add_shift(int32_t shift) {
1228 fbb_.AddElement<int32_t>(ResizeAttribute::VT_SHIFT, shift, 0);
1229 }
1230 void add_stride_fp(flatbuffers::Offset<flatbuffers::Vector<float>> stride_fp) {
1231 fbb_.AddOffset(ResizeAttribute::VT_STRIDE_FP, stride_fp);
1232 }
1233 void add_offset_fp(flatbuffers::Offset<flatbuffers::Vector<float>> offset_fp) {
1234 fbb_.AddOffset(ResizeAttribute::VT_OFFSET_FP, offset_fp);
1235 }
1236 void add_mode(tosa::ResizeMode mode) {
1237 fbb_.AddElement<uint32_t>(ResizeAttribute::VT_MODE, static_cast<uint32_t>(mode), 0);
1238 }
1239 explicit ResizeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1240 : fbb_(_fbb) {
1241 start_ = fbb_.StartTable();
1242 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001243 ResizeAttributeBuilder &operator=(const ResizeAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001244 flatbuffers::Offset<ResizeAttribute> Finish() {
1245 const auto end = fbb_.EndTable(start_);
1246 auto o = flatbuffers::Offset<ResizeAttribute>(end);
1247 return o;
1248 }
1249};
1250
1251inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttribute(
1252 flatbuffers::FlatBufferBuilder &_fbb,
1253 flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_size = 0,
1254 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
1255 flatbuffers::Offset<flatbuffers::Vector<int32_t>> offset = 0,
1256 int32_t shift = 0,
1257 flatbuffers::Offset<flatbuffers::Vector<float>> stride_fp = 0,
1258 flatbuffers::Offset<flatbuffers::Vector<float>> offset_fp = 0,
1259 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
1260 ResizeAttributeBuilder builder_(_fbb);
1261 builder_.add_mode(mode);
1262 builder_.add_offset_fp(offset_fp);
1263 builder_.add_stride_fp(stride_fp);
1264 builder_.add_shift(shift);
1265 builder_.add_offset(offset);
1266 builder_.add_stride(stride);
1267 builder_.add_output_size(output_size);
1268 return builder_.Finish();
1269}
1270
1271inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttributeDirect(
1272 flatbuffers::FlatBufferBuilder &_fbb,
1273 const std::vector<int32_t> *output_size = nullptr,
1274 const std::vector<int32_t> *stride = nullptr,
1275 const std::vector<int32_t> *offset = nullptr,
1276 int32_t shift = 0,
1277 const std::vector<float> *stride_fp = nullptr,
1278 const std::vector<float> *offset_fp = nullptr,
1279 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
1280 auto output_size__ = output_size ? _fbb.CreateVector<int32_t>(*output_size) : 0;
1281 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
1282 auto offset__ = offset ? _fbb.CreateVector<int32_t>(*offset) : 0;
1283 auto stride_fp__ = stride_fp ? _fbb.CreateVector<float>(*stride_fp) : 0;
1284 auto offset_fp__ = offset_fp ? _fbb.CreateVector<float>(*offset_fp) : 0;
1285 return tosa::CreateResizeAttribute(
1286 _fbb,
1287 output_size__,
1288 stride__,
1289 offset__,
1290 shift,
1291 stride_fp__,
1292 offset_fp__,
1293 mode);
1294}
1295
1296struct ClampAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1297 typedef ClampAttributeBuilder Builder;
1298 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1299 VT_MIN_INT = 4,
1300 VT_MAX_INT = 6,
1301 VT_MIN_FP = 8,
1302 VT_MAX_FP = 10
1303 };
1304 int32_t min_int() const {
1305 return GetField<int32_t>(VT_MIN_INT, 0);
1306 }
1307 int32_t max_int() const {
1308 return GetField<int32_t>(VT_MAX_INT, 0);
1309 }
1310 float min_fp() const {
1311 return GetField<float>(VT_MIN_FP, 0.0f);
1312 }
1313 float max_fp() const {
1314 return GetField<float>(VT_MAX_FP, 0.0f);
1315 }
1316 bool Verify(flatbuffers::Verifier &verifier) const {
1317 return VerifyTableStart(verifier) &&
1318 VerifyField<int32_t>(verifier, VT_MIN_INT) &&
1319 VerifyField<int32_t>(verifier, VT_MAX_INT) &&
1320 VerifyField<float>(verifier, VT_MIN_FP) &&
1321 VerifyField<float>(verifier, VT_MAX_FP) &&
1322 verifier.EndTable();
1323 }
1324};
1325
1326struct ClampAttributeBuilder {
1327 typedef ClampAttribute Table;
1328 flatbuffers::FlatBufferBuilder &fbb_;
1329 flatbuffers::uoffset_t start_;
1330 void add_min_int(int32_t min_int) {
1331 fbb_.AddElement<int32_t>(ClampAttribute::VT_MIN_INT, min_int, 0);
1332 }
1333 void add_max_int(int32_t max_int) {
1334 fbb_.AddElement<int32_t>(ClampAttribute::VT_MAX_INT, max_int, 0);
1335 }
1336 void add_min_fp(float min_fp) {
1337 fbb_.AddElement<float>(ClampAttribute::VT_MIN_FP, min_fp, 0.0f);
1338 }
1339 void add_max_fp(float max_fp) {
1340 fbb_.AddElement<float>(ClampAttribute::VT_MAX_FP, max_fp, 0.0f);
1341 }
1342 explicit ClampAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1343 : fbb_(_fbb) {
1344 start_ = fbb_.StartTable();
1345 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001346 ClampAttributeBuilder &operator=(const ClampAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001347 flatbuffers::Offset<ClampAttribute> Finish() {
1348 const auto end = fbb_.EndTable(start_);
1349 auto o = flatbuffers::Offset<ClampAttribute>(end);
1350 return o;
1351 }
1352};
1353
1354inline flatbuffers::Offset<ClampAttribute> CreateClampAttribute(
1355 flatbuffers::FlatBufferBuilder &_fbb,
1356 int32_t min_int = 0,
1357 int32_t max_int = 0,
1358 float min_fp = 0.0f,
1359 float max_fp = 0.0f) {
1360 ClampAttributeBuilder builder_(_fbb);
1361 builder_.add_max_fp(max_fp);
1362 builder_.add_min_fp(min_fp);
1363 builder_.add_max_int(max_int);
1364 builder_.add_min_int(min_int);
1365 return builder_.Finish();
1366}
1367
1368struct RescaleAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1369 typedef RescaleAttributeBuilder Builder;
1370 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1371 VT_INPUT_ZP = 4,
1372 VT_OUTPUT_ZP = 6,
1373 VT_MULTIPLIER = 8,
1374 VT_SHIFT = 10,
1375 VT_SCALE32 = 12,
1376 VT_DOUBLE_ROUND = 14,
1377 VT_PER_CHANNEL = 16
1378 };
1379 int32_t input_zp() const {
1380 return GetField<int32_t>(VT_INPUT_ZP, 0);
1381 }
1382 int32_t output_zp() const {
1383 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1384 }
1385 const flatbuffers::Vector<int32_t> *multiplier() const {
1386 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLIER);
1387 }
1388 const flatbuffers::Vector<int32_t> *shift() const {
1389 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHIFT);
1390 }
1391 bool scale32() const {
1392 return GetField<uint8_t>(VT_SCALE32, 0) != 0;
1393 }
1394 bool double_round() const {
1395 return GetField<uint8_t>(VT_DOUBLE_ROUND, 0) != 0;
1396 }
1397 bool per_channel() const {
1398 return GetField<uint8_t>(VT_PER_CHANNEL, 0) != 0;
1399 }
1400 bool Verify(flatbuffers::Verifier &verifier) const {
1401 return VerifyTableStart(verifier) &&
1402 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1403 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP) &&
1404 VerifyOffset(verifier, VT_MULTIPLIER) &&
1405 verifier.VerifyVector(multiplier()) &&
1406 VerifyOffset(verifier, VT_SHIFT) &&
1407 verifier.VerifyVector(shift()) &&
1408 VerifyField<uint8_t>(verifier, VT_SCALE32) &&
1409 VerifyField<uint8_t>(verifier, VT_DOUBLE_ROUND) &&
1410 VerifyField<uint8_t>(verifier, VT_PER_CHANNEL) &&
1411 verifier.EndTable();
1412 }
1413};
1414
1415struct RescaleAttributeBuilder {
1416 typedef RescaleAttribute Table;
1417 flatbuffers::FlatBufferBuilder &fbb_;
1418 flatbuffers::uoffset_t start_;
1419 void add_input_zp(int32_t input_zp) {
1420 fbb_.AddElement<int32_t>(RescaleAttribute::VT_INPUT_ZP, input_zp, 0);
1421 }
1422 void add_output_zp(int32_t output_zp) {
1423 fbb_.AddElement<int32_t>(RescaleAttribute::VT_OUTPUT_ZP, output_zp, 0);
1424 }
1425 void add_multiplier(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier) {
1426 fbb_.AddOffset(RescaleAttribute::VT_MULTIPLIER, multiplier);
1427 }
1428 void add_shift(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift) {
1429 fbb_.AddOffset(RescaleAttribute::VT_SHIFT, shift);
1430 }
1431 void add_scale32(bool scale32) {
1432 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_SCALE32, static_cast<uint8_t>(scale32), 0);
1433 }
1434 void add_double_round(bool double_round) {
1435 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_DOUBLE_ROUND, static_cast<uint8_t>(double_round), 0);
1436 }
1437 void add_per_channel(bool per_channel) {
1438 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_PER_CHANNEL, static_cast<uint8_t>(per_channel), 0);
1439 }
1440 explicit RescaleAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1441 : fbb_(_fbb) {
1442 start_ = fbb_.StartTable();
1443 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001444 RescaleAttributeBuilder &operator=(const RescaleAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001445 flatbuffers::Offset<RescaleAttribute> Finish() {
1446 const auto end = fbb_.EndTable(start_);
1447 auto o = flatbuffers::Offset<RescaleAttribute>(end);
1448 return o;
1449 }
1450};
1451
1452inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttribute(
1453 flatbuffers::FlatBufferBuilder &_fbb,
1454 int32_t input_zp = 0,
1455 int32_t output_zp = 0,
1456 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier = 0,
1457 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift = 0,
1458 bool scale32 = false,
1459 bool double_round = false,
1460 bool per_channel = false) {
1461 RescaleAttributeBuilder builder_(_fbb);
1462 builder_.add_shift(shift);
1463 builder_.add_multiplier(multiplier);
1464 builder_.add_output_zp(output_zp);
1465 builder_.add_input_zp(input_zp);
1466 builder_.add_per_channel(per_channel);
1467 builder_.add_double_round(double_round);
1468 builder_.add_scale32(scale32);
1469 return builder_.Finish();
1470}
1471
1472inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttributeDirect(
1473 flatbuffers::FlatBufferBuilder &_fbb,
1474 int32_t input_zp = 0,
1475 int32_t output_zp = 0,
1476 const std::vector<int32_t> *multiplier = nullptr,
1477 const std::vector<int32_t> *shift = nullptr,
1478 bool scale32 = false,
1479 bool double_round = false,
1480 bool per_channel = false) {
1481 auto multiplier__ = multiplier ? _fbb.CreateVector<int32_t>(*multiplier) : 0;
1482 auto shift__ = shift ? _fbb.CreateVector<int32_t>(*shift) : 0;
1483 return tosa::CreateRescaleAttribute(
1484 _fbb,
1485 input_zp,
1486 output_zp,
1487 multiplier__,
1488 shift__,
1489 scale32,
1490 double_round,
1491 per_channel);
1492}
1493
1494struct MulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1495 typedef MulAttributeBuilder Builder;
1496 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1497 VT_SHIFT = 4
1498 };
1499 int32_t shift() const {
1500 return GetField<int32_t>(VT_SHIFT, 0);
1501 }
1502 bool Verify(flatbuffers::Verifier &verifier) const {
1503 return VerifyTableStart(verifier) &&
1504 VerifyField<int32_t>(verifier, VT_SHIFT) &&
1505 verifier.EndTable();
1506 }
1507};
1508
1509struct MulAttributeBuilder {
1510 typedef MulAttribute Table;
1511 flatbuffers::FlatBufferBuilder &fbb_;
1512 flatbuffers::uoffset_t start_;
1513 void add_shift(int32_t shift) {
1514 fbb_.AddElement<int32_t>(MulAttribute::VT_SHIFT, shift, 0);
1515 }
1516 explicit MulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1517 : fbb_(_fbb) {
1518 start_ = fbb_.StartTable();
1519 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001520 MulAttributeBuilder &operator=(const MulAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001521 flatbuffers::Offset<MulAttribute> Finish() {
1522 const auto end = fbb_.EndTable(start_);
1523 auto o = flatbuffers::Offset<MulAttribute>(end);
1524 return o;
1525 }
1526};
1527
1528inline flatbuffers::Offset<MulAttribute> CreateMulAttribute(
1529 flatbuffers::FlatBufferBuilder &_fbb,
1530 int32_t shift = 0) {
1531 MulAttributeBuilder builder_(_fbb);
1532 builder_.add_shift(shift);
1533 return builder_.Finish();
1534}
1535
1536struct ArithmeticRightShiftAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1537 typedef ArithmeticRightShiftAttributeBuilder Builder;
1538 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1539 VT_ROUND = 4
1540 };
1541 bool round() const {
1542 return GetField<uint8_t>(VT_ROUND, 0) != 0;
1543 }
1544 bool Verify(flatbuffers::Verifier &verifier) const {
1545 return VerifyTableStart(verifier) &&
1546 VerifyField<uint8_t>(verifier, VT_ROUND) &&
1547 verifier.EndTable();
1548 }
1549};
1550
1551struct ArithmeticRightShiftAttributeBuilder {
1552 typedef ArithmeticRightShiftAttribute Table;
1553 flatbuffers::FlatBufferBuilder &fbb_;
1554 flatbuffers::uoffset_t start_;
1555 void add_round(bool round) {
1556 fbb_.AddElement<uint8_t>(ArithmeticRightShiftAttribute::VT_ROUND, static_cast<uint8_t>(round), 0);
1557 }
1558 explicit ArithmeticRightShiftAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1559 : fbb_(_fbb) {
1560 start_ = fbb_.StartTable();
1561 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001562 ArithmeticRightShiftAttributeBuilder &operator=(const ArithmeticRightShiftAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001563 flatbuffers::Offset<ArithmeticRightShiftAttribute> Finish() {
1564 const auto end = fbb_.EndTable(start_);
1565 auto o = flatbuffers::Offset<ArithmeticRightShiftAttribute>(end);
1566 return o;
1567 }
1568};
1569
1570inline flatbuffers::Offset<ArithmeticRightShiftAttribute> CreateArithmeticRightShiftAttribute(
1571 flatbuffers::FlatBufferBuilder &_fbb,
1572 bool round = false) {
1573 ArithmeticRightShiftAttributeBuilder builder_(_fbb);
1574 builder_.add_round(round);
1575 return builder_.Finish();
1576}
1577
1578struct CondIfAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1579 typedef CondIfAttributeBuilder Builder;
1580 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1581 VT_THEN_BRANCH = 4,
1582 VT_ELSE_BRANCH = 6
1583 };
1584 const flatbuffers::String *then_branch() const {
1585 return GetPointer<const flatbuffers::String *>(VT_THEN_BRANCH);
1586 }
1587 const flatbuffers::String *else_branch() const {
1588 return GetPointer<const flatbuffers::String *>(VT_ELSE_BRANCH);
1589 }
1590 bool Verify(flatbuffers::Verifier &verifier) const {
1591 return VerifyTableStart(verifier) &&
1592 VerifyOffset(verifier, VT_THEN_BRANCH) &&
1593 verifier.VerifyString(then_branch()) &&
1594 VerifyOffset(verifier, VT_ELSE_BRANCH) &&
1595 verifier.VerifyString(else_branch()) &&
1596 verifier.EndTable();
1597 }
1598};
1599
1600struct CondIfAttributeBuilder {
1601 typedef CondIfAttribute Table;
1602 flatbuffers::FlatBufferBuilder &fbb_;
1603 flatbuffers::uoffset_t start_;
1604 void add_then_branch(flatbuffers::Offset<flatbuffers::String> then_branch) {
1605 fbb_.AddOffset(CondIfAttribute::VT_THEN_BRANCH, then_branch);
1606 }
1607 void add_else_branch(flatbuffers::Offset<flatbuffers::String> else_branch) {
1608 fbb_.AddOffset(CondIfAttribute::VT_ELSE_BRANCH, else_branch);
1609 }
1610 explicit CondIfAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1611 : fbb_(_fbb) {
1612 start_ = fbb_.StartTable();
1613 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001614 CondIfAttributeBuilder &operator=(const CondIfAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001615 flatbuffers::Offset<CondIfAttribute> Finish() {
1616 const auto end = fbb_.EndTable(start_);
1617 auto o = flatbuffers::Offset<CondIfAttribute>(end);
1618 return o;
1619 }
1620};
1621
1622inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttribute(
1623 flatbuffers::FlatBufferBuilder &_fbb,
1624 flatbuffers::Offset<flatbuffers::String> then_branch = 0,
1625 flatbuffers::Offset<flatbuffers::String> else_branch = 0) {
1626 CondIfAttributeBuilder builder_(_fbb);
1627 builder_.add_else_branch(else_branch);
1628 builder_.add_then_branch(then_branch);
1629 return builder_.Finish();
1630}
1631
1632inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttributeDirect(
1633 flatbuffers::FlatBufferBuilder &_fbb,
1634 const char *then_branch = nullptr,
1635 const char *else_branch = nullptr) {
1636 auto then_branch__ = then_branch ? _fbb.CreateString(then_branch) : 0;
1637 auto else_branch__ = else_branch ? _fbb.CreateString(else_branch) : 0;
1638 return tosa::CreateCondIfAttribute(
1639 _fbb,
1640 then_branch__,
1641 else_branch__);
1642}
1643
1644struct WhileLoopAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1645 typedef WhileLoopAttributeBuilder Builder;
1646 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1647 VT_COND_BRANCH = 4,
1648 VT_BODY_BRANCH = 6
1649 };
1650 const flatbuffers::String *cond_branch() const {
1651 return GetPointer<const flatbuffers::String *>(VT_COND_BRANCH);
1652 }
1653 const flatbuffers::String *body_branch() const {
1654 return GetPointer<const flatbuffers::String *>(VT_BODY_BRANCH);
1655 }
1656 bool Verify(flatbuffers::Verifier &verifier) const {
1657 return VerifyTableStart(verifier) &&
1658 VerifyOffset(verifier, VT_COND_BRANCH) &&
1659 verifier.VerifyString(cond_branch()) &&
1660 VerifyOffset(verifier, VT_BODY_BRANCH) &&
1661 verifier.VerifyString(body_branch()) &&
1662 verifier.EndTable();
1663 }
1664};
1665
1666struct WhileLoopAttributeBuilder {
1667 typedef WhileLoopAttribute Table;
1668 flatbuffers::FlatBufferBuilder &fbb_;
1669 flatbuffers::uoffset_t start_;
1670 void add_cond_branch(flatbuffers::Offset<flatbuffers::String> cond_branch) {
1671 fbb_.AddOffset(WhileLoopAttribute::VT_COND_BRANCH, cond_branch);
1672 }
1673 void add_body_branch(flatbuffers::Offset<flatbuffers::String> body_branch) {
1674 fbb_.AddOffset(WhileLoopAttribute::VT_BODY_BRANCH, body_branch);
1675 }
1676 explicit WhileLoopAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1677 : fbb_(_fbb) {
1678 start_ = fbb_.StartTable();
1679 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001680 WhileLoopAttributeBuilder &operator=(const WhileLoopAttributeBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001681 flatbuffers::Offset<WhileLoopAttribute> Finish() {
1682 const auto end = fbb_.EndTable(start_);
1683 auto o = flatbuffers::Offset<WhileLoopAttribute>(end);
1684 return o;
1685 }
1686};
1687
1688inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttribute(
1689 flatbuffers::FlatBufferBuilder &_fbb,
1690 flatbuffers::Offset<flatbuffers::String> cond_branch = 0,
1691 flatbuffers::Offset<flatbuffers::String> body_branch = 0) {
1692 WhileLoopAttributeBuilder builder_(_fbb);
1693 builder_.add_body_branch(body_branch);
1694 builder_.add_cond_branch(cond_branch);
1695 return builder_.Finish();
1696}
1697
1698inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttributeDirect(
1699 flatbuffers::FlatBufferBuilder &_fbb,
1700 const char *cond_branch = nullptr,
1701 const char *body_branch = nullptr) {
1702 auto cond_branch__ = cond_branch ? _fbb.CreateString(cond_branch) : 0;
1703 auto body_branch__ = body_branch ? _fbb.CreateString(body_branch) : 0;
1704 return tosa::CreateWhileLoopAttribute(
1705 _fbb,
1706 cond_branch__,
1707 body_branch__);
1708}
1709
Kevin Cheng38d214c2021-10-15 15:49:19 -07001710struct TransposeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1711 typedef TransposeAttributeBuilder Builder;
1712 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001713 VT_PERMS = 4
Kevin Cheng38d214c2021-10-15 15:49:19 -07001714 };
TatWai Chong7be71652022-05-10 17:26:20 -07001715 const flatbuffers::Vector<int32_t> *perms() const {
1716 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PERMS);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001717 }
1718 bool Verify(flatbuffers::Verifier &verifier) const {
1719 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001720 VerifyOffset(verifier, VT_PERMS) &&
1721 verifier.VerifyVector(perms()) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -07001722 verifier.EndTable();
1723 }
1724};
1725
1726struct TransposeAttributeBuilder {
1727 typedef TransposeAttribute Table;
1728 flatbuffers::FlatBufferBuilder &fbb_;
1729 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001730 void add_perms(flatbuffers::Offset<flatbuffers::Vector<int32_t>> perms) {
1731 fbb_.AddOffset(TransposeAttribute::VT_PERMS, perms);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001732 }
1733 explicit TransposeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1734 : fbb_(_fbb) {
1735 start_ = fbb_.StartTable();
1736 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001737 TransposeAttributeBuilder &operator=(const TransposeAttributeBuilder &);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001738 flatbuffers::Offset<TransposeAttribute> Finish() {
1739 const auto end = fbb_.EndTable(start_);
1740 auto o = flatbuffers::Offset<TransposeAttribute>(end);
1741 return o;
1742 }
1743};
1744
1745inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttribute(
1746 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001747 flatbuffers::Offset<flatbuffers::Vector<int32_t>> perms = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001748 TransposeAttributeBuilder builder_(_fbb);
TatWai Chong7be71652022-05-10 17:26:20 -07001749 builder_.add_perms(perms);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001750 return builder_.Finish();
1751}
1752
1753inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttributeDirect(
1754 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001755 const std::vector<int32_t> *perms = nullptr) {
1756 auto perms__ = perms ? _fbb.CreateVector<int32_t>(*perms) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001757 return tosa::CreateTransposeAttribute(
1758 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001759 perms__);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001760}
1761
1762struct TableAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1763 typedef TableAttributeBuilder Builder;
1764 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1765 VT_TABLE = 4
1766 };
TatWai Chong7be71652022-05-10 17:26:20 -07001767 const flatbuffers::Vector<int16_t> *table() const {
1768 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_TABLE);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001769 }
1770 bool Verify(flatbuffers::Verifier &verifier) const {
1771 return VerifyTableStart(verifier) &&
1772 VerifyOffset(verifier, VT_TABLE) &&
1773 verifier.VerifyVector(table()) &&
1774 verifier.EndTable();
1775 }
1776};
1777
1778struct TableAttributeBuilder {
1779 typedef TableAttribute Table;
1780 flatbuffers::FlatBufferBuilder &fbb_;
1781 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001782 void add_table(flatbuffers::Offset<flatbuffers::Vector<int16_t>> table) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001783 fbb_.AddOffset(TableAttribute::VT_TABLE, table);
1784 }
1785 explicit TableAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1786 : fbb_(_fbb) {
1787 start_ = fbb_.StartTable();
1788 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001789 TableAttributeBuilder &operator=(const TableAttributeBuilder &);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001790 flatbuffers::Offset<TableAttribute> Finish() {
1791 const auto end = fbb_.EndTable(start_);
1792 auto o = flatbuffers::Offset<TableAttribute>(end);
1793 return o;
1794 }
1795};
1796
1797inline flatbuffers::Offset<TableAttribute> CreateTableAttribute(
1798 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001799 flatbuffers::Offset<flatbuffers::Vector<int16_t>> table = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001800 TableAttributeBuilder builder_(_fbb);
1801 builder_.add_table(table);
1802 return builder_.Finish();
1803}
1804
1805inline flatbuffers::Offset<TableAttribute> CreateTableAttributeDirect(
1806 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001807 const std::vector<int16_t> *table = nullptr) {
1808 auto table__ = table ? _fbb.CreateVector<int16_t>(*table) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001809 return tosa::CreateTableAttribute(
1810 _fbb,
1811 table__);
1812}
1813
Eric Kunze2364dcd2021-04-26 11:06:57 -07001814struct UnaryQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1815 typedef UnaryQuantInfoBuilder Builder;
1816 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1817 VT_INPUT_ZP = 4,
1818 VT_OUTPUT_ZP = 6
1819 };
1820 int32_t input_zp() const {
1821 return GetField<int32_t>(VT_INPUT_ZP, 0);
1822 }
1823 int32_t output_zp() const {
1824 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1825 }
1826 bool Verify(flatbuffers::Verifier &verifier) const {
1827 return VerifyTableStart(verifier) &&
1828 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1829 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP) &&
1830 verifier.EndTable();
1831 }
1832};
1833
1834struct UnaryQuantInfoBuilder {
1835 typedef UnaryQuantInfo Table;
1836 flatbuffers::FlatBufferBuilder &fbb_;
1837 flatbuffers::uoffset_t start_;
1838 void add_input_zp(int32_t input_zp) {
1839 fbb_.AddElement<int32_t>(UnaryQuantInfo::VT_INPUT_ZP, input_zp, 0);
1840 }
1841 void add_output_zp(int32_t output_zp) {
1842 fbb_.AddElement<int32_t>(UnaryQuantInfo::VT_OUTPUT_ZP, output_zp, 0);
1843 }
1844 explicit UnaryQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1845 : fbb_(_fbb) {
1846 start_ = fbb_.StartTable();
1847 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001848 UnaryQuantInfoBuilder &operator=(const UnaryQuantInfoBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001849 flatbuffers::Offset<UnaryQuantInfo> Finish() {
1850 const auto end = fbb_.EndTable(start_);
1851 auto o = flatbuffers::Offset<UnaryQuantInfo>(end);
1852 return o;
1853 }
1854};
1855
1856inline flatbuffers::Offset<UnaryQuantInfo> CreateUnaryQuantInfo(
1857 flatbuffers::FlatBufferBuilder &_fbb,
1858 int32_t input_zp = 0,
1859 int32_t output_zp = 0) {
1860 UnaryQuantInfoBuilder builder_(_fbb);
1861 builder_.add_output_zp(output_zp);
1862 builder_.add_input_zp(input_zp);
1863 return builder_.Finish();
1864}
1865
1866struct ConvQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1867 typedef ConvQuantInfoBuilder Builder;
1868 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1869 VT_INPUT_ZP = 4,
1870 VT_WEIGHT_ZP = 6
1871 };
1872 int32_t input_zp() const {
1873 return GetField<int32_t>(VT_INPUT_ZP, 0);
1874 }
1875 int32_t weight_zp() const {
1876 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
1877 }
1878 bool Verify(flatbuffers::Verifier &verifier) const {
1879 return VerifyTableStart(verifier) &&
1880 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1881 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP) &&
1882 verifier.EndTable();
1883 }
1884};
1885
1886struct ConvQuantInfoBuilder {
1887 typedef ConvQuantInfo Table;
1888 flatbuffers::FlatBufferBuilder &fbb_;
1889 flatbuffers::uoffset_t start_;
1890 void add_input_zp(int32_t input_zp) {
1891 fbb_.AddElement<int32_t>(ConvQuantInfo::VT_INPUT_ZP, input_zp, 0);
1892 }
1893 void add_weight_zp(int32_t weight_zp) {
1894 fbb_.AddElement<int32_t>(ConvQuantInfo::VT_WEIGHT_ZP, weight_zp, 0);
1895 }
1896 explicit ConvQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1897 : fbb_(_fbb) {
1898 start_ = fbb_.StartTable();
1899 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001900 ConvQuantInfoBuilder &operator=(const ConvQuantInfoBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001901 flatbuffers::Offset<ConvQuantInfo> Finish() {
1902 const auto end = fbb_.EndTable(start_);
1903 auto o = flatbuffers::Offset<ConvQuantInfo>(end);
1904 return o;
1905 }
1906};
1907
1908inline flatbuffers::Offset<ConvQuantInfo> CreateConvQuantInfo(
1909 flatbuffers::FlatBufferBuilder &_fbb,
1910 int32_t input_zp = 0,
1911 int32_t weight_zp = 0) {
1912 ConvQuantInfoBuilder builder_(_fbb);
1913 builder_.add_weight_zp(weight_zp);
1914 builder_.add_input_zp(input_zp);
1915 return builder_.Finish();
1916}
1917
1918struct MatMulQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1919 typedef MatMulQuantInfoBuilder Builder;
1920 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1921 VT_A_ZP = 4,
1922 VT_B_ZP = 6
1923 };
1924 int32_t a_zp() const {
1925 return GetField<int32_t>(VT_A_ZP, 0);
1926 }
1927 int32_t b_zp() const {
1928 return GetField<int32_t>(VT_B_ZP, 0);
1929 }
1930 bool Verify(flatbuffers::Verifier &verifier) const {
1931 return VerifyTableStart(verifier) &&
1932 VerifyField<int32_t>(verifier, VT_A_ZP) &&
1933 VerifyField<int32_t>(verifier, VT_B_ZP) &&
1934 verifier.EndTable();
1935 }
1936};
1937
1938struct MatMulQuantInfoBuilder {
1939 typedef MatMulQuantInfo Table;
1940 flatbuffers::FlatBufferBuilder &fbb_;
1941 flatbuffers::uoffset_t start_;
1942 void add_a_zp(int32_t a_zp) {
1943 fbb_.AddElement<int32_t>(MatMulQuantInfo::VT_A_ZP, a_zp, 0);
1944 }
1945 void add_b_zp(int32_t b_zp) {
1946 fbb_.AddElement<int32_t>(MatMulQuantInfo::VT_B_ZP, b_zp, 0);
1947 }
1948 explicit MatMulQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1949 : fbb_(_fbb) {
1950 start_ = fbb_.StartTable();
1951 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001952 MatMulQuantInfoBuilder &operator=(const MatMulQuantInfoBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001953 flatbuffers::Offset<MatMulQuantInfo> Finish() {
1954 const auto end = fbb_.EndTable(start_);
1955 auto o = flatbuffers::Offset<MatMulQuantInfo>(end);
1956 return o;
1957 }
1958};
1959
1960inline flatbuffers::Offset<MatMulQuantInfo> CreateMatMulQuantInfo(
1961 flatbuffers::FlatBufferBuilder &_fbb,
1962 int32_t a_zp = 0,
1963 int32_t b_zp = 0) {
1964 MatMulQuantInfoBuilder builder_(_fbb);
1965 builder_.add_b_zp(b_zp);
1966 builder_.add_a_zp(a_zp);
1967 return builder_.Finish();
1968}
1969
1970struct PadQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1971 typedef PadQuantInfoBuilder Builder;
1972 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1973 VT_INPUT_ZP = 4
1974 };
1975 int32_t input_zp() const {
1976 return GetField<int32_t>(VT_INPUT_ZP, 0);
1977 }
1978 bool Verify(flatbuffers::Verifier &verifier) const {
1979 return VerifyTableStart(verifier) &&
1980 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1981 verifier.EndTable();
1982 }
1983};
1984
1985struct PadQuantInfoBuilder {
1986 typedef PadQuantInfo Table;
1987 flatbuffers::FlatBufferBuilder &fbb_;
1988 flatbuffers::uoffset_t start_;
1989 void add_input_zp(int32_t input_zp) {
1990 fbb_.AddElement<int32_t>(PadQuantInfo::VT_INPUT_ZP, input_zp, 0);
1991 }
1992 explicit PadQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1993 : fbb_(_fbb) {
1994 start_ = fbb_.StartTable();
1995 }
Eric Kunzeae906de2022-05-30 22:40:47 -07001996 PadQuantInfoBuilder &operator=(const PadQuantInfoBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001997 flatbuffers::Offset<PadQuantInfo> Finish() {
1998 const auto end = fbb_.EndTable(start_);
1999 auto o = flatbuffers::Offset<PadQuantInfo>(end);
2000 return o;
2001 }
2002};
2003
2004inline flatbuffers::Offset<PadQuantInfo> CreatePadQuantInfo(
2005 flatbuffers::FlatBufferBuilder &_fbb,
2006 int32_t input_zp = 0) {
2007 PadQuantInfoBuilder builder_(_fbb);
2008 builder_.add_input_zp(input_zp);
2009 return builder_.Finish();
2010}
2011
2012struct Version FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2013 typedef VersionBuilder Builder;
2014 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2015 VT__MAJOR = 4,
2016 VT__MINOR = 6,
2017 VT__PATCH = 8,
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002018 VT__DRAFT = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07002019 };
2020 int32_t _major() const {
2021 return GetField<int32_t>(VT__MAJOR, 0);
2022 }
2023 int32_t _minor() const {
Eric Kunzea687b612021-11-03 17:02:57 -07002024 return GetField<int32_t>(VT__MINOR, 24);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002025 }
2026 int32_t _patch() const {
2027 return GetField<int32_t>(VT__PATCH, 0);
2028 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002029 bool _draft() const {
Eric Kunzea687b612021-11-03 17:02:57 -07002030 return GetField<uint8_t>(VT__DRAFT, 1) != 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002031 }
2032 bool Verify(flatbuffers::Verifier &verifier) const {
2033 return VerifyTableStart(verifier) &&
2034 VerifyField<int32_t>(verifier, VT__MAJOR) &&
2035 VerifyField<int32_t>(verifier, VT__MINOR) &&
2036 VerifyField<int32_t>(verifier, VT__PATCH) &&
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002037 VerifyField<uint8_t>(verifier, VT__DRAFT) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002038 verifier.EndTable();
2039 }
2040};
2041
2042struct VersionBuilder {
2043 typedef Version Table;
2044 flatbuffers::FlatBufferBuilder &fbb_;
2045 flatbuffers::uoffset_t start_;
2046 void add__major(int32_t _major) {
2047 fbb_.AddElement<int32_t>(Version::VT__MAJOR, _major, 0);
2048 }
2049 void add__minor(int32_t _minor) {
Eric Kunzea687b612021-11-03 17:02:57 -07002050 fbb_.AddElement<int32_t>(Version::VT__MINOR, _minor, 24);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002051 }
2052 void add__patch(int32_t _patch) {
2053 fbb_.AddElement<int32_t>(Version::VT__PATCH, _patch, 0);
2054 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002055 void add__draft(bool _draft) {
Eric Kunzea687b612021-11-03 17:02:57 -07002056 fbb_.AddElement<uint8_t>(Version::VT__DRAFT, static_cast<uint8_t>(_draft), 1);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002057 }
2058 explicit VersionBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2059 : fbb_(_fbb) {
2060 start_ = fbb_.StartTable();
2061 }
Eric Kunzeae906de2022-05-30 22:40:47 -07002062 VersionBuilder &operator=(const VersionBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002063 flatbuffers::Offset<Version> Finish() {
2064 const auto end = fbb_.EndTable(start_);
2065 auto o = flatbuffers::Offset<Version>(end);
2066 return o;
2067 }
2068};
2069
2070inline flatbuffers::Offset<Version> CreateVersion(
2071 flatbuffers::FlatBufferBuilder &_fbb,
2072 int32_t _major = 0,
Eric Kunzea687b612021-11-03 17:02:57 -07002073 int32_t _minor = 24,
Eric Kunze2364dcd2021-04-26 11:06:57 -07002074 int32_t _patch = 0,
Eric Kunzea687b612021-11-03 17:02:57 -07002075 bool _draft = true) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002076 VersionBuilder builder_(_fbb);
2077 builder_.add__patch(_patch);
2078 builder_.add__minor(_minor);
2079 builder_.add__major(_major);
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002080 builder_.add__draft(_draft);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002081 return builder_.Finish();
2082}
2083
2084struct TosaTensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2085 typedef TosaTensorBuilder Builder;
2086 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2087 VT_NAME = 4,
2088 VT_SHAPE = 6,
2089 VT_TYPE = 8,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002090 VT_DATA = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07002091 };
2092 const flatbuffers::String *name() const {
2093 return GetPointer<const flatbuffers::String *>(VT_NAME);
2094 }
2095 const flatbuffers::Vector<int32_t> *shape() const {
2096 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHAPE);
2097 }
2098 tosa::DType type() const {
2099 return static_cast<tosa::DType>(GetField<uint32_t>(VT_TYPE, 0));
2100 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002101 const flatbuffers::Vector<uint8_t> *data() const {
2102 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_DATA);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002103 }
2104 bool Verify(flatbuffers::Verifier &verifier) const {
2105 return VerifyTableStart(verifier) &&
2106 VerifyOffset(verifier, VT_NAME) &&
2107 verifier.VerifyString(name()) &&
2108 VerifyOffset(verifier, VT_SHAPE) &&
2109 verifier.VerifyVector(shape()) &&
2110 VerifyField<uint32_t>(verifier, VT_TYPE) &&
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002111 VerifyOffset(verifier, VT_DATA) &&
2112 verifier.VerifyVector(data()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002113 verifier.EndTable();
2114 }
2115};
2116
2117struct TosaTensorBuilder {
2118 typedef TosaTensor Table;
2119 flatbuffers::FlatBufferBuilder &fbb_;
2120 flatbuffers::uoffset_t start_;
2121 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2122 fbb_.AddOffset(TosaTensor::VT_NAME, name);
2123 }
2124 void add_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape) {
2125 fbb_.AddOffset(TosaTensor::VT_SHAPE, shape);
2126 }
2127 void add_type(tosa::DType type) {
2128 fbb_.AddElement<uint32_t>(TosaTensor::VT_TYPE, static_cast<uint32_t>(type), 0);
2129 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002130 void add_data(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data) {
2131 fbb_.AddOffset(TosaTensor::VT_DATA, data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002132 }
2133 explicit TosaTensorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2134 : fbb_(_fbb) {
2135 start_ = fbb_.StartTable();
2136 }
Eric Kunzeae906de2022-05-30 22:40:47 -07002137 TosaTensorBuilder &operator=(const TosaTensorBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002138 flatbuffers::Offset<TosaTensor> Finish() {
2139 const auto end = fbb_.EndTable(start_);
2140 auto o = flatbuffers::Offset<TosaTensor>(end);
2141 return o;
2142 }
2143};
2144
2145inline flatbuffers::Offset<TosaTensor> CreateTosaTensor(
2146 flatbuffers::FlatBufferBuilder &_fbb,
2147 flatbuffers::Offset<flatbuffers::String> name = 0,
2148 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape = 0,
2149 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002150 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002151 TosaTensorBuilder builder_(_fbb);
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002152 builder_.add_data(data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002153 builder_.add_type(type);
2154 builder_.add_shape(shape);
2155 builder_.add_name(name);
2156 return builder_.Finish();
2157}
2158
2159inline flatbuffers::Offset<TosaTensor> CreateTosaTensorDirect(
2160 flatbuffers::FlatBufferBuilder &_fbb,
2161 const char *name = nullptr,
2162 const std::vector<int32_t> *shape = nullptr,
2163 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002164 const std::vector<uint8_t> *data = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002165 auto name__ = name ? _fbb.CreateString(name) : 0;
2166 auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0;
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002167 if (data) { _fbb.ForceVectorAlignment(data->size(), sizeof(uint8_t), 8); }
2168 auto data__ = data ? _fbb.CreateVector<uint8_t>(*data) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002169 return tosa::CreateTosaTensor(
2170 _fbb,
2171 name__,
2172 shape__,
2173 type,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002174 data__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002175}
2176
2177struct TosaOperator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2178 typedef TosaOperatorBuilder Builder;
2179 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2180 VT_OP = 4,
2181 VT_ATTRIBUTE_TYPE = 6,
2182 VT_ATTRIBUTE = 8,
2183 VT_INPUTS = 10,
2184 VT_OUTPUTS = 12,
2185 VT_QUANT_INFO_TYPE = 14,
2186 VT_QUANT_INFO = 16
2187 };
2188 tosa::Op op() const {
2189 return static_cast<tosa::Op>(GetField<uint32_t>(VT_OP, 0));
2190 }
2191 tosa::Attribute attribute_type() const {
2192 return static_cast<tosa::Attribute>(GetField<uint8_t>(VT_ATTRIBUTE_TYPE, 0));
2193 }
2194 const void *attribute() const {
2195 return GetPointer<const void *>(VT_ATTRIBUTE);
2196 }
2197 template<typename T> const T *attribute_as() const;
Kevin Cheng79a41992021-08-31 16:04:40 -07002198 const tosa::PoolAttribute *attribute_as_PoolAttribute() const {
2199 return attribute_type() == tosa::Attribute_PoolAttribute ? static_cast<const tosa::PoolAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002200 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002201 const tosa::ConvAttribute *attribute_as_ConvAttribute() const {
2202 return attribute_type() == tosa::Attribute_ConvAttribute ? static_cast<const tosa::ConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002203 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002204 const tosa::TransposeConvAttribute *attribute_as_TransposeConvAttribute() const {
2205 return attribute_type() == tosa::Attribute_TransposeConvAttribute ? static_cast<const tosa::TransposeConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002206 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002207 const tosa::PadAttribute *attribute_as_PadAttribute() const {
2208 return attribute_type() == tosa::Attribute_PadAttribute ? static_cast<const tosa::PadAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002209 }
2210 const tosa::AxisAttribute *attribute_as_AxisAttribute() const {
2211 return attribute_type() == tosa::Attribute_AxisAttribute ? static_cast<const tosa::AxisAttribute *>(attribute()) : nullptr;
2212 }
2213 const tosa::ReshapeAttribute *attribute_as_ReshapeAttribute() const {
2214 return attribute_type() == tosa::Attribute_ReshapeAttribute ? static_cast<const tosa::ReshapeAttribute *>(attribute()) : nullptr;
2215 }
2216 const tosa::SliceAttribute *attribute_as_SliceAttribute() const {
2217 return attribute_type() == tosa::Attribute_SliceAttribute ? static_cast<const tosa::SliceAttribute *>(attribute()) : nullptr;
2218 }
2219 const tosa::TileAttribute *attribute_as_TileAttribute() const {
2220 return attribute_type() == tosa::Attribute_TileAttribute ? static_cast<const tosa::TileAttribute *>(attribute()) : nullptr;
2221 }
2222 const tosa::ResizeAttribute *attribute_as_ResizeAttribute() const {
2223 return attribute_type() == tosa::Attribute_ResizeAttribute ? static_cast<const tosa::ResizeAttribute *>(attribute()) : nullptr;
2224 }
2225 const tosa::ClampAttribute *attribute_as_ClampAttribute() const {
2226 return attribute_type() == tosa::Attribute_ClampAttribute ? static_cast<const tosa::ClampAttribute *>(attribute()) : nullptr;
2227 }
2228 const tosa::RescaleAttribute *attribute_as_RescaleAttribute() const {
2229 return attribute_type() == tosa::Attribute_RescaleAttribute ? static_cast<const tosa::RescaleAttribute *>(attribute()) : nullptr;
2230 }
2231 const tosa::MulAttribute *attribute_as_MulAttribute() const {
2232 return attribute_type() == tosa::Attribute_MulAttribute ? static_cast<const tosa::MulAttribute *>(attribute()) : nullptr;
2233 }
2234 const tosa::ArithmeticRightShiftAttribute *attribute_as_ArithmeticRightShiftAttribute() const {
2235 return attribute_type() == tosa::Attribute_ArithmeticRightShiftAttribute ? static_cast<const tosa::ArithmeticRightShiftAttribute *>(attribute()) : nullptr;
2236 }
2237 const tosa::CondIfAttribute *attribute_as_CondIfAttribute() const {
2238 return attribute_type() == tosa::Attribute_CondIfAttribute ? static_cast<const tosa::CondIfAttribute *>(attribute()) : nullptr;
2239 }
2240 const tosa::WhileLoopAttribute *attribute_as_WhileLoopAttribute() const {
2241 return attribute_type() == tosa::Attribute_WhileLoopAttribute ? static_cast<const tosa::WhileLoopAttribute *>(attribute()) : nullptr;
2242 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002243 const tosa::TransposeAttribute *attribute_as_TransposeAttribute() const {
2244 return attribute_type() == tosa::Attribute_TransposeAttribute ? static_cast<const tosa::TransposeAttribute *>(attribute()) : nullptr;
2245 }
2246 const tosa::TableAttribute *attribute_as_TableAttribute() const {
2247 return attribute_type() == tosa::Attribute_TableAttribute ? static_cast<const tosa::TableAttribute *>(attribute()) : nullptr;
2248 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002249 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2250 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2251 }
2252 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2253 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2254 }
2255 tosa::QuantInfo quant_info_type() const {
2256 return static_cast<tosa::QuantInfo>(GetField<uint8_t>(VT_QUANT_INFO_TYPE, 0));
2257 }
2258 const void *quant_info() const {
2259 return GetPointer<const void *>(VT_QUANT_INFO);
2260 }
2261 template<typename T> const T *quant_info_as() const;
2262 const tosa::UnaryQuantInfo *quant_info_as_UnaryQuantInfo() const {
2263 return quant_info_type() == tosa::QuantInfo_UnaryQuantInfo ? static_cast<const tosa::UnaryQuantInfo *>(quant_info()) : nullptr;
2264 }
2265 const tosa::ConvQuantInfo *quant_info_as_ConvQuantInfo() const {
2266 return quant_info_type() == tosa::QuantInfo_ConvQuantInfo ? static_cast<const tosa::ConvQuantInfo *>(quant_info()) : nullptr;
2267 }
2268 const tosa::MatMulQuantInfo *quant_info_as_MatMulQuantInfo() const {
2269 return quant_info_type() == tosa::QuantInfo_MatMulQuantInfo ? static_cast<const tosa::MatMulQuantInfo *>(quant_info()) : nullptr;
2270 }
2271 const tosa::PadQuantInfo *quant_info_as_PadQuantInfo() const {
2272 return quant_info_type() == tosa::QuantInfo_PadQuantInfo ? static_cast<const tosa::PadQuantInfo *>(quant_info()) : nullptr;
2273 }
2274 bool Verify(flatbuffers::Verifier &verifier) const {
2275 return VerifyTableStart(verifier) &&
2276 VerifyField<uint32_t>(verifier, VT_OP) &&
2277 VerifyField<uint8_t>(verifier, VT_ATTRIBUTE_TYPE) &&
2278 VerifyOffset(verifier, VT_ATTRIBUTE) &&
2279 VerifyAttribute(verifier, attribute(), attribute_type()) &&
2280 VerifyOffset(verifier, VT_INPUTS) &&
2281 verifier.VerifyVector(inputs()) &&
2282 verifier.VerifyVectorOfStrings(inputs()) &&
2283 VerifyOffset(verifier, VT_OUTPUTS) &&
2284 verifier.VerifyVector(outputs()) &&
2285 verifier.VerifyVectorOfStrings(outputs()) &&
2286 VerifyField<uint8_t>(verifier, VT_QUANT_INFO_TYPE) &&
2287 VerifyOffset(verifier, VT_QUANT_INFO) &&
2288 VerifyQuantInfo(verifier, quant_info(), quant_info_type()) &&
2289 verifier.EndTable();
2290 }
2291};
2292
Kevin Cheng79a41992021-08-31 16:04:40 -07002293template<> inline const tosa::PoolAttribute *TosaOperator::attribute_as<tosa::PoolAttribute>() const {
2294 return attribute_as_PoolAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002295}
2296
Kevin Cheng79a41992021-08-31 16:04:40 -07002297template<> inline const tosa::ConvAttribute *TosaOperator::attribute_as<tosa::ConvAttribute>() const {
2298 return attribute_as_ConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002299}
2300
Kevin Cheng79a41992021-08-31 16:04:40 -07002301template<> inline const tosa::TransposeConvAttribute *TosaOperator::attribute_as<tosa::TransposeConvAttribute>() const {
2302 return attribute_as_TransposeConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002303}
2304
Kevin Cheng38d214c2021-10-15 15:49:19 -07002305template<> inline const tosa::PadAttribute *TosaOperator::attribute_as<tosa::PadAttribute>() const {
2306 return attribute_as_PadAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002307}
2308
2309template<> inline const tosa::AxisAttribute *TosaOperator::attribute_as<tosa::AxisAttribute>() const {
2310 return attribute_as_AxisAttribute();
2311}
2312
2313template<> inline const tosa::ReshapeAttribute *TosaOperator::attribute_as<tosa::ReshapeAttribute>() const {
2314 return attribute_as_ReshapeAttribute();
2315}
2316
2317template<> inline const tosa::SliceAttribute *TosaOperator::attribute_as<tosa::SliceAttribute>() const {
2318 return attribute_as_SliceAttribute();
2319}
2320
2321template<> inline const tosa::TileAttribute *TosaOperator::attribute_as<tosa::TileAttribute>() const {
2322 return attribute_as_TileAttribute();
2323}
2324
2325template<> inline const tosa::ResizeAttribute *TosaOperator::attribute_as<tosa::ResizeAttribute>() const {
2326 return attribute_as_ResizeAttribute();
2327}
2328
2329template<> inline const tosa::ClampAttribute *TosaOperator::attribute_as<tosa::ClampAttribute>() const {
2330 return attribute_as_ClampAttribute();
2331}
2332
2333template<> inline const tosa::RescaleAttribute *TosaOperator::attribute_as<tosa::RescaleAttribute>() const {
2334 return attribute_as_RescaleAttribute();
2335}
2336
2337template<> inline const tosa::MulAttribute *TosaOperator::attribute_as<tosa::MulAttribute>() const {
2338 return attribute_as_MulAttribute();
2339}
2340
2341template<> inline const tosa::ArithmeticRightShiftAttribute *TosaOperator::attribute_as<tosa::ArithmeticRightShiftAttribute>() const {
2342 return attribute_as_ArithmeticRightShiftAttribute();
2343}
2344
2345template<> inline const tosa::CondIfAttribute *TosaOperator::attribute_as<tosa::CondIfAttribute>() const {
2346 return attribute_as_CondIfAttribute();
2347}
2348
2349template<> inline const tosa::WhileLoopAttribute *TosaOperator::attribute_as<tosa::WhileLoopAttribute>() const {
2350 return attribute_as_WhileLoopAttribute();
2351}
2352
Kevin Cheng38d214c2021-10-15 15:49:19 -07002353template<> inline const tosa::TransposeAttribute *TosaOperator::attribute_as<tosa::TransposeAttribute>() const {
2354 return attribute_as_TransposeAttribute();
2355}
2356
2357template<> inline const tosa::TableAttribute *TosaOperator::attribute_as<tosa::TableAttribute>() const {
2358 return attribute_as_TableAttribute();
2359}
2360
Eric Kunze2364dcd2021-04-26 11:06:57 -07002361template<> inline const tosa::UnaryQuantInfo *TosaOperator::quant_info_as<tosa::UnaryQuantInfo>() const {
2362 return quant_info_as_UnaryQuantInfo();
2363}
2364
2365template<> inline const tosa::ConvQuantInfo *TosaOperator::quant_info_as<tosa::ConvQuantInfo>() const {
2366 return quant_info_as_ConvQuantInfo();
2367}
2368
2369template<> inline const tosa::MatMulQuantInfo *TosaOperator::quant_info_as<tosa::MatMulQuantInfo>() const {
2370 return quant_info_as_MatMulQuantInfo();
2371}
2372
2373template<> inline const tosa::PadQuantInfo *TosaOperator::quant_info_as<tosa::PadQuantInfo>() const {
2374 return quant_info_as_PadQuantInfo();
2375}
2376
2377struct TosaOperatorBuilder {
2378 typedef TosaOperator Table;
2379 flatbuffers::FlatBufferBuilder &fbb_;
2380 flatbuffers::uoffset_t start_;
2381 void add_op(tosa::Op op) {
2382 fbb_.AddElement<uint32_t>(TosaOperator::VT_OP, static_cast<uint32_t>(op), 0);
2383 }
2384 void add_attribute_type(tosa::Attribute attribute_type) {
2385 fbb_.AddElement<uint8_t>(TosaOperator::VT_ATTRIBUTE_TYPE, static_cast<uint8_t>(attribute_type), 0);
2386 }
2387 void add_attribute(flatbuffers::Offset<void> attribute) {
2388 fbb_.AddOffset(TosaOperator::VT_ATTRIBUTE, attribute);
2389 }
2390 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2391 fbb_.AddOffset(TosaOperator::VT_INPUTS, inputs);
2392 }
2393 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2394 fbb_.AddOffset(TosaOperator::VT_OUTPUTS, outputs);
2395 }
2396 void add_quant_info_type(tosa::QuantInfo quant_info_type) {
2397 fbb_.AddElement<uint8_t>(TosaOperator::VT_QUANT_INFO_TYPE, static_cast<uint8_t>(quant_info_type), 0);
2398 }
2399 void add_quant_info(flatbuffers::Offset<void> quant_info) {
2400 fbb_.AddOffset(TosaOperator::VT_QUANT_INFO, quant_info);
2401 }
2402 explicit TosaOperatorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2403 : fbb_(_fbb) {
2404 start_ = fbb_.StartTable();
2405 }
Eric Kunzeae906de2022-05-30 22:40:47 -07002406 TosaOperatorBuilder &operator=(const TosaOperatorBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002407 flatbuffers::Offset<TosaOperator> Finish() {
2408 const auto end = fbb_.EndTable(start_);
2409 auto o = flatbuffers::Offset<TosaOperator>(end);
2410 return o;
2411 }
2412};
2413
2414inline flatbuffers::Offset<TosaOperator> CreateTosaOperator(
2415 flatbuffers::FlatBufferBuilder &_fbb,
2416 tosa::Op op = tosa::Op_UNKNOWN,
2417 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2418 flatbuffers::Offset<void> attribute = 0,
2419 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
2420 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0,
2421 tosa::QuantInfo quant_info_type = tosa::QuantInfo_NONE,
2422 flatbuffers::Offset<void> quant_info = 0) {
2423 TosaOperatorBuilder builder_(_fbb);
2424 builder_.add_quant_info(quant_info);
2425 builder_.add_outputs(outputs);
2426 builder_.add_inputs(inputs);
2427 builder_.add_attribute(attribute);
2428 builder_.add_op(op);
2429 builder_.add_quant_info_type(quant_info_type);
2430 builder_.add_attribute_type(attribute_type);
2431 return builder_.Finish();
2432}
2433
2434inline flatbuffers::Offset<TosaOperator> CreateTosaOperatorDirect(
2435 flatbuffers::FlatBufferBuilder &_fbb,
2436 tosa::Op op = tosa::Op_UNKNOWN,
2437 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2438 flatbuffers::Offset<void> attribute = 0,
2439 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
2440 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr,
2441 tosa::QuantInfo quant_info_type = tosa::QuantInfo_NONE,
2442 flatbuffers::Offset<void> quant_info = 0) {
2443 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2444 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2445 return tosa::CreateTosaOperator(
2446 _fbb,
2447 op,
2448 attribute_type,
2449 attribute,
2450 inputs__,
2451 outputs__,
2452 quant_info_type,
2453 quant_info);
2454}
2455
2456struct TosaBasicBlock FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2457 typedef TosaBasicBlockBuilder Builder;
2458 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2459 VT_NAME = 4,
2460 VT_OPERATORS = 6,
2461 VT_TENSORS = 8,
2462 VT_INPUTS = 10,
2463 VT_OUTPUTS = 12
2464 };
2465 const flatbuffers::String *name() const {
2466 return GetPointer<const flatbuffers::String *>(VT_NAME);
2467 }
2468 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *operators() const {
2469 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *>(VT_OPERATORS);
2470 }
2471 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors() const {
2472 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *>(VT_TENSORS);
2473 }
2474 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2475 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2476 }
2477 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2478 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2479 }
2480 bool Verify(flatbuffers::Verifier &verifier) const {
2481 return VerifyTableStart(verifier) &&
2482 VerifyOffset(verifier, VT_NAME) &&
2483 verifier.VerifyString(name()) &&
2484 VerifyOffset(verifier, VT_OPERATORS) &&
2485 verifier.VerifyVector(operators()) &&
2486 verifier.VerifyVectorOfTables(operators()) &&
2487 VerifyOffset(verifier, VT_TENSORS) &&
2488 verifier.VerifyVector(tensors()) &&
2489 verifier.VerifyVectorOfTables(tensors()) &&
2490 VerifyOffset(verifier, VT_INPUTS) &&
2491 verifier.VerifyVector(inputs()) &&
2492 verifier.VerifyVectorOfStrings(inputs()) &&
2493 VerifyOffset(verifier, VT_OUTPUTS) &&
2494 verifier.VerifyVector(outputs()) &&
2495 verifier.VerifyVectorOfStrings(outputs()) &&
2496 verifier.EndTable();
2497 }
2498};
2499
2500struct TosaBasicBlockBuilder {
2501 typedef TosaBasicBlock Table;
2502 flatbuffers::FlatBufferBuilder &fbb_;
2503 flatbuffers::uoffset_t start_;
2504 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2505 fbb_.AddOffset(TosaBasicBlock::VT_NAME, name);
2506 }
2507 void add_operators(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators) {
2508 fbb_.AddOffset(TosaBasicBlock::VT_OPERATORS, operators);
2509 }
2510 void add_tensors(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors) {
2511 fbb_.AddOffset(TosaBasicBlock::VT_TENSORS, tensors);
2512 }
2513 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2514 fbb_.AddOffset(TosaBasicBlock::VT_INPUTS, inputs);
2515 }
2516 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2517 fbb_.AddOffset(TosaBasicBlock::VT_OUTPUTS, outputs);
2518 }
2519 explicit TosaBasicBlockBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2520 : fbb_(_fbb) {
2521 start_ = fbb_.StartTable();
2522 }
Eric Kunzeae906de2022-05-30 22:40:47 -07002523 TosaBasicBlockBuilder &operator=(const TosaBasicBlockBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002524 flatbuffers::Offset<TosaBasicBlock> Finish() {
2525 const auto end = fbb_.EndTable(start_);
2526 auto o = flatbuffers::Offset<TosaBasicBlock>(end);
2527 return o;
2528 }
2529};
2530
2531inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlock(
2532 flatbuffers::FlatBufferBuilder &_fbb,
2533 flatbuffers::Offset<flatbuffers::String> name = 0,
2534 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators = 0,
2535 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors = 0,
2536 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
2537 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
2538 TosaBasicBlockBuilder builder_(_fbb);
2539 builder_.add_outputs(outputs);
2540 builder_.add_inputs(inputs);
2541 builder_.add_tensors(tensors);
2542 builder_.add_operators(operators);
2543 builder_.add_name(name);
2544 return builder_.Finish();
2545}
2546
2547inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlockDirect(
2548 flatbuffers::FlatBufferBuilder &_fbb,
2549 const char *name = nullptr,
2550 const std::vector<flatbuffers::Offset<tosa::TosaOperator>> *operators = nullptr,
2551 const std::vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors = nullptr,
2552 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
2553 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
2554 auto name__ = name ? _fbb.CreateString(name) : 0;
2555 auto operators__ = operators ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaOperator>>(*operators) : 0;
2556 auto tensors__ = tensors ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaTensor>>(*tensors) : 0;
2557 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2558 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2559 return tosa::CreateTosaBasicBlock(
2560 _fbb,
2561 name__,
2562 operators__,
2563 tensors__,
2564 inputs__,
2565 outputs__);
2566}
2567
2568struct TosaGraph FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2569 typedef TosaGraphBuilder Builder;
2570 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2571 VT_VERSION = 4,
2572 VT_BLOCKS = 6
2573 };
2574 const tosa::Version *version() const {
2575 return GetPointer<const tosa::Version *>(VT_VERSION);
2576 }
2577 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks() const {
2578 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *>(VT_BLOCKS);
2579 }
2580 bool Verify(flatbuffers::Verifier &verifier) const {
2581 return VerifyTableStart(verifier) &&
2582 VerifyOffset(verifier, VT_VERSION) &&
2583 verifier.VerifyTable(version()) &&
2584 VerifyOffset(verifier, VT_BLOCKS) &&
2585 verifier.VerifyVector(blocks()) &&
2586 verifier.VerifyVectorOfTables(blocks()) &&
2587 verifier.EndTable();
2588 }
2589};
2590
2591struct TosaGraphBuilder {
2592 typedef TosaGraph Table;
2593 flatbuffers::FlatBufferBuilder &fbb_;
2594 flatbuffers::uoffset_t start_;
2595 void add_version(flatbuffers::Offset<tosa::Version> version) {
2596 fbb_.AddOffset(TosaGraph::VT_VERSION, version);
2597 }
2598 void add_blocks(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks) {
2599 fbb_.AddOffset(TosaGraph::VT_BLOCKS, blocks);
2600 }
2601 explicit TosaGraphBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2602 : fbb_(_fbb) {
2603 start_ = fbb_.StartTable();
2604 }
Eric Kunzeae906de2022-05-30 22:40:47 -07002605 TosaGraphBuilder &operator=(const TosaGraphBuilder &);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002606 flatbuffers::Offset<TosaGraph> Finish() {
2607 const auto end = fbb_.EndTable(start_);
2608 auto o = flatbuffers::Offset<TosaGraph>(end);
2609 return o;
2610 }
2611};
2612
2613inline flatbuffers::Offset<TosaGraph> CreateTosaGraph(
2614 flatbuffers::FlatBufferBuilder &_fbb,
2615 flatbuffers::Offset<tosa::Version> version = 0,
2616 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks = 0) {
2617 TosaGraphBuilder builder_(_fbb);
2618 builder_.add_blocks(blocks);
2619 builder_.add_version(version);
2620 return builder_.Finish();
2621}
2622
2623inline flatbuffers::Offset<TosaGraph> CreateTosaGraphDirect(
2624 flatbuffers::FlatBufferBuilder &_fbb,
2625 flatbuffers::Offset<tosa::Version> version = 0,
2626 const std::vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks = nullptr) {
2627 auto blocks__ = blocks ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaBasicBlock>>(*blocks) : 0;
2628 return tosa::CreateTosaGraph(
2629 _fbb,
2630 version,
2631 blocks__);
2632}
2633
2634inline bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type) {
2635 switch (type) {
2636 case Attribute_NONE: {
2637 return true;
2638 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002639 case Attribute_PoolAttribute: {
2640 auto ptr = reinterpret_cast<const tosa::PoolAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002641 return verifier.VerifyTable(ptr);
2642 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002643 case Attribute_ConvAttribute: {
2644 auto ptr = reinterpret_cast<const tosa::ConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002645 return verifier.VerifyTable(ptr);
2646 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002647 case Attribute_TransposeConvAttribute: {
2648 auto ptr = reinterpret_cast<const tosa::TransposeConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002649 return verifier.VerifyTable(ptr);
2650 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002651 case Attribute_PadAttribute: {
2652 auto ptr = reinterpret_cast<const tosa::PadAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002653 return verifier.VerifyTable(ptr);
2654 }
2655 case Attribute_AxisAttribute: {
2656 auto ptr = reinterpret_cast<const tosa::AxisAttribute *>(obj);
2657 return verifier.VerifyTable(ptr);
2658 }
2659 case Attribute_ReshapeAttribute: {
2660 auto ptr = reinterpret_cast<const tosa::ReshapeAttribute *>(obj);
2661 return verifier.VerifyTable(ptr);
2662 }
2663 case Attribute_SliceAttribute: {
2664 auto ptr = reinterpret_cast<const tosa::SliceAttribute *>(obj);
2665 return verifier.VerifyTable(ptr);
2666 }
2667 case Attribute_TileAttribute: {
2668 auto ptr = reinterpret_cast<const tosa::TileAttribute *>(obj);
2669 return verifier.VerifyTable(ptr);
2670 }
2671 case Attribute_ResizeAttribute: {
2672 auto ptr = reinterpret_cast<const tosa::ResizeAttribute *>(obj);
2673 return verifier.VerifyTable(ptr);
2674 }
2675 case Attribute_ClampAttribute: {
2676 auto ptr = reinterpret_cast<const tosa::ClampAttribute *>(obj);
2677 return verifier.VerifyTable(ptr);
2678 }
2679 case Attribute_RescaleAttribute: {
2680 auto ptr = reinterpret_cast<const tosa::RescaleAttribute *>(obj);
2681 return verifier.VerifyTable(ptr);
2682 }
2683 case Attribute_MulAttribute: {
2684 auto ptr = reinterpret_cast<const tosa::MulAttribute *>(obj);
2685 return verifier.VerifyTable(ptr);
2686 }
2687 case Attribute_ArithmeticRightShiftAttribute: {
2688 auto ptr = reinterpret_cast<const tosa::ArithmeticRightShiftAttribute *>(obj);
2689 return verifier.VerifyTable(ptr);
2690 }
2691 case Attribute_CondIfAttribute: {
2692 auto ptr = reinterpret_cast<const tosa::CondIfAttribute *>(obj);
2693 return verifier.VerifyTable(ptr);
2694 }
2695 case Attribute_WhileLoopAttribute: {
2696 auto ptr = reinterpret_cast<const tosa::WhileLoopAttribute *>(obj);
2697 return verifier.VerifyTable(ptr);
2698 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002699 case Attribute_TransposeAttribute: {
2700 auto ptr = reinterpret_cast<const tosa::TransposeAttribute *>(obj);
2701 return verifier.VerifyTable(ptr);
2702 }
2703 case Attribute_TableAttribute: {
2704 auto ptr = reinterpret_cast<const tosa::TableAttribute *>(obj);
2705 return verifier.VerifyTable(ptr);
2706 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002707 default: return true;
2708 }
2709}
2710
2711inline bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
2712 if (!values || !types) return !values && !types;
2713 if (values->size() != types->size()) return false;
2714 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
2715 if (!VerifyAttribute(
2716 verifier, values->Get(i), types->GetEnum<Attribute>(i))) {
2717 return false;
2718 }
2719 }
2720 return true;
2721}
2722
2723inline bool VerifyQuantInfo(flatbuffers::Verifier &verifier, const void *obj, QuantInfo type) {
2724 switch (type) {
2725 case QuantInfo_NONE: {
2726 return true;
2727 }
2728 case QuantInfo_UnaryQuantInfo: {
2729 auto ptr = reinterpret_cast<const tosa::UnaryQuantInfo *>(obj);
2730 return verifier.VerifyTable(ptr);
2731 }
2732 case QuantInfo_ConvQuantInfo: {
2733 auto ptr = reinterpret_cast<const tosa::ConvQuantInfo *>(obj);
2734 return verifier.VerifyTable(ptr);
2735 }
2736 case QuantInfo_MatMulQuantInfo: {
2737 auto ptr = reinterpret_cast<const tosa::MatMulQuantInfo *>(obj);
2738 return verifier.VerifyTable(ptr);
2739 }
2740 case QuantInfo_PadQuantInfo: {
2741 auto ptr = reinterpret_cast<const tosa::PadQuantInfo *>(obj);
2742 return verifier.VerifyTable(ptr);
2743 }
2744 default: return true;
2745 }
2746}
2747
2748inline bool VerifyQuantInfoVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
2749 if (!values || !types) return !values && !types;
2750 if (values->size() != types->size()) return false;
2751 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
2752 if (!VerifyQuantInfo(
2753 verifier, values->Get(i), types->GetEnum<QuantInfo>(i))) {
2754 return false;
2755 }
2756 }
2757 return true;
2758}
2759
2760inline const tosa::TosaGraph *GetTosaGraph(const void *buf) {
2761 return flatbuffers::GetRoot<tosa::TosaGraph>(buf);
2762}
2763
2764inline const tosa::TosaGraph *GetSizePrefixedTosaGraph(const void *buf) {
2765 return flatbuffers::GetSizePrefixedRoot<tosa::TosaGraph>(buf);
2766}
2767
2768inline const char *TosaGraphIdentifier() {
2769 return "TOSA";
2770}
2771
2772inline bool TosaGraphBufferHasIdentifier(const void *buf) {
2773 return flatbuffers::BufferHasIdentifier(
2774 buf, TosaGraphIdentifier());
2775}
2776
2777inline bool VerifyTosaGraphBuffer(
2778 flatbuffers::Verifier &verifier) {
2779 return verifier.VerifyBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2780}
2781
2782inline bool VerifySizePrefixedTosaGraphBuffer(
2783 flatbuffers::Verifier &verifier) {
2784 return verifier.VerifySizePrefixedBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2785}
2786
2787inline const char *TosaGraphExtension() {
2788 return "tosa";
2789}
2790
2791inline void FinishTosaGraphBuffer(
2792 flatbuffers::FlatBufferBuilder &fbb,
2793 flatbuffers::Offset<tosa::TosaGraph> root) {
2794 fbb.Finish(root, TosaGraphIdentifier());
2795}
2796
2797inline void FinishSizePrefixedTosaGraphBuffer(
2798 flatbuffers::FlatBufferBuilder &fbb,
2799 flatbuffers::Offset<tosa::TosaGraph> root) {
2800 fbb.FinishSizePrefixed(root, TosaGraphIdentifier());
2801}
2802
2803} // namespace tosa
2804
2805#endif // FLATBUFFERS_GENERATED_TOSA_TOSA_H_