blob: 3bc1546331e58d045a407fb96fa47b42771d7a4c [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
Kevin Cheng49faa4e2021-11-08 16:59:18 -080089enum DType : uint32_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -070090 DType_UNKNOWN = 0,
91 DType_BOOL = 1,
92 DType_UINT8 = 2,
93 DType_INT4 = 3,
94 DType_INT8 = 4,
95 DType_INT16 = 5,
96 DType_INT32 = 6,
97 DType_INT48 = 7,
98 DType_FLOAT = 8,
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
Kevin Cheng49faa4e2021-11-08 16:59:18 -0800140enum ResizeMode : uint32_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700141 ResizeMode_UNKNOWN = 0,
142 ResizeMode_NEAREST = 1,
143 ResizeMode_BILINEAR = 2,
144 ResizeMode_MIN = ResizeMode_UNKNOWN,
145 ResizeMode_MAX = ResizeMode_BILINEAR
146};
147
148inline const ResizeMode (&EnumValuesResizeMode())[3] {
149 static const ResizeMode values[] = {
150 ResizeMode_UNKNOWN,
151 ResizeMode_NEAREST,
152 ResizeMode_BILINEAR
153 };
154 return values;
155}
156
157inline const char * const *EnumNamesResizeMode() {
158 static const char * const names[4] = {
159 "UNKNOWN",
160 "NEAREST",
161 "BILINEAR",
162 nullptr
163 };
164 return names;
165}
166
167inline const char *EnumNameResizeMode(ResizeMode e) {
168 if (flatbuffers::IsOutRange(e, ResizeMode_UNKNOWN, ResizeMode_BILINEAR)) return "";
169 const size_t index = static_cast<size_t>(e);
170 return EnumNamesResizeMode()[index];
171}
172
Kevin Cheng49faa4e2021-11-08 16:59:18 -0800173enum Op : uint32_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700174 Op_UNKNOWN = 0,
175 Op_ARGMAX = 1,
176 Op_AVG_POOL2D = 2,
177 Op_CONV2D = 3,
178 Op_CONV3D = 4,
179 Op_DEPTHWISE_CONV2D = 5,
180 Op_FULLY_CONNECTED = 6,
181 Op_MATMUL = 7,
182 Op_MAX_POOL2D = 8,
183 Op_TRANSPOSE_CONV2D = 9,
184 Op_CLAMP = 10,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700185 Op_RESERVED = 11,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700186 Op_SIGMOID = 12,
187 Op_TANH = 13,
188 Op_ADD = 14,
189 Op_ARITHMETIC_RIGHT_SHIFT = 15,
190 Op_BITWISE_AND = 16,
191 Op_BITWISE_OR = 17,
192 Op_BITWISE_XOR = 18,
Matthew Haddonab905ec2021-08-23 16:40:57 +0100193 Op_INTDIV = 19,
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700194 Op_LOGICAL_AND = 20,
195 Op_LOGICAL_LEFT_SHIFT = 21,
196 Op_LOGICAL_RIGHT_SHIFT = 22,
197 Op_LOGICAL_OR = 23,
198 Op_LOGICAL_XOR = 24,
199 Op_MAXIMUM = 25,
200 Op_MINIMUM = 26,
201 Op_MUL = 27,
202 Op_POW = 28,
203 Op_SUB = 29,
204 Op_TABLE = 30,
205 Op_ABS = 31,
206 Op_BITWISE_NOT = 32,
207 Op_CEIL = 33,
208 Op_CLZ = 34,
209 Op_EXP = 35,
210 Op_FLOOR = 36,
211 Op_LOG = 37,
212 Op_LOGICAL_NOT = 38,
213 Op_NEGATE = 39,
214 Op_RECIPROCAL = 40,
215 Op_RSQRT = 41,
216 Op_SELECT = 42,
217 Op_EQUAL = 43,
218 Op_GREATER = 44,
219 Op_GREATER_EQUAL = 45,
220 Op_REDUCE_ANY = 46,
221 Op_REDUCE_ALL = 47,
222 Op_REDUCE_MAX = 48,
223 Op_REDUCE_MIN = 49,
224 Op_REDUCE_PRODUCT = 50,
225 Op_REDUCE_SUM = 51,
226 Op_CONCAT = 52,
227 Op_PAD = 53,
228 Op_RESHAPE = 54,
229 Op_REVERSE = 55,
230 Op_SLICE = 56,
231 Op_TILE = 57,
232 Op_TRANSPOSE = 58,
233 Op_GATHER = 59,
234 Op_SCATTER = 60,
235 Op_RESIZE = 61,
236 Op_CAST = 62,
237 Op_RESCALE = 63,
238 Op_CONST = 64,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700239 Op_IDENTITY = 65,
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700240 Op_CUSTOM = 66,
241 Op_COND_IF = 67,
242 Op_WHILE_LOOP = 68,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700243 Op_MIN = Op_UNKNOWN,
244 Op_MAX = Op_WHILE_LOOP
245};
246
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700247inline const Op (&EnumValuesOp())[69] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700248 static const Op values[] = {
249 Op_UNKNOWN,
250 Op_ARGMAX,
251 Op_AVG_POOL2D,
252 Op_CONV2D,
253 Op_CONV3D,
254 Op_DEPTHWISE_CONV2D,
255 Op_FULLY_CONNECTED,
256 Op_MATMUL,
257 Op_MAX_POOL2D,
258 Op_TRANSPOSE_CONV2D,
259 Op_CLAMP,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700260 Op_RESERVED,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700261 Op_SIGMOID,
262 Op_TANH,
263 Op_ADD,
264 Op_ARITHMETIC_RIGHT_SHIFT,
265 Op_BITWISE_AND,
266 Op_BITWISE_OR,
267 Op_BITWISE_XOR,
Matthew Haddonab905ec2021-08-23 16:40:57 +0100268 Op_INTDIV,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700269 Op_LOGICAL_AND,
270 Op_LOGICAL_LEFT_SHIFT,
271 Op_LOGICAL_RIGHT_SHIFT,
272 Op_LOGICAL_OR,
273 Op_LOGICAL_XOR,
274 Op_MAXIMUM,
275 Op_MINIMUM,
276 Op_MUL,
277 Op_POW,
278 Op_SUB,
279 Op_TABLE,
280 Op_ABS,
281 Op_BITWISE_NOT,
282 Op_CEIL,
283 Op_CLZ,
284 Op_EXP,
285 Op_FLOOR,
286 Op_LOG,
287 Op_LOGICAL_NOT,
288 Op_NEGATE,
289 Op_RECIPROCAL,
290 Op_RSQRT,
291 Op_SELECT,
292 Op_EQUAL,
293 Op_GREATER,
294 Op_GREATER_EQUAL,
295 Op_REDUCE_ANY,
296 Op_REDUCE_ALL,
297 Op_REDUCE_MAX,
298 Op_REDUCE_MIN,
299 Op_REDUCE_PRODUCT,
300 Op_REDUCE_SUM,
301 Op_CONCAT,
302 Op_PAD,
303 Op_RESHAPE,
304 Op_REVERSE,
305 Op_SLICE,
306 Op_TILE,
307 Op_TRANSPOSE,
308 Op_GATHER,
309 Op_SCATTER,
310 Op_RESIZE,
311 Op_CAST,
312 Op_RESCALE,
313 Op_CONST,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700314 Op_IDENTITY,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700315 Op_CUSTOM,
316 Op_COND_IF,
317 Op_WHILE_LOOP
318 };
319 return values;
320}
321
322inline const char * const *EnumNamesOp() {
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700323 static const char * const names[70] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700324 "UNKNOWN",
325 "ARGMAX",
326 "AVG_POOL2D",
327 "CONV2D",
328 "CONV3D",
329 "DEPTHWISE_CONV2D",
330 "FULLY_CONNECTED",
331 "MATMUL",
332 "MAX_POOL2D",
333 "TRANSPOSE_CONV2D",
334 "CLAMP",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700335 "RESERVED",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700336 "SIGMOID",
337 "TANH",
338 "ADD",
339 "ARITHMETIC_RIGHT_SHIFT",
340 "BITWISE_AND",
341 "BITWISE_OR",
342 "BITWISE_XOR",
Matthew Haddonab905ec2021-08-23 16:40:57 +0100343 "INTDIV",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700344 "LOGICAL_AND",
345 "LOGICAL_LEFT_SHIFT",
346 "LOGICAL_RIGHT_SHIFT",
347 "LOGICAL_OR",
348 "LOGICAL_XOR",
349 "MAXIMUM",
350 "MINIMUM",
351 "MUL",
352 "POW",
353 "SUB",
354 "TABLE",
355 "ABS",
356 "BITWISE_NOT",
357 "CEIL",
358 "CLZ",
359 "EXP",
360 "FLOOR",
361 "LOG",
362 "LOGICAL_NOT",
363 "NEGATE",
364 "RECIPROCAL",
365 "RSQRT",
366 "SELECT",
367 "EQUAL",
368 "GREATER",
369 "GREATER_EQUAL",
370 "REDUCE_ANY",
371 "REDUCE_ALL",
372 "REDUCE_MAX",
373 "REDUCE_MIN",
374 "REDUCE_PRODUCT",
375 "REDUCE_SUM",
376 "CONCAT",
377 "PAD",
378 "RESHAPE",
379 "REVERSE",
380 "SLICE",
381 "TILE",
382 "TRANSPOSE",
383 "GATHER",
384 "SCATTER",
385 "RESIZE",
386 "CAST",
387 "RESCALE",
388 "CONST",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700389 "IDENTITY",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700390 "CUSTOM",
391 "COND_IF",
392 "WHILE_LOOP",
393 nullptr
394 };
395 return names;
396}
397
398inline const char *EnumNameOp(Op e) {
399 if (flatbuffers::IsOutRange(e, Op_UNKNOWN, Op_WHILE_LOOP)) return "";
400 const size_t index = static_cast<size_t>(e);
401 return EnumNamesOp()[index];
402}
403
Kevin Cheng49faa4e2021-11-08 16:59:18 -0800404enum Attribute : uint8_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700405 Attribute_NONE = 0,
Kevin Cheng79a41992021-08-31 16:04:40 -0700406 Attribute_PoolAttribute = 1,
407 Attribute_ConvAttribute = 2,
408 Attribute_TransposeConvAttribute = 3,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700409 Attribute_PadAttribute = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700410 Attribute_AxisAttribute = 5,
411 Attribute_ReshapeAttribute = 6,
412 Attribute_SliceAttribute = 7,
413 Attribute_TileAttribute = 8,
414 Attribute_ResizeAttribute = 9,
415 Attribute_ClampAttribute = 10,
416 Attribute_RescaleAttribute = 11,
417 Attribute_MulAttribute = 12,
418 Attribute_ArithmeticRightShiftAttribute = 13,
419 Attribute_CondIfAttribute = 14,
420 Attribute_WhileLoopAttribute = 15,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700421 Attribute_TransposeAttribute = 16,
422 Attribute_TableAttribute = 17,
Eric 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
Kevin Cheng49faa4e2021-11-08 16:59:18 -0800557enum QuantInfo : uint8_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700558 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 flatbuffers::Offset<PoolAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700665 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700666 auto o = flatbuffers::Offset<PoolAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700667 return o;
668 }
669};
670
Kevin Cheng79a41992021-08-31 16:04:40 -0700671inline flatbuffers::Offset<PoolAttribute> CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700672 flatbuffers::FlatBufferBuilder &_fbb,
673 flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding = 0,
674 flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel = 0,
675 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700676 PoolAttributeBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700677 builder_.add_stride(stride);
678 builder_.add_kernel(kernel);
679 builder_.add_padding(padding);
680 return builder_.Finish();
681}
682
Kevin Cheng79a41992021-08-31 16:04:40 -0700683inline flatbuffers::Offset<PoolAttribute> CreatePoolAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700684 flatbuffers::FlatBufferBuilder &_fbb,
685 const std::vector<int32_t> *padding = nullptr,
686 const std::vector<int32_t> *kernel = nullptr,
687 const std::vector<int32_t> *stride = nullptr) {
688 auto padding__ = padding ? _fbb.CreateVector<int32_t>(*padding) : 0;
689 auto kernel__ = kernel ? _fbb.CreateVector<int32_t>(*kernel) : 0;
690 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700691 return tosa::CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700692 _fbb,
693 padding__,
694 kernel__,
695 stride__);
696}
697
Kevin Cheng79a41992021-08-31 16:04:40 -0700698struct ConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
699 typedef ConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700700 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
701 VT_PADDING = 4,
702 VT_STRIDE = 6,
703 VT_DILATION = 8
704 };
705 const flatbuffers::Vector<int32_t> *padding() const {
706 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PADDING);
707 }
708 const flatbuffers::Vector<int32_t> *stride() const {
709 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
710 }
711 const flatbuffers::Vector<int32_t> *dilation() const {
712 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_DILATION);
713 }
714 bool Verify(flatbuffers::Verifier &verifier) const {
715 return VerifyTableStart(verifier) &&
716 VerifyOffset(verifier, VT_PADDING) &&
717 verifier.VerifyVector(padding()) &&
718 VerifyOffset(verifier, VT_STRIDE) &&
719 verifier.VerifyVector(stride()) &&
720 VerifyOffset(verifier, VT_DILATION) &&
721 verifier.VerifyVector(dilation()) &&
722 verifier.EndTable();
723 }
724};
725
Kevin Cheng79a41992021-08-31 16:04:40 -0700726struct ConvAttributeBuilder {
727 typedef ConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700728 flatbuffers::FlatBufferBuilder &fbb_;
729 flatbuffers::uoffset_t start_;
730 void add_padding(flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700731 fbb_.AddOffset(ConvAttribute::VT_PADDING, padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700732 }
733 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700734 fbb_.AddOffset(ConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700735 }
736 void add_dilation(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700737 fbb_.AddOffset(ConvAttribute::VT_DILATION, dilation);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700738 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700739 explicit ConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700740 : fbb_(_fbb) {
741 start_ = fbb_.StartTable();
742 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700743 flatbuffers::Offset<ConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700744 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700745 auto o = flatbuffers::Offset<ConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700746 return o;
747 }
748};
749
Kevin Cheng79a41992021-08-31 16:04:40 -0700750inline flatbuffers::Offset<ConvAttribute> CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700751 flatbuffers::FlatBufferBuilder &_fbb,
752 flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding = 0,
753 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
754 flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation = 0) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700755 ConvAttributeBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700756 builder_.add_dilation(dilation);
757 builder_.add_stride(stride);
758 builder_.add_padding(padding);
759 return builder_.Finish();
760}
761
Kevin Cheng79a41992021-08-31 16:04:40 -0700762inline flatbuffers::Offset<ConvAttribute> CreateConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700763 flatbuffers::FlatBufferBuilder &_fbb,
764 const std::vector<int32_t> *padding = nullptr,
765 const std::vector<int32_t> *stride = nullptr,
766 const std::vector<int32_t> *dilation = nullptr) {
767 auto padding__ = padding ? _fbb.CreateVector<int32_t>(*padding) : 0;
768 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
769 auto dilation__ = dilation ? _fbb.CreateVector<int32_t>(*dilation) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700770 return tosa::CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700771 _fbb,
772 padding__,
773 stride__,
774 dilation__);
775}
776
Kevin Cheng79a41992021-08-31 16:04:40 -0700777struct TransposeConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
778 typedef TransposeConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700779 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
780 VT_OUTPAD = 4,
781 VT_STRIDE = 6,
782 VT_DILATION = 8,
783 VT_OUTPUT_SHAPE = 10
784 };
785 const flatbuffers::Vector<int32_t> *outpad() const {
786 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPAD);
787 }
788 const flatbuffers::Vector<int32_t> *stride() const {
789 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
790 }
791 const flatbuffers::Vector<int32_t> *dilation() const {
792 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_DILATION);
793 }
794 const flatbuffers::Vector<int32_t> *output_shape() const {
795 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUT_SHAPE);
796 }
797 bool Verify(flatbuffers::Verifier &verifier) const {
798 return VerifyTableStart(verifier) &&
799 VerifyOffset(verifier, VT_OUTPAD) &&
800 verifier.VerifyVector(outpad()) &&
801 VerifyOffset(verifier, VT_STRIDE) &&
802 verifier.VerifyVector(stride()) &&
803 VerifyOffset(verifier, VT_DILATION) &&
804 verifier.VerifyVector(dilation()) &&
805 VerifyOffset(verifier, VT_OUTPUT_SHAPE) &&
806 verifier.VerifyVector(output_shape()) &&
807 verifier.EndTable();
808 }
809};
810
Kevin Cheng79a41992021-08-31 16:04:40 -0700811struct TransposeConvAttributeBuilder {
812 typedef TransposeConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700813 flatbuffers::FlatBufferBuilder &fbb_;
814 flatbuffers::uoffset_t start_;
815 void add_outpad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> outpad) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700816 fbb_.AddOffset(TransposeConvAttribute::VT_OUTPAD, outpad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700817 }
818 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700819 fbb_.AddOffset(TransposeConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700820 }
821 void add_dilation(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700822 fbb_.AddOffset(TransposeConvAttribute::VT_DILATION, dilation);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700823 }
824 void add_output_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700825 fbb_.AddOffset(TransposeConvAttribute::VT_OUTPUT_SHAPE, output_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700826 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700827 explicit TransposeConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700828 : fbb_(_fbb) {
829 start_ = fbb_.StartTable();
830 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700831 flatbuffers::Offset<TransposeConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700832 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700833 auto o = flatbuffers::Offset<TransposeConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700834 return o;
835 }
836};
837
Kevin Cheng79a41992021-08-31 16:04:40 -0700838inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700839 flatbuffers::FlatBufferBuilder &_fbb,
840 flatbuffers::Offset<flatbuffers::Vector<int32_t>> outpad = 0,
841 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
842 flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation = 0,
843 flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape = 0) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700844 TransposeConvAttributeBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700845 builder_.add_output_shape(output_shape);
846 builder_.add_dilation(dilation);
847 builder_.add_stride(stride);
848 builder_.add_outpad(outpad);
849 return builder_.Finish();
850}
851
Kevin Cheng79a41992021-08-31 16:04:40 -0700852inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700853 flatbuffers::FlatBufferBuilder &_fbb,
854 const std::vector<int32_t> *outpad = nullptr,
855 const std::vector<int32_t> *stride = nullptr,
856 const std::vector<int32_t> *dilation = nullptr,
857 const std::vector<int32_t> *output_shape = nullptr) {
858 auto outpad__ = outpad ? _fbb.CreateVector<int32_t>(*outpad) : 0;
859 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
860 auto dilation__ = dilation ? _fbb.CreateVector<int32_t>(*dilation) : 0;
861 auto output_shape__ = output_shape ? _fbb.CreateVector<int32_t>(*output_shape) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700862 return tosa::CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700863 _fbb,
864 outpad__,
865 stride__,
866 dilation__,
867 output_shape__);
868}
869
Kevin Cheng38d214c2021-10-15 15:49:19 -0700870struct PadAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
871 typedef PadAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700872 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Kevin Cheng38d214c2021-10-15 15:49:19 -0700873 VT_PADDING = 4,
874 VT_PAD_CONST_INT = 6,
875 VT_PAD_CONST_FP = 8
Eric Kunze2364dcd2021-04-26 11:06:57 -0700876 };
Kevin Cheng38d214c2021-10-15 15:49:19 -0700877 const flatbuffers::Vector<int32_t> *padding() const {
878 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PADDING);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700879 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700880 int32_t pad_const_int() const {
881 return GetField<int32_t>(VT_PAD_CONST_INT, 0);
882 }
883 float pad_const_fp() const {
884 return GetField<float>(VT_PAD_CONST_FP, 0.0f);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700885 }
886 bool Verify(flatbuffers::Verifier &verifier) const {
887 return VerifyTableStart(verifier) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -0700888 VerifyOffset(verifier, VT_PADDING) &&
889 verifier.VerifyVector(padding()) &&
890 VerifyField<int32_t>(verifier, VT_PAD_CONST_INT) &&
891 VerifyField<float>(verifier, VT_PAD_CONST_FP) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700892 verifier.EndTable();
893 }
894};
895
Kevin Cheng38d214c2021-10-15 15:49:19 -0700896struct PadAttributeBuilder {
897 typedef PadAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700898 flatbuffers::FlatBufferBuilder &fbb_;
899 flatbuffers::uoffset_t start_;
Kevin Cheng38d214c2021-10-15 15:49:19 -0700900 void add_padding(flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding) {
901 fbb_.AddOffset(PadAttribute::VT_PADDING, padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700902 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700903 void add_pad_const_int(int32_t pad_const_int) {
904 fbb_.AddElement<int32_t>(PadAttribute::VT_PAD_CONST_INT, pad_const_int, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700905 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700906 void add_pad_const_fp(float pad_const_fp) {
907 fbb_.AddElement<float>(PadAttribute::VT_PAD_CONST_FP, pad_const_fp, 0.0f);
908 }
909 explicit PadAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700910 : fbb_(_fbb) {
911 start_ = fbb_.StartTable();
912 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700913 flatbuffers::Offset<PadAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700914 const auto end = fbb_.EndTable(start_);
Kevin Cheng38d214c2021-10-15 15:49:19 -0700915 auto o = flatbuffers::Offset<PadAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700916 return o;
917 }
918};
919
Kevin Cheng38d214c2021-10-15 15:49:19 -0700920inline flatbuffers::Offset<PadAttribute> CreatePadAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700921 flatbuffers::FlatBufferBuilder &_fbb,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700922 flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding = 0,
923 int32_t pad_const_int = 0,
924 float pad_const_fp = 0.0f) {
925 PadAttributeBuilder builder_(_fbb);
926 builder_.add_pad_const_fp(pad_const_fp);
927 builder_.add_pad_const_int(pad_const_int);
928 builder_.add_padding(padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700929 return builder_.Finish();
930}
931
Kevin Cheng38d214c2021-10-15 15:49:19 -0700932inline flatbuffers::Offset<PadAttribute> CreatePadAttributeDirect(
933 flatbuffers::FlatBufferBuilder &_fbb,
934 const std::vector<int32_t> *padding = nullptr,
935 int32_t pad_const_int = 0,
936 float pad_const_fp = 0.0f) {
937 auto padding__ = padding ? _fbb.CreateVector<int32_t>(*padding) : 0;
938 return tosa::CreatePadAttribute(
939 _fbb,
940 padding__,
941 pad_const_int,
942 pad_const_fp);
943}
944
Eric Kunze2364dcd2021-04-26 11:06:57 -0700945struct AxisAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
946 typedef AxisAttributeBuilder Builder;
947 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
948 VT_AXIS = 4
949 };
950 int32_t axis() const {
951 return GetField<int32_t>(VT_AXIS, 0);
952 }
953 bool Verify(flatbuffers::Verifier &verifier) const {
954 return VerifyTableStart(verifier) &&
955 VerifyField<int32_t>(verifier, VT_AXIS) &&
956 verifier.EndTable();
957 }
958};
959
960struct AxisAttributeBuilder {
961 typedef AxisAttribute Table;
962 flatbuffers::FlatBufferBuilder &fbb_;
963 flatbuffers::uoffset_t start_;
964 void add_axis(int32_t axis) {
965 fbb_.AddElement<int32_t>(AxisAttribute::VT_AXIS, axis, 0);
966 }
967 explicit AxisAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
968 : fbb_(_fbb) {
969 start_ = fbb_.StartTable();
970 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700971 flatbuffers::Offset<AxisAttribute> Finish() {
972 const auto end = fbb_.EndTable(start_);
973 auto o = flatbuffers::Offset<AxisAttribute>(end);
974 return o;
975 }
976};
977
978inline flatbuffers::Offset<AxisAttribute> CreateAxisAttribute(
979 flatbuffers::FlatBufferBuilder &_fbb,
980 int32_t axis = 0) {
981 AxisAttributeBuilder builder_(_fbb);
982 builder_.add_axis(axis);
983 return builder_.Finish();
984}
985
986struct ReshapeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
987 typedef ReshapeAttributeBuilder Builder;
988 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
989 VT_SHAPE = 4
990 };
991 const flatbuffers::Vector<int32_t> *shape() const {
992 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHAPE);
993 }
994 bool Verify(flatbuffers::Verifier &verifier) const {
995 return VerifyTableStart(verifier) &&
996 VerifyOffset(verifier, VT_SHAPE) &&
997 verifier.VerifyVector(shape()) &&
998 verifier.EndTable();
999 }
1000};
1001
1002struct ReshapeAttributeBuilder {
1003 typedef ReshapeAttribute Table;
1004 flatbuffers::FlatBufferBuilder &fbb_;
1005 flatbuffers::uoffset_t start_;
1006 void add_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape) {
1007 fbb_.AddOffset(ReshapeAttribute::VT_SHAPE, shape);
1008 }
1009 explicit ReshapeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1010 : fbb_(_fbb) {
1011 start_ = fbb_.StartTable();
1012 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001013 flatbuffers::Offset<ReshapeAttribute> Finish() {
1014 const auto end = fbb_.EndTable(start_);
1015 auto o = flatbuffers::Offset<ReshapeAttribute>(end);
1016 return o;
1017 }
1018};
1019
1020inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttribute(
1021 flatbuffers::FlatBufferBuilder &_fbb,
1022 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape = 0) {
1023 ReshapeAttributeBuilder builder_(_fbb);
1024 builder_.add_shape(shape);
1025 return builder_.Finish();
1026}
1027
1028inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttributeDirect(
1029 flatbuffers::FlatBufferBuilder &_fbb,
1030 const std::vector<int32_t> *shape = nullptr) {
1031 auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0;
1032 return tosa::CreateReshapeAttribute(
1033 _fbb,
1034 shape__);
1035}
1036
1037struct SliceAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1038 typedef SliceAttributeBuilder Builder;
1039 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1040 VT_BEGIN = 4,
1041 VT_SIZE = 6
1042 };
1043 const flatbuffers::Vector<int32_t> *begin() const {
1044 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_BEGIN);
1045 }
1046 const flatbuffers::Vector<int32_t> *size() const {
1047 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SIZE);
1048 }
1049 bool Verify(flatbuffers::Verifier &verifier) const {
1050 return VerifyTableStart(verifier) &&
1051 VerifyOffset(verifier, VT_BEGIN) &&
1052 verifier.VerifyVector(begin()) &&
1053 VerifyOffset(verifier, VT_SIZE) &&
1054 verifier.VerifyVector(size()) &&
1055 verifier.EndTable();
1056 }
1057};
1058
1059struct SliceAttributeBuilder {
1060 typedef SliceAttribute Table;
1061 flatbuffers::FlatBufferBuilder &fbb_;
1062 flatbuffers::uoffset_t start_;
1063 void add_begin(flatbuffers::Offset<flatbuffers::Vector<int32_t>> begin) {
1064 fbb_.AddOffset(SliceAttribute::VT_BEGIN, begin);
1065 }
1066 void add_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> size) {
1067 fbb_.AddOffset(SliceAttribute::VT_SIZE, size);
1068 }
1069 explicit SliceAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1070 : fbb_(_fbb) {
1071 start_ = fbb_.StartTable();
1072 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001073 flatbuffers::Offset<SliceAttribute> Finish() {
1074 const auto end = fbb_.EndTable(start_);
1075 auto o = flatbuffers::Offset<SliceAttribute>(end);
1076 return o;
1077 }
1078};
1079
1080inline flatbuffers::Offset<SliceAttribute> CreateSliceAttribute(
1081 flatbuffers::FlatBufferBuilder &_fbb,
1082 flatbuffers::Offset<flatbuffers::Vector<int32_t>> begin = 0,
1083 flatbuffers::Offset<flatbuffers::Vector<int32_t>> size = 0) {
1084 SliceAttributeBuilder builder_(_fbb);
1085 builder_.add_size(size);
1086 builder_.add_begin(begin);
1087 return builder_.Finish();
1088}
1089
1090inline flatbuffers::Offset<SliceAttribute> CreateSliceAttributeDirect(
1091 flatbuffers::FlatBufferBuilder &_fbb,
1092 const std::vector<int32_t> *begin = nullptr,
1093 const std::vector<int32_t> *size = nullptr) {
1094 auto begin__ = begin ? _fbb.CreateVector<int32_t>(*begin) : 0;
1095 auto size__ = size ? _fbb.CreateVector<int32_t>(*size) : 0;
1096 return tosa::CreateSliceAttribute(
1097 _fbb,
1098 begin__,
1099 size__);
1100}
1101
1102struct TileAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1103 typedef TileAttributeBuilder Builder;
1104 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1105 VT_MULTIPLES = 4
1106 };
1107 const flatbuffers::Vector<int32_t> *multiples() const {
1108 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLES);
1109 }
1110 bool Verify(flatbuffers::Verifier &verifier) const {
1111 return VerifyTableStart(verifier) &&
1112 VerifyOffset(verifier, VT_MULTIPLES) &&
1113 verifier.VerifyVector(multiples()) &&
1114 verifier.EndTable();
1115 }
1116};
1117
1118struct TileAttributeBuilder {
1119 typedef TileAttribute Table;
1120 flatbuffers::FlatBufferBuilder &fbb_;
1121 flatbuffers::uoffset_t start_;
1122 void add_multiples(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples) {
1123 fbb_.AddOffset(TileAttribute::VT_MULTIPLES, multiples);
1124 }
1125 explicit TileAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1126 : fbb_(_fbb) {
1127 start_ = fbb_.StartTable();
1128 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001129 flatbuffers::Offset<TileAttribute> Finish() {
1130 const auto end = fbb_.EndTable(start_);
1131 auto o = flatbuffers::Offset<TileAttribute>(end);
1132 return o;
1133 }
1134};
1135
1136inline flatbuffers::Offset<TileAttribute> CreateTileAttribute(
1137 flatbuffers::FlatBufferBuilder &_fbb,
1138 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples = 0) {
1139 TileAttributeBuilder builder_(_fbb);
1140 builder_.add_multiples(multiples);
1141 return builder_.Finish();
1142}
1143
1144inline flatbuffers::Offset<TileAttribute> CreateTileAttributeDirect(
1145 flatbuffers::FlatBufferBuilder &_fbb,
1146 const std::vector<int32_t> *multiples = nullptr) {
1147 auto multiples__ = multiples ? _fbb.CreateVector<int32_t>(*multiples) : 0;
1148 return tosa::CreateTileAttribute(
1149 _fbb,
1150 multiples__);
1151}
1152
1153struct ResizeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1154 typedef ResizeAttributeBuilder Builder;
1155 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1156 VT_OUTPUT_SIZE = 4,
1157 VT_STRIDE = 6,
1158 VT_OFFSET = 8,
1159 VT_SHIFT = 10,
1160 VT_STRIDE_FP = 12,
1161 VT_OFFSET_FP = 14,
1162 VT_MODE = 16
1163 };
1164 const flatbuffers::Vector<int32_t> *output_size() const {
1165 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUT_SIZE);
1166 }
1167 const flatbuffers::Vector<int32_t> *stride() const {
1168 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
1169 }
1170 const flatbuffers::Vector<int32_t> *offset() const {
1171 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OFFSET);
1172 }
1173 int32_t shift() const {
1174 return GetField<int32_t>(VT_SHIFT, 0);
1175 }
1176 const flatbuffers::Vector<float> *stride_fp() const {
1177 return GetPointer<const flatbuffers::Vector<float> *>(VT_STRIDE_FP);
1178 }
1179 const flatbuffers::Vector<float> *offset_fp() const {
1180 return GetPointer<const flatbuffers::Vector<float> *>(VT_OFFSET_FP);
1181 }
1182 tosa::ResizeMode mode() const {
1183 return static_cast<tosa::ResizeMode>(GetField<uint32_t>(VT_MODE, 0));
1184 }
1185 bool Verify(flatbuffers::Verifier &verifier) const {
1186 return VerifyTableStart(verifier) &&
1187 VerifyOffset(verifier, VT_OUTPUT_SIZE) &&
1188 verifier.VerifyVector(output_size()) &&
1189 VerifyOffset(verifier, VT_STRIDE) &&
1190 verifier.VerifyVector(stride()) &&
1191 VerifyOffset(verifier, VT_OFFSET) &&
1192 verifier.VerifyVector(offset()) &&
1193 VerifyField<int32_t>(verifier, VT_SHIFT) &&
1194 VerifyOffset(verifier, VT_STRIDE_FP) &&
1195 verifier.VerifyVector(stride_fp()) &&
1196 VerifyOffset(verifier, VT_OFFSET_FP) &&
1197 verifier.VerifyVector(offset_fp()) &&
1198 VerifyField<uint32_t>(verifier, VT_MODE) &&
1199 verifier.EndTable();
1200 }
1201};
1202
1203struct ResizeAttributeBuilder {
1204 typedef ResizeAttribute Table;
1205 flatbuffers::FlatBufferBuilder &fbb_;
1206 flatbuffers::uoffset_t start_;
1207 void add_output_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_size) {
1208 fbb_.AddOffset(ResizeAttribute::VT_OUTPUT_SIZE, output_size);
1209 }
1210 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
1211 fbb_.AddOffset(ResizeAttribute::VT_STRIDE, stride);
1212 }
1213 void add_offset(flatbuffers::Offset<flatbuffers::Vector<int32_t>> offset) {
1214 fbb_.AddOffset(ResizeAttribute::VT_OFFSET, offset);
1215 }
1216 void add_shift(int32_t shift) {
1217 fbb_.AddElement<int32_t>(ResizeAttribute::VT_SHIFT, shift, 0);
1218 }
1219 void add_stride_fp(flatbuffers::Offset<flatbuffers::Vector<float>> stride_fp) {
1220 fbb_.AddOffset(ResizeAttribute::VT_STRIDE_FP, stride_fp);
1221 }
1222 void add_offset_fp(flatbuffers::Offset<flatbuffers::Vector<float>> offset_fp) {
1223 fbb_.AddOffset(ResizeAttribute::VT_OFFSET_FP, offset_fp);
1224 }
1225 void add_mode(tosa::ResizeMode mode) {
1226 fbb_.AddElement<uint32_t>(ResizeAttribute::VT_MODE, static_cast<uint32_t>(mode), 0);
1227 }
1228 explicit ResizeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1229 : fbb_(_fbb) {
1230 start_ = fbb_.StartTable();
1231 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001232 flatbuffers::Offset<ResizeAttribute> Finish() {
1233 const auto end = fbb_.EndTable(start_);
1234 auto o = flatbuffers::Offset<ResizeAttribute>(end);
1235 return o;
1236 }
1237};
1238
1239inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttribute(
1240 flatbuffers::FlatBufferBuilder &_fbb,
1241 flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_size = 0,
1242 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
1243 flatbuffers::Offset<flatbuffers::Vector<int32_t>> offset = 0,
1244 int32_t shift = 0,
1245 flatbuffers::Offset<flatbuffers::Vector<float>> stride_fp = 0,
1246 flatbuffers::Offset<flatbuffers::Vector<float>> offset_fp = 0,
1247 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
1248 ResizeAttributeBuilder builder_(_fbb);
1249 builder_.add_mode(mode);
1250 builder_.add_offset_fp(offset_fp);
1251 builder_.add_stride_fp(stride_fp);
1252 builder_.add_shift(shift);
1253 builder_.add_offset(offset);
1254 builder_.add_stride(stride);
1255 builder_.add_output_size(output_size);
1256 return builder_.Finish();
1257}
1258
1259inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttributeDirect(
1260 flatbuffers::FlatBufferBuilder &_fbb,
1261 const std::vector<int32_t> *output_size = nullptr,
1262 const std::vector<int32_t> *stride = nullptr,
1263 const std::vector<int32_t> *offset = nullptr,
1264 int32_t shift = 0,
1265 const std::vector<float> *stride_fp = nullptr,
1266 const std::vector<float> *offset_fp = nullptr,
1267 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
1268 auto output_size__ = output_size ? _fbb.CreateVector<int32_t>(*output_size) : 0;
1269 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
1270 auto offset__ = offset ? _fbb.CreateVector<int32_t>(*offset) : 0;
1271 auto stride_fp__ = stride_fp ? _fbb.CreateVector<float>(*stride_fp) : 0;
1272 auto offset_fp__ = offset_fp ? _fbb.CreateVector<float>(*offset_fp) : 0;
1273 return tosa::CreateResizeAttribute(
1274 _fbb,
1275 output_size__,
1276 stride__,
1277 offset__,
1278 shift,
1279 stride_fp__,
1280 offset_fp__,
1281 mode);
1282}
1283
1284struct ClampAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1285 typedef ClampAttributeBuilder Builder;
1286 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1287 VT_MIN_INT = 4,
1288 VT_MAX_INT = 6,
1289 VT_MIN_FP = 8,
1290 VT_MAX_FP = 10
1291 };
1292 int32_t min_int() const {
1293 return GetField<int32_t>(VT_MIN_INT, 0);
1294 }
1295 int32_t max_int() const {
1296 return GetField<int32_t>(VT_MAX_INT, 0);
1297 }
1298 float min_fp() const {
1299 return GetField<float>(VT_MIN_FP, 0.0f);
1300 }
1301 float max_fp() const {
1302 return GetField<float>(VT_MAX_FP, 0.0f);
1303 }
1304 bool Verify(flatbuffers::Verifier &verifier) const {
1305 return VerifyTableStart(verifier) &&
1306 VerifyField<int32_t>(verifier, VT_MIN_INT) &&
1307 VerifyField<int32_t>(verifier, VT_MAX_INT) &&
1308 VerifyField<float>(verifier, VT_MIN_FP) &&
1309 VerifyField<float>(verifier, VT_MAX_FP) &&
1310 verifier.EndTable();
1311 }
1312};
1313
1314struct ClampAttributeBuilder {
1315 typedef ClampAttribute Table;
1316 flatbuffers::FlatBufferBuilder &fbb_;
1317 flatbuffers::uoffset_t start_;
1318 void add_min_int(int32_t min_int) {
1319 fbb_.AddElement<int32_t>(ClampAttribute::VT_MIN_INT, min_int, 0);
1320 }
1321 void add_max_int(int32_t max_int) {
1322 fbb_.AddElement<int32_t>(ClampAttribute::VT_MAX_INT, max_int, 0);
1323 }
1324 void add_min_fp(float min_fp) {
1325 fbb_.AddElement<float>(ClampAttribute::VT_MIN_FP, min_fp, 0.0f);
1326 }
1327 void add_max_fp(float max_fp) {
1328 fbb_.AddElement<float>(ClampAttribute::VT_MAX_FP, max_fp, 0.0f);
1329 }
1330 explicit ClampAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1331 : fbb_(_fbb) {
1332 start_ = fbb_.StartTable();
1333 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001334 flatbuffers::Offset<ClampAttribute> Finish() {
1335 const auto end = fbb_.EndTable(start_);
1336 auto o = flatbuffers::Offset<ClampAttribute>(end);
1337 return o;
1338 }
1339};
1340
1341inline flatbuffers::Offset<ClampAttribute> CreateClampAttribute(
1342 flatbuffers::FlatBufferBuilder &_fbb,
1343 int32_t min_int = 0,
1344 int32_t max_int = 0,
1345 float min_fp = 0.0f,
1346 float max_fp = 0.0f) {
1347 ClampAttributeBuilder builder_(_fbb);
1348 builder_.add_max_fp(max_fp);
1349 builder_.add_min_fp(min_fp);
1350 builder_.add_max_int(max_int);
1351 builder_.add_min_int(min_int);
1352 return builder_.Finish();
1353}
1354
1355struct RescaleAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1356 typedef RescaleAttributeBuilder Builder;
1357 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1358 VT_INPUT_ZP = 4,
1359 VT_OUTPUT_ZP = 6,
1360 VT_MULTIPLIER = 8,
1361 VT_SHIFT = 10,
1362 VT_SCALE32 = 12,
1363 VT_DOUBLE_ROUND = 14,
1364 VT_PER_CHANNEL = 16
1365 };
1366 int32_t input_zp() const {
1367 return GetField<int32_t>(VT_INPUT_ZP, 0);
1368 }
1369 int32_t output_zp() const {
1370 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1371 }
1372 const flatbuffers::Vector<int32_t> *multiplier() const {
1373 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLIER);
1374 }
1375 const flatbuffers::Vector<int32_t> *shift() const {
1376 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHIFT);
1377 }
1378 bool scale32() const {
1379 return GetField<uint8_t>(VT_SCALE32, 0) != 0;
1380 }
1381 bool double_round() const {
1382 return GetField<uint8_t>(VT_DOUBLE_ROUND, 0) != 0;
1383 }
1384 bool per_channel() const {
1385 return GetField<uint8_t>(VT_PER_CHANNEL, 0) != 0;
1386 }
1387 bool Verify(flatbuffers::Verifier &verifier) const {
1388 return VerifyTableStart(verifier) &&
1389 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1390 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP) &&
1391 VerifyOffset(verifier, VT_MULTIPLIER) &&
1392 verifier.VerifyVector(multiplier()) &&
1393 VerifyOffset(verifier, VT_SHIFT) &&
1394 verifier.VerifyVector(shift()) &&
1395 VerifyField<uint8_t>(verifier, VT_SCALE32) &&
1396 VerifyField<uint8_t>(verifier, VT_DOUBLE_ROUND) &&
1397 VerifyField<uint8_t>(verifier, VT_PER_CHANNEL) &&
1398 verifier.EndTable();
1399 }
1400};
1401
1402struct RescaleAttributeBuilder {
1403 typedef RescaleAttribute Table;
1404 flatbuffers::FlatBufferBuilder &fbb_;
1405 flatbuffers::uoffset_t start_;
1406 void add_input_zp(int32_t input_zp) {
1407 fbb_.AddElement<int32_t>(RescaleAttribute::VT_INPUT_ZP, input_zp, 0);
1408 }
1409 void add_output_zp(int32_t output_zp) {
1410 fbb_.AddElement<int32_t>(RescaleAttribute::VT_OUTPUT_ZP, output_zp, 0);
1411 }
1412 void add_multiplier(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier) {
1413 fbb_.AddOffset(RescaleAttribute::VT_MULTIPLIER, multiplier);
1414 }
1415 void add_shift(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift) {
1416 fbb_.AddOffset(RescaleAttribute::VT_SHIFT, shift);
1417 }
1418 void add_scale32(bool scale32) {
1419 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_SCALE32, static_cast<uint8_t>(scale32), 0);
1420 }
1421 void add_double_round(bool double_round) {
1422 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_DOUBLE_ROUND, static_cast<uint8_t>(double_round), 0);
1423 }
1424 void add_per_channel(bool per_channel) {
1425 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_PER_CHANNEL, static_cast<uint8_t>(per_channel), 0);
1426 }
1427 explicit RescaleAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1428 : fbb_(_fbb) {
1429 start_ = fbb_.StartTable();
1430 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001431 flatbuffers::Offset<RescaleAttribute> Finish() {
1432 const auto end = fbb_.EndTable(start_);
1433 auto o = flatbuffers::Offset<RescaleAttribute>(end);
1434 return o;
1435 }
1436};
1437
1438inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttribute(
1439 flatbuffers::FlatBufferBuilder &_fbb,
1440 int32_t input_zp = 0,
1441 int32_t output_zp = 0,
1442 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier = 0,
1443 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift = 0,
1444 bool scale32 = false,
1445 bool double_round = false,
1446 bool per_channel = false) {
1447 RescaleAttributeBuilder builder_(_fbb);
1448 builder_.add_shift(shift);
1449 builder_.add_multiplier(multiplier);
1450 builder_.add_output_zp(output_zp);
1451 builder_.add_input_zp(input_zp);
1452 builder_.add_per_channel(per_channel);
1453 builder_.add_double_round(double_round);
1454 builder_.add_scale32(scale32);
1455 return builder_.Finish();
1456}
1457
1458inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttributeDirect(
1459 flatbuffers::FlatBufferBuilder &_fbb,
1460 int32_t input_zp = 0,
1461 int32_t output_zp = 0,
1462 const std::vector<int32_t> *multiplier = nullptr,
1463 const std::vector<int32_t> *shift = nullptr,
1464 bool scale32 = false,
1465 bool double_round = false,
1466 bool per_channel = false) {
1467 auto multiplier__ = multiplier ? _fbb.CreateVector<int32_t>(*multiplier) : 0;
1468 auto shift__ = shift ? _fbb.CreateVector<int32_t>(*shift) : 0;
1469 return tosa::CreateRescaleAttribute(
1470 _fbb,
1471 input_zp,
1472 output_zp,
1473 multiplier__,
1474 shift__,
1475 scale32,
1476 double_round,
1477 per_channel);
1478}
1479
1480struct MulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1481 typedef MulAttributeBuilder Builder;
1482 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1483 VT_SHIFT = 4
1484 };
1485 int32_t shift() const {
1486 return GetField<int32_t>(VT_SHIFT, 0);
1487 }
1488 bool Verify(flatbuffers::Verifier &verifier) const {
1489 return VerifyTableStart(verifier) &&
1490 VerifyField<int32_t>(verifier, VT_SHIFT) &&
1491 verifier.EndTable();
1492 }
1493};
1494
1495struct MulAttributeBuilder {
1496 typedef MulAttribute Table;
1497 flatbuffers::FlatBufferBuilder &fbb_;
1498 flatbuffers::uoffset_t start_;
1499 void add_shift(int32_t shift) {
1500 fbb_.AddElement<int32_t>(MulAttribute::VT_SHIFT, shift, 0);
1501 }
1502 explicit MulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1503 : fbb_(_fbb) {
1504 start_ = fbb_.StartTable();
1505 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001506 flatbuffers::Offset<MulAttribute> Finish() {
1507 const auto end = fbb_.EndTable(start_);
1508 auto o = flatbuffers::Offset<MulAttribute>(end);
1509 return o;
1510 }
1511};
1512
1513inline flatbuffers::Offset<MulAttribute> CreateMulAttribute(
1514 flatbuffers::FlatBufferBuilder &_fbb,
1515 int32_t shift = 0) {
1516 MulAttributeBuilder builder_(_fbb);
1517 builder_.add_shift(shift);
1518 return builder_.Finish();
1519}
1520
1521struct ArithmeticRightShiftAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1522 typedef ArithmeticRightShiftAttributeBuilder Builder;
1523 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1524 VT_ROUND = 4
1525 };
1526 bool round() const {
1527 return GetField<uint8_t>(VT_ROUND, 0) != 0;
1528 }
1529 bool Verify(flatbuffers::Verifier &verifier) const {
1530 return VerifyTableStart(verifier) &&
1531 VerifyField<uint8_t>(verifier, VT_ROUND) &&
1532 verifier.EndTable();
1533 }
1534};
1535
1536struct ArithmeticRightShiftAttributeBuilder {
1537 typedef ArithmeticRightShiftAttribute Table;
1538 flatbuffers::FlatBufferBuilder &fbb_;
1539 flatbuffers::uoffset_t start_;
1540 void add_round(bool round) {
1541 fbb_.AddElement<uint8_t>(ArithmeticRightShiftAttribute::VT_ROUND, static_cast<uint8_t>(round), 0);
1542 }
1543 explicit ArithmeticRightShiftAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1544 : fbb_(_fbb) {
1545 start_ = fbb_.StartTable();
1546 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001547 flatbuffers::Offset<ArithmeticRightShiftAttribute> Finish() {
1548 const auto end = fbb_.EndTable(start_);
1549 auto o = flatbuffers::Offset<ArithmeticRightShiftAttribute>(end);
1550 return o;
1551 }
1552};
1553
1554inline flatbuffers::Offset<ArithmeticRightShiftAttribute> CreateArithmeticRightShiftAttribute(
1555 flatbuffers::FlatBufferBuilder &_fbb,
1556 bool round = false) {
1557 ArithmeticRightShiftAttributeBuilder builder_(_fbb);
1558 builder_.add_round(round);
1559 return builder_.Finish();
1560}
1561
1562struct CondIfAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1563 typedef CondIfAttributeBuilder Builder;
1564 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1565 VT_THEN_BRANCH = 4,
1566 VT_ELSE_BRANCH = 6
1567 };
1568 const flatbuffers::String *then_branch() const {
1569 return GetPointer<const flatbuffers::String *>(VT_THEN_BRANCH);
1570 }
1571 const flatbuffers::String *else_branch() const {
1572 return GetPointer<const flatbuffers::String *>(VT_ELSE_BRANCH);
1573 }
1574 bool Verify(flatbuffers::Verifier &verifier) const {
1575 return VerifyTableStart(verifier) &&
1576 VerifyOffset(verifier, VT_THEN_BRANCH) &&
1577 verifier.VerifyString(then_branch()) &&
1578 VerifyOffset(verifier, VT_ELSE_BRANCH) &&
1579 verifier.VerifyString(else_branch()) &&
1580 verifier.EndTable();
1581 }
1582};
1583
1584struct CondIfAttributeBuilder {
1585 typedef CondIfAttribute Table;
1586 flatbuffers::FlatBufferBuilder &fbb_;
1587 flatbuffers::uoffset_t start_;
1588 void add_then_branch(flatbuffers::Offset<flatbuffers::String> then_branch) {
1589 fbb_.AddOffset(CondIfAttribute::VT_THEN_BRANCH, then_branch);
1590 }
1591 void add_else_branch(flatbuffers::Offset<flatbuffers::String> else_branch) {
1592 fbb_.AddOffset(CondIfAttribute::VT_ELSE_BRANCH, else_branch);
1593 }
1594 explicit CondIfAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1595 : fbb_(_fbb) {
1596 start_ = fbb_.StartTable();
1597 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001598 flatbuffers::Offset<CondIfAttribute> Finish() {
1599 const auto end = fbb_.EndTable(start_);
1600 auto o = flatbuffers::Offset<CondIfAttribute>(end);
1601 return o;
1602 }
1603};
1604
1605inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttribute(
1606 flatbuffers::FlatBufferBuilder &_fbb,
1607 flatbuffers::Offset<flatbuffers::String> then_branch = 0,
1608 flatbuffers::Offset<flatbuffers::String> else_branch = 0) {
1609 CondIfAttributeBuilder builder_(_fbb);
1610 builder_.add_else_branch(else_branch);
1611 builder_.add_then_branch(then_branch);
1612 return builder_.Finish();
1613}
1614
1615inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttributeDirect(
1616 flatbuffers::FlatBufferBuilder &_fbb,
1617 const char *then_branch = nullptr,
1618 const char *else_branch = nullptr) {
1619 auto then_branch__ = then_branch ? _fbb.CreateString(then_branch) : 0;
1620 auto else_branch__ = else_branch ? _fbb.CreateString(else_branch) : 0;
1621 return tosa::CreateCondIfAttribute(
1622 _fbb,
1623 then_branch__,
1624 else_branch__);
1625}
1626
1627struct WhileLoopAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1628 typedef WhileLoopAttributeBuilder Builder;
1629 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1630 VT_COND_BRANCH = 4,
1631 VT_BODY_BRANCH = 6
1632 };
1633 const flatbuffers::String *cond_branch() const {
1634 return GetPointer<const flatbuffers::String *>(VT_COND_BRANCH);
1635 }
1636 const flatbuffers::String *body_branch() const {
1637 return GetPointer<const flatbuffers::String *>(VT_BODY_BRANCH);
1638 }
1639 bool Verify(flatbuffers::Verifier &verifier) const {
1640 return VerifyTableStart(verifier) &&
1641 VerifyOffset(verifier, VT_COND_BRANCH) &&
1642 verifier.VerifyString(cond_branch()) &&
1643 VerifyOffset(verifier, VT_BODY_BRANCH) &&
1644 verifier.VerifyString(body_branch()) &&
1645 verifier.EndTable();
1646 }
1647};
1648
1649struct WhileLoopAttributeBuilder {
1650 typedef WhileLoopAttribute Table;
1651 flatbuffers::FlatBufferBuilder &fbb_;
1652 flatbuffers::uoffset_t start_;
1653 void add_cond_branch(flatbuffers::Offset<flatbuffers::String> cond_branch) {
1654 fbb_.AddOffset(WhileLoopAttribute::VT_COND_BRANCH, cond_branch);
1655 }
1656 void add_body_branch(flatbuffers::Offset<flatbuffers::String> body_branch) {
1657 fbb_.AddOffset(WhileLoopAttribute::VT_BODY_BRANCH, body_branch);
1658 }
1659 explicit WhileLoopAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1660 : fbb_(_fbb) {
1661 start_ = fbb_.StartTable();
1662 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001663 flatbuffers::Offset<WhileLoopAttribute> Finish() {
1664 const auto end = fbb_.EndTable(start_);
1665 auto o = flatbuffers::Offset<WhileLoopAttribute>(end);
1666 return o;
1667 }
1668};
1669
1670inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttribute(
1671 flatbuffers::FlatBufferBuilder &_fbb,
1672 flatbuffers::Offset<flatbuffers::String> cond_branch = 0,
1673 flatbuffers::Offset<flatbuffers::String> body_branch = 0) {
1674 WhileLoopAttributeBuilder builder_(_fbb);
1675 builder_.add_body_branch(body_branch);
1676 builder_.add_cond_branch(cond_branch);
1677 return builder_.Finish();
1678}
1679
1680inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttributeDirect(
1681 flatbuffers::FlatBufferBuilder &_fbb,
1682 const char *cond_branch = nullptr,
1683 const char *body_branch = nullptr) {
1684 auto cond_branch__ = cond_branch ? _fbb.CreateString(cond_branch) : 0;
1685 auto body_branch__ = body_branch ? _fbb.CreateString(body_branch) : 0;
1686 return tosa::CreateWhileLoopAttribute(
1687 _fbb,
1688 cond_branch__,
1689 body_branch__);
1690}
1691
Kevin Cheng38d214c2021-10-15 15:49:19 -07001692struct TransposeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1693 typedef TransposeAttributeBuilder Builder;
1694 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1695 VT_PERM = 4
1696 };
1697 const flatbuffers::Vector<int32_t> *perm() const {
1698 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PERM);
1699 }
1700 bool Verify(flatbuffers::Verifier &verifier) const {
1701 return VerifyTableStart(verifier) &&
1702 VerifyOffset(verifier, VT_PERM) &&
1703 verifier.VerifyVector(perm()) &&
1704 verifier.EndTable();
1705 }
1706};
1707
1708struct TransposeAttributeBuilder {
1709 typedef TransposeAttribute Table;
1710 flatbuffers::FlatBufferBuilder &fbb_;
1711 flatbuffers::uoffset_t start_;
1712 void add_perm(flatbuffers::Offset<flatbuffers::Vector<int32_t>> perm) {
1713 fbb_.AddOffset(TransposeAttribute::VT_PERM, perm);
1714 }
1715 explicit TransposeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1716 : fbb_(_fbb) {
1717 start_ = fbb_.StartTable();
1718 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07001719 flatbuffers::Offset<TransposeAttribute> Finish() {
1720 const auto end = fbb_.EndTable(start_);
1721 auto o = flatbuffers::Offset<TransposeAttribute>(end);
1722 return o;
1723 }
1724};
1725
1726inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttribute(
1727 flatbuffers::FlatBufferBuilder &_fbb,
1728 flatbuffers::Offset<flatbuffers::Vector<int32_t>> perm = 0) {
1729 TransposeAttributeBuilder builder_(_fbb);
1730 builder_.add_perm(perm);
1731 return builder_.Finish();
1732}
1733
1734inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttributeDirect(
1735 flatbuffers::FlatBufferBuilder &_fbb,
1736 const std::vector<int32_t> *perm = nullptr) {
1737 auto perm__ = perm ? _fbb.CreateVector<int32_t>(*perm) : 0;
1738 return tosa::CreateTransposeAttribute(
1739 _fbb,
1740 perm__);
1741}
1742
1743struct TableAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1744 typedef TableAttributeBuilder Builder;
1745 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1746 VT_TABLE = 4
1747 };
1748 const flatbuffers::Vector<int32_t> *table() const {
1749 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_TABLE);
1750 }
1751 bool Verify(flatbuffers::Verifier &verifier) const {
1752 return VerifyTableStart(verifier) &&
1753 VerifyOffset(verifier, VT_TABLE) &&
1754 verifier.VerifyVector(table()) &&
1755 verifier.EndTable();
1756 }
1757};
1758
1759struct TableAttributeBuilder {
1760 typedef TableAttribute Table;
1761 flatbuffers::FlatBufferBuilder &fbb_;
1762 flatbuffers::uoffset_t start_;
1763 void add_table(flatbuffers::Offset<flatbuffers::Vector<int32_t>> table) {
1764 fbb_.AddOffset(TableAttribute::VT_TABLE, table);
1765 }
1766 explicit TableAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1767 : fbb_(_fbb) {
1768 start_ = fbb_.StartTable();
1769 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07001770 flatbuffers::Offset<TableAttribute> Finish() {
1771 const auto end = fbb_.EndTable(start_);
1772 auto o = flatbuffers::Offset<TableAttribute>(end);
1773 return o;
1774 }
1775};
1776
1777inline flatbuffers::Offset<TableAttribute> CreateTableAttribute(
1778 flatbuffers::FlatBufferBuilder &_fbb,
1779 flatbuffers::Offset<flatbuffers::Vector<int32_t>> table = 0) {
1780 TableAttributeBuilder builder_(_fbb);
1781 builder_.add_table(table);
1782 return builder_.Finish();
1783}
1784
1785inline flatbuffers::Offset<TableAttribute> CreateTableAttributeDirect(
1786 flatbuffers::FlatBufferBuilder &_fbb,
1787 const std::vector<int32_t> *table = nullptr) {
1788 auto table__ = table ? _fbb.CreateVector<int32_t>(*table) : 0;
1789 return tosa::CreateTableAttribute(
1790 _fbb,
1791 table__);
1792}
1793
Eric Kunze2364dcd2021-04-26 11:06:57 -07001794struct UnaryQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1795 typedef UnaryQuantInfoBuilder Builder;
1796 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1797 VT_INPUT_ZP = 4,
1798 VT_OUTPUT_ZP = 6
1799 };
1800 int32_t input_zp() const {
1801 return GetField<int32_t>(VT_INPUT_ZP, 0);
1802 }
1803 int32_t output_zp() const {
1804 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1805 }
1806 bool Verify(flatbuffers::Verifier &verifier) const {
1807 return VerifyTableStart(verifier) &&
1808 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1809 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP) &&
1810 verifier.EndTable();
1811 }
1812};
1813
1814struct UnaryQuantInfoBuilder {
1815 typedef UnaryQuantInfo Table;
1816 flatbuffers::FlatBufferBuilder &fbb_;
1817 flatbuffers::uoffset_t start_;
1818 void add_input_zp(int32_t input_zp) {
1819 fbb_.AddElement<int32_t>(UnaryQuantInfo::VT_INPUT_ZP, input_zp, 0);
1820 }
1821 void add_output_zp(int32_t output_zp) {
1822 fbb_.AddElement<int32_t>(UnaryQuantInfo::VT_OUTPUT_ZP, output_zp, 0);
1823 }
1824 explicit UnaryQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1825 : fbb_(_fbb) {
1826 start_ = fbb_.StartTable();
1827 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001828 flatbuffers::Offset<UnaryQuantInfo> Finish() {
1829 const auto end = fbb_.EndTable(start_);
1830 auto o = flatbuffers::Offset<UnaryQuantInfo>(end);
1831 return o;
1832 }
1833};
1834
1835inline flatbuffers::Offset<UnaryQuantInfo> CreateUnaryQuantInfo(
1836 flatbuffers::FlatBufferBuilder &_fbb,
1837 int32_t input_zp = 0,
1838 int32_t output_zp = 0) {
1839 UnaryQuantInfoBuilder builder_(_fbb);
1840 builder_.add_output_zp(output_zp);
1841 builder_.add_input_zp(input_zp);
1842 return builder_.Finish();
1843}
1844
1845struct ConvQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1846 typedef ConvQuantInfoBuilder Builder;
1847 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1848 VT_INPUT_ZP = 4,
1849 VT_WEIGHT_ZP = 6
1850 };
1851 int32_t input_zp() const {
1852 return GetField<int32_t>(VT_INPUT_ZP, 0);
1853 }
1854 int32_t weight_zp() const {
1855 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
1856 }
1857 bool Verify(flatbuffers::Verifier &verifier) const {
1858 return VerifyTableStart(verifier) &&
1859 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1860 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP) &&
1861 verifier.EndTable();
1862 }
1863};
1864
1865struct ConvQuantInfoBuilder {
1866 typedef ConvQuantInfo Table;
1867 flatbuffers::FlatBufferBuilder &fbb_;
1868 flatbuffers::uoffset_t start_;
1869 void add_input_zp(int32_t input_zp) {
1870 fbb_.AddElement<int32_t>(ConvQuantInfo::VT_INPUT_ZP, input_zp, 0);
1871 }
1872 void add_weight_zp(int32_t weight_zp) {
1873 fbb_.AddElement<int32_t>(ConvQuantInfo::VT_WEIGHT_ZP, weight_zp, 0);
1874 }
1875 explicit ConvQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1876 : fbb_(_fbb) {
1877 start_ = fbb_.StartTable();
1878 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001879 flatbuffers::Offset<ConvQuantInfo> Finish() {
1880 const auto end = fbb_.EndTable(start_);
1881 auto o = flatbuffers::Offset<ConvQuantInfo>(end);
1882 return o;
1883 }
1884};
1885
1886inline flatbuffers::Offset<ConvQuantInfo> CreateConvQuantInfo(
1887 flatbuffers::FlatBufferBuilder &_fbb,
1888 int32_t input_zp = 0,
1889 int32_t weight_zp = 0) {
1890 ConvQuantInfoBuilder builder_(_fbb);
1891 builder_.add_weight_zp(weight_zp);
1892 builder_.add_input_zp(input_zp);
1893 return builder_.Finish();
1894}
1895
1896struct MatMulQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1897 typedef MatMulQuantInfoBuilder Builder;
1898 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1899 VT_A_ZP = 4,
1900 VT_B_ZP = 6
1901 };
1902 int32_t a_zp() const {
1903 return GetField<int32_t>(VT_A_ZP, 0);
1904 }
1905 int32_t b_zp() const {
1906 return GetField<int32_t>(VT_B_ZP, 0);
1907 }
1908 bool Verify(flatbuffers::Verifier &verifier) const {
1909 return VerifyTableStart(verifier) &&
1910 VerifyField<int32_t>(verifier, VT_A_ZP) &&
1911 VerifyField<int32_t>(verifier, VT_B_ZP) &&
1912 verifier.EndTable();
1913 }
1914};
1915
1916struct MatMulQuantInfoBuilder {
1917 typedef MatMulQuantInfo Table;
1918 flatbuffers::FlatBufferBuilder &fbb_;
1919 flatbuffers::uoffset_t start_;
1920 void add_a_zp(int32_t a_zp) {
1921 fbb_.AddElement<int32_t>(MatMulQuantInfo::VT_A_ZP, a_zp, 0);
1922 }
1923 void add_b_zp(int32_t b_zp) {
1924 fbb_.AddElement<int32_t>(MatMulQuantInfo::VT_B_ZP, b_zp, 0);
1925 }
1926 explicit MatMulQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1927 : fbb_(_fbb) {
1928 start_ = fbb_.StartTable();
1929 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001930 flatbuffers::Offset<MatMulQuantInfo> Finish() {
1931 const auto end = fbb_.EndTable(start_);
1932 auto o = flatbuffers::Offset<MatMulQuantInfo>(end);
1933 return o;
1934 }
1935};
1936
1937inline flatbuffers::Offset<MatMulQuantInfo> CreateMatMulQuantInfo(
1938 flatbuffers::FlatBufferBuilder &_fbb,
1939 int32_t a_zp = 0,
1940 int32_t b_zp = 0) {
1941 MatMulQuantInfoBuilder builder_(_fbb);
1942 builder_.add_b_zp(b_zp);
1943 builder_.add_a_zp(a_zp);
1944 return builder_.Finish();
1945}
1946
1947struct PadQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1948 typedef PadQuantInfoBuilder Builder;
1949 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1950 VT_INPUT_ZP = 4
1951 };
1952 int32_t input_zp() const {
1953 return GetField<int32_t>(VT_INPUT_ZP, 0);
1954 }
1955 bool Verify(flatbuffers::Verifier &verifier) const {
1956 return VerifyTableStart(verifier) &&
1957 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1958 verifier.EndTable();
1959 }
1960};
1961
1962struct PadQuantInfoBuilder {
1963 typedef PadQuantInfo Table;
1964 flatbuffers::FlatBufferBuilder &fbb_;
1965 flatbuffers::uoffset_t start_;
1966 void add_input_zp(int32_t input_zp) {
1967 fbb_.AddElement<int32_t>(PadQuantInfo::VT_INPUT_ZP, input_zp, 0);
1968 }
1969 explicit PadQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1970 : fbb_(_fbb) {
1971 start_ = fbb_.StartTable();
1972 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001973 flatbuffers::Offset<PadQuantInfo> Finish() {
1974 const auto end = fbb_.EndTable(start_);
1975 auto o = flatbuffers::Offset<PadQuantInfo>(end);
1976 return o;
1977 }
1978};
1979
1980inline flatbuffers::Offset<PadQuantInfo> CreatePadQuantInfo(
1981 flatbuffers::FlatBufferBuilder &_fbb,
1982 int32_t input_zp = 0) {
1983 PadQuantInfoBuilder builder_(_fbb);
1984 builder_.add_input_zp(input_zp);
1985 return builder_.Finish();
1986}
1987
1988struct Version FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1989 typedef VersionBuilder Builder;
1990 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1991 VT__MAJOR = 4,
1992 VT__MINOR = 6,
1993 VT__PATCH = 8,
Kevin Chengb97cb1d2021-10-14 11:53:39 -07001994 VT__DRAFT = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07001995 };
1996 int32_t _major() const {
1997 return GetField<int32_t>(VT__MAJOR, 0);
1998 }
1999 int32_t _minor() const {
Eric Kunzea687b612021-11-03 17:02:57 -07002000 return GetField<int32_t>(VT__MINOR, 24);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002001 }
2002 int32_t _patch() const {
2003 return GetField<int32_t>(VT__PATCH, 0);
2004 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002005 bool _draft() const {
Eric Kunzea687b612021-11-03 17:02:57 -07002006 return GetField<uint8_t>(VT__DRAFT, 1) != 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002007 }
2008 bool Verify(flatbuffers::Verifier &verifier) const {
2009 return VerifyTableStart(verifier) &&
2010 VerifyField<int32_t>(verifier, VT__MAJOR) &&
2011 VerifyField<int32_t>(verifier, VT__MINOR) &&
2012 VerifyField<int32_t>(verifier, VT__PATCH) &&
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002013 VerifyField<uint8_t>(verifier, VT__DRAFT) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002014 verifier.EndTable();
2015 }
2016};
2017
2018struct VersionBuilder {
2019 typedef Version Table;
2020 flatbuffers::FlatBufferBuilder &fbb_;
2021 flatbuffers::uoffset_t start_;
2022 void add__major(int32_t _major) {
2023 fbb_.AddElement<int32_t>(Version::VT__MAJOR, _major, 0);
2024 }
2025 void add__minor(int32_t _minor) {
Eric Kunzea687b612021-11-03 17:02:57 -07002026 fbb_.AddElement<int32_t>(Version::VT__MINOR, _minor, 24);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002027 }
2028 void add__patch(int32_t _patch) {
2029 fbb_.AddElement<int32_t>(Version::VT__PATCH, _patch, 0);
2030 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002031 void add__draft(bool _draft) {
Eric Kunzea687b612021-11-03 17:02:57 -07002032 fbb_.AddElement<uint8_t>(Version::VT__DRAFT, static_cast<uint8_t>(_draft), 1);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002033 }
2034 explicit VersionBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2035 : fbb_(_fbb) {
2036 start_ = fbb_.StartTable();
2037 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002038 flatbuffers::Offset<Version> Finish() {
2039 const auto end = fbb_.EndTable(start_);
2040 auto o = flatbuffers::Offset<Version>(end);
2041 return o;
2042 }
2043};
2044
2045inline flatbuffers::Offset<Version> CreateVersion(
2046 flatbuffers::FlatBufferBuilder &_fbb,
2047 int32_t _major = 0,
Eric Kunzea687b612021-11-03 17:02:57 -07002048 int32_t _minor = 24,
Eric Kunze2364dcd2021-04-26 11:06:57 -07002049 int32_t _patch = 0,
Eric Kunzea687b612021-11-03 17:02:57 -07002050 bool _draft = true) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002051 VersionBuilder builder_(_fbb);
2052 builder_.add__patch(_patch);
2053 builder_.add__minor(_minor);
2054 builder_.add__major(_major);
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002055 builder_.add__draft(_draft);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002056 return builder_.Finish();
2057}
2058
2059struct TosaTensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2060 typedef TosaTensorBuilder Builder;
2061 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2062 VT_NAME = 4,
2063 VT_SHAPE = 6,
2064 VT_TYPE = 8,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002065 VT_DATA = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07002066 };
2067 const flatbuffers::String *name() const {
2068 return GetPointer<const flatbuffers::String *>(VT_NAME);
2069 }
2070 const flatbuffers::Vector<int32_t> *shape() const {
2071 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHAPE);
2072 }
2073 tosa::DType type() const {
2074 return static_cast<tosa::DType>(GetField<uint32_t>(VT_TYPE, 0));
2075 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002076 const flatbuffers::Vector<uint8_t> *data() const {
2077 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_DATA);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002078 }
2079 bool Verify(flatbuffers::Verifier &verifier) const {
2080 return VerifyTableStart(verifier) &&
2081 VerifyOffset(verifier, VT_NAME) &&
2082 verifier.VerifyString(name()) &&
2083 VerifyOffset(verifier, VT_SHAPE) &&
2084 verifier.VerifyVector(shape()) &&
2085 VerifyField<uint32_t>(verifier, VT_TYPE) &&
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002086 VerifyOffset(verifier, VT_DATA) &&
2087 verifier.VerifyVector(data()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002088 verifier.EndTable();
2089 }
2090};
2091
2092struct TosaTensorBuilder {
2093 typedef TosaTensor Table;
2094 flatbuffers::FlatBufferBuilder &fbb_;
2095 flatbuffers::uoffset_t start_;
2096 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2097 fbb_.AddOffset(TosaTensor::VT_NAME, name);
2098 }
2099 void add_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape) {
2100 fbb_.AddOffset(TosaTensor::VT_SHAPE, shape);
2101 }
2102 void add_type(tosa::DType type) {
2103 fbb_.AddElement<uint32_t>(TosaTensor::VT_TYPE, static_cast<uint32_t>(type), 0);
2104 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002105 void add_data(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data) {
2106 fbb_.AddOffset(TosaTensor::VT_DATA, data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002107 }
2108 explicit TosaTensorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2109 : fbb_(_fbb) {
2110 start_ = fbb_.StartTable();
2111 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002112 flatbuffers::Offset<TosaTensor> Finish() {
2113 const auto end = fbb_.EndTable(start_);
2114 auto o = flatbuffers::Offset<TosaTensor>(end);
2115 return o;
2116 }
2117};
2118
2119inline flatbuffers::Offset<TosaTensor> CreateTosaTensor(
2120 flatbuffers::FlatBufferBuilder &_fbb,
2121 flatbuffers::Offset<flatbuffers::String> name = 0,
2122 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape = 0,
2123 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002124 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002125 TosaTensorBuilder builder_(_fbb);
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002126 builder_.add_data(data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002127 builder_.add_type(type);
2128 builder_.add_shape(shape);
2129 builder_.add_name(name);
2130 return builder_.Finish();
2131}
2132
2133inline flatbuffers::Offset<TosaTensor> CreateTosaTensorDirect(
2134 flatbuffers::FlatBufferBuilder &_fbb,
2135 const char *name = nullptr,
2136 const std::vector<int32_t> *shape = nullptr,
2137 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002138 const std::vector<uint8_t> *data = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002139 auto name__ = name ? _fbb.CreateString(name) : 0;
2140 auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0;
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002141 if (data) { _fbb.ForceVectorAlignment(data->size(), sizeof(uint8_t), 8); }
2142 auto data__ = data ? _fbb.CreateVector<uint8_t>(*data) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002143 return tosa::CreateTosaTensor(
2144 _fbb,
2145 name__,
2146 shape__,
2147 type,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002148 data__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002149}
2150
2151struct TosaOperator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2152 typedef TosaOperatorBuilder Builder;
2153 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2154 VT_OP = 4,
2155 VT_ATTRIBUTE_TYPE = 6,
2156 VT_ATTRIBUTE = 8,
2157 VT_INPUTS = 10,
2158 VT_OUTPUTS = 12,
2159 VT_QUANT_INFO_TYPE = 14,
2160 VT_QUANT_INFO = 16
2161 };
2162 tosa::Op op() const {
2163 return static_cast<tosa::Op>(GetField<uint32_t>(VT_OP, 0));
2164 }
2165 tosa::Attribute attribute_type() const {
2166 return static_cast<tosa::Attribute>(GetField<uint8_t>(VT_ATTRIBUTE_TYPE, 0));
2167 }
2168 const void *attribute() const {
2169 return GetPointer<const void *>(VT_ATTRIBUTE);
2170 }
2171 template<typename T> const T *attribute_as() const;
Kevin Cheng79a41992021-08-31 16:04:40 -07002172 const tosa::PoolAttribute *attribute_as_PoolAttribute() const {
2173 return attribute_type() == tosa::Attribute_PoolAttribute ? static_cast<const tosa::PoolAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002174 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002175 const tosa::ConvAttribute *attribute_as_ConvAttribute() const {
2176 return attribute_type() == tosa::Attribute_ConvAttribute ? static_cast<const tosa::ConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002177 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002178 const tosa::TransposeConvAttribute *attribute_as_TransposeConvAttribute() const {
2179 return attribute_type() == tosa::Attribute_TransposeConvAttribute ? static_cast<const tosa::TransposeConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002180 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002181 const tosa::PadAttribute *attribute_as_PadAttribute() const {
2182 return attribute_type() == tosa::Attribute_PadAttribute ? static_cast<const tosa::PadAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002183 }
2184 const tosa::AxisAttribute *attribute_as_AxisAttribute() const {
2185 return attribute_type() == tosa::Attribute_AxisAttribute ? static_cast<const tosa::AxisAttribute *>(attribute()) : nullptr;
2186 }
2187 const tosa::ReshapeAttribute *attribute_as_ReshapeAttribute() const {
2188 return attribute_type() == tosa::Attribute_ReshapeAttribute ? static_cast<const tosa::ReshapeAttribute *>(attribute()) : nullptr;
2189 }
2190 const tosa::SliceAttribute *attribute_as_SliceAttribute() const {
2191 return attribute_type() == tosa::Attribute_SliceAttribute ? static_cast<const tosa::SliceAttribute *>(attribute()) : nullptr;
2192 }
2193 const tosa::TileAttribute *attribute_as_TileAttribute() const {
2194 return attribute_type() == tosa::Attribute_TileAttribute ? static_cast<const tosa::TileAttribute *>(attribute()) : nullptr;
2195 }
2196 const tosa::ResizeAttribute *attribute_as_ResizeAttribute() const {
2197 return attribute_type() == tosa::Attribute_ResizeAttribute ? static_cast<const tosa::ResizeAttribute *>(attribute()) : nullptr;
2198 }
2199 const tosa::ClampAttribute *attribute_as_ClampAttribute() const {
2200 return attribute_type() == tosa::Attribute_ClampAttribute ? static_cast<const tosa::ClampAttribute *>(attribute()) : nullptr;
2201 }
2202 const tosa::RescaleAttribute *attribute_as_RescaleAttribute() const {
2203 return attribute_type() == tosa::Attribute_RescaleAttribute ? static_cast<const tosa::RescaleAttribute *>(attribute()) : nullptr;
2204 }
2205 const tosa::MulAttribute *attribute_as_MulAttribute() const {
2206 return attribute_type() == tosa::Attribute_MulAttribute ? static_cast<const tosa::MulAttribute *>(attribute()) : nullptr;
2207 }
2208 const tosa::ArithmeticRightShiftAttribute *attribute_as_ArithmeticRightShiftAttribute() const {
2209 return attribute_type() == tosa::Attribute_ArithmeticRightShiftAttribute ? static_cast<const tosa::ArithmeticRightShiftAttribute *>(attribute()) : nullptr;
2210 }
2211 const tosa::CondIfAttribute *attribute_as_CondIfAttribute() const {
2212 return attribute_type() == tosa::Attribute_CondIfAttribute ? static_cast<const tosa::CondIfAttribute *>(attribute()) : nullptr;
2213 }
2214 const tosa::WhileLoopAttribute *attribute_as_WhileLoopAttribute() const {
2215 return attribute_type() == tosa::Attribute_WhileLoopAttribute ? static_cast<const tosa::WhileLoopAttribute *>(attribute()) : nullptr;
2216 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002217 const tosa::TransposeAttribute *attribute_as_TransposeAttribute() const {
2218 return attribute_type() == tosa::Attribute_TransposeAttribute ? static_cast<const tosa::TransposeAttribute *>(attribute()) : nullptr;
2219 }
2220 const tosa::TableAttribute *attribute_as_TableAttribute() const {
2221 return attribute_type() == tosa::Attribute_TableAttribute ? static_cast<const tosa::TableAttribute *>(attribute()) : nullptr;
2222 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002223 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2224 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2225 }
2226 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2227 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2228 }
2229 tosa::QuantInfo quant_info_type() const {
2230 return static_cast<tosa::QuantInfo>(GetField<uint8_t>(VT_QUANT_INFO_TYPE, 0));
2231 }
2232 const void *quant_info() const {
2233 return GetPointer<const void *>(VT_QUANT_INFO);
2234 }
2235 template<typename T> const T *quant_info_as() const;
2236 const tosa::UnaryQuantInfo *quant_info_as_UnaryQuantInfo() const {
2237 return quant_info_type() == tosa::QuantInfo_UnaryQuantInfo ? static_cast<const tosa::UnaryQuantInfo *>(quant_info()) : nullptr;
2238 }
2239 const tosa::ConvQuantInfo *quant_info_as_ConvQuantInfo() const {
2240 return quant_info_type() == tosa::QuantInfo_ConvQuantInfo ? static_cast<const tosa::ConvQuantInfo *>(quant_info()) : nullptr;
2241 }
2242 const tosa::MatMulQuantInfo *quant_info_as_MatMulQuantInfo() const {
2243 return quant_info_type() == tosa::QuantInfo_MatMulQuantInfo ? static_cast<const tosa::MatMulQuantInfo *>(quant_info()) : nullptr;
2244 }
2245 const tosa::PadQuantInfo *quant_info_as_PadQuantInfo() const {
2246 return quant_info_type() == tosa::QuantInfo_PadQuantInfo ? static_cast<const tosa::PadQuantInfo *>(quant_info()) : nullptr;
2247 }
2248 bool Verify(flatbuffers::Verifier &verifier) const {
2249 return VerifyTableStart(verifier) &&
2250 VerifyField<uint32_t>(verifier, VT_OP) &&
2251 VerifyField<uint8_t>(verifier, VT_ATTRIBUTE_TYPE) &&
2252 VerifyOffset(verifier, VT_ATTRIBUTE) &&
2253 VerifyAttribute(verifier, attribute(), attribute_type()) &&
2254 VerifyOffset(verifier, VT_INPUTS) &&
2255 verifier.VerifyVector(inputs()) &&
2256 verifier.VerifyVectorOfStrings(inputs()) &&
2257 VerifyOffset(verifier, VT_OUTPUTS) &&
2258 verifier.VerifyVector(outputs()) &&
2259 verifier.VerifyVectorOfStrings(outputs()) &&
2260 VerifyField<uint8_t>(verifier, VT_QUANT_INFO_TYPE) &&
2261 VerifyOffset(verifier, VT_QUANT_INFO) &&
2262 VerifyQuantInfo(verifier, quant_info(), quant_info_type()) &&
2263 verifier.EndTable();
2264 }
2265};
2266
Kevin Cheng79a41992021-08-31 16:04:40 -07002267template<> inline const tosa::PoolAttribute *TosaOperator::attribute_as<tosa::PoolAttribute>() const {
2268 return attribute_as_PoolAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002269}
2270
Kevin Cheng79a41992021-08-31 16:04:40 -07002271template<> inline const tosa::ConvAttribute *TosaOperator::attribute_as<tosa::ConvAttribute>() const {
2272 return attribute_as_ConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002273}
2274
Kevin Cheng79a41992021-08-31 16:04:40 -07002275template<> inline const tosa::TransposeConvAttribute *TosaOperator::attribute_as<tosa::TransposeConvAttribute>() const {
2276 return attribute_as_TransposeConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002277}
2278
Kevin Cheng38d214c2021-10-15 15:49:19 -07002279template<> inline const tosa::PadAttribute *TosaOperator::attribute_as<tosa::PadAttribute>() const {
2280 return attribute_as_PadAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002281}
2282
2283template<> inline const tosa::AxisAttribute *TosaOperator::attribute_as<tosa::AxisAttribute>() const {
2284 return attribute_as_AxisAttribute();
2285}
2286
2287template<> inline const tosa::ReshapeAttribute *TosaOperator::attribute_as<tosa::ReshapeAttribute>() const {
2288 return attribute_as_ReshapeAttribute();
2289}
2290
2291template<> inline const tosa::SliceAttribute *TosaOperator::attribute_as<tosa::SliceAttribute>() const {
2292 return attribute_as_SliceAttribute();
2293}
2294
2295template<> inline const tosa::TileAttribute *TosaOperator::attribute_as<tosa::TileAttribute>() const {
2296 return attribute_as_TileAttribute();
2297}
2298
2299template<> inline const tosa::ResizeAttribute *TosaOperator::attribute_as<tosa::ResizeAttribute>() const {
2300 return attribute_as_ResizeAttribute();
2301}
2302
2303template<> inline const tosa::ClampAttribute *TosaOperator::attribute_as<tosa::ClampAttribute>() const {
2304 return attribute_as_ClampAttribute();
2305}
2306
2307template<> inline const tosa::RescaleAttribute *TosaOperator::attribute_as<tosa::RescaleAttribute>() const {
2308 return attribute_as_RescaleAttribute();
2309}
2310
2311template<> inline const tosa::MulAttribute *TosaOperator::attribute_as<tosa::MulAttribute>() const {
2312 return attribute_as_MulAttribute();
2313}
2314
2315template<> inline const tosa::ArithmeticRightShiftAttribute *TosaOperator::attribute_as<tosa::ArithmeticRightShiftAttribute>() const {
2316 return attribute_as_ArithmeticRightShiftAttribute();
2317}
2318
2319template<> inline const tosa::CondIfAttribute *TosaOperator::attribute_as<tosa::CondIfAttribute>() const {
2320 return attribute_as_CondIfAttribute();
2321}
2322
2323template<> inline const tosa::WhileLoopAttribute *TosaOperator::attribute_as<tosa::WhileLoopAttribute>() const {
2324 return attribute_as_WhileLoopAttribute();
2325}
2326
Kevin Cheng38d214c2021-10-15 15:49:19 -07002327template<> inline const tosa::TransposeAttribute *TosaOperator::attribute_as<tosa::TransposeAttribute>() const {
2328 return attribute_as_TransposeAttribute();
2329}
2330
2331template<> inline const tosa::TableAttribute *TosaOperator::attribute_as<tosa::TableAttribute>() const {
2332 return attribute_as_TableAttribute();
2333}
2334
Eric Kunze2364dcd2021-04-26 11:06:57 -07002335template<> inline const tosa::UnaryQuantInfo *TosaOperator::quant_info_as<tosa::UnaryQuantInfo>() const {
2336 return quant_info_as_UnaryQuantInfo();
2337}
2338
2339template<> inline const tosa::ConvQuantInfo *TosaOperator::quant_info_as<tosa::ConvQuantInfo>() const {
2340 return quant_info_as_ConvQuantInfo();
2341}
2342
2343template<> inline const tosa::MatMulQuantInfo *TosaOperator::quant_info_as<tosa::MatMulQuantInfo>() const {
2344 return quant_info_as_MatMulQuantInfo();
2345}
2346
2347template<> inline const tosa::PadQuantInfo *TosaOperator::quant_info_as<tosa::PadQuantInfo>() const {
2348 return quant_info_as_PadQuantInfo();
2349}
2350
2351struct TosaOperatorBuilder {
2352 typedef TosaOperator Table;
2353 flatbuffers::FlatBufferBuilder &fbb_;
2354 flatbuffers::uoffset_t start_;
2355 void add_op(tosa::Op op) {
2356 fbb_.AddElement<uint32_t>(TosaOperator::VT_OP, static_cast<uint32_t>(op), 0);
2357 }
2358 void add_attribute_type(tosa::Attribute attribute_type) {
2359 fbb_.AddElement<uint8_t>(TosaOperator::VT_ATTRIBUTE_TYPE, static_cast<uint8_t>(attribute_type), 0);
2360 }
2361 void add_attribute(flatbuffers::Offset<void> attribute) {
2362 fbb_.AddOffset(TosaOperator::VT_ATTRIBUTE, attribute);
2363 }
2364 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2365 fbb_.AddOffset(TosaOperator::VT_INPUTS, inputs);
2366 }
2367 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2368 fbb_.AddOffset(TosaOperator::VT_OUTPUTS, outputs);
2369 }
2370 void add_quant_info_type(tosa::QuantInfo quant_info_type) {
2371 fbb_.AddElement<uint8_t>(TosaOperator::VT_QUANT_INFO_TYPE, static_cast<uint8_t>(quant_info_type), 0);
2372 }
2373 void add_quant_info(flatbuffers::Offset<void> quant_info) {
2374 fbb_.AddOffset(TosaOperator::VT_QUANT_INFO, quant_info);
2375 }
2376 explicit TosaOperatorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2377 : fbb_(_fbb) {
2378 start_ = fbb_.StartTable();
2379 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002380 flatbuffers::Offset<TosaOperator> Finish() {
2381 const auto end = fbb_.EndTable(start_);
2382 auto o = flatbuffers::Offset<TosaOperator>(end);
2383 return o;
2384 }
2385};
2386
2387inline flatbuffers::Offset<TosaOperator> CreateTosaOperator(
2388 flatbuffers::FlatBufferBuilder &_fbb,
2389 tosa::Op op = tosa::Op_UNKNOWN,
2390 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2391 flatbuffers::Offset<void> attribute = 0,
2392 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
2393 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0,
2394 tosa::QuantInfo quant_info_type = tosa::QuantInfo_NONE,
2395 flatbuffers::Offset<void> quant_info = 0) {
2396 TosaOperatorBuilder builder_(_fbb);
2397 builder_.add_quant_info(quant_info);
2398 builder_.add_outputs(outputs);
2399 builder_.add_inputs(inputs);
2400 builder_.add_attribute(attribute);
2401 builder_.add_op(op);
2402 builder_.add_quant_info_type(quant_info_type);
2403 builder_.add_attribute_type(attribute_type);
2404 return builder_.Finish();
2405}
2406
2407inline flatbuffers::Offset<TosaOperator> CreateTosaOperatorDirect(
2408 flatbuffers::FlatBufferBuilder &_fbb,
2409 tosa::Op op = tosa::Op_UNKNOWN,
2410 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2411 flatbuffers::Offset<void> attribute = 0,
2412 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
2413 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr,
2414 tosa::QuantInfo quant_info_type = tosa::QuantInfo_NONE,
2415 flatbuffers::Offset<void> quant_info = 0) {
2416 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2417 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2418 return tosa::CreateTosaOperator(
2419 _fbb,
2420 op,
2421 attribute_type,
2422 attribute,
2423 inputs__,
2424 outputs__,
2425 quant_info_type,
2426 quant_info);
2427}
2428
2429struct TosaBasicBlock FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2430 typedef TosaBasicBlockBuilder Builder;
2431 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2432 VT_NAME = 4,
2433 VT_OPERATORS = 6,
2434 VT_TENSORS = 8,
2435 VT_INPUTS = 10,
2436 VT_OUTPUTS = 12
2437 };
2438 const flatbuffers::String *name() const {
2439 return GetPointer<const flatbuffers::String *>(VT_NAME);
2440 }
2441 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *operators() const {
2442 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *>(VT_OPERATORS);
2443 }
2444 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors() const {
2445 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *>(VT_TENSORS);
2446 }
2447 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2448 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2449 }
2450 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2451 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2452 }
2453 bool Verify(flatbuffers::Verifier &verifier) const {
2454 return VerifyTableStart(verifier) &&
2455 VerifyOffset(verifier, VT_NAME) &&
2456 verifier.VerifyString(name()) &&
2457 VerifyOffset(verifier, VT_OPERATORS) &&
2458 verifier.VerifyVector(operators()) &&
2459 verifier.VerifyVectorOfTables(operators()) &&
2460 VerifyOffset(verifier, VT_TENSORS) &&
2461 verifier.VerifyVector(tensors()) &&
2462 verifier.VerifyVectorOfTables(tensors()) &&
2463 VerifyOffset(verifier, VT_INPUTS) &&
2464 verifier.VerifyVector(inputs()) &&
2465 verifier.VerifyVectorOfStrings(inputs()) &&
2466 VerifyOffset(verifier, VT_OUTPUTS) &&
2467 verifier.VerifyVector(outputs()) &&
2468 verifier.VerifyVectorOfStrings(outputs()) &&
2469 verifier.EndTable();
2470 }
2471};
2472
2473struct TosaBasicBlockBuilder {
2474 typedef TosaBasicBlock Table;
2475 flatbuffers::FlatBufferBuilder &fbb_;
2476 flatbuffers::uoffset_t start_;
2477 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2478 fbb_.AddOffset(TosaBasicBlock::VT_NAME, name);
2479 }
2480 void add_operators(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators) {
2481 fbb_.AddOffset(TosaBasicBlock::VT_OPERATORS, operators);
2482 }
2483 void add_tensors(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors) {
2484 fbb_.AddOffset(TosaBasicBlock::VT_TENSORS, tensors);
2485 }
2486 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2487 fbb_.AddOffset(TosaBasicBlock::VT_INPUTS, inputs);
2488 }
2489 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2490 fbb_.AddOffset(TosaBasicBlock::VT_OUTPUTS, outputs);
2491 }
2492 explicit TosaBasicBlockBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2493 : fbb_(_fbb) {
2494 start_ = fbb_.StartTable();
2495 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002496 flatbuffers::Offset<TosaBasicBlock> Finish() {
2497 const auto end = fbb_.EndTable(start_);
2498 auto o = flatbuffers::Offset<TosaBasicBlock>(end);
2499 return o;
2500 }
2501};
2502
2503inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlock(
2504 flatbuffers::FlatBufferBuilder &_fbb,
2505 flatbuffers::Offset<flatbuffers::String> name = 0,
2506 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators = 0,
2507 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors = 0,
2508 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
2509 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
2510 TosaBasicBlockBuilder builder_(_fbb);
2511 builder_.add_outputs(outputs);
2512 builder_.add_inputs(inputs);
2513 builder_.add_tensors(tensors);
2514 builder_.add_operators(operators);
2515 builder_.add_name(name);
2516 return builder_.Finish();
2517}
2518
2519inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlockDirect(
2520 flatbuffers::FlatBufferBuilder &_fbb,
2521 const char *name = nullptr,
2522 const std::vector<flatbuffers::Offset<tosa::TosaOperator>> *operators = nullptr,
2523 const std::vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors = nullptr,
2524 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
2525 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
2526 auto name__ = name ? _fbb.CreateString(name) : 0;
2527 auto operators__ = operators ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaOperator>>(*operators) : 0;
2528 auto tensors__ = tensors ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaTensor>>(*tensors) : 0;
2529 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2530 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2531 return tosa::CreateTosaBasicBlock(
2532 _fbb,
2533 name__,
2534 operators__,
2535 tensors__,
2536 inputs__,
2537 outputs__);
2538}
2539
2540struct TosaGraph FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2541 typedef TosaGraphBuilder Builder;
2542 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2543 VT_VERSION = 4,
2544 VT_BLOCKS = 6
2545 };
2546 const tosa::Version *version() const {
2547 return GetPointer<const tosa::Version *>(VT_VERSION);
2548 }
2549 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks() const {
2550 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *>(VT_BLOCKS);
2551 }
2552 bool Verify(flatbuffers::Verifier &verifier) const {
2553 return VerifyTableStart(verifier) &&
2554 VerifyOffset(verifier, VT_VERSION) &&
2555 verifier.VerifyTable(version()) &&
2556 VerifyOffset(verifier, VT_BLOCKS) &&
2557 verifier.VerifyVector(blocks()) &&
2558 verifier.VerifyVectorOfTables(blocks()) &&
2559 verifier.EndTable();
2560 }
2561};
2562
2563struct TosaGraphBuilder {
2564 typedef TosaGraph Table;
2565 flatbuffers::FlatBufferBuilder &fbb_;
2566 flatbuffers::uoffset_t start_;
2567 void add_version(flatbuffers::Offset<tosa::Version> version) {
2568 fbb_.AddOffset(TosaGraph::VT_VERSION, version);
2569 }
2570 void add_blocks(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks) {
2571 fbb_.AddOffset(TosaGraph::VT_BLOCKS, blocks);
2572 }
2573 explicit TosaGraphBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2574 : fbb_(_fbb) {
2575 start_ = fbb_.StartTable();
2576 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002577 flatbuffers::Offset<TosaGraph> Finish() {
2578 const auto end = fbb_.EndTable(start_);
2579 auto o = flatbuffers::Offset<TosaGraph>(end);
2580 return o;
2581 }
2582};
2583
2584inline flatbuffers::Offset<TosaGraph> CreateTosaGraph(
2585 flatbuffers::FlatBufferBuilder &_fbb,
2586 flatbuffers::Offset<tosa::Version> version = 0,
2587 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks = 0) {
2588 TosaGraphBuilder builder_(_fbb);
2589 builder_.add_blocks(blocks);
2590 builder_.add_version(version);
2591 return builder_.Finish();
2592}
2593
2594inline flatbuffers::Offset<TosaGraph> CreateTosaGraphDirect(
2595 flatbuffers::FlatBufferBuilder &_fbb,
2596 flatbuffers::Offset<tosa::Version> version = 0,
2597 const std::vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks = nullptr) {
2598 auto blocks__ = blocks ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaBasicBlock>>(*blocks) : 0;
2599 return tosa::CreateTosaGraph(
2600 _fbb,
2601 version,
2602 blocks__);
2603}
2604
2605inline bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type) {
2606 switch (type) {
2607 case Attribute_NONE: {
2608 return true;
2609 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002610 case Attribute_PoolAttribute: {
2611 auto ptr = reinterpret_cast<const tosa::PoolAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002612 return verifier.VerifyTable(ptr);
2613 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002614 case Attribute_ConvAttribute: {
2615 auto ptr = reinterpret_cast<const tosa::ConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002616 return verifier.VerifyTable(ptr);
2617 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002618 case Attribute_TransposeConvAttribute: {
2619 auto ptr = reinterpret_cast<const tosa::TransposeConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002620 return verifier.VerifyTable(ptr);
2621 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002622 case Attribute_PadAttribute: {
2623 auto ptr = reinterpret_cast<const tosa::PadAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002624 return verifier.VerifyTable(ptr);
2625 }
2626 case Attribute_AxisAttribute: {
2627 auto ptr = reinterpret_cast<const tosa::AxisAttribute *>(obj);
2628 return verifier.VerifyTable(ptr);
2629 }
2630 case Attribute_ReshapeAttribute: {
2631 auto ptr = reinterpret_cast<const tosa::ReshapeAttribute *>(obj);
2632 return verifier.VerifyTable(ptr);
2633 }
2634 case Attribute_SliceAttribute: {
2635 auto ptr = reinterpret_cast<const tosa::SliceAttribute *>(obj);
2636 return verifier.VerifyTable(ptr);
2637 }
2638 case Attribute_TileAttribute: {
2639 auto ptr = reinterpret_cast<const tosa::TileAttribute *>(obj);
2640 return verifier.VerifyTable(ptr);
2641 }
2642 case Attribute_ResizeAttribute: {
2643 auto ptr = reinterpret_cast<const tosa::ResizeAttribute *>(obj);
2644 return verifier.VerifyTable(ptr);
2645 }
2646 case Attribute_ClampAttribute: {
2647 auto ptr = reinterpret_cast<const tosa::ClampAttribute *>(obj);
2648 return verifier.VerifyTable(ptr);
2649 }
2650 case Attribute_RescaleAttribute: {
2651 auto ptr = reinterpret_cast<const tosa::RescaleAttribute *>(obj);
2652 return verifier.VerifyTable(ptr);
2653 }
2654 case Attribute_MulAttribute: {
2655 auto ptr = reinterpret_cast<const tosa::MulAttribute *>(obj);
2656 return verifier.VerifyTable(ptr);
2657 }
2658 case Attribute_ArithmeticRightShiftAttribute: {
2659 auto ptr = reinterpret_cast<const tosa::ArithmeticRightShiftAttribute *>(obj);
2660 return verifier.VerifyTable(ptr);
2661 }
2662 case Attribute_CondIfAttribute: {
2663 auto ptr = reinterpret_cast<const tosa::CondIfAttribute *>(obj);
2664 return verifier.VerifyTable(ptr);
2665 }
2666 case Attribute_WhileLoopAttribute: {
2667 auto ptr = reinterpret_cast<const tosa::WhileLoopAttribute *>(obj);
2668 return verifier.VerifyTable(ptr);
2669 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002670 case Attribute_TransposeAttribute: {
2671 auto ptr = reinterpret_cast<const tosa::TransposeAttribute *>(obj);
2672 return verifier.VerifyTable(ptr);
2673 }
2674 case Attribute_TableAttribute: {
2675 auto ptr = reinterpret_cast<const tosa::TableAttribute *>(obj);
2676 return verifier.VerifyTable(ptr);
2677 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002678 default: return true;
2679 }
2680}
2681
2682inline bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
2683 if (!values || !types) return !values && !types;
2684 if (values->size() != types->size()) return false;
2685 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
2686 if (!VerifyAttribute(
2687 verifier, values->Get(i), types->GetEnum<Attribute>(i))) {
2688 return false;
2689 }
2690 }
2691 return true;
2692}
2693
2694inline bool VerifyQuantInfo(flatbuffers::Verifier &verifier, const void *obj, QuantInfo type) {
2695 switch (type) {
2696 case QuantInfo_NONE: {
2697 return true;
2698 }
2699 case QuantInfo_UnaryQuantInfo: {
2700 auto ptr = reinterpret_cast<const tosa::UnaryQuantInfo *>(obj);
2701 return verifier.VerifyTable(ptr);
2702 }
2703 case QuantInfo_ConvQuantInfo: {
2704 auto ptr = reinterpret_cast<const tosa::ConvQuantInfo *>(obj);
2705 return verifier.VerifyTable(ptr);
2706 }
2707 case QuantInfo_MatMulQuantInfo: {
2708 auto ptr = reinterpret_cast<const tosa::MatMulQuantInfo *>(obj);
2709 return verifier.VerifyTable(ptr);
2710 }
2711 case QuantInfo_PadQuantInfo: {
2712 auto ptr = reinterpret_cast<const tosa::PadQuantInfo *>(obj);
2713 return verifier.VerifyTable(ptr);
2714 }
2715 default: return true;
2716 }
2717}
2718
2719inline bool VerifyQuantInfoVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
2720 if (!values || !types) return !values && !types;
2721 if (values->size() != types->size()) return false;
2722 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
2723 if (!VerifyQuantInfo(
2724 verifier, values->Get(i), types->GetEnum<QuantInfo>(i))) {
2725 return false;
2726 }
2727 }
2728 return true;
2729}
2730
2731inline const tosa::TosaGraph *GetTosaGraph(const void *buf) {
2732 return flatbuffers::GetRoot<tosa::TosaGraph>(buf);
2733}
2734
2735inline const tosa::TosaGraph *GetSizePrefixedTosaGraph(const void *buf) {
2736 return flatbuffers::GetSizePrefixedRoot<tosa::TosaGraph>(buf);
2737}
2738
2739inline const char *TosaGraphIdentifier() {
2740 return "TOSA";
2741}
2742
2743inline bool TosaGraphBufferHasIdentifier(const void *buf) {
2744 return flatbuffers::BufferHasIdentifier(
2745 buf, TosaGraphIdentifier());
2746}
2747
2748inline bool VerifyTosaGraphBuffer(
2749 flatbuffers::Verifier &verifier) {
2750 return verifier.VerifyBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2751}
2752
2753inline bool VerifySizePrefixedTosaGraphBuffer(
2754 flatbuffers::Verifier &verifier) {
2755 return verifier.VerifySizePrefixedBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2756}
2757
2758inline const char *TosaGraphExtension() {
2759 return "tosa";
2760}
2761
2762inline void FinishTosaGraphBuffer(
2763 flatbuffers::FlatBufferBuilder &fbb,
2764 flatbuffers::Offset<tosa::TosaGraph> root) {
2765 fbb.Finish(root, TosaGraphIdentifier());
2766}
2767
2768inline void FinishSizePrefixedTosaGraphBuffer(
2769 flatbuffers::FlatBufferBuilder &fbb,
2770 flatbuffers::Offset<tosa::TosaGraph> root) {
2771 fbb.FinishSizePrefixed(root, TosaGraphIdentifier());
2772}
2773
2774} // namespace tosa
2775
2776#endif // FLATBUFFERS_GENERATED_TOSA_TOSA_H_