blob: 27e7abe8e5c7e6041cf077c31b5d7ca7d7025784 [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
89enum DType {
90 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,
99 DType_MIN = DType_UNKNOWN,
100 DType_MAX = DType_FLOAT
101};
102
103inline const DType (&EnumValuesDType())[9] {
104 static const DType values[] = {
105 DType_UNKNOWN,
106 DType_BOOL,
107 DType_UINT8,
108 DType_INT4,
109 DType_INT8,
110 DType_INT16,
111 DType_INT32,
112 DType_INT48,
113 DType_FLOAT
114 };
115 return values;
116}
117
118inline const char * const *EnumNamesDType() {
119 static const char * const names[10] = {
120 "UNKNOWN",
121 "BOOL",
122 "UINT8",
123 "INT4",
124 "INT8",
125 "INT16",
126 "INT32",
127 "INT48",
128 "FLOAT",
129 nullptr
130 };
131 return names;
132}
133
134inline const char *EnumNameDType(DType e) {
135 if (flatbuffers::IsOutRange(e, DType_UNKNOWN, DType_FLOAT)) return "";
136 const size_t index = static_cast<size_t>(e);
137 return EnumNamesDType()[index];
138}
139
140enum ResizeMode {
141 ResizeMode_UNKNOWN = 0,
142 ResizeMode_NEAREST = 1,
143 ResizeMode_BILINEAR = 2,
144 ResizeMode_MIN = ResizeMode_UNKNOWN,
145 ResizeMode_MAX = ResizeMode_BILINEAR
146};
147
148inline const ResizeMode (&EnumValuesResizeMode())[3] {
149 static const ResizeMode values[] = {
150 ResizeMode_UNKNOWN,
151 ResizeMode_NEAREST,
152 ResizeMode_BILINEAR
153 };
154 return values;
155}
156
157inline const char * const *EnumNamesResizeMode() {
158 static const char * const names[4] = {
159 "UNKNOWN",
160 "NEAREST",
161 "BILINEAR",
162 nullptr
163 };
164 return names;
165}
166
167inline const char *EnumNameResizeMode(ResizeMode e) {
168 if (flatbuffers::IsOutRange(e, ResizeMode_UNKNOWN, ResizeMode_BILINEAR)) return "";
169 const size_t index = static_cast<size_t>(e);
170 return EnumNamesResizeMode()[index];
171}
172
173enum Op {
174 Op_UNKNOWN = 0,
175 Op_ARGMAX = 1,
176 Op_AVG_POOL2D = 2,
177 Op_CONV2D = 3,
178 Op_CONV3D = 4,
179 Op_DEPTHWISE_CONV2D = 5,
180 Op_FULLY_CONNECTED = 6,
181 Op_MATMUL = 7,
182 Op_MAX_POOL2D = 8,
183 Op_TRANSPOSE_CONV2D = 9,
184 Op_CLAMP = 10,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700185 Op_RESERVED = 11,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700186 Op_SIGMOID = 12,
187 Op_TANH = 13,
188 Op_ADD = 14,
189 Op_ARITHMETIC_RIGHT_SHIFT = 15,
190 Op_BITWISE_AND = 16,
191 Op_BITWISE_OR = 17,
192 Op_BITWISE_XOR = 18,
Matthew Haddonab905ec2021-08-23 16:40:57 +0100193 Op_INTDIV = 19,
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700194 Op_LOGICAL_AND = 20,
195 Op_LOGICAL_LEFT_SHIFT = 21,
196 Op_LOGICAL_RIGHT_SHIFT = 22,
197 Op_LOGICAL_OR = 23,
198 Op_LOGICAL_XOR = 24,
199 Op_MAXIMUM = 25,
200 Op_MINIMUM = 26,
201 Op_MUL = 27,
202 Op_POW = 28,
203 Op_SUB = 29,
204 Op_TABLE = 30,
205 Op_ABS = 31,
206 Op_BITWISE_NOT = 32,
207 Op_CEIL = 33,
208 Op_CLZ = 34,
209 Op_EXP = 35,
210 Op_FLOOR = 36,
211 Op_LOG = 37,
212 Op_LOGICAL_NOT = 38,
213 Op_NEGATE = 39,
214 Op_RECIPROCAL = 40,
215 Op_RSQRT = 41,
216 Op_SELECT = 42,
217 Op_EQUAL = 43,
218 Op_GREATER = 44,
219 Op_GREATER_EQUAL = 45,
220 Op_REDUCE_ANY = 46,
221 Op_REDUCE_ALL = 47,
222 Op_REDUCE_MAX = 48,
223 Op_REDUCE_MIN = 49,
224 Op_REDUCE_PRODUCT = 50,
225 Op_REDUCE_SUM = 51,
226 Op_CONCAT = 52,
227 Op_PAD = 53,
228 Op_RESHAPE = 54,
229 Op_REVERSE = 55,
230 Op_SLICE = 56,
231 Op_TILE = 57,
232 Op_TRANSPOSE = 58,
233 Op_GATHER = 59,
234 Op_SCATTER = 60,
235 Op_RESIZE = 61,
236 Op_CAST = 62,
237 Op_RESCALE = 63,
238 Op_CONST = 64,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700239 Op_IDENTITY = 65,
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700240 Op_CUSTOM = 66,
241 Op_COND_IF = 67,
242 Op_WHILE_LOOP = 68,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700243 Op_MIN = Op_UNKNOWN,
244 Op_MAX = Op_WHILE_LOOP
245};
246
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700247inline const Op (&EnumValuesOp())[69] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700248 static const Op values[] = {
249 Op_UNKNOWN,
250 Op_ARGMAX,
251 Op_AVG_POOL2D,
252 Op_CONV2D,
253 Op_CONV3D,
254 Op_DEPTHWISE_CONV2D,
255 Op_FULLY_CONNECTED,
256 Op_MATMUL,
257 Op_MAX_POOL2D,
258 Op_TRANSPOSE_CONV2D,
259 Op_CLAMP,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700260 Op_RESERVED,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700261 Op_SIGMOID,
262 Op_TANH,
263 Op_ADD,
264 Op_ARITHMETIC_RIGHT_SHIFT,
265 Op_BITWISE_AND,
266 Op_BITWISE_OR,
267 Op_BITWISE_XOR,
Matthew Haddonab905ec2021-08-23 16:40:57 +0100268 Op_INTDIV,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700269 Op_LOGICAL_AND,
270 Op_LOGICAL_LEFT_SHIFT,
271 Op_LOGICAL_RIGHT_SHIFT,
272 Op_LOGICAL_OR,
273 Op_LOGICAL_XOR,
274 Op_MAXIMUM,
275 Op_MINIMUM,
276 Op_MUL,
277 Op_POW,
278 Op_SUB,
279 Op_TABLE,
280 Op_ABS,
281 Op_BITWISE_NOT,
282 Op_CEIL,
283 Op_CLZ,
284 Op_EXP,
285 Op_FLOOR,
286 Op_LOG,
287 Op_LOGICAL_NOT,
288 Op_NEGATE,
289 Op_RECIPROCAL,
290 Op_RSQRT,
291 Op_SELECT,
292 Op_EQUAL,
293 Op_GREATER,
294 Op_GREATER_EQUAL,
295 Op_REDUCE_ANY,
296 Op_REDUCE_ALL,
297 Op_REDUCE_MAX,
298 Op_REDUCE_MIN,
299 Op_REDUCE_PRODUCT,
300 Op_REDUCE_SUM,
301 Op_CONCAT,
302 Op_PAD,
303 Op_RESHAPE,
304 Op_REVERSE,
305 Op_SLICE,
306 Op_TILE,
307 Op_TRANSPOSE,
308 Op_GATHER,
309 Op_SCATTER,
310 Op_RESIZE,
311 Op_CAST,
312 Op_RESCALE,
313 Op_CONST,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700314 Op_IDENTITY,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700315 Op_CUSTOM,
316 Op_COND_IF,
317 Op_WHILE_LOOP
318 };
319 return values;
320}
321
322inline const char * const *EnumNamesOp() {
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700323 static const char * const names[70] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700324 "UNKNOWN",
325 "ARGMAX",
326 "AVG_POOL2D",
327 "CONV2D",
328 "CONV3D",
329 "DEPTHWISE_CONV2D",
330 "FULLY_CONNECTED",
331 "MATMUL",
332 "MAX_POOL2D",
333 "TRANSPOSE_CONV2D",
334 "CLAMP",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700335 "RESERVED",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700336 "SIGMOID",
337 "TANH",
338 "ADD",
339 "ARITHMETIC_RIGHT_SHIFT",
340 "BITWISE_AND",
341 "BITWISE_OR",
342 "BITWISE_XOR",
Matthew Haddonab905ec2021-08-23 16:40:57 +0100343 "INTDIV",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700344 "LOGICAL_AND",
345 "LOGICAL_LEFT_SHIFT",
346 "LOGICAL_RIGHT_SHIFT",
347 "LOGICAL_OR",
348 "LOGICAL_XOR",
349 "MAXIMUM",
350 "MINIMUM",
351 "MUL",
352 "POW",
353 "SUB",
354 "TABLE",
355 "ABS",
356 "BITWISE_NOT",
357 "CEIL",
358 "CLZ",
359 "EXP",
360 "FLOOR",
361 "LOG",
362 "LOGICAL_NOT",
363 "NEGATE",
364 "RECIPROCAL",
365 "RSQRT",
366 "SELECT",
367 "EQUAL",
368 "GREATER",
369 "GREATER_EQUAL",
370 "REDUCE_ANY",
371 "REDUCE_ALL",
372 "REDUCE_MAX",
373 "REDUCE_MIN",
374 "REDUCE_PRODUCT",
375 "REDUCE_SUM",
376 "CONCAT",
377 "PAD",
378 "RESHAPE",
379 "REVERSE",
380 "SLICE",
381 "TILE",
382 "TRANSPOSE",
383 "GATHER",
384 "SCATTER",
385 "RESIZE",
386 "CAST",
387 "RESCALE",
388 "CONST",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700389 "IDENTITY",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700390 "CUSTOM",
391 "COND_IF",
392 "WHILE_LOOP",
393 nullptr
394 };
395 return names;
396}
397
398inline const char *EnumNameOp(Op e) {
399 if (flatbuffers::IsOutRange(e, Op_UNKNOWN, Op_WHILE_LOOP)) return "";
400 const size_t index = static_cast<size_t>(e);
401 return EnumNamesOp()[index];
402}
403
404enum Attribute {
405 Attribute_NONE = 0,
Kevin Cheng79a41992021-08-31 16:04:40 -0700406 Attribute_PoolAttribute = 1,
407 Attribute_ConvAttribute = 2,
408 Attribute_TransposeConvAttribute = 3,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700409 Attribute_PadAttribute = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700410 Attribute_AxisAttribute = 5,
411 Attribute_ReshapeAttribute = 6,
412 Attribute_SliceAttribute = 7,
413 Attribute_TileAttribute = 8,
414 Attribute_ResizeAttribute = 9,
415 Attribute_ClampAttribute = 10,
416 Attribute_RescaleAttribute = 11,
417 Attribute_MulAttribute = 12,
418 Attribute_ArithmeticRightShiftAttribute = 13,
419 Attribute_CondIfAttribute = 14,
420 Attribute_WhileLoopAttribute = 15,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700421 Attribute_TransposeAttribute = 16,
422 Attribute_TableAttribute = 17,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700423 Attribute_MIN = Attribute_NONE,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700424 Attribute_MAX = Attribute_TableAttribute
Eric Kunze2364dcd2021-04-26 11:06:57 -0700425};
426
Kevin Cheng38d214c2021-10-15 15:49:19 -0700427inline const Attribute (&EnumValuesAttribute())[18] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700428 static const Attribute values[] = {
429 Attribute_NONE,
Kevin Cheng79a41992021-08-31 16:04:40 -0700430 Attribute_PoolAttribute,
431 Attribute_ConvAttribute,
432 Attribute_TransposeConvAttribute,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700433 Attribute_PadAttribute,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700434 Attribute_AxisAttribute,
435 Attribute_ReshapeAttribute,
436 Attribute_SliceAttribute,
437 Attribute_TileAttribute,
438 Attribute_ResizeAttribute,
439 Attribute_ClampAttribute,
440 Attribute_RescaleAttribute,
441 Attribute_MulAttribute,
442 Attribute_ArithmeticRightShiftAttribute,
443 Attribute_CondIfAttribute,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700444 Attribute_WhileLoopAttribute,
445 Attribute_TransposeAttribute,
446 Attribute_TableAttribute
Eric Kunze2364dcd2021-04-26 11:06:57 -0700447 };
448 return values;
449}
450
451inline const char * const *EnumNamesAttribute() {
Kevin Cheng38d214c2021-10-15 15:49:19 -0700452 static const char * const names[19] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700453 "NONE",
Kevin Cheng79a41992021-08-31 16:04:40 -0700454 "PoolAttribute",
455 "ConvAttribute",
456 "TransposeConvAttribute",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700457 "PadAttribute",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700458 "AxisAttribute",
459 "ReshapeAttribute",
460 "SliceAttribute",
461 "TileAttribute",
462 "ResizeAttribute",
463 "ClampAttribute",
464 "RescaleAttribute",
465 "MulAttribute",
466 "ArithmeticRightShiftAttribute",
467 "CondIfAttribute",
468 "WhileLoopAttribute",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700469 "TransposeAttribute",
470 "TableAttribute",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700471 nullptr
472 };
473 return names;
474}
475
476inline const char *EnumNameAttribute(Attribute e) {
Kevin Cheng38d214c2021-10-15 15:49:19 -0700477 if (flatbuffers::IsOutRange(e, Attribute_NONE, Attribute_TableAttribute)) return "";
Eric Kunze2364dcd2021-04-26 11:06:57 -0700478 const size_t index = static_cast<size_t>(e);
479 return EnumNamesAttribute()[index];
480}
481
482template<typename T> struct AttributeTraits {
483 static const Attribute enum_value = Attribute_NONE;
484};
485
Kevin Cheng79a41992021-08-31 16:04:40 -0700486template<> struct AttributeTraits<tosa::PoolAttribute> {
487 static const Attribute enum_value = Attribute_PoolAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700488};
489
Kevin Cheng79a41992021-08-31 16:04:40 -0700490template<> struct AttributeTraits<tosa::ConvAttribute> {
491 static const Attribute enum_value = Attribute_ConvAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700492};
493
Kevin Cheng79a41992021-08-31 16:04:40 -0700494template<> struct AttributeTraits<tosa::TransposeConvAttribute> {
495 static const Attribute enum_value = Attribute_TransposeConvAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700496};
497
Kevin Cheng38d214c2021-10-15 15:49:19 -0700498template<> struct AttributeTraits<tosa::PadAttribute> {
499 static const Attribute enum_value = Attribute_PadAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700500};
501
502template<> struct AttributeTraits<tosa::AxisAttribute> {
503 static const Attribute enum_value = Attribute_AxisAttribute;
504};
505
506template<> struct AttributeTraits<tosa::ReshapeAttribute> {
507 static const Attribute enum_value = Attribute_ReshapeAttribute;
508};
509
510template<> struct AttributeTraits<tosa::SliceAttribute> {
511 static const Attribute enum_value = Attribute_SliceAttribute;
512};
513
514template<> struct AttributeTraits<tosa::TileAttribute> {
515 static const Attribute enum_value = Attribute_TileAttribute;
516};
517
518template<> struct AttributeTraits<tosa::ResizeAttribute> {
519 static const Attribute enum_value = Attribute_ResizeAttribute;
520};
521
522template<> struct AttributeTraits<tosa::ClampAttribute> {
523 static const Attribute enum_value = Attribute_ClampAttribute;
524};
525
526template<> struct AttributeTraits<tosa::RescaleAttribute> {
527 static const Attribute enum_value = Attribute_RescaleAttribute;
528};
529
530template<> struct AttributeTraits<tosa::MulAttribute> {
531 static const Attribute enum_value = Attribute_MulAttribute;
532};
533
534template<> struct AttributeTraits<tosa::ArithmeticRightShiftAttribute> {
535 static const Attribute enum_value = Attribute_ArithmeticRightShiftAttribute;
536};
537
538template<> struct AttributeTraits<tosa::CondIfAttribute> {
539 static const Attribute enum_value = Attribute_CondIfAttribute;
540};
541
542template<> struct AttributeTraits<tosa::WhileLoopAttribute> {
543 static const Attribute enum_value = Attribute_WhileLoopAttribute;
544};
545
Kevin Cheng38d214c2021-10-15 15:49:19 -0700546template<> struct AttributeTraits<tosa::TransposeAttribute> {
547 static const Attribute enum_value = Attribute_TransposeAttribute;
548};
549
550template<> struct AttributeTraits<tosa::TableAttribute> {
551 static const Attribute enum_value = Attribute_TableAttribute;
552};
553
Eric Kunze2364dcd2021-04-26 11:06:57 -0700554bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type);
555bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types);
556
557enum QuantInfo {
558 QuantInfo_NONE = 0,
559 QuantInfo_UnaryQuantInfo = 1,
560 QuantInfo_ConvQuantInfo = 2,
561 QuantInfo_MatMulQuantInfo = 3,
562 QuantInfo_PadQuantInfo = 4,
563 QuantInfo_MIN = QuantInfo_NONE,
564 QuantInfo_MAX = QuantInfo_PadQuantInfo
565};
566
567inline const QuantInfo (&EnumValuesQuantInfo())[5] {
568 static const QuantInfo values[] = {
569 QuantInfo_NONE,
570 QuantInfo_UnaryQuantInfo,
571 QuantInfo_ConvQuantInfo,
572 QuantInfo_MatMulQuantInfo,
573 QuantInfo_PadQuantInfo
574 };
575 return values;
576}
577
578inline const char * const *EnumNamesQuantInfo() {
579 static const char * const names[6] = {
580 "NONE",
581 "UnaryQuantInfo",
582 "ConvQuantInfo",
583 "MatMulQuantInfo",
584 "PadQuantInfo",
585 nullptr
586 };
587 return names;
588}
589
590inline const char *EnumNameQuantInfo(QuantInfo e) {
591 if (flatbuffers::IsOutRange(e, QuantInfo_NONE, QuantInfo_PadQuantInfo)) return "";
592 const size_t index = static_cast<size_t>(e);
593 return EnumNamesQuantInfo()[index];
594}
595
596template<typename T> struct QuantInfoTraits {
597 static const QuantInfo enum_value = QuantInfo_NONE;
598};
599
600template<> struct QuantInfoTraits<tosa::UnaryQuantInfo> {
601 static const QuantInfo enum_value = QuantInfo_UnaryQuantInfo;
602};
603
604template<> struct QuantInfoTraits<tosa::ConvQuantInfo> {
605 static const QuantInfo enum_value = QuantInfo_ConvQuantInfo;
606};
607
608template<> struct QuantInfoTraits<tosa::MatMulQuantInfo> {
609 static const QuantInfo enum_value = QuantInfo_MatMulQuantInfo;
610};
611
612template<> struct QuantInfoTraits<tosa::PadQuantInfo> {
613 static const QuantInfo enum_value = QuantInfo_PadQuantInfo;
614};
615
616bool VerifyQuantInfo(flatbuffers::Verifier &verifier, const void *obj, QuantInfo type);
617bool VerifyQuantInfoVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types);
618
Kevin Cheng79a41992021-08-31 16:04:40 -0700619struct PoolAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
620 typedef PoolAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700621 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
622 VT_PADDING = 4,
623 VT_KERNEL = 6,
624 VT_STRIDE = 8
625 };
626 const flatbuffers::Vector<int32_t> *padding() const {
627 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PADDING);
628 }
629 const flatbuffers::Vector<int32_t> *kernel() const {
630 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_KERNEL);
631 }
632 const flatbuffers::Vector<int32_t> *stride() const {
633 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
634 }
635 bool Verify(flatbuffers::Verifier &verifier) const {
636 return VerifyTableStart(verifier) &&
637 VerifyOffset(verifier, VT_PADDING) &&
638 verifier.VerifyVector(padding()) &&
639 VerifyOffset(verifier, VT_KERNEL) &&
640 verifier.VerifyVector(kernel()) &&
641 VerifyOffset(verifier, VT_STRIDE) &&
642 verifier.VerifyVector(stride()) &&
643 verifier.EndTable();
644 }
645};
646
Kevin Cheng79a41992021-08-31 16:04:40 -0700647struct PoolAttributeBuilder {
648 typedef PoolAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700649 flatbuffers::FlatBufferBuilder &fbb_;
650 flatbuffers::uoffset_t start_;
651 void add_padding(flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700652 fbb_.AddOffset(PoolAttribute::VT_PADDING, padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700653 }
654 void add_kernel(flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700655 fbb_.AddOffset(PoolAttribute::VT_KERNEL, kernel);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700656 }
657 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700658 fbb_.AddOffset(PoolAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700659 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700660 explicit PoolAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700661 : fbb_(_fbb) {
662 start_ = fbb_.StartTable();
663 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700664 PoolAttributeBuilder &operator=(const PoolAttributeBuilder &);
665 flatbuffers::Offset<PoolAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700666 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700667 auto o = flatbuffers::Offset<PoolAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700668 return o;
669 }
670};
671
Kevin Cheng79a41992021-08-31 16:04:40 -0700672inline flatbuffers::Offset<PoolAttribute> CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700673 flatbuffers::FlatBufferBuilder &_fbb,
674 flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding = 0,
675 flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel = 0,
676 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700677 PoolAttributeBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700678 builder_.add_stride(stride);
679 builder_.add_kernel(kernel);
680 builder_.add_padding(padding);
681 return builder_.Finish();
682}
683
Kevin Cheng79a41992021-08-31 16:04:40 -0700684inline flatbuffers::Offset<PoolAttribute> CreatePoolAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700685 flatbuffers::FlatBufferBuilder &_fbb,
686 const std::vector<int32_t> *padding = nullptr,
687 const std::vector<int32_t> *kernel = nullptr,
688 const std::vector<int32_t> *stride = nullptr) {
689 auto padding__ = padding ? _fbb.CreateVector<int32_t>(*padding) : 0;
690 auto kernel__ = kernel ? _fbb.CreateVector<int32_t>(*kernel) : 0;
691 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700692 return tosa::CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700693 _fbb,
694 padding__,
695 kernel__,
696 stride__);
697}
698
Kevin Cheng79a41992021-08-31 16:04:40 -0700699struct ConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
700 typedef ConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700701 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
702 VT_PADDING = 4,
703 VT_STRIDE = 6,
704 VT_DILATION = 8
705 };
706 const flatbuffers::Vector<int32_t> *padding() const {
707 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PADDING);
708 }
709 const flatbuffers::Vector<int32_t> *stride() const {
710 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
711 }
712 const flatbuffers::Vector<int32_t> *dilation() const {
713 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_DILATION);
714 }
715 bool Verify(flatbuffers::Verifier &verifier) const {
716 return VerifyTableStart(verifier) &&
717 VerifyOffset(verifier, VT_PADDING) &&
718 verifier.VerifyVector(padding()) &&
719 VerifyOffset(verifier, VT_STRIDE) &&
720 verifier.VerifyVector(stride()) &&
721 VerifyOffset(verifier, VT_DILATION) &&
722 verifier.VerifyVector(dilation()) &&
723 verifier.EndTable();
724 }
725};
726
Kevin Cheng79a41992021-08-31 16:04:40 -0700727struct ConvAttributeBuilder {
728 typedef ConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700729 flatbuffers::FlatBufferBuilder &fbb_;
730 flatbuffers::uoffset_t start_;
731 void add_padding(flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700732 fbb_.AddOffset(ConvAttribute::VT_PADDING, padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700733 }
734 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700735 fbb_.AddOffset(ConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700736 }
737 void add_dilation(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700738 fbb_.AddOffset(ConvAttribute::VT_DILATION, dilation);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700739 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700740 explicit ConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700741 : fbb_(_fbb) {
742 start_ = fbb_.StartTable();
743 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700744 ConvAttributeBuilder &operator=(const ConvAttributeBuilder &);
745 flatbuffers::Offset<ConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700746 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700747 auto o = flatbuffers::Offset<ConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700748 return o;
749 }
750};
751
Kevin Cheng79a41992021-08-31 16:04:40 -0700752inline flatbuffers::Offset<ConvAttribute> CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700753 flatbuffers::FlatBufferBuilder &_fbb,
754 flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding = 0,
755 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
756 flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation = 0) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700757 ConvAttributeBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700758 builder_.add_dilation(dilation);
759 builder_.add_stride(stride);
760 builder_.add_padding(padding);
761 return builder_.Finish();
762}
763
Kevin Cheng79a41992021-08-31 16:04:40 -0700764inline flatbuffers::Offset<ConvAttribute> CreateConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700765 flatbuffers::FlatBufferBuilder &_fbb,
766 const std::vector<int32_t> *padding = nullptr,
767 const std::vector<int32_t> *stride = nullptr,
768 const std::vector<int32_t> *dilation = nullptr) {
769 auto padding__ = padding ? _fbb.CreateVector<int32_t>(*padding) : 0;
770 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
771 auto dilation__ = dilation ? _fbb.CreateVector<int32_t>(*dilation) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700772 return tosa::CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700773 _fbb,
774 padding__,
775 stride__,
776 dilation__);
777}
778
Kevin Cheng79a41992021-08-31 16:04:40 -0700779struct TransposeConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
780 typedef TransposeConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700781 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
782 VT_OUTPAD = 4,
783 VT_STRIDE = 6,
784 VT_DILATION = 8,
785 VT_OUTPUT_SHAPE = 10
786 };
787 const flatbuffers::Vector<int32_t> *outpad() const {
788 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPAD);
789 }
790 const flatbuffers::Vector<int32_t> *stride() const {
791 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
792 }
793 const flatbuffers::Vector<int32_t> *dilation() const {
794 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_DILATION);
795 }
796 const flatbuffers::Vector<int32_t> *output_shape() const {
797 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUT_SHAPE);
798 }
799 bool Verify(flatbuffers::Verifier &verifier) const {
800 return VerifyTableStart(verifier) &&
801 VerifyOffset(verifier, VT_OUTPAD) &&
802 verifier.VerifyVector(outpad()) &&
803 VerifyOffset(verifier, VT_STRIDE) &&
804 verifier.VerifyVector(stride()) &&
805 VerifyOffset(verifier, VT_DILATION) &&
806 verifier.VerifyVector(dilation()) &&
807 VerifyOffset(verifier, VT_OUTPUT_SHAPE) &&
808 verifier.VerifyVector(output_shape()) &&
809 verifier.EndTable();
810 }
811};
812
Kevin Cheng79a41992021-08-31 16:04:40 -0700813struct TransposeConvAttributeBuilder {
814 typedef TransposeConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700815 flatbuffers::FlatBufferBuilder &fbb_;
816 flatbuffers::uoffset_t start_;
817 void add_outpad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> outpad) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700818 fbb_.AddOffset(TransposeConvAttribute::VT_OUTPAD, outpad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700819 }
820 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700821 fbb_.AddOffset(TransposeConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700822 }
823 void add_dilation(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700824 fbb_.AddOffset(TransposeConvAttribute::VT_DILATION, dilation);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700825 }
826 void add_output_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700827 fbb_.AddOffset(TransposeConvAttribute::VT_OUTPUT_SHAPE, output_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700828 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700829 explicit TransposeConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700830 : fbb_(_fbb) {
831 start_ = fbb_.StartTable();
832 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700833 TransposeConvAttributeBuilder &operator=(const TransposeConvAttributeBuilder &);
834 flatbuffers::Offset<TransposeConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700835 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700836 auto o = flatbuffers::Offset<TransposeConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700837 return o;
838 }
839};
840
Kevin Cheng79a41992021-08-31 16:04:40 -0700841inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700842 flatbuffers::FlatBufferBuilder &_fbb,
843 flatbuffers::Offset<flatbuffers::Vector<int32_t>> outpad = 0,
844 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
845 flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation = 0,
846 flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape = 0) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700847 TransposeConvAttributeBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700848 builder_.add_output_shape(output_shape);
849 builder_.add_dilation(dilation);
850 builder_.add_stride(stride);
851 builder_.add_outpad(outpad);
852 return builder_.Finish();
853}
854
Kevin Cheng79a41992021-08-31 16:04:40 -0700855inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700856 flatbuffers::FlatBufferBuilder &_fbb,
857 const std::vector<int32_t> *outpad = nullptr,
858 const std::vector<int32_t> *stride = nullptr,
859 const std::vector<int32_t> *dilation = nullptr,
860 const std::vector<int32_t> *output_shape = nullptr) {
861 auto outpad__ = outpad ? _fbb.CreateVector<int32_t>(*outpad) : 0;
862 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
863 auto dilation__ = dilation ? _fbb.CreateVector<int32_t>(*dilation) : 0;
864 auto output_shape__ = output_shape ? _fbb.CreateVector<int32_t>(*output_shape) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700865 return tosa::CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700866 _fbb,
867 outpad__,
868 stride__,
869 dilation__,
870 output_shape__);
871}
872
Kevin Cheng38d214c2021-10-15 15:49:19 -0700873struct PadAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
874 typedef PadAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700875 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Kevin Cheng38d214c2021-10-15 15:49:19 -0700876 VT_PADDING = 4,
877 VT_PAD_CONST_INT = 6,
878 VT_PAD_CONST_FP = 8
Eric Kunze2364dcd2021-04-26 11:06:57 -0700879 };
Kevin Cheng38d214c2021-10-15 15:49:19 -0700880 const flatbuffers::Vector<int32_t> *padding() const {
881 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PADDING);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700882 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700883 int32_t pad_const_int() const {
884 return GetField<int32_t>(VT_PAD_CONST_INT, 0);
885 }
886 float pad_const_fp() const {
887 return GetField<float>(VT_PAD_CONST_FP, 0.0f);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700888 }
889 bool Verify(flatbuffers::Verifier &verifier) const {
890 return VerifyTableStart(verifier) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -0700891 VerifyOffset(verifier, VT_PADDING) &&
892 verifier.VerifyVector(padding()) &&
893 VerifyField<int32_t>(verifier, VT_PAD_CONST_INT) &&
894 VerifyField<float>(verifier, VT_PAD_CONST_FP) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700895 verifier.EndTable();
896 }
897};
898
Kevin Cheng38d214c2021-10-15 15:49:19 -0700899struct PadAttributeBuilder {
900 typedef PadAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700901 flatbuffers::FlatBufferBuilder &fbb_;
902 flatbuffers::uoffset_t start_;
Kevin Cheng38d214c2021-10-15 15:49:19 -0700903 void add_padding(flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding) {
904 fbb_.AddOffset(PadAttribute::VT_PADDING, padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700905 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700906 void add_pad_const_int(int32_t pad_const_int) {
907 fbb_.AddElement<int32_t>(PadAttribute::VT_PAD_CONST_INT, pad_const_int, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700908 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700909 void add_pad_const_fp(float pad_const_fp) {
910 fbb_.AddElement<float>(PadAttribute::VT_PAD_CONST_FP, pad_const_fp, 0.0f);
911 }
912 explicit PadAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700913 : fbb_(_fbb) {
914 start_ = fbb_.StartTable();
915 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700916 PadAttributeBuilder &operator=(const PadAttributeBuilder &);
917 flatbuffers::Offset<PadAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700918 const auto end = fbb_.EndTable(start_);
Kevin Cheng38d214c2021-10-15 15:49:19 -0700919 auto o = flatbuffers::Offset<PadAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700920 return o;
921 }
922};
923
Kevin Cheng38d214c2021-10-15 15:49:19 -0700924inline flatbuffers::Offset<PadAttribute> CreatePadAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700925 flatbuffers::FlatBufferBuilder &_fbb,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700926 flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding = 0,
927 int32_t pad_const_int = 0,
928 float pad_const_fp = 0.0f) {
929 PadAttributeBuilder builder_(_fbb);
930 builder_.add_pad_const_fp(pad_const_fp);
931 builder_.add_pad_const_int(pad_const_int);
932 builder_.add_padding(padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700933 return builder_.Finish();
934}
935
Kevin Cheng38d214c2021-10-15 15:49:19 -0700936inline flatbuffers::Offset<PadAttribute> CreatePadAttributeDirect(
937 flatbuffers::FlatBufferBuilder &_fbb,
938 const std::vector<int32_t> *padding = nullptr,
939 int32_t pad_const_int = 0,
940 float pad_const_fp = 0.0f) {
941 auto padding__ = padding ? _fbb.CreateVector<int32_t>(*padding) : 0;
942 return tosa::CreatePadAttribute(
943 _fbb,
944 padding__,
945 pad_const_int,
946 pad_const_fp);
947}
948
Eric Kunze2364dcd2021-04-26 11:06:57 -0700949struct AxisAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
950 typedef AxisAttributeBuilder Builder;
951 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
952 VT_AXIS = 4
953 };
954 int32_t axis() const {
955 return GetField<int32_t>(VT_AXIS, 0);
956 }
957 bool Verify(flatbuffers::Verifier &verifier) const {
958 return VerifyTableStart(verifier) &&
959 VerifyField<int32_t>(verifier, VT_AXIS) &&
960 verifier.EndTable();
961 }
962};
963
964struct AxisAttributeBuilder {
965 typedef AxisAttribute Table;
966 flatbuffers::FlatBufferBuilder &fbb_;
967 flatbuffers::uoffset_t start_;
968 void add_axis(int32_t axis) {
969 fbb_.AddElement<int32_t>(AxisAttribute::VT_AXIS, axis, 0);
970 }
971 explicit AxisAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
972 : fbb_(_fbb) {
973 start_ = fbb_.StartTable();
974 }
975 AxisAttributeBuilder &operator=(const AxisAttributeBuilder &);
976 flatbuffers::Offset<AxisAttribute> Finish() {
977 const auto end = fbb_.EndTable(start_);
978 auto o = flatbuffers::Offset<AxisAttribute>(end);
979 return o;
980 }
981};
982
983inline flatbuffers::Offset<AxisAttribute> CreateAxisAttribute(
984 flatbuffers::FlatBufferBuilder &_fbb,
985 int32_t axis = 0) {
986 AxisAttributeBuilder builder_(_fbb);
987 builder_.add_axis(axis);
988 return builder_.Finish();
989}
990
991struct ReshapeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
992 typedef ReshapeAttributeBuilder Builder;
993 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
994 VT_SHAPE = 4
995 };
996 const flatbuffers::Vector<int32_t> *shape() const {
997 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHAPE);
998 }
999 bool Verify(flatbuffers::Verifier &verifier) const {
1000 return VerifyTableStart(verifier) &&
1001 VerifyOffset(verifier, VT_SHAPE) &&
1002 verifier.VerifyVector(shape()) &&
1003 verifier.EndTable();
1004 }
1005};
1006
1007struct ReshapeAttributeBuilder {
1008 typedef ReshapeAttribute Table;
1009 flatbuffers::FlatBufferBuilder &fbb_;
1010 flatbuffers::uoffset_t start_;
1011 void add_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape) {
1012 fbb_.AddOffset(ReshapeAttribute::VT_SHAPE, shape);
1013 }
1014 explicit ReshapeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1015 : fbb_(_fbb) {
1016 start_ = fbb_.StartTable();
1017 }
1018 ReshapeAttributeBuilder &operator=(const ReshapeAttributeBuilder &);
1019 flatbuffers::Offset<ReshapeAttribute> Finish() {
1020 const auto end = fbb_.EndTable(start_);
1021 auto o = flatbuffers::Offset<ReshapeAttribute>(end);
1022 return o;
1023 }
1024};
1025
1026inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttribute(
1027 flatbuffers::FlatBufferBuilder &_fbb,
1028 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape = 0) {
1029 ReshapeAttributeBuilder builder_(_fbb);
1030 builder_.add_shape(shape);
1031 return builder_.Finish();
1032}
1033
1034inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttributeDirect(
1035 flatbuffers::FlatBufferBuilder &_fbb,
1036 const std::vector<int32_t> *shape = nullptr) {
1037 auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0;
1038 return tosa::CreateReshapeAttribute(
1039 _fbb,
1040 shape__);
1041}
1042
1043struct SliceAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1044 typedef SliceAttributeBuilder Builder;
1045 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1046 VT_BEGIN = 4,
1047 VT_SIZE = 6
1048 };
1049 const flatbuffers::Vector<int32_t> *begin() const {
1050 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_BEGIN);
1051 }
1052 const flatbuffers::Vector<int32_t> *size() const {
1053 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SIZE);
1054 }
1055 bool Verify(flatbuffers::Verifier &verifier) const {
1056 return VerifyTableStart(verifier) &&
1057 VerifyOffset(verifier, VT_BEGIN) &&
1058 verifier.VerifyVector(begin()) &&
1059 VerifyOffset(verifier, VT_SIZE) &&
1060 verifier.VerifyVector(size()) &&
1061 verifier.EndTable();
1062 }
1063};
1064
1065struct SliceAttributeBuilder {
1066 typedef SliceAttribute Table;
1067 flatbuffers::FlatBufferBuilder &fbb_;
1068 flatbuffers::uoffset_t start_;
1069 void add_begin(flatbuffers::Offset<flatbuffers::Vector<int32_t>> begin) {
1070 fbb_.AddOffset(SliceAttribute::VT_BEGIN, begin);
1071 }
1072 void add_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> size) {
1073 fbb_.AddOffset(SliceAttribute::VT_SIZE, size);
1074 }
1075 explicit SliceAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1076 : fbb_(_fbb) {
1077 start_ = fbb_.StartTable();
1078 }
1079 SliceAttributeBuilder &operator=(const SliceAttributeBuilder &);
1080 flatbuffers::Offset<SliceAttribute> Finish() {
1081 const auto end = fbb_.EndTable(start_);
1082 auto o = flatbuffers::Offset<SliceAttribute>(end);
1083 return o;
1084 }
1085};
1086
1087inline flatbuffers::Offset<SliceAttribute> CreateSliceAttribute(
1088 flatbuffers::FlatBufferBuilder &_fbb,
1089 flatbuffers::Offset<flatbuffers::Vector<int32_t>> begin = 0,
1090 flatbuffers::Offset<flatbuffers::Vector<int32_t>> size = 0) {
1091 SliceAttributeBuilder builder_(_fbb);
1092 builder_.add_size(size);
1093 builder_.add_begin(begin);
1094 return builder_.Finish();
1095}
1096
1097inline flatbuffers::Offset<SliceAttribute> CreateSliceAttributeDirect(
1098 flatbuffers::FlatBufferBuilder &_fbb,
1099 const std::vector<int32_t> *begin = nullptr,
1100 const std::vector<int32_t> *size = nullptr) {
1101 auto begin__ = begin ? _fbb.CreateVector<int32_t>(*begin) : 0;
1102 auto size__ = size ? _fbb.CreateVector<int32_t>(*size) : 0;
1103 return tosa::CreateSliceAttribute(
1104 _fbb,
1105 begin__,
1106 size__);
1107}
1108
1109struct TileAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1110 typedef TileAttributeBuilder Builder;
1111 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1112 VT_MULTIPLES = 4
1113 };
1114 const flatbuffers::Vector<int32_t> *multiples() const {
1115 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLES);
1116 }
1117 bool Verify(flatbuffers::Verifier &verifier) const {
1118 return VerifyTableStart(verifier) &&
1119 VerifyOffset(verifier, VT_MULTIPLES) &&
1120 verifier.VerifyVector(multiples()) &&
1121 verifier.EndTable();
1122 }
1123};
1124
1125struct TileAttributeBuilder {
1126 typedef TileAttribute Table;
1127 flatbuffers::FlatBufferBuilder &fbb_;
1128 flatbuffers::uoffset_t start_;
1129 void add_multiples(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples) {
1130 fbb_.AddOffset(TileAttribute::VT_MULTIPLES, multiples);
1131 }
1132 explicit TileAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1133 : fbb_(_fbb) {
1134 start_ = fbb_.StartTable();
1135 }
1136 TileAttributeBuilder &operator=(const TileAttributeBuilder &);
1137 flatbuffers::Offset<TileAttribute> Finish() {
1138 const auto end = fbb_.EndTable(start_);
1139 auto o = flatbuffers::Offset<TileAttribute>(end);
1140 return o;
1141 }
1142};
1143
1144inline flatbuffers::Offset<TileAttribute> CreateTileAttribute(
1145 flatbuffers::FlatBufferBuilder &_fbb,
1146 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples = 0) {
1147 TileAttributeBuilder builder_(_fbb);
1148 builder_.add_multiples(multiples);
1149 return builder_.Finish();
1150}
1151
1152inline flatbuffers::Offset<TileAttribute> CreateTileAttributeDirect(
1153 flatbuffers::FlatBufferBuilder &_fbb,
1154 const std::vector<int32_t> *multiples = nullptr) {
1155 auto multiples__ = multiples ? _fbb.CreateVector<int32_t>(*multiples) : 0;
1156 return tosa::CreateTileAttribute(
1157 _fbb,
1158 multiples__);
1159}
1160
1161struct ResizeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1162 typedef ResizeAttributeBuilder Builder;
1163 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1164 VT_OUTPUT_SIZE = 4,
1165 VT_STRIDE = 6,
1166 VT_OFFSET = 8,
1167 VT_SHIFT = 10,
1168 VT_STRIDE_FP = 12,
1169 VT_OFFSET_FP = 14,
1170 VT_MODE = 16
1171 };
1172 const flatbuffers::Vector<int32_t> *output_size() const {
1173 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUT_SIZE);
1174 }
1175 const flatbuffers::Vector<int32_t> *stride() const {
1176 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
1177 }
1178 const flatbuffers::Vector<int32_t> *offset() const {
1179 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OFFSET);
1180 }
1181 int32_t shift() const {
1182 return GetField<int32_t>(VT_SHIFT, 0);
1183 }
1184 const flatbuffers::Vector<float> *stride_fp() const {
1185 return GetPointer<const flatbuffers::Vector<float> *>(VT_STRIDE_FP);
1186 }
1187 const flatbuffers::Vector<float> *offset_fp() const {
1188 return GetPointer<const flatbuffers::Vector<float> *>(VT_OFFSET_FP);
1189 }
1190 tosa::ResizeMode mode() const {
1191 return static_cast<tosa::ResizeMode>(GetField<uint32_t>(VT_MODE, 0));
1192 }
1193 bool Verify(flatbuffers::Verifier &verifier) const {
1194 return VerifyTableStart(verifier) &&
1195 VerifyOffset(verifier, VT_OUTPUT_SIZE) &&
1196 verifier.VerifyVector(output_size()) &&
1197 VerifyOffset(verifier, VT_STRIDE) &&
1198 verifier.VerifyVector(stride()) &&
1199 VerifyOffset(verifier, VT_OFFSET) &&
1200 verifier.VerifyVector(offset()) &&
1201 VerifyField<int32_t>(verifier, VT_SHIFT) &&
1202 VerifyOffset(verifier, VT_STRIDE_FP) &&
1203 verifier.VerifyVector(stride_fp()) &&
1204 VerifyOffset(verifier, VT_OFFSET_FP) &&
1205 verifier.VerifyVector(offset_fp()) &&
1206 VerifyField<uint32_t>(verifier, VT_MODE) &&
1207 verifier.EndTable();
1208 }
1209};
1210
1211struct ResizeAttributeBuilder {
1212 typedef ResizeAttribute Table;
1213 flatbuffers::FlatBufferBuilder &fbb_;
1214 flatbuffers::uoffset_t start_;
1215 void add_output_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_size) {
1216 fbb_.AddOffset(ResizeAttribute::VT_OUTPUT_SIZE, output_size);
1217 }
1218 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
1219 fbb_.AddOffset(ResizeAttribute::VT_STRIDE, stride);
1220 }
1221 void add_offset(flatbuffers::Offset<flatbuffers::Vector<int32_t>> offset) {
1222 fbb_.AddOffset(ResizeAttribute::VT_OFFSET, offset);
1223 }
1224 void add_shift(int32_t shift) {
1225 fbb_.AddElement<int32_t>(ResizeAttribute::VT_SHIFT, shift, 0);
1226 }
1227 void add_stride_fp(flatbuffers::Offset<flatbuffers::Vector<float>> stride_fp) {
1228 fbb_.AddOffset(ResizeAttribute::VT_STRIDE_FP, stride_fp);
1229 }
1230 void add_offset_fp(flatbuffers::Offset<flatbuffers::Vector<float>> offset_fp) {
1231 fbb_.AddOffset(ResizeAttribute::VT_OFFSET_FP, offset_fp);
1232 }
1233 void add_mode(tosa::ResizeMode mode) {
1234 fbb_.AddElement<uint32_t>(ResizeAttribute::VT_MODE, static_cast<uint32_t>(mode), 0);
1235 }
1236 explicit ResizeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1237 : fbb_(_fbb) {
1238 start_ = fbb_.StartTable();
1239 }
1240 ResizeAttributeBuilder &operator=(const ResizeAttributeBuilder &);
1241 flatbuffers::Offset<ResizeAttribute> Finish() {
1242 const auto end = fbb_.EndTable(start_);
1243 auto o = flatbuffers::Offset<ResizeAttribute>(end);
1244 return o;
1245 }
1246};
1247
1248inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttribute(
1249 flatbuffers::FlatBufferBuilder &_fbb,
1250 flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_size = 0,
1251 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
1252 flatbuffers::Offset<flatbuffers::Vector<int32_t>> offset = 0,
1253 int32_t shift = 0,
1254 flatbuffers::Offset<flatbuffers::Vector<float>> stride_fp = 0,
1255 flatbuffers::Offset<flatbuffers::Vector<float>> offset_fp = 0,
1256 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
1257 ResizeAttributeBuilder builder_(_fbb);
1258 builder_.add_mode(mode);
1259 builder_.add_offset_fp(offset_fp);
1260 builder_.add_stride_fp(stride_fp);
1261 builder_.add_shift(shift);
1262 builder_.add_offset(offset);
1263 builder_.add_stride(stride);
1264 builder_.add_output_size(output_size);
1265 return builder_.Finish();
1266}
1267
1268inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttributeDirect(
1269 flatbuffers::FlatBufferBuilder &_fbb,
1270 const std::vector<int32_t> *output_size = nullptr,
1271 const std::vector<int32_t> *stride = nullptr,
1272 const std::vector<int32_t> *offset = nullptr,
1273 int32_t shift = 0,
1274 const std::vector<float> *stride_fp = nullptr,
1275 const std::vector<float> *offset_fp = nullptr,
1276 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
1277 auto output_size__ = output_size ? _fbb.CreateVector<int32_t>(*output_size) : 0;
1278 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
1279 auto offset__ = offset ? _fbb.CreateVector<int32_t>(*offset) : 0;
1280 auto stride_fp__ = stride_fp ? _fbb.CreateVector<float>(*stride_fp) : 0;
1281 auto offset_fp__ = offset_fp ? _fbb.CreateVector<float>(*offset_fp) : 0;
1282 return tosa::CreateResizeAttribute(
1283 _fbb,
1284 output_size__,
1285 stride__,
1286 offset__,
1287 shift,
1288 stride_fp__,
1289 offset_fp__,
1290 mode);
1291}
1292
1293struct ClampAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1294 typedef ClampAttributeBuilder Builder;
1295 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1296 VT_MIN_INT = 4,
1297 VT_MAX_INT = 6,
1298 VT_MIN_FP = 8,
1299 VT_MAX_FP = 10
1300 };
1301 int32_t min_int() const {
1302 return GetField<int32_t>(VT_MIN_INT, 0);
1303 }
1304 int32_t max_int() const {
1305 return GetField<int32_t>(VT_MAX_INT, 0);
1306 }
1307 float min_fp() const {
1308 return GetField<float>(VT_MIN_FP, 0.0f);
1309 }
1310 float max_fp() const {
1311 return GetField<float>(VT_MAX_FP, 0.0f);
1312 }
1313 bool Verify(flatbuffers::Verifier &verifier) const {
1314 return VerifyTableStart(verifier) &&
1315 VerifyField<int32_t>(verifier, VT_MIN_INT) &&
1316 VerifyField<int32_t>(verifier, VT_MAX_INT) &&
1317 VerifyField<float>(verifier, VT_MIN_FP) &&
1318 VerifyField<float>(verifier, VT_MAX_FP) &&
1319 verifier.EndTable();
1320 }
1321};
1322
1323struct ClampAttributeBuilder {
1324 typedef ClampAttribute Table;
1325 flatbuffers::FlatBufferBuilder &fbb_;
1326 flatbuffers::uoffset_t start_;
1327 void add_min_int(int32_t min_int) {
1328 fbb_.AddElement<int32_t>(ClampAttribute::VT_MIN_INT, min_int, 0);
1329 }
1330 void add_max_int(int32_t max_int) {
1331 fbb_.AddElement<int32_t>(ClampAttribute::VT_MAX_INT, max_int, 0);
1332 }
1333 void add_min_fp(float min_fp) {
1334 fbb_.AddElement<float>(ClampAttribute::VT_MIN_FP, min_fp, 0.0f);
1335 }
1336 void add_max_fp(float max_fp) {
1337 fbb_.AddElement<float>(ClampAttribute::VT_MAX_FP, max_fp, 0.0f);
1338 }
1339 explicit ClampAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1340 : fbb_(_fbb) {
1341 start_ = fbb_.StartTable();
1342 }
1343 ClampAttributeBuilder &operator=(const ClampAttributeBuilder &);
1344 flatbuffers::Offset<ClampAttribute> Finish() {
1345 const auto end = fbb_.EndTable(start_);
1346 auto o = flatbuffers::Offset<ClampAttribute>(end);
1347 return o;
1348 }
1349};
1350
1351inline flatbuffers::Offset<ClampAttribute> CreateClampAttribute(
1352 flatbuffers::FlatBufferBuilder &_fbb,
1353 int32_t min_int = 0,
1354 int32_t max_int = 0,
1355 float min_fp = 0.0f,
1356 float max_fp = 0.0f) {
1357 ClampAttributeBuilder builder_(_fbb);
1358 builder_.add_max_fp(max_fp);
1359 builder_.add_min_fp(min_fp);
1360 builder_.add_max_int(max_int);
1361 builder_.add_min_int(min_int);
1362 return builder_.Finish();
1363}
1364
1365struct RescaleAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1366 typedef RescaleAttributeBuilder Builder;
1367 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1368 VT_INPUT_ZP = 4,
1369 VT_OUTPUT_ZP = 6,
1370 VT_MULTIPLIER = 8,
1371 VT_SHIFT = 10,
1372 VT_SCALE32 = 12,
1373 VT_DOUBLE_ROUND = 14,
1374 VT_PER_CHANNEL = 16
1375 };
1376 int32_t input_zp() const {
1377 return GetField<int32_t>(VT_INPUT_ZP, 0);
1378 }
1379 int32_t output_zp() const {
1380 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1381 }
1382 const flatbuffers::Vector<int32_t> *multiplier() const {
1383 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLIER);
1384 }
1385 const flatbuffers::Vector<int32_t> *shift() const {
1386 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHIFT);
1387 }
1388 bool scale32() const {
1389 return GetField<uint8_t>(VT_SCALE32, 0) != 0;
1390 }
1391 bool double_round() const {
1392 return GetField<uint8_t>(VT_DOUBLE_ROUND, 0) != 0;
1393 }
1394 bool per_channel() const {
1395 return GetField<uint8_t>(VT_PER_CHANNEL, 0) != 0;
1396 }
1397 bool Verify(flatbuffers::Verifier &verifier) const {
1398 return VerifyTableStart(verifier) &&
1399 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1400 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP) &&
1401 VerifyOffset(verifier, VT_MULTIPLIER) &&
1402 verifier.VerifyVector(multiplier()) &&
1403 VerifyOffset(verifier, VT_SHIFT) &&
1404 verifier.VerifyVector(shift()) &&
1405 VerifyField<uint8_t>(verifier, VT_SCALE32) &&
1406 VerifyField<uint8_t>(verifier, VT_DOUBLE_ROUND) &&
1407 VerifyField<uint8_t>(verifier, VT_PER_CHANNEL) &&
1408 verifier.EndTable();
1409 }
1410};
1411
1412struct RescaleAttributeBuilder {
1413 typedef RescaleAttribute Table;
1414 flatbuffers::FlatBufferBuilder &fbb_;
1415 flatbuffers::uoffset_t start_;
1416 void add_input_zp(int32_t input_zp) {
1417 fbb_.AddElement<int32_t>(RescaleAttribute::VT_INPUT_ZP, input_zp, 0);
1418 }
1419 void add_output_zp(int32_t output_zp) {
1420 fbb_.AddElement<int32_t>(RescaleAttribute::VT_OUTPUT_ZP, output_zp, 0);
1421 }
1422 void add_multiplier(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier) {
1423 fbb_.AddOffset(RescaleAttribute::VT_MULTIPLIER, multiplier);
1424 }
1425 void add_shift(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift) {
1426 fbb_.AddOffset(RescaleAttribute::VT_SHIFT, shift);
1427 }
1428 void add_scale32(bool scale32) {
1429 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_SCALE32, static_cast<uint8_t>(scale32), 0);
1430 }
1431 void add_double_round(bool double_round) {
1432 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_DOUBLE_ROUND, static_cast<uint8_t>(double_round), 0);
1433 }
1434 void add_per_channel(bool per_channel) {
1435 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_PER_CHANNEL, static_cast<uint8_t>(per_channel), 0);
1436 }
1437 explicit RescaleAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1438 : fbb_(_fbb) {
1439 start_ = fbb_.StartTable();
1440 }
1441 RescaleAttributeBuilder &operator=(const RescaleAttributeBuilder &);
1442 flatbuffers::Offset<RescaleAttribute> Finish() {
1443 const auto end = fbb_.EndTable(start_);
1444 auto o = flatbuffers::Offset<RescaleAttribute>(end);
1445 return o;
1446 }
1447};
1448
1449inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttribute(
1450 flatbuffers::FlatBufferBuilder &_fbb,
1451 int32_t input_zp = 0,
1452 int32_t output_zp = 0,
1453 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier = 0,
1454 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift = 0,
1455 bool scale32 = false,
1456 bool double_round = false,
1457 bool per_channel = false) {
1458 RescaleAttributeBuilder builder_(_fbb);
1459 builder_.add_shift(shift);
1460 builder_.add_multiplier(multiplier);
1461 builder_.add_output_zp(output_zp);
1462 builder_.add_input_zp(input_zp);
1463 builder_.add_per_channel(per_channel);
1464 builder_.add_double_round(double_round);
1465 builder_.add_scale32(scale32);
1466 return builder_.Finish();
1467}
1468
1469inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttributeDirect(
1470 flatbuffers::FlatBufferBuilder &_fbb,
1471 int32_t input_zp = 0,
1472 int32_t output_zp = 0,
1473 const std::vector<int32_t> *multiplier = nullptr,
1474 const std::vector<int32_t> *shift = nullptr,
1475 bool scale32 = false,
1476 bool double_round = false,
1477 bool per_channel = false) {
1478 auto multiplier__ = multiplier ? _fbb.CreateVector<int32_t>(*multiplier) : 0;
1479 auto shift__ = shift ? _fbb.CreateVector<int32_t>(*shift) : 0;
1480 return tosa::CreateRescaleAttribute(
1481 _fbb,
1482 input_zp,
1483 output_zp,
1484 multiplier__,
1485 shift__,
1486 scale32,
1487 double_round,
1488 per_channel);
1489}
1490
1491struct MulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1492 typedef MulAttributeBuilder Builder;
1493 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1494 VT_SHIFT = 4
1495 };
1496 int32_t shift() const {
1497 return GetField<int32_t>(VT_SHIFT, 0);
1498 }
1499 bool Verify(flatbuffers::Verifier &verifier) const {
1500 return VerifyTableStart(verifier) &&
1501 VerifyField<int32_t>(verifier, VT_SHIFT) &&
1502 verifier.EndTable();
1503 }
1504};
1505
1506struct MulAttributeBuilder {
1507 typedef MulAttribute Table;
1508 flatbuffers::FlatBufferBuilder &fbb_;
1509 flatbuffers::uoffset_t start_;
1510 void add_shift(int32_t shift) {
1511 fbb_.AddElement<int32_t>(MulAttribute::VT_SHIFT, shift, 0);
1512 }
1513 explicit MulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1514 : fbb_(_fbb) {
1515 start_ = fbb_.StartTable();
1516 }
1517 MulAttributeBuilder &operator=(const MulAttributeBuilder &);
1518 flatbuffers::Offset<MulAttribute> Finish() {
1519 const auto end = fbb_.EndTable(start_);
1520 auto o = flatbuffers::Offset<MulAttribute>(end);
1521 return o;
1522 }
1523};
1524
1525inline flatbuffers::Offset<MulAttribute> CreateMulAttribute(
1526 flatbuffers::FlatBufferBuilder &_fbb,
1527 int32_t shift = 0) {
1528 MulAttributeBuilder builder_(_fbb);
1529 builder_.add_shift(shift);
1530 return builder_.Finish();
1531}
1532
1533struct ArithmeticRightShiftAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1534 typedef ArithmeticRightShiftAttributeBuilder Builder;
1535 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1536 VT_ROUND = 4
1537 };
1538 bool round() const {
1539 return GetField<uint8_t>(VT_ROUND, 0) != 0;
1540 }
1541 bool Verify(flatbuffers::Verifier &verifier) const {
1542 return VerifyTableStart(verifier) &&
1543 VerifyField<uint8_t>(verifier, VT_ROUND) &&
1544 verifier.EndTable();
1545 }
1546};
1547
1548struct ArithmeticRightShiftAttributeBuilder {
1549 typedef ArithmeticRightShiftAttribute Table;
1550 flatbuffers::FlatBufferBuilder &fbb_;
1551 flatbuffers::uoffset_t start_;
1552 void add_round(bool round) {
1553 fbb_.AddElement<uint8_t>(ArithmeticRightShiftAttribute::VT_ROUND, static_cast<uint8_t>(round), 0);
1554 }
1555 explicit ArithmeticRightShiftAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1556 : fbb_(_fbb) {
1557 start_ = fbb_.StartTable();
1558 }
1559 ArithmeticRightShiftAttributeBuilder &operator=(const ArithmeticRightShiftAttributeBuilder &);
1560 flatbuffers::Offset<ArithmeticRightShiftAttribute> Finish() {
1561 const auto end = fbb_.EndTable(start_);
1562 auto o = flatbuffers::Offset<ArithmeticRightShiftAttribute>(end);
1563 return o;
1564 }
1565};
1566
1567inline flatbuffers::Offset<ArithmeticRightShiftAttribute> CreateArithmeticRightShiftAttribute(
1568 flatbuffers::FlatBufferBuilder &_fbb,
1569 bool round = false) {
1570 ArithmeticRightShiftAttributeBuilder builder_(_fbb);
1571 builder_.add_round(round);
1572 return builder_.Finish();
1573}
1574
1575struct CondIfAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1576 typedef CondIfAttributeBuilder Builder;
1577 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1578 VT_THEN_BRANCH = 4,
1579 VT_ELSE_BRANCH = 6
1580 };
1581 const flatbuffers::String *then_branch() const {
1582 return GetPointer<const flatbuffers::String *>(VT_THEN_BRANCH);
1583 }
1584 const flatbuffers::String *else_branch() const {
1585 return GetPointer<const flatbuffers::String *>(VT_ELSE_BRANCH);
1586 }
1587 bool Verify(flatbuffers::Verifier &verifier) const {
1588 return VerifyTableStart(verifier) &&
1589 VerifyOffset(verifier, VT_THEN_BRANCH) &&
1590 verifier.VerifyString(then_branch()) &&
1591 VerifyOffset(verifier, VT_ELSE_BRANCH) &&
1592 verifier.VerifyString(else_branch()) &&
1593 verifier.EndTable();
1594 }
1595};
1596
1597struct CondIfAttributeBuilder {
1598 typedef CondIfAttribute Table;
1599 flatbuffers::FlatBufferBuilder &fbb_;
1600 flatbuffers::uoffset_t start_;
1601 void add_then_branch(flatbuffers::Offset<flatbuffers::String> then_branch) {
1602 fbb_.AddOffset(CondIfAttribute::VT_THEN_BRANCH, then_branch);
1603 }
1604 void add_else_branch(flatbuffers::Offset<flatbuffers::String> else_branch) {
1605 fbb_.AddOffset(CondIfAttribute::VT_ELSE_BRANCH, else_branch);
1606 }
1607 explicit CondIfAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1608 : fbb_(_fbb) {
1609 start_ = fbb_.StartTable();
1610 }
1611 CondIfAttributeBuilder &operator=(const CondIfAttributeBuilder &);
1612 flatbuffers::Offset<CondIfAttribute> Finish() {
1613 const auto end = fbb_.EndTable(start_);
1614 auto o = flatbuffers::Offset<CondIfAttribute>(end);
1615 return o;
1616 }
1617};
1618
1619inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttribute(
1620 flatbuffers::FlatBufferBuilder &_fbb,
1621 flatbuffers::Offset<flatbuffers::String> then_branch = 0,
1622 flatbuffers::Offset<flatbuffers::String> else_branch = 0) {
1623 CondIfAttributeBuilder builder_(_fbb);
1624 builder_.add_else_branch(else_branch);
1625 builder_.add_then_branch(then_branch);
1626 return builder_.Finish();
1627}
1628
1629inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttributeDirect(
1630 flatbuffers::FlatBufferBuilder &_fbb,
1631 const char *then_branch = nullptr,
1632 const char *else_branch = nullptr) {
1633 auto then_branch__ = then_branch ? _fbb.CreateString(then_branch) : 0;
1634 auto else_branch__ = else_branch ? _fbb.CreateString(else_branch) : 0;
1635 return tosa::CreateCondIfAttribute(
1636 _fbb,
1637 then_branch__,
1638 else_branch__);
1639}
1640
1641struct WhileLoopAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1642 typedef WhileLoopAttributeBuilder Builder;
1643 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1644 VT_COND_BRANCH = 4,
1645 VT_BODY_BRANCH = 6
1646 };
1647 const flatbuffers::String *cond_branch() const {
1648 return GetPointer<const flatbuffers::String *>(VT_COND_BRANCH);
1649 }
1650 const flatbuffers::String *body_branch() const {
1651 return GetPointer<const flatbuffers::String *>(VT_BODY_BRANCH);
1652 }
1653 bool Verify(flatbuffers::Verifier &verifier) const {
1654 return VerifyTableStart(verifier) &&
1655 VerifyOffset(verifier, VT_COND_BRANCH) &&
1656 verifier.VerifyString(cond_branch()) &&
1657 VerifyOffset(verifier, VT_BODY_BRANCH) &&
1658 verifier.VerifyString(body_branch()) &&
1659 verifier.EndTable();
1660 }
1661};
1662
1663struct WhileLoopAttributeBuilder {
1664 typedef WhileLoopAttribute Table;
1665 flatbuffers::FlatBufferBuilder &fbb_;
1666 flatbuffers::uoffset_t start_;
1667 void add_cond_branch(flatbuffers::Offset<flatbuffers::String> cond_branch) {
1668 fbb_.AddOffset(WhileLoopAttribute::VT_COND_BRANCH, cond_branch);
1669 }
1670 void add_body_branch(flatbuffers::Offset<flatbuffers::String> body_branch) {
1671 fbb_.AddOffset(WhileLoopAttribute::VT_BODY_BRANCH, body_branch);
1672 }
1673 explicit WhileLoopAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1674 : fbb_(_fbb) {
1675 start_ = fbb_.StartTable();
1676 }
1677 WhileLoopAttributeBuilder &operator=(const WhileLoopAttributeBuilder &);
1678 flatbuffers::Offset<WhileLoopAttribute> Finish() {
1679 const auto end = fbb_.EndTable(start_);
1680 auto o = flatbuffers::Offset<WhileLoopAttribute>(end);
1681 return o;
1682 }
1683};
1684
1685inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttribute(
1686 flatbuffers::FlatBufferBuilder &_fbb,
1687 flatbuffers::Offset<flatbuffers::String> cond_branch = 0,
1688 flatbuffers::Offset<flatbuffers::String> body_branch = 0) {
1689 WhileLoopAttributeBuilder builder_(_fbb);
1690 builder_.add_body_branch(body_branch);
1691 builder_.add_cond_branch(cond_branch);
1692 return builder_.Finish();
1693}
1694
1695inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttributeDirect(
1696 flatbuffers::FlatBufferBuilder &_fbb,
1697 const char *cond_branch = nullptr,
1698 const char *body_branch = nullptr) {
1699 auto cond_branch__ = cond_branch ? _fbb.CreateString(cond_branch) : 0;
1700 auto body_branch__ = body_branch ? _fbb.CreateString(body_branch) : 0;
1701 return tosa::CreateWhileLoopAttribute(
1702 _fbb,
1703 cond_branch__,
1704 body_branch__);
1705}
1706
Kevin Cheng38d214c2021-10-15 15:49:19 -07001707struct TransposeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1708 typedef TransposeAttributeBuilder Builder;
1709 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1710 VT_PERM = 4
1711 };
1712 const flatbuffers::Vector<int32_t> *perm() const {
1713 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PERM);
1714 }
1715 bool Verify(flatbuffers::Verifier &verifier) const {
1716 return VerifyTableStart(verifier) &&
1717 VerifyOffset(verifier, VT_PERM) &&
1718 verifier.VerifyVector(perm()) &&
1719 verifier.EndTable();
1720 }
1721};
1722
1723struct TransposeAttributeBuilder {
1724 typedef TransposeAttribute Table;
1725 flatbuffers::FlatBufferBuilder &fbb_;
1726 flatbuffers::uoffset_t start_;
1727 void add_perm(flatbuffers::Offset<flatbuffers::Vector<int32_t>> perm) {
1728 fbb_.AddOffset(TransposeAttribute::VT_PERM, perm);
1729 }
1730 explicit TransposeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1731 : fbb_(_fbb) {
1732 start_ = fbb_.StartTable();
1733 }
1734 TransposeAttributeBuilder &operator=(const TransposeAttributeBuilder &);
1735 flatbuffers::Offset<TransposeAttribute> Finish() {
1736 const auto end = fbb_.EndTable(start_);
1737 auto o = flatbuffers::Offset<TransposeAttribute>(end);
1738 return o;
1739 }
1740};
1741
1742inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttribute(
1743 flatbuffers::FlatBufferBuilder &_fbb,
1744 flatbuffers::Offset<flatbuffers::Vector<int32_t>> perm = 0) {
1745 TransposeAttributeBuilder builder_(_fbb);
1746 builder_.add_perm(perm);
1747 return builder_.Finish();
1748}
1749
1750inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttributeDirect(
1751 flatbuffers::FlatBufferBuilder &_fbb,
1752 const std::vector<int32_t> *perm = nullptr) {
1753 auto perm__ = perm ? _fbb.CreateVector<int32_t>(*perm) : 0;
1754 return tosa::CreateTransposeAttribute(
1755 _fbb,
1756 perm__);
1757}
1758
1759struct TableAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1760 typedef TableAttributeBuilder Builder;
1761 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1762 VT_TABLE = 4
1763 };
1764 const flatbuffers::Vector<int32_t> *table() const {
1765 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_TABLE);
1766 }
1767 bool Verify(flatbuffers::Verifier &verifier) const {
1768 return VerifyTableStart(verifier) &&
1769 VerifyOffset(verifier, VT_TABLE) &&
1770 verifier.VerifyVector(table()) &&
1771 verifier.EndTable();
1772 }
1773};
1774
1775struct TableAttributeBuilder {
1776 typedef TableAttribute Table;
1777 flatbuffers::FlatBufferBuilder &fbb_;
1778 flatbuffers::uoffset_t start_;
1779 void add_table(flatbuffers::Offset<flatbuffers::Vector<int32_t>> table) {
1780 fbb_.AddOffset(TableAttribute::VT_TABLE, table);
1781 }
1782 explicit TableAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1783 : fbb_(_fbb) {
1784 start_ = fbb_.StartTable();
1785 }
1786 TableAttributeBuilder &operator=(const TableAttributeBuilder &);
1787 flatbuffers::Offset<TableAttribute> Finish() {
1788 const auto end = fbb_.EndTable(start_);
1789 auto o = flatbuffers::Offset<TableAttribute>(end);
1790 return o;
1791 }
1792};
1793
1794inline flatbuffers::Offset<TableAttribute> CreateTableAttribute(
1795 flatbuffers::FlatBufferBuilder &_fbb,
1796 flatbuffers::Offset<flatbuffers::Vector<int32_t>> table = 0) {
1797 TableAttributeBuilder builder_(_fbb);
1798 builder_.add_table(table);
1799 return builder_.Finish();
1800}
1801
1802inline flatbuffers::Offset<TableAttribute> CreateTableAttributeDirect(
1803 flatbuffers::FlatBufferBuilder &_fbb,
1804 const std::vector<int32_t> *table = nullptr) {
1805 auto table__ = table ? _fbb.CreateVector<int32_t>(*table) : 0;
1806 return tosa::CreateTableAttribute(
1807 _fbb,
1808 table__);
1809}
1810
Eric Kunze2364dcd2021-04-26 11:06:57 -07001811struct UnaryQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1812 typedef UnaryQuantInfoBuilder Builder;
1813 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1814 VT_INPUT_ZP = 4,
1815 VT_OUTPUT_ZP = 6
1816 };
1817 int32_t input_zp() const {
1818 return GetField<int32_t>(VT_INPUT_ZP, 0);
1819 }
1820 int32_t output_zp() const {
1821 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1822 }
1823 bool Verify(flatbuffers::Verifier &verifier) const {
1824 return VerifyTableStart(verifier) &&
1825 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1826 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP) &&
1827 verifier.EndTable();
1828 }
1829};
1830
1831struct UnaryQuantInfoBuilder {
1832 typedef UnaryQuantInfo Table;
1833 flatbuffers::FlatBufferBuilder &fbb_;
1834 flatbuffers::uoffset_t start_;
1835 void add_input_zp(int32_t input_zp) {
1836 fbb_.AddElement<int32_t>(UnaryQuantInfo::VT_INPUT_ZP, input_zp, 0);
1837 }
1838 void add_output_zp(int32_t output_zp) {
1839 fbb_.AddElement<int32_t>(UnaryQuantInfo::VT_OUTPUT_ZP, output_zp, 0);
1840 }
1841 explicit UnaryQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1842 : fbb_(_fbb) {
1843 start_ = fbb_.StartTable();
1844 }
1845 UnaryQuantInfoBuilder &operator=(const UnaryQuantInfoBuilder &);
1846 flatbuffers::Offset<UnaryQuantInfo> Finish() {
1847 const auto end = fbb_.EndTable(start_);
1848 auto o = flatbuffers::Offset<UnaryQuantInfo>(end);
1849 return o;
1850 }
1851};
1852
1853inline flatbuffers::Offset<UnaryQuantInfo> CreateUnaryQuantInfo(
1854 flatbuffers::FlatBufferBuilder &_fbb,
1855 int32_t input_zp = 0,
1856 int32_t output_zp = 0) {
1857 UnaryQuantInfoBuilder builder_(_fbb);
1858 builder_.add_output_zp(output_zp);
1859 builder_.add_input_zp(input_zp);
1860 return builder_.Finish();
1861}
1862
1863struct ConvQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1864 typedef ConvQuantInfoBuilder Builder;
1865 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1866 VT_INPUT_ZP = 4,
1867 VT_WEIGHT_ZP = 6
1868 };
1869 int32_t input_zp() const {
1870 return GetField<int32_t>(VT_INPUT_ZP, 0);
1871 }
1872 int32_t weight_zp() const {
1873 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
1874 }
1875 bool Verify(flatbuffers::Verifier &verifier) const {
1876 return VerifyTableStart(verifier) &&
1877 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1878 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP) &&
1879 verifier.EndTable();
1880 }
1881};
1882
1883struct ConvQuantInfoBuilder {
1884 typedef ConvQuantInfo Table;
1885 flatbuffers::FlatBufferBuilder &fbb_;
1886 flatbuffers::uoffset_t start_;
1887 void add_input_zp(int32_t input_zp) {
1888 fbb_.AddElement<int32_t>(ConvQuantInfo::VT_INPUT_ZP, input_zp, 0);
1889 }
1890 void add_weight_zp(int32_t weight_zp) {
1891 fbb_.AddElement<int32_t>(ConvQuantInfo::VT_WEIGHT_ZP, weight_zp, 0);
1892 }
1893 explicit ConvQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1894 : fbb_(_fbb) {
1895 start_ = fbb_.StartTable();
1896 }
1897 ConvQuantInfoBuilder &operator=(const ConvQuantInfoBuilder &);
1898 flatbuffers::Offset<ConvQuantInfo> Finish() {
1899 const auto end = fbb_.EndTable(start_);
1900 auto o = flatbuffers::Offset<ConvQuantInfo>(end);
1901 return o;
1902 }
1903};
1904
1905inline flatbuffers::Offset<ConvQuantInfo> CreateConvQuantInfo(
1906 flatbuffers::FlatBufferBuilder &_fbb,
1907 int32_t input_zp = 0,
1908 int32_t weight_zp = 0) {
1909 ConvQuantInfoBuilder builder_(_fbb);
1910 builder_.add_weight_zp(weight_zp);
1911 builder_.add_input_zp(input_zp);
1912 return builder_.Finish();
1913}
1914
1915struct MatMulQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1916 typedef MatMulQuantInfoBuilder Builder;
1917 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1918 VT_A_ZP = 4,
1919 VT_B_ZP = 6
1920 };
1921 int32_t a_zp() const {
1922 return GetField<int32_t>(VT_A_ZP, 0);
1923 }
1924 int32_t b_zp() const {
1925 return GetField<int32_t>(VT_B_ZP, 0);
1926 }
1927 bool Verify(flatbuffers::Verifier &verifier) const {
1928 return VerifyTableStart(verifier) &&
1929 VerifyField<int32_t>(verifier, VT_A_ZP) &&
1930 VerifyField<int32_t>(verifier, VT_B_ZP) &&
1931 verifier.EndTable();
1932 }
1933};
1934
1935struct MatMulQuantInfoBuilder {
1936 typedef MatMulQuantInfo Table;
1937 flatbuffers::FlatBufferBuilder &fbb_;
1938 flatbuffers::uoffset_t start_;
1939 void add_a_zp(int32_t a_zp) {
1940 fbb_.AddElement<int32_t>(MatMulQuantInfo::VT_A_ZP, a_zp, 0);
1941 }
1942 void add_b_zp(int32_t b_zp) {
1943 fbb_.AddElement<int32_t>(MatMulQuantInfo::VT_B_ZP, b_zp, 0);
1944 }
1945 explicit MatMulQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1946 : fbb_(_fbb) {
1947 start_ = fbb_.StartTable();
1948 }
1949 MatMulQuantInfoBuilder &operator=(const MatMulQuantInfoBuilder &);
1950 flatbuffers::Offset<MatMulQuantInfo> Finish() {
1951 const auto end = fbb_.EndTable(start_);
1952 auto o = flatbuffers::Offset<MatMulQuantInfo>(end);
1953 return o;
1954 }
1955};
1956
1957inline flatbuffers::Offset<MatMulQuantInfo> CreateMatMulQuantInfo(
1958 flatbuffers::FlatBufferBuilder &_fbb,
1959 int32_t a_zp = 0,
1960 int32_t b_zp = 0) {
1961 MatMulQuantInfoBuilder builder_(_fbb);
1962 builder_.add_b_zp(b_zp);
1963 builder_.add_a_zp(a_zp);
1964 return builder_.Finish();
1965}
1966
1967struct PadQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1968 typedef PadQuantInfoBuilder Builder;
1969 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1970 VT_INPUT_ZP = 4
1971 };
1972 int32_t input_zp() const {
1973 return GetField<int32_t>(VT_INPUT_ZP, 0);
1974 }
1975 bool Verify(flatbuffers::Verifier &verifier) const {
1976 return VerifyTableStart(verifier) &&
1977 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1978 verifier.EndTable();
1979 }
1980};
1981
1982struct PadQuantInfoBuilder {
1983 typedef PadQuantInfo Table;
1984 flatbuffers::FlatBufferBuilder &fbb_;
1985 flatbuffers::uoffset_t start_;
1986 void add_input_zp(int32_t input_zp) {
1987 fbb_.AddElement<int32_t>(PadQuantInfo::VT_INPUT_ZP, input_zp, 0);
1988 }
1989 explicit PadQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1990 : fbb_(_fbb) {
1991 start_ = fbb_.StartTable();
1992 }
1993 PadQuantInfoBuilder &operator=(const PadQuantInfoBuilder &);
1994 flatbuffers::Offset<PadQuantInfo> Finish() {
1995 const auto end = fbb_.EndTable(start_);
1996 auto o = flatbuffers::Offset<PadQuantInfo>(end);
1997 return o;
1998 }
1999};
2000
2001inline flatbuffers::Offset<PadQuantInfo> CreatePadQuantInfo(
2002 flatbuffers::FlatBufferBuilder &_fbb,
2003 int32_t input_zp = 0) {
2004 PadQuantInfoBuilder builder_(_fbb);
2005 builder_.add_input_zp(input_zp);
2006 return builder_.Finish();
2007}
2008
2009struct Version FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2010 typedef VersionBuilder Builder;
2011 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2012 VT__MAJOR = 4,
2013 VT__MINOR = 6,
2014 VT__PATCH = 8,
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002015 VT__DRAFT = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07002016 };
2017 int32_t _major() const {
2018 return GetField<int32_t>(VT__MAJOR, 0);
2019 }
2020 int32_t _minor() const {
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002021 return GetField<int32_t>(VT__MINOR, 23);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002022 }
2023 int32_t _patch() const {
2024 return GetField<int32_t>(VT__PATCH, 0);
2025 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002026 bool _draft() const {
Eric Kunze5867c9a2021-10-29 16:53:32 -07002027 return GetField<uint8_t>(VT__DRAFT, 0) != 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002028 }
2029 bool Verify(flatbuffers::Verifier &verifier) const {
2030 return VerifyTableStart(verifier) &&
2031 VerifyField<int32_t>(verifier, VT__MAJOR) &&
2032 VerifyField<int32_t>(verifier, VT__MINOR) &&
2033 VerifyField<int32_t>(verifier, VT__PATCH) &&
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002034 VerifyField<uint8_t>(verifier, VT__DRAFT) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002035 verifier.EndTable();
2036 }
2037};
2038
2039struct VersionBuilder {
2040 typedef Version Table;
2041 flatbuffers::FlatBufferBuilder &fbb_;
2042 flatbuffers::uoffset_t start_;
2043 void add__major(int32_t _major) {
2044 fbb_.AddElement<int32_t>(Version::VT__MAJOR, _major, 0);
2045 }
2046 void add__minor(int32_t _minor) {
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002047 fbb_.AddElement<int32_t>(Version::VT__MINOR, _minor, 23);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002048 }
2049 void add__patch(int32_t _patch) {
2050 fbb_.AddElement<int32_t>(Version::VT__PATCH, _patch, 0);
2051 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002052 void add__draft(bool _draft) {
Eric Kunze5867c9a2021-10-29 16:53:32 -07002053 fbb_.AddElement<uint8_t>(Version::VT__DRAFT, static_cast<uint8_t>(_draft), 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002054 }
2055 explicit VersionBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2056 : fbb_(_fbb) {
2057 start_ = fbb_.StartTable();
2058 }
2059 VersionBuilder &operator=(const VersionBuilder &);
2060 flatbuffers::Offset<Version> Finish() {
2061 const auto end = fbb_.EndTable(start_);
2062 auto o = flatbuffers::Offset<Version>(end);
2063 return o;
2064 }
2065};
2066
2067inline flatbuffers::Offset<Version> CreateVersion(
2068 flatbuffers::FlatBufferBuilder &_fbb,
2069 int32_t _major = 0,
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002070 int32_t _minor = 23,
Eric Kunze2364dcd2021-04-26 11:06:57 -07002071 int32_t _patch = 0,
Eric Kunze5867c9a2021-10-29 16:53:32 -07002072 bool _draft = false) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002073 VersionBuilder builder_(_fbb);
2074 builder_.add__patch(_patch);
2075 builder_.add__minor(_minor);
2076 builder_.add__major(_major);
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002077 builder_.add__draft(_draft);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002078 return builder_.Finish();
2079}
2080
2081struct TosaTensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2082 typedef TosaTensorBuilder Builder;
2083 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2084 VT_NAME = 4,
2085 VT_SHAPE = 6,
2086 VT_TYPE = 8,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002087 VT_DATA = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07002088 };
2089 const flatbuffers::String *name() const {
2090 return GetPointer<const flatbuffers::String *>(VT_NAME);
2091 }
2092 const flatbuffers::Vector<int32_t> *shape() const {
2093 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHAPE);
2094 }
2095 tosa::DType type() const {
2096 return static_cast<tosa::DType>(GetField<uint32_t>(VT_TYPE, 0));
2097 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002098 const flatbuffers::Vector<uint8_t> *data() const {
2099 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_DATA);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002100 }
2101 bool Verify(flatbuffers::Verifier &verifier) const {
2102 return VerifyTableStart(verifier) &&
2103 VerifyOffset(verifier, VT_NAME) &&
2104 verifier.VerifyString(name()) &&
2105 VerifyOffset(verifier, VT_SHAPE) &&
2106 verifier.VerifyVector(shape()) &&
2107 VerifyField<uint32_t>(verifier, VT_TYPE) &&
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002108 VerifyOffset(verifier, VT_DATA) &&
2109 verifier.VerifyVector(data()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002110 verifier.EndTable();
2111 }
2112};
2113
2114struct TosaTensorBuilder {
2115 typedef TosaTensor Table;
2116 flatbuffers::FlatBufferBuilder &fbb_;
2117 flatbuffers::uoffset_t start_;
2118 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2119 fbb_.AddOffset(TosaTensor::VT_NAME, name);
2120 }
2121 void add_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape) {
2122 fbb_.AddOffset(TosaTensor::VT_SHAPE, shape);
2123 }
2124 void add_type(tosa::DType type) {
2125 fbb_.AddElement<uint32_t>(TosaTensor::VT_TYPE, static_cast<uint32_t>(type), 0);
2126 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002127 void add_data(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data) {
2128 fbb_.AddOffset(TosaTensor::VT_DATA, data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002129 }
2130 explicit TosaTensorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2131 : fbb_(_fbb) {
2132 start_ = fbb_.StartTable();
2133 }
2134 TosaTensorBuilder &operator=(const TosaTensorBuilder &);
2135 flatbuffers::Offset<TosaTensor> Finish() {
2136 const auto end = fbb_.EndTable(start_);
2137 auto o = flatbuffers::Offset<TosaTensor>(end);
2138 return o;
2139 }
2140};
2141
2142inline flatbuffers::Offset<TosaTensor> CreateTosaTensor(
2143 flatbuffers::FlatBufferBuilder &_fbb,
2144 flatbuffers::Offset<flatbuffers::String> name = 0,
2145 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape = 0,
2146 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002147 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002148 TosaTensorBuilder builder_(_fbb);
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002149 builder_.add_data(data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002150 builder_.add_type(type);
2151 builder_.add_shape(shape);
2152 builder_.add_name(name);
2153 return builder_.Finish();
2154}
2155
2156inline flatbuffers::Offset<TosaTensor> CreateTosaTensorDirect(
2157 flatbuffers::FlatBufferBuilder &_fbb,
2158 const char *name = nullptr,
2159 const std::vector<int32_t> *shape = nullptr,
2160 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002161 const std::vector<uint8_t> *data = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002162 auto name__ = name ? _fbb.CreateString(name) : 0;
2163 auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0;
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002164 if (data) { _fbb.ForceVectorAlignment(data->size(), sizeof(uint8_t), 8); }
2165 auto data__ = data ? _fbb.CreateVector<uint8_t>(*data) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002166 return tosa::CreateTosaTensor(
2167 _fbb,
2168 name__,
2169 shape__,
2170 type,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002171 data__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002172}
2173
2174struct TosaOperator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2175 typedef TosaOperatorBuilder Builder;
2176 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2177 VT_OP = 4,
2178 VT_ATTRIBUTE_TYPE = 6,
2179 VT_ATTRIBUTE = 8,
2180 VT_INPUTS = 10,
2181 VT_OUTPUTS = 12,
2182 VT_QUANT_INFO_TYPE = 14,
2183 VT_QUANT_INFO = 16
2184 };
2185 tosa::Op op() const {
2186 return static_cast<tosa::Op>(GetField<uint32_t>(VT_OP, 0));
2187 }
2188 tosa::Attribute attribute_type() const {
2189 return static_cast<tosa::Attribute>(GetField<uint8_t>(VT_ATTRIBUTE_TYPE, 0));
2190 }
2191 const void *attribute() const {
2192 return GetPointer<const void *>(VT_ATTRIBUTE);
2193 }
2194 template<typename T> const T *attribute_as() const;
Kevin Cheng79a41992021-08-31 16:04:40 -07002195 const tosa::PoolAttribute *attribute_as_PoolAttribute() const {
2196 return attribute_type() == tosa::Attribute_PoolAttribute ? static_cast<const tosa::PoolAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002197 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002198 const tosa::ConvAttribute *attribute_as_ConvAttribute() const {
2199 return attribute_type() == tosa::Attribute_ConvAttribute ? static_cast<const tosa::ConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002200 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002201 const tosa::TransposeConvAttribute *attribute_as_TransposeConvAttribute() const {
2202 return attribute_type() == tosa::Attribute_TransposeConvAttribute ? static_cast<const tosa::TransposeConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002203 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002204 const tosa::PadAttribute *attribute_as_PadAttribute() const {
2205 return attribute_type() == tosa::Attribute_PadAttribute ? static_cast<const tosa::PadAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002206 }
2207 const tosa::AxisAttribute *attribute_as_AxisAttribute() const {
2208 return attribute_type() == tosa::Attribute_AxisAttribute ? static_cast<const tosa::AxisAttribute *>(attribute()) : nullptr;
2209 }
2210 const tosa::ReshapeAttribute *attribute_as_ReshapeAttribute() const {
2211 return attribute_type() == tosa::Attribute_ReshapeAttribute ? static_cast<const tosa::ReshapeAttribute *>(attribute()) : nullptr;
2212 }
2213 const tosa::SliceAttribute *attribute_as_SliceAttribute() const {
2214 return attribute_type() == tosa::Attribute_SliceAttribute ? static_cast<const tosa::SliceAttribute *>(attribute()) : nullptr;
2215 }
2216 const tosa::TileAttribute *attribute_as_TileAttribute() const {
2217 return attribute_type() == tosa::Attribute_TileAttribute ? static_cast<const tosa::TileAttribute *>(attribute()) : nullptr;
2218 }
2219 const tosa::ResizeAttribute *attribute_as_ResizeAttribute() const {
2220 return attribute_type() == tosa::Attribute_ResizeAttribute ? static_cast<const tosa::ResizeAttribute *>(attribute()) : nullptr;
2221 }
2222 const tosa::ClampAttribute *attribute_as_ClampAttribute() const {
2223 return attribute_type() == tosa::Attribute_ClampAttribute ? static_cast<const tosa::ClampAttribute *>(attribute()) : nullptr;
2224 }
2225 const tosa::RescaleAttribute *attribute_as_RescaleAttribute() const {
2226 return attribute_type() == tosa::Attribute_RescaleAttribute ? static_cast<const tosa::RescaleAttribute *>(attribute()) : nullptr;
2227 }
2228 const tosa::MulAttribute *attribute_as_MulAttribute() const {
2229 return attribute_type() == tosa::Attribute_MulAttribute ? static_cast<const tosa::MulAttribute *>(attribute()) : nullptr;
2230 }
2231 const tosa::ArithmeticRightShiftAttribute *attribute_as_ArithmeticRightShiftAttribute() const {
2232 return attribute_type() == tosa::Attribute_ArithmeticRightShiftAttribute ? static_cast<const tosa::ArithmeticRightShiftAttribute *>(attribute()) : nullptr;
2233 }
2234 const tosa::CondIfAttribute *attribute_as_CondIfAttribute() const {
2235 return attribute_type() == tosa::Attribute_CondIfAttribute ? static_cast<const tosa::CondIfAttribute *>(attribute()) : nullptr;
2236 }
2237 const tosa::WhileLoopAttribute *attribute_as_WhileLoopAttribute() const {
2238 return attribute_type() == tosa::Attribute_WhileLoopAttribute ? static_cast<const tosa::WhileLoopAttribute *>(attribute()) : nullptr;
2239 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002240 const tosa::TransposeAttribute *attribute_as_TransposeAttribute() const {
2241 return attribute_type() == tosa::Attribute_TransposeAttribute ? static_cast<const tosa::TransposeAttribute *>(attribute()) : nullptr;
2242 }
2243 const tosa::TableAttribute *attribute_as_TableAttribute() const {
2244 return attribute_type() == tosa::Attribute_TableAttribute ? static_cast<const tosa::TableAttribute *>(attribute()) : nullptr;
2245 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002246 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2247 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2248 }
2249 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2250 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2251 }
2252 tosa::QuantInfo quant_info_type() const {
2253 return static_cast<tosa::QuantInfo>(GetField<uint8_t>(VT_QUANT_INFO_TYPE, 0));
2254 }
2255 const void *quant_info() const {
2256 return GetPointer<const void *>(VT_QUANT_INFO);
2257 }
2258 template<typename T> const T *quant_info_as() const;
2259 const tosa::UnaryQuantInfo *quant_info_as_UnaryQuantInfo() const {
2260 return quant_info_type() == tosa::QuantInfo_UnaryQuantInfo ? static_cast<const tosa::UnaryQuantInfo *>(quant_info()) : nullptr;
2261 }
2262 const tosa::ConvQuantInfo *quant_info_as_ConvQuantInfo() const {
2263 return quant_info_type() == tosa::QuantInfo_ConvQuantInfo ? static_cast<const tosa::ConvQuantInfo *>(quant_info()) : nullptr;
2264 }
2265 const tosa::MatMulQuantInfo *quant_info_as_MatMulQuantInfo() const {
2266 return quant_info_type() == tosa::QuantInfo_MatMulQuantInfo ? static_cast<const tosa::MatMulQuantInfo *>(quant_info()) : nullptr;
2267 }
2268 const tosa::PadQuantInfo *quant_info_as_PadQuantInfo() const {
2269 return quant_info_type() == tosa::QuantInfo_PadQuantInfo ? static_cast<const tosa::PadQuantInfo *>(quant_info()) : nullptr;
2270 }
2271 bool Verify(flatbuffers::Verifier &verifier) const {
2272 return VerifyTableStart(verifier) &&
2273 VerifyField<uint32_t>(verifier, VT_OP) &&
2274 VerifyField<uint8_t>(verifier, VT_ATTRIBUTE_TYPE) &&
2275 VerifyOffset(verifier, VT_ATTRIBUTE) &&
2276 VerifyAttribute(verifier, attribute(), attribute_type()) &&
2277 VerifyOffset(verifier, VT_INPUTS) &&
2278 verifier.VerifyVector(inputs()) &&
2279 verifier.VerifyVectorOfStrings(inputs()) &&
2280 VerifyOffset(verifier, VT_OUTPUTS) &&
2281 verifier.VerifyVector(outputs()) &&
2282 verifier.VerifyVectorOfStrings(outputs()) &&
2283 VerifyField<uint8_t>(verifier, VT_QUANT_INFO_TYPE) &&
2284 VerifyOffset(verifier, VT_QUANT_INFO) &&
2285 VerifyQuantInfo(verifier, quant_info(), quant_info_type()) &&
2286 verifier.EndTable();
2287 }
2288};
2289
Kevin Cheng79a41992021-08-31 16:04:40 -07002290template<> inline const tosa::PoolAttribute *TosaOperator::attribute_as<tosa::PoolAttribute>() const {
2291 return attribute_as_PoolAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002292}
2293
Kevin Cheng79a41992021-08-31 16:04:40 -07002294template<> inline const tosa::ConvAttribute *TosaOperator::attribute_as<tosa::ConvAttribute>() const {
2295 return attribute_as_ConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002296}
2297
Kevin Cheng79a41992021-08-31 16:04:40 -07002298template<> inline const tosa::TransposeConvAttribute *TosaOperator::attribute_as<tosa::TransposeConvAttribute>() const {
2299 return attribute_as_TransposeConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002300}
2301
Kevin Cheng38d214c2021-10-15 15:49:19 -07002302template<> inline const tosa::PadAttribute *TosaOperator::attribute_as<tosa::PadAttribute>() const {
2303 return attribute_as_PadAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002304}
2305
2306template<> inline const tosa::AxisAttribute *TosaOperator::attribute_as<tosa::AxisAttribute>() const {
2307 return attribute_as_AxisAttribute();
2308}
2309
2310template<> inline const tosa::ReshapeAttribute *TosaOperator::attribute_as<tosa::ReshapeAttribute>() const {
2311 return attribute_as_ReshapeAttribute();
2312}
2313
2314template<> inline const tosa::SliceAttribute *TosaOperator::attribute_as<tosa::SliceAttribute>() const {
2315 return attribute_as_SliceAttribute();
2316}
2317
2318template<> inline const tosa::TileAttribute *TosaOperator::attribute_as<tosa::TileAttribute>() const {
2319 return attribute_as_TileAttribute();
2320}
2321
2322template<> inline const tosa::ResizeAttribute *TosaOperator::attribute_as<tosa::ResizeAttribute>() const {
2323 return attribute_as_ResizeAttribute();
2324}
2325
2326template<> inline const tosa::ClampAttribute *TosaOperator::attribute_as<tosa::ClampAttribute>() const {
2327 return attribute_as_ClampAttribute();
2328}
2329
2330template<> inline const tosa::RescaleAttribute *TosaOperator::attribute_as<tosa::RescaleAttribute>() const {
2331 return attribute_as_RescaleAttribute();
2332}
2333
2334template<> inline const tosa::MulAttribute *TosaOperator::attribute_as<tosa::MulAttribute>() const {
2335 return attribute_as_MulAttribute();
2336}
2337
2338template<> inline const tosa::ArithmeticRightShiftAttribute *TosaOperator::attribute_as<tosa::ArithmeticRightShiftAttribute>() const {
2339 return attribute_as_ArithmeticRightShiftAttribute();
2340}
2341
2342template<> inline const tosa::CondIfAttribute *TosaOperator::attribute_as<tosa::CondIfAttribute>() const {
2343 return attribute_as_CondIfAttribute();
2344}
2345
2346template<> inline const tosa::WhileLoopAttribute *TosaOperator::attribute_as<tosa::WhileLoopAttribute>() const {
2347 return attribute_as_WhileLoopAttribute();
2348}
2349
Kevin Cheng38d214c2021-10-15 15:49:19 -07002350template<> inline const tosa::TransposeAttribute *TosaOperator::attribute_as<tosa::TransposeAttribute>() const {
2351 return attribute_as_TransposeAttribute();
2352}
2353
2354template<> inline const tosa::TableAttribute *TosaOperator::attribute_as<tosa::TableAttribute>() const {
2355 return attribute_as_TableAttribute();
2356}
2357
Eric Kunze2364dcd2021-04-26 11:06:57 -07002358template<> inline const tosa::UnaryQuantInfo *TosaOperator::quant_info_as<tosa::UnaryQuantInfo>() const {
2359 return quant_info_as_UnaryQuantInfo();
2360}
2361
2362template<> inline const tosa::ConvQuantInfo *TosaOperator::quant_info_as<tosa::ConvQuantInfo>() const {
2363 return quant_info_as_ConvQuantInfo();
2364}
2365
2366template<> inline const tosa::MatMulQuantInfo *TosaOperator::quant_info_as<tosa::MatMulQuantInfo>() const {
2367 return quant_info_as_MatMulQuantInfo();
2368}
2369
2370template<> inline const tosa::PadQuantInfo *TosaOperator::quant_info_as<tosa::PadQuantInfo>() const {
2371 return quant_info_as_PadQuantInfo();
2372}
2373
2374struct TosaOperatorBuilder {
2375 typedef TosaOperator Table;
2376 flatbuffers::FlatBufferBuilder &fbb_;
2377 flatbuffers::uoffset_t start_;
2378 void add_op(tosa::Op op) {
2379 fbb_.AddElement<uint32_t>(TosaOperator::VT_OP, static_cast<uint32_t>(op), 0);
2380 }
2381 void add_attribute_type(tosa::Attribute attribute_type) {
2382 fbb_.AddElement<uint8_t>(TosaOperator::VT_ATTRIBUTE_TYPE, static_cast<uint8_t>(attribute_type), 0);
2383 }
2384 void add_attribute(flatbuffers::Offset<void> attribute) {
2385 fbb_.AddOffset(TosaOperator::VT_ATTRIBUTE, attribute);
2386 }
2387 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2388 fbb_.AddOffset(TosaOperator::VT_INPUTS, inputs);
2389 }
2390 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2391 fbb_.AddOffset(TosaOperator::VT_OUTPUTS, outputs);
2392 }
2393 void add_quant_info_type(tosa::QuantInfo quant_info_type) {
2394 fbb_.AddElement<uint8_t>(TosaOperator::VT_QUANT_INFO_TYPE, static_cast<uint8_t>(quant_info_type), 0);
2395 }
2396 void add_quant_info(flatbuffers::Offset<void> quant_info) {
2397 fbb_.AddOffset(TosaOperator::VT_QUANT_INFO, quant_info);
2398 }
2399 explicit TosaOperatorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2400 : fbb_(_fbb) {
2401 start_ = fbb_.StartTable();
2402 }
2403 TosaOperatorBuilder &operator=(const TosaOperatorBuilder &);
2404 flatbuffers::Offset<TosaOperator> Finish() {
2405 const auto end = fbb_.EndTable(start_);
2406 auto o = flatbuffers::Offset<TosaOperator>(end);
2407 return o;
2408 }
2409};
2410
2411inline flatbuffers::Offset<TosaOperator> CreateTosaOperator(
2412 flatbuffers::FlatBufferBuilder &_fbb,
2413 tosa::Op op = tosa::Op_UNKNOWN,
2414 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2415 flatbuffers::Offset<void> attribute = 0,
2416 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
2417 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0,
2418 tosa::QuantInfo quant_info_type = tosa::QuantInfo_NONE,
2419 flatbuffers::Offset<void> quant_info = 0) {
2420 TosaOperatorBuilder builder_(_fbb);
2421 builder_.add_quant_info(quant_info);
2422 builder_.add_outputs(outputs);
2423 builder_.add_inputs(inputs);
2424 builder_.add_attribute(attribute);
2425 builder_.add_op(op);
2426 builder_.add_quant_info_type(quant_info_type);
2427 builder_.add_attribute_type(attribute_type);
2428 return builder_.Finish();
2429}
2430
2431inline flatbuffers::Offset<TosaOperator> CreateTosaOperatorDirect(
2432 flatbuffers::FlatBufferBuilder &_fbb,
2433 tosa::Op op = tosa::Op_UNKNOWN,
2434 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2435 flatbuffers::Offset<void> attribute = 0,
2436 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
2437 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr,
2438 tosa::QuantInfo quant_info_type = tosa::QuantInfo_NONE,
2439 flatbuffers::Offset<void> quant_info = 0) {
2440 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2441 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2442 return tosa::CreateTosaOperator(
2443 _fbb,
2444 op,
2445 attribute_type,
2446 attribute,
2447 inputs__,
2448 outputs__,
2449 quant_info_type,
2450 quant_info);
2451}
2452
2453struct TosaBasicBlock FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2454 typedef TosaBasicBlockBuilder Builder;
2455 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2456 VT_NAME = 4,
2457 VT_OPERATORS = 6,
2458 VT_TENSORS = 8,
2459 VT_INPUTS = 10,
2460 VT_OUTPUTS = 12
2461 };
2462 const flatbuffers::String *name() const {
2463 return GetPointer<const flatbuffers::String *>(VT_NAME);
2464 }
2465 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *operators() const {
2466 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *>(VT_OPERATORS);
2467 }
2468 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors() const {
2469 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *>(VT_TENSORS);
2470 }
2471 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2472 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2473 }
2474 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2475 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2476 }
2477 bool Verify(flatbuffers::Verifier &verifier) const {
2478 return VerifyTableStart(verifier) &&
2479 VerifyOffset(verifier, VT_NAME) &&
2480 verifier.VerifyString(name()) &&
2481 VerifyOffset(verifier, VT_OPERATORS) &&
2482 verifier.VerifyVector(operators()) &&
2483 verifier.VerifyVectorOfTables(operators()) &&
2484 VerifyOffset(verifier, VT_TENSORS) &&
2485 verifier.VerifyVector(tensors()) &&
2486 verifier.VerifyVectorOfTables(tensors()) &&
2487 VerifyOffset(verifier, VT_INPUTS) &&
2488 verifier.VerifyVector(inputs()) &&
2489 verifier.VerifyVectorOfStrings(inputs()) &&
2490 VerifyOffset(verifier, VT_OUTPUTS) &&
2491 verifier.VerifyVector(outputs()) &&
2492 verifier.VerifyVectorOfStrings(outputs()) &&
2493 verifier.EndTable();
2494 }
2495};
2496
2497struct TosaBasicBlockBuilder {
2498 typedef TosaBasicBlock Table;
2499 flatbuffers::FlatBufferBuilder &fbb_;
2500 flatbuffers::uoffset_t start_;
2501 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2502 fbb_.AddOffset(TosaBasicBlock::VT_NAME, name);
2503 }
2504 void add_operators(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators) {
2505 fbb_.AddOffset(TosaBasicBlock::VT_OPERATORS, operators);
2506 }
2507 void add_tensors(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors) {
2508 fbb_.AddOffset(TosaBasicBlock::VT_TENSORS, tensors);
2509 }
2510 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2511 fbb_.AddOffset(TosaBasicBlock::VT_INPUTS, inputs);
2512 }
2513 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2514 fbb_.AddOffset(TosaBasicBlock::VT_OUTPUTS, outputs);
2515 }
2516 explicit TosaBasicBlockBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2517 : fbb_(_fbb) {
2518 start_ = fbb_.StartTable();
2519 }
2520 TosaBasicBlockBuilder &operator=(const TosaBasicBlockBuilder &);
2521 flatbuffers::Offset<TosaBasicBlock> Finish() {
2522 const auto end = fbb_.EndTable(start_);
2523 auto o = flatbuffers::Offset<TosaBasicBlock>(end);
2524 return o;
2525 }
2526};
2527
2528inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlock(
2529 flatbuffers::FlatBufferBuilder &_fbb,
2530 flatbuffers::Offset<flatbuffers::String> name = 0,
2531 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators = 0,
2532 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors = 0,
2533 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
2534 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
2535 TosaBasicBlockBuilder builder_(_fbb);
2536 builder_.add_outputs(outputs);
2537 builder_.add_inputs(inputs);
2538 builder_.add_tensors(tensors);
2539 builder_.add_operators(operators);
2540 builder_.add_name(name);
2541 return builder_.Finish();
2542}
2543
2544inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlockDirect(
2545 flatbuffers::FlatBufferBuilder &_fbb,
2546 const char *name = nullptr,
2547 const std::vector<flatbuffers::Offset<tosa::TosaOperator>> *operators = nullptr,
2548 const std::vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors = nullptr,
2549 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
2550 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
2551 auto name__ = name ? _fbb.CreateString(name) : 0;
2552 auto operators__ = operators ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaOperator>>(*operators) : 0;
2553 auto tensors__ = tensors ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaTensor>>(*tensors) : 0;
2554 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2555 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2556 return tosa::CreateTosaBasicBlock(
2557 _fbb,
2558 name__,
2559 operators__,
2560 tensors__,
2561 inputs__,
2562 outputs__);
2563}
2564
2565struct TosaGraph FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2566 typedef TosaGraphBuilder Builder;
2567 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2568 VT_VERSION = 4,
2569 VT_BLOCKS = 6
2570 };
2571 const tosa::Version *version() const {
2572 return GetPointer<const tosa::Version *>(VT_VERSION);
2573 }
2574 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks() const {
2575 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *>(VT_BLOCKS);
2576 }
2577 bool Verify(flatbuffers::Verifier &verifier) const {
2578 return VerifyTableStart(verifier) &&
2579 VerifyOffset(verifier, VT_VERSION) &&
2580 verifier.VerifyTable(version()) &&
2581 VerifyOffset(verifier, VT_BLOCKS) &&
2582 verifier.VerifyVector(blocks()) &&
2583 verifier.VerifyVectorOfTables(blocks()) &&
2584 verifier.EndTable();
2585 }
2586};
2587
2588struct TosaGraphBuilder {
2589 typedef TosaGraph Table;
2590 flatbuffers::FlatBufferBuilder &fbb_;
2591 flatbuffers::uoffset_t start_;
2592 void add_version(flatbuffers::Offset<tosa::Version> version) {
2593 fbb_.AddOffset(TosaGraph::VT_VERSION, version);
2594 }
2595 void add_blocks(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks) {
2596 fbb_.AddOffset(TosaGraph::VT_BLOCKS, blocks);
2597 }
2598 explicit TosaGraphBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2599 : fbb_(_fbb) {
2600 start_ = fbb_.StartTable();
2601 }
2602 TosaGraphBuilder &operator=(const TosaGraphBuilder &);
2603 flatbuffers::Offset<TosaGraph> Finish() {
2604 const auto end = fbb_.EndTable(start_);
2605 auto o = flatbuffers::Offset<TosaGraph>(end);
2606 return o;
2607 }
2608};
2609
2610inline flatbuffers::Offset<TosaGraph> CreateTosaGraph(
2611 flatbuffers::FlatBufferBuilder &_fbb,
2612 flatbuffers::Offset<tosa::Version> version = 0,
2613 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks = 0) {
2614 TosaGraphBuilder builder_(_fbb);
2615 builder_.add_blocks(blocks);
2616 builder_.add_version(version);
2617 return builder_.Finish();
2618}
2619
2620inline flatbuffers::Offset<TosaGraph> CreateTosaGraphDirect(
2621 flatbuffers::FlatBufferBuilder &_fbb,
2622 flatbuffers::Offset<tosa::Version> version = 0,
2623 const std::vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks = nullptr) {
2624 auto blocks__ = blocks ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaBasicBlock>>(*blocks) : 0;
2625 return tosa::CreateTosaGraph(
2626 _fbb,
2627 version,
2628 blocks__);
2629}
2630
2631inline bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type) {
2632 switch (type) {
2633 case Attribute_NONE: {
2634 return true;
2635 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002636 case Attribute_PoolAttribute: {
2637 auto ptr = reinterpret_cast<const tosa::PoolAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002638 return verifier.VerifyTable(ptr);
2639 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002640 case Attribute_ConvAttribute: {
2641 auto ptr = reinterpret_cast<const tosa::ConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002642 return verifier.VerifyTable(ptr);
2643 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002644 case Attribute_TransposeConvAttribute: {
2645 auto ptr = reinterpret_cast<const tosa::TransposeConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002646 return verifier.VerifyTable(ptr);
2647 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002648 case Attribute_PadAttribute: {
2649 auto ptr = reinterpret_cast<const tosa::PadAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002650 return verifier.VerifyTable(ptr);
2651 }
2652 case Attribute_AxisAttribute: {
2653 auto ptr = reinterpret_cast<const tosa::AxisAttribute *>(obj);
2654 return verifier.VerifyTable(ptr);
2655 }
2656 case Attribute_ReshapeAttribute: {
2657 auto ptr = reinterpret_cast<const tosa::ReshapeAttribute *>(obj);
2658 return verifier.VerifyTable(ptr);
2659 }
2660 case Attribute_SliceAttribute: {
2661 auto ptr = reinterpret_cast<const tosa::SliceAttribute *>(obj);
2662 return verifier.VerifyTable(ptr);
2663 }
2664 case Attribute_TileAttribute: {
2665 auto ptr = reinterpret_cast<const tosa::TileAttribute *>(obj);
2666 return verifier.VerifyTable(ptr);
2667 }
2668 case Attribute_ResizeAttribute: {
2669 auto ptr = reinterpret_cast<const tosa::ResizeAttribute *>(obj);
2670 return verifier.VerifyTable(ptr);
2671 }
2672 case Attribute_ClampAttribute: {
2673 auto ptr = reinterpret_cast<const tosa::ClampAttribute *>(obj);
2674 return verifier.VerifyTable(ptr);
2675 }
2676 case Attribute_RescaleAttribute: {
2677 auto ptr = reinterpret_cast<const tosa::RescaleAttribute *>(obj);
2678 return verifier.VerifyTable(ptr);
2679 }
2680 case Attribute_MulAttribute: {
2681 auto ptr = reinterpret_cast<const tosa::MulAttribute *>(obj);
2682 return verifier.VerifyTable(ptr);
2683 }
2684 case Attribute_ArithmeticRightShiftAttribute: {
2685 auto ptr = reinterpret_cast<const tosa::ArithmeticRightShiftAttribute *>(obj);
2686 return verifier.VerifyTable(ptr);
2687 }
2688 case Attribute_CondIfAttribute: {
2689 auto ptr = reinterpret_cast<const tosa::CondIfAttribute *>(obj);
2690 return verifier.VerifyTable(ptr);
2691 }
2692 case Attribute_WhileLoopAttribute: {
2693 auto ptr = reinterpret_cast<const tosa::WhileLoopAttribute *>(obj);
2694 return verifier.VerifyTable(ptr);
2695 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002696 case Attribute_TransposeAttribute: {
2697 auto ptr = reinterpret_cast<const tosa::TransposeAttribute *>(obj);
2698 return verifier.VerifyTable(ptr);
2699 }
2700 case Attribute_TableAttribute: {
2701 auto ptr = reinterpret_cast<const tosa::TableAttribute *>(obj);
2702 return verifier.VerifyTable(ptr);
2703 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002704 default: return true;
2705 }
2706}
2707
2708inline bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
2709 if (!values || !types) return !values && !types;
2710 if (values->size() != types->size()) return false;
2711 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
2712 if (!VerifyAttribute(
2713 verifier, values->Get(i), types->GetEnum<Attribute>(i))) {
2714 return false;
2715 }
2716 }
2717 return true;
2718}
2719
2720inline bool VerifyQuantInfo(flatbuffers::Verifier &verifier, const void *obj, QuantInfo type) {
2721 switch (type) {
2722 case QuantInfo_NONE: {
2723 return true;
2724 }
2725 case QuantInfo_UnaryQuantInfo: {
2726 auto ptr = reinterpret_cast<const tosa::UnaryQuantInfo *>(obj);
2727 return verifier.VerifyTable(ptr);
2728 }
2729 case QuantInfo_ConvQuantInfo: {
2730 auto ptr = reinterpret_cast<const tosa::ConvQuantInfo *>(obj);
2731 return verifier.VerifyTable(ptr);
2732 }
2733 case QuantInfo_MatMulQuantInfo: {
2734 auto ptr = reinterpret_cast<const tosa::MatMulQuantInfo *>(obj);
2735 return verifier.VerifyTable(ptr);
2736 }
2737 case QuantInfo_PadQuantInfo: {
2738 auto ptr = reinterpret_cast<const tosa::PadQuantInfo *>(obj);
2739 return verifier.VerifyTable(ptr);
2740 }
2741 default: return true;
2742 }
2743}
2744
2745inline bool VerifyQuantInfoVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
2746 if (!values || !types) return !values && !types;
2747 if (values->size() != types->size()) return false;
2748 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
2749 if (!VerifyQuantInfo(
2750 verifier, values->Get(i), types->GetEnum<QuantInfo>(i))) {
2751 return false;
2752 }
2753 }
2754 return true;
2755}
2756
2757inline const tosa::TosaGraph *GetTosaGraph(const void *buf) {
2758 return flatbuffers::GetRoot<tosa::TosaGraph>(buf);
2759}
2760
2761inline const tosa::TosaGraph *GetSizePrefixedTosaGraph(const void *buf) {
2762 return flatbuffers::GetSizePrefixedRoot<tosa::TosaGraph>(buf);
2763}
2764
2765inline const char *TosaGraphIdentifier() {
2766 return "TOSA";
2767}
2768
2769inline bool TosaGraphBufferHasIdentifier(const void *buf) {
2770 return flatbuffers::BufferHasIdentifier(
2771 buf, TosaGraphIdentifier());
2772}
2773
2774inline bool VerifyTosaGraphBuffer(
2775 flatbuffers::Verifier &verifier) {
2776 return verifier.VerifyBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2777}
2778
2779inline bool VerifySizePrefixedTosaGraphBuffer(
2780 flatbuffers::Verifier &verifier) {
2781 return verifier.VerifySizePrefixedBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2782}
2783
2784inline const char *TosaGraphExtension() {
2785 return "tosa";
2786}
2787
2788inline void FinishTosaGraphBuffer(
2789 flatbuffers::FlatBufferBuilder &fbb,
2790 flatbuffers::Offset<tosa::TosaGraph> root) {
2791 fbb.Finish(root, TosaGraphIdentifier());
2792}
2793
2794inline void FinishSizePrefixedTosaGraphBuffer(
2795 flatbuffers::FlatBufferBuilder &fbb,
2796 flatbuffers::Offset<tosa::TosaGraph> root) {
2797 fbb.FinishSizePrefixed(root, TosaGraphIdentifier());
2798}
2799
2800} // namespace tosa
2801
2802#endif // FLATBUFFERS_GENERATED_TOSA_TOSA_H_