blob: 735aca802d4bcdb14f2b33f49baa41ca27d14277 [file] [log] [blame]
Eric Kunze2364dcd2021-04-26 11:06:57 -07001
2// Copyright (c) 2020-2021, ARM Limited.
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15
16// automatically generated by the FlatBuffers compiler, do not modify
17
18
19#ifndef FLATBUFFERS_GENERATED_TOSA_TOSA_H_
20#define FLATBUFFERS_GENERATED_TOSA_TOSA_H_
21
22#include "flatbuffers/flatbuffers.h"
23
24namespace tosa {
25
26struct Pool2dAttribute;
27struct Pool2dAttributeBuilder;
28
29struct Conv2dAttribute;
30struct Conv2dAttributeBuilder;
31
32struct TransposeConv2dAttribute;
33struct TransposeConv2dAttributeBuilder;
34
35struct ReluNAttribute;
36struct ReluNAttributeBuilder;
37
38struct AxisAttribute;
39struct AxisAttributeBuilder;
40
41struct ReshapeAttribute;
42struct ReshapeAttributeBuilder;
43
44struct SliceAttribute;
45struct SliceAttributeBuilder;
46
47struct TileAttribute;
48struct TileAttributeBuilder;
49
50struct ResizeAttribute;
51struct ResizeAttributeBuilder;
52
53struct ClampAttribute;
54struct ClampAttributeBuilder;
55
56struct RescaleAttribute;
57struct RescaleAttributeBuilder;
58
59struct MulAttribute;
60struct MulAttributeBuilder;
61
62struct ArithmeticRightShiftAttribute;
63struct ArithmeticRightShiftAttributeBuilder;
64
65struct CondIfAttribute;
66struct CondIfAttributeBuilder;
67
68struct WhileLoopAttribute;
69struct WhileLoopAttributeBuilder;
70
71struct UnaryQuantInfo;
72struct UnaryQuantInfoBuilder;
73
74struct ConvQuantInfo;
75struct ConvQuantInfoBuilder;
76
77struct MatMulQuantInfo;
78struct MatMulQuantInfoBuilder;
79
80struct PadQuantInfo;
81struct PadQuantInfoBuilder;
82
83struct Version;
84struct VersionBuilder;
85
86struct TosaTensor;
87struct TosaTensorBuilder;
88
89struct TosaOperator;
90struct TosaOperatorBuilder;
91
92struct TosaBasicBlock;
93struct TosaBasicBlockBuilder;
94
95struct TosaGraph;
96struct TosaGraphBuilder;
97
98enum DType {
99 DType_UNKNOWN = 0,
100 DType_BOOL = 1,
101 DType_UINT8 = 2,
102 DType_INT4 = 3,
103 DType_INT8 = 4,
104 DType_INT16 = 5,
105 DType_INT32 = 6,
106 DType_INT48 = 7,
107 DType_FLOAT = 8,
108 DType_MIN = DType_UNKNOWN,
109 DType_MAX = DType_FLOAT
110};
111
112inline const DType (&EnumValuesDType())[9] {
113 static const DType values[] = {
114 DType_UNKNOWN,
115 DType_BOOL,
116 DType_UINT8,
117 DType_INT4,
118 DType_INT8,
119 DType_INT16,
120 DType_INT32,
121 DType_INT48,
122 DType_FLOAT
123 };
124 return values;
125}
126
127inline const char * const *EnumNamesDType() {
128 static const char * const names[10] = {
129 "UNKNOWN",
130 "BOOL",
131 "UINT8",
132 "INT4",
133 "INT8",
134 "INT16",
135 "INT32",
136 "INT48",
137 "FLOAT",
138 nullptr
139 };
140 return names;
141}
142
143inline const char *EnumNameDType(DType e) {
144 if (flatbuffers::IsOutRange(e, DType_UNKNOWN, DType_FLOAT)) return "";
145 const size_t index = static_cast<size_t>(e);
146 return EnumNamesDType()[index];
147}
148
149enum ResizeMode {
150 ResizeMode_UNKNOWN = 0,
151 ResizeMode_NEAREST = 1,
152 ResizeMode_BILINEAR = 2,
153 ResizeMode_MIN = ResizeMode_UNKNOWN,
154 ResizeMode_MAX = ResizeMode_BILINEAR
155};
156
157inline const ResizeMode (&EnumValuesResizeMode())[3] {
158 static const ResizeMode values[] = {
159 ResizeMode_UNKNOWN,
160 ResizeMode_NEAREST,
161 ResizeMode_BILINEAR
162 };
163 return values;
164}
165
166inline const char * const *EnumNamesResizeMode() {
167 static const char * const names[4] = {
168 "UNKNOWN",
169 "NEAREST",
170 "BILINEAR",
171 nullptr
172 };
173 return names;
174}
175
176inline const char *EnumNameResizeMode(ResizeMode e) {
177 if (flatbuffers::IsOutRange(e, ResizeMode_UNKNOWN, ResizeMode_BILINEAR)) return "";
178 const size_t index = static_cast<size_t>(e);
179 return EnumNamesResizeMode()[index];
180}
181
182enum Op {
183 Op_UNKNOWN = 0,
184 Op_ARGMAX = 1,
185 Op_AVG_POOL2D = 2,
186 Op_CONV2D = 3,
187 Op_CONV3D = 4,
188 Op_DEPTHWISE_CONV2D = 5,
189 Op_FULLY_CONNECTED = 6,
190 Op_MATMUL = 7,
191 Op_MAX_POOL2D = 8,
192 Op_TRANSPOSE_CONV2D = 9,
193 Op_CLAMP = 10,
194 Op_RELUN = 11,
195 Op_SIGMOID = 12,
196 Op_TANH = 13,
197 Op_ADD = 14,
198 Op_ARITHMETIC_RIGHT_SHIFT = 15,
199 Op_BITWISE_AND = 16,
200 Op_BITWISE_OR = 17,
201 Op_BITWISE_XOR = 18,
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700202 Op_DIV = 19,
203 Op_LOGICAL_AND = 20,
204 Op_LOGICAL_LEFT_SHIFT = 21,
205 Op_LOGICAL_RIGHT_SHIFT = 22,
206 Op_LOGICAL_OR = 23,
207 Op_LOGICAL_XOR = 24,
208 Op_MAXIMUM = 25,
209 Op_MINIMUM = 26,
210 Op_MUL = 27,
211 Op_POW = 28,
212 Op_SUB = 29,
213 Op_TABLE = 30,
214 Op_ABS = 31,
215 Op_BITWISE_NOT = 32,
216 Op_CEIL = 33,
217 Op_CLZ = 34,
218 Op_EXP = 35,
219 Op_FLOOR = 36,
220 Op_LOG = 37,
221 Op_LOGICAL_NOT = 38,
222 Op_NEGATE = 39,
223 Op_RECIPROCAL = 40,
224 Op_RSQRT = 41,
225 Op_SELECT = 42,
226 Op_EQUAL = 43,
227 Op_GREATER = 44,
228 Op_GREATER_EQUAL = 45,
229 Op_REDUCE_ANY = 46,
230 Op_REDUCE_ALL = 47,
231 Op_REDUCE_MAX = 48,
232 Op_REDUCE_MIN = 49,
233 Op_REDUCE_PRODUCT = 50,
234 Op_REDUCE_SUM = 51,
235 Op_CONCAT = 52,
236 Op_PAD = 53,
237 Op_RESHAPE = 54,
238 Op_REVERSE = 55,
239 Op_SLICE = 56,
240 Op_TILE = 57,
241 Op_TRANSPOSE = 58,
242 Op_GATHER = 59,
243 Op_SCATTER = 60,
244 Op_RESIZE = 61,
245 Op_CAST = 62,
246 Op_RESCALE = 63,
247 Op_CONST = 64,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700248 Op_IDENTITY = 65,
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700249 Op_CUSTOM = 66,
250 Op_COND_IF = 67,
251 Op_WHILE_LOOP = 68,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700252 Op_MIN = Op_UNKNOWN,
253 Op_MAX = Op_WHILE_LOOP
254};
255
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700256inline const Op (&EnumValuesOp())[69] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700257 static const Op values[] = {
258 Op_UNKNOWN,
259 Op_ARGMAX,
260 Op_AVG_POOL2D,
261 Op_CONV2D,
262 Op_CONV3D,
263 Op_DEPTHWISE_CONV2D,
264 Op_FULLY_CONNECTED,
265 Op_MATMUL,
266 Op_MAX_POOL2D,
267 Op_TRANSPOSE_CONV2D,
268 Op_CLAMP,
269 Op_RELUN,
270 Op_SIGMOID,
271 Op_TANH,
272 Op_ADD,
273 Op_ARITHMETIC_RIGHT_SHIFT,
274 Op_BITWISE_AND,
275 Op_BITWISE_OR,
276 Op_BITWISE_XOR,
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700277 Op_DIV,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700278 Op_LOGICAL_AND,
279 Op_LOGICAL_LEFT_SHIFT,
280 Op_LOGICAL_RIGHT_SHIFT,
281 Op_LOGICAL_OR,
282 Op_LOGICAL_XOR,
283 Op_MAXIMUM,
284 Op_MINIMUM,
285 Op_MUL,
286 Op_POW,
287 Op_SUB,
288 Op_TABLE,
289 Op_ABS,
290 Op_BITWISE_NOT,
291 Op_CEIL,
292 Op_CLZ,
293 Op_EXP,
294 Op_FLOOR,
295 Op_LOG,
296 Op_LOGICAL_NOT,
297 Op_NEGATE,
298 Op_RECIPROCAL,
299 Op_RSQRT,
300 Op_SELECT,
301 Op_EQUAL,
302 Op_GREATER,
303 Op_GREATER_EQUAL,
304 Op_REDUCE_ANY,
305 Op_REDUCE_ALL,
306 Op_REDUCE_MAX,
307 Op_REDUCE_MIN,
308 Op_REDUCE_PRODUCT,
309 Op_REDUCE_SUM,
310 Op_CONCAT,
311 Op_PAD,
312 Op_RESHAPE,
313 Op_REVERSE,
314 Op_SLICE,
315 Op_TILE,
316 Op_TRANSPOSE,
317 Op_GATHER,
318 Op_SCATTER,
319 Op_RESIZE,
320 Op_CAST,
321 Op_RESCALE,
322 Op_CONST,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700323 Op_IDENTITY,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700324 Op_CUSTOM,
325 Op_COND_IF,
326 Op_WHILE_LOOP
327 };
328 return values;
329}
330
331inline const char * const *EnumNamesOp() {
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700332 static const char * const names[70] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700333 "UNKNOWN",
334 "ARGMAX",
335 "AVG_POOL2D",
336 "CONV2D",
337 "CONV3D",
338 "DEPTHWISE_CONV2D",
339 "FULLY_CONNECTED",
340 "MATMUL",
341 "MAX_POOL2D",
342 "TRANSPOSE_CONV2D",
343 "CLAMP",
344 "RELUN",
345 "SIGMOID",
346 "TANH",
347 "ADD",
348 "ARITHMETIC_RIGHT_SHIFT",
349 "BITWISE_AND",
350 "BITWISE_OR",
351 "BITWISE_XOR",
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700352 "DIV",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700353 "LOGICAL_AND",
354 "LOGICAL_LEFT_SHIFT",
355 "LOGICAL_RIGHT_SHIFT",
356 "LOGICAL_OR",
357 "LOGICAL_XOR",
358 "MAXIMUM",
359 "MINIMUM",
360 "MUL",
361 "POW",
362 "SUB",
363 "TABLE",
364 "ABS",
365 "BITWISE_NOT",
366 "CEIL",
367 "CLZ",
368 "EXP",
369 "FLOOR",
370 "LOG",
371 "LOGICAL_NOT",
372 "NEGATE",
373 "RECIPROCAL",
374 "RSQRT",
375 "SELECT",
376 "EQUAL",
377 "GREATER",
378 "GREATER_EQUAL",
379 "REDUCE_ANY",
380 "REDUCE_ALL",
381 "REDUCE_MAX",
382 "REDUCE_MIN",
383 "REDUCE_PRODUCT",
384 "REDUCE_SUM",
385 "CONCAT",
386 "PAD",
387 "RESHAPE",
388 "REVERSE",
389 "SLICE",
390 "TILE",
391 "TRANSPOSE",
392 "GATHER",
393 "SCATTER",
394 "RESIZE",
395 "CAST",
396 "RESCALE",
397 "CONST",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700398 "IDENTITY",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700399 "CUSTOM",
400 "COND_IF",
401 "WHILE_LOOP",
402 nullptr
403 };
404 return names;
405}
406
407inline const char *EnumNameOp(Op e) {
408 if (flatbuffers::IsOutRange(e, Op_UNKNOWN, Op_WHILE_LOOP)) return "";
409 const size_t index = static_cast<size_t>(e);
410 return EnumNamesOp()[index];
411}
412
413enum Attribute {
414 Attribute_NONE = 0,
415 Attribute_Pool2dAttribute = 1,
416 Attribute_Conv2dAttribute = 2,
417 Attribute_TransposeConv2dAttribute = 3,
418 Attribute_ReluNAttribute = 4,
419 Attribute_AxisAttribute = 5,
420 Attribute_ReshapeAttribute = 6,
421 Attribute_SliceAttribute = 7,
422 Attribute_TileAttribute = 8,
423 Attribute_ResizeAttribute = 9,
424 Attribute_ClampAttribute = 10,
425 Attribute_RescaleAttribute = 11,
426 Attribute_MulAttribute = 12,
427 Attribute_ArithmeticRightShiftAttribute = 13,
428 Attribute_CondIfAttribute = 14,
429 Attribute_WhileLoopAttribute = 15,
430 Attribute_MIN = Attribute_NONE,
431 Attribute_MAX = Attribute_WhileLoopAttribute
432};
433
434inline const Attribute (&EnumValuesAttribute())[16] {
435 static const Attribute values[] = {
436 Attribute_NONE,
437 Attribute_Pool2dAttribute,
438 Attribute_Conv2dAttribute,
439 Attribute_TransposeConv2dAttribute,
440 Attribute_ReluNAttribute,
441 Attribute_AxisAttribute,
442 Attribute_ReshapeAttribute,
443 Attribute_SliceAttribute,
444 Attribute_TileAttribute,
445 Attribute_ResizeAttribute,
446 Attribute_ClampAttribute,
447 Attribute_RescaleAttribute,
448 Attribute_MulAttribute,
449 Attribute_ArithmeticRightShiftAttribute,
450 Attribute_CondIfAttribute,
451 Attribute_WhileLoopAttribute
452 };
453 return values;
454}
455
456inline const char * const *EnumNamesAttribute() {
457 static const char * const names[17] = {
458 "NONE",
459 "Pool2dAttribute",
460 "Conv2dAttribute",
461 "TransposeConv2dAttribute",
462 "ReluNAttribute",
463 "AxisAttribute",
464 "ReshapeAttribute",
465 "SliceAttribute",
466 "TileAttribute",
467 "ResizeAttribute",
468 "ClampAttribute",
469 "RescaleAttribute",
470 "MulAttribute",
471 "ArithmeticRightShiftAttribute",
472 "CondIfAttribute",
473 "WhileLoopAttribute",
474 nullptr
475 };
476 return names;
477}
478
479inline const char *EnumNameAttribute(Attribute e) {
480 if (flatbuffers::IsOutRange(e, Attribute_NONE, Attribute_WhileLoopAttribute)) return "";
481 const size_t index = static_cast<size_t>(e);
482 return EnumNamesAttribute()[index];
483}
484
485template<typename T> struct AttributeTraits {
486 static const Attribute enum_value = Attribute_NONE;
487};
488
489template<> struct AttributeTraits<tosa::Pool2dAttribute> {
490 static const Attribute enum_value = Attribute_Pool2dAttribute;
491};
492
493template<> struct AttributeTraits<tosa::Conv2dAttribute> {
494 static const Attribute enum_value = Attribute_Conv2dAttribute;
495};
496
497template<> struct AttributeTraits<tosa::TransposeConv2dAttribute> {
498 static const Attribute enum_value = Attribute_TransposeConv2dAttribute;
499};
500
501template<> struct AttributeTraits<tosa::ReluNAttribute> {
502 static const Attribute enum_value = Attribute_ReluNAttribute;
503};
504
505template<> struct AttributeTraits<tosa::AxisAttribute> {
506 static const Attribute enum_value = Attribute_AxisAttribute;
507};
508
509template<> struct AttributeTraits<tosa::ReshapeAttribute> {
510 static const Attribute enum_value = Attribute_ReshapeAttribute;
511};
512
513template<> struct AttributeTraits<tosa::SliceAttribute> {
514 static const Attribute enum_value = Attribute_SliceAttribute;
515};
516
517template<> struct AttributeTraits<tosa::TileAttribute> {
518 static const Attribute enum_value = Attribute_TileAttribute;
519};
520
521template<> struct AttributeTraits<tosa::ResizeAttribute> {
522 static const Attribute enum_value = Attribute_ResizeAttribute;
523};
524
525template<> struct AttributeTraits<tosa::ClampAttribute> {
526 static const Attribute enum_value = Attribute_ClampAttribute;
527};
528
529template<> struct AttributeTraits<tosa::RescaleAttribute> {
530 static const Attribute enum_value = Attribute_RescaleAttribute;
531};
532
533template<> struct AttributeTraits<tosa::MulAttribute> {
534 static const Attribute enum_value = Attribute_MulAttribute;
535};
536
537template<> struct AttributeTraits<tosa::ArithmeticRightShiftAttribute> {
538 static const Attribute enum_value = Attribute_ArithmeticRightShiftAttribute;
539};
540
541template<> struct AttributeTraits<tosa::CondIfAttribute> {
542 static const Attribute enum_value = Attribute_CondIfAttribute;
543};
544
545template<> struct AttributeTraits<tosa::WhileLoopAttribute> {
546 static const Attribute enum_value = Attribute_WhileLoopAttribute;
547};
548
549bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type);
550bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types);
551
552enum QuantInfo {
553 QuantInfo_NONE = 0,
554 QuantInfo_UnaryQuantInfo = 1,
555 QuantInfo_ConvQuantInfo = 2,
556 QuantInfo_MatMulQuantInfo = 3,
557 QuantInfo_PadQuantInfo = 4,
558 QuantInfo_MIN = QuantInfo_NONE,
559 QuantInfo_MAX = QuantInfo_PadQuantInfo
560};
561
562inline const QuantInfo (&EnumValuesQuantInfo())[5] {
563 static const QuantInfo values[] = {
564 QuantInfo_NONE,
565 QuantInfo_UnaryQuantInfo,
566 QuantInfo_ConvQuantInfo,
567 QuantInfo_MatMulQuantInfo,
568 QuantInfo_PadQuantInfo
569 };
570 return values;
571}
572
573inline const char * const *EnumNamesQuantInfo() {
574 static const char * const names[6] = {
575 "NONE",
576 "UnaryQuantInfo",
577 "ConvQuantInfo",
578 "MatMulQuantInfo",
579 "PadQuantInfo",
580 nullptr
581 };
582 return names;
583}
584
585inline const char *EnumNameQuantInfo(QuantInfo e) {
586 if (flatbuffers::IsOutRange(e, QuantInfo_NONE, QuantInfo_PadQuantInfo)) return "";
587 const size_t index = static_cast<size_t>(e);
588 return EnumNamesQuantInfo()[index];
589}
590
591template<typename T> struct QuantInfoTraits {
592 static const QuantInfo enum_value = QuantInfo_NONE;
593};
594
595template<> struct QuantInfoTraits<tosa::UnaryQuantInfo> {
596 static const QuantInfo enum_value = QuantInfo_UnaryQuantInfo;
597};
598
599template<> struct QuantInfoTraits<tosa::ConvQuantInfo> {
600 static const QuantInfo enum_value = QuantInfo_ConvQuantInfo;
601};
602
603template<> struct QuantInfoTraits<tosa::MatMulQuantInfo> {
604 static const QuantInfo enum_value = QuantInfo_MatMulQuantInfo;
605};
606
607template<> struct QuantInfoTraits<tosa::PadQuantInfo> {
608 static const QuantInfo enum_value = QuantInfo_PadQuantInfo;
609};
610
611bool VerifyQuantInfo(flatbuffers::Verifier &verifier, const void *obj, QuantInfo type);
612bool VerifyQuantInfoVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types);
613
614struct Pool2dAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
615 typedef Pool2dAttributeBuilder Builder;
616 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
617 VT_PADDING = 4,
618 VT_KERNEL = 6,
619 VT_STRIDE = 8
620 };
621 const flatbuffers::Vector<int32_t> *padding() const {
622 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PADDING);
623 }
624 const flatbuffers::Vector<int32_t> *kernel() const {
625 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_KERNEL);
626 }
627 const flatbuffers::Vector<int32_t> *stride() const {
628 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
629 }
630 bool Verify(flatbuffers::Verifier &verifier) const {
631 return VerifyTableStart(verifier) &&
632 VerifyOffset(verifier, VT_PADDING) &&
633 verifier.VerifyVector(padding()) &&
634 VerifyOffset(verifier, VT_KERNEL) &&
635 verifier.VerifyVector(kernel()) &&
636 VerifyOffset(verifier, VT_STRIDE) &&
637 verifier.VerifyVector(stride()) &&
638 verifier.EndTable();
639 }
640};
641
642struct Pool2dAttributeBuilder {
643 typedef Pool2dAttribute Table;
644 flatbuffers::FlatBufferBuilder &fbb_;
645 flatbuffers::uoffset_t start_;
646 void add_padding(flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding) {
647 fbb_.AddOffset(Pool2dAttribute::VT_PADDING, padding);
648 }
649 void add_kernel(flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel) {
650 fbb_.AddOffset(Pool2dAttribute::VT_KERNEL, kernel);
651 }
652 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
653 fbb_.AddOffset(Pool2dAttribute::VT_STRIDE, stride);
654 }
655 explicit Pool2dAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
656 : fbb_(_fbb) {
657 start_ = fbb_.StartTable();
658 }
659 Pool2dAttributeBuilder &operator=(const Pool2dAttributeBuilder &);
660 flatbuffers::Offset<Pool2dAttribute> Finish() {
661 const auto end = fbb_.EndTable(start_);
662 auto o = flatbuffers::Offset<Pool2dAttribute>(end);
663 return o;
664 }
665};
666
667inline flatbuffers::Offset<Pool2dAttribute> CreatePool2dAttribute(
668 flatbuffers::FlatBufferBuilder &_fbb,
669 flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding = 0,
670 flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel = 0,
671 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0) {
672 Pool2dAttributeBuilder builder_(_fbb);
673 builder_.add_stride(stride);
674 builder_.add_kernel(kernel);
675 builder_.add_padding(padding);
676 return builder_.Finish();
677}
678
679inline flatbuffers::Offset<Pool2dAttribute> CreatePool2dAttributeDirect(
680 flatbuffers::FlatBufferBuilder &_fbb,
681 const std::vector<int32_t> *padding = nullptr,
682 const std::vector<int32_t> *kernel = nullptr,
683 const std::vector<int32_t> *stride = nullptr) {
684 auto padding__ = padding ? _fbb.CreateVector<int32_t>(*padding) : 0;
685 auto kernel__ = kernel ? _fbb.CreateVector<int32_t>(*kernel) : 0;
686 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
687 return tosa::CreatePool2dAttribute(
688 _fbb,
689 padding__,
690 kernel__,
691 stride__);
692}
693
694struct Conv2dAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
695 typedef Conv2dAttributeBuilder Builder;
696 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
697 VT_PADDING = 4,
698 VT_STRIDE = 6,
699 VT_DILATION = 8
700 };
701 const flatbuffers::Vector<int32_t> *padding() const {
702 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PADDING);
703 }
704 const flatbuffers::Vector<int32_t> *stride() const {
705 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
706 }
707 const flatbuffers::Vector<int32_t> *dilation() const {
708 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_DILATION);
709 }
710 bool Verify(flatbuffers::Verifier &verifier) const {
711 return VerifyTableStart(verifier) &&
712 VerifyOffset(verifier, VT_PADDING) &&
713 verifier.VerifyVector(padding()) &&
714 VerifyOffset(verifier, VT_STRIDE) &&
715 verifier.VerifyVector(stride()) &&
716 VerifyOffset(verifier, VT_DILATION) &&
717 verifier.VerifyVector(dilation()) &&
718 verifier.EndTable();
719 }
720};
721
722struct Conv2dAttributeBuilder {
723 typedef Conv2dAttribute Table;
724 flatbuffers::FlatBufferBuilder &fbb_;
725 flatbuffers::uoffset_t start_;
726 void add_padding(flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding) {
727 fbb_.AddOffset(Conv2dAttribute::VT_PADDING, padding);
728 }
729 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
730 fbb_.AddOffset(Conv2dAttribute::VT_STRIDE, stride);
731 }
732 void add_dilation(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation) {
733 fbb_.AddOffset(Conv2dAttribute::VT_DILATION, dilation);
734 }
735 explicit Conv2dAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
736 : fbb_(_fbb) {
737 start_ = fbb_.StartTable();
738 }
739 Conv2dAttributeBuilder &operator=(const Conv2dAttributeBuilder &);
740 flatbuffers::Offset<Conv2dAttribute> Finish() {
741 const auto end = fbb_.EndTable(start_);
742 auto o = flatbuffers::Offset<Conv2dAttribute>(end);
743 return o;
744 }
745};
746
747inline flatbuffers::Offset<Conv2dAttribute> CreateConv2dAttribute(
748 flatbuffers::FlatBufferBuilder &_fbb,
749 flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding = 0,
750 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
751 flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation = 0) {
752 Conv2dAttributeBuilder builder_(_fbb);
753 builder_.add_dilation(dilation);
754 builder_.add_stride(stride);
755 builder_.add_padding(padding);
756 return builder_.Finish();
757}
758
759inline flatbuffers::Offset<Conv2dAttribute> CreateConv2dAttributeDirect(
760 flatbuffers::FlatBufferBuilder &_fbb,
761 const std::vector<int32_t> *padding = nullptr,
762 const std::vector<int32_t> *stride = nullptr,
763 const std::vector<int32_t> *dilation = nullptr) {
764 auto padding__ = padding ? _fbb.CreateVector<int32_t>(*padding) : 0;
765 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
766 auto dilation__ = dilation ? _fbb.CreateVector<int32_t>(*dilation) : 0;
767 return tosa::CreateConv2dAttribute(
768 _fbb,
769 padding__,
770 stride__,
771 dilation__);
772}
773
774struct TransposeConv2dAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
775 typedef TransposeConv2dAttributeBuilder Builder;
776 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
777 VT_OUTPAD = 4,
778 VT_STRIDE = 6,
779 VT_DILATION = 8,
780 VT_OUTPUT_SHAPE = 10
781 };
782 const flatbuffers::Vector<int32_t> *outpad() const {
783 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPAD);
784 }
785 const flatbuffers::Vector<int32_t> *stride() const {
786 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
787 }
788 const flatbuffers::Vector<int32_t> *dilation() const {
789 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_DILATION);
790 }
791 const flatbuffers::Vector<int32_t> *output_shape() const {
792 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUT_SHAPE);
793 }
794 bool Verify(flatbuffers::Verifier &verifier) const {
795 return VerifyTableStart(verifier) &&
796 VerifyOffset(verifier, VT_OUTPAD) &&
797 verifier.VerifyVector(outpad()) &&
798 VerifyOffset(verifier, VT_STRIDE) &&
799 verifier.VerifyVector(stride()) &&
800 VerifyOffset(verifier, VT_DILATION) &&
801 verifier.VerifyVector(dilation()) &&
802 VerifyOffset(verifier, VT_OUTPUT_SHAPE) &&
803 verifier.VerifyVector(output_shape()) &&
804 verifier.EndTable();
805 }
806};
807
808struct TransposeConv2dAttributeBuilder {
809 typedef TransposeConv2dAttribute Table;
810 flatbuffers::FlatBufferBuilder &fbb_;
811 flatbuffers::uoffset_t start_;
812 void add_outpad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> outpad) {
813 fbb_.AddOffset(TransposeConv2dAttribute::VT_OUTPAD, outpad);
814 }
815 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
816 fbb_.AddOffset(TransposeConv2dAttribute::VT_STRIDE, stride);
817 }
818 void add_dilation(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation) {
819 fbb_.AddOffset(TransposeConv2dAttribute::VT_DILATION, dilation);
820 }
821 void add_output_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape) {
822 fbb_.AddOffset(TransposeConv2dAttribute::VT_OUTPUT_SHAPE, output_shape);
823 }
824 explicit TransposeConv2dAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
825 : fbb_(_fbb) {
826 start_ = fbb_.StartTable();
827 }
828 TransposeConv2dAttributeBuilder &operator=(const TransposeConv2dAttributeBuilder &);
829 flatbuffers::Offset<TransposeConv2dAttribute> Finish() {
830 const auto end = fbb_.EndTable(start_);
831 auto o = flatbuffers::Offset<TransposeConv2dAttribute>(end);
832 return o;
833 }
834};
835
836inline flatbuffers::Offset<TransposeConv2dAttribute> CreateTransposeConv2dAttribute(
837 flatbuffers::FlatBufferBuilder &_fbb,
838 flatbuffers::Offset<flatbuffers::Vector<int32_t>> outpad = 0,
839 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
840 flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation = 0,
841 flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape = 0) {
842 TransposeConv2dAttributeBuilder builder_(_fbb);
843 builder_.add_output_shape(output_shape);
844 builder_.add_dilation(dilation);
845 builder_.add_stride(stride);
846 builder_.add_outpad(outpad);
847 return builder_.Finish();
848}
849
850inline flatbuffers::Offset<TransposeConv2dAttribute> CreateTransposeConv2dAttributeDirect(
851 flatbuffers::FlatBufferBuilder &_fbb,
852 const std::vector<int32_t> *outpad = nullptr,
853 const std::vector<int32_t> *stride = nullptr,
854 const std::vector<int32_t> *dilation = nullptr,
855 const std::vector<int32_t> *output_shape = nullptr) {
856 auto outpad__ = outpad ? _fbb.CreateVector<int32_t>(*outpad) : 0;
857 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
858 auto dilation__ = dilation ? _fbb.CreateVector<int32_t>(*dilation) : 0;
859 auto output_shape__ = output_shape ? _fbb.CreateVector<int32_t>(*output_shape) : 0;
860 return tosa::CreateTransposeConv2dAttribute(
861 _fbb,
862 outpad__,
863 stride__,
864 dilation__,
865 output_shape__);
866}
867
868struct ReluNAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
869 typedef ReluNAttributeBuilder Builder;
870 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
871 VT_MAX_INT = 4,
872 VT_MAX_FP = 6
873 };
874 int32_t max_int() const {
875 return GetField<int32_t>(VT_MAX_INT, 0);
876 }
877 float max_fp() const {
878 return GetField<float>(VT_MAX_FP, 0.0f);
879 }
880 bool Verify(flatbuffers::Verifier &verifier) const {
881 return VerifyTableStart(verifier) &&
882 VerifyField<int32_t>(verifier, VT_MAX_INT) &&
883 VerifyField<float>(verifier, VT_MAX_FP) &&
884 verifier.EndTable();
885 }
886};
887
888struct ReluNAttributeBuilder {
889 typedef ReluNAttribute Table;
890 flatbuffers::FlatBufferBuilder &fbb_;
891 flatbuffers::uoffset_t start_;
892 void add_max_int(int32_t max_int) {
893 fbb_.AddElement<int32_t>(ReluNAttribute::VT_MAX_INT, max_int, 0);
894 }
895 void add_max_fp(float max_fp) {
896 fbb_.AddElement<float>(ReluNAttribute::VT_MAX_FP, max_fp, 0.0f);
897 }
898 explicit ReluNAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
899 : fbb_(_fbb) {
900 start_ = fbb_.StartTable();
901 }
902 ReluNAttributeBuilder &operator=(const ReluNAttributeBuilder &);
903 flatbuffers::Offset<ReluNAttribute> Finish() {
904 const auto end = fbb_.EndTable(start_);
905 auto o = flatbuffers::Offset<ReluNAttribute>(end);
906 return o;
907 }
908};
909
910inline flatbuffers::Offset<ReluNAttribute> CreateReluNAttribute(
911 flatbuffers::FlatBufferBuilder &_fbb,
912 int32_t max_int = 0,
913 float max_fp = 0.0f) {
914 ReluNAttributeBuilder builder_(_fbb);
915 builder_.add_max_fp(max_fp);
916 builder_.add_max_int(max_int);
917 return builder_.Finish();
918}
919
920struct AxisAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
921 typedef AxisAttributeBuilder Builder;
922 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
923 VT_AXIS = 4
924 };
925 int32_t axis() const {
926 return GetField<int32_t>(VT_AXIS, 0);
927 }
928 bool Verify(flatbuffers::Verifier &verifier) const {
929 return VerifyTableStart(verifier) &&
930 VerifyField<int32_t>(verifier, VT_AXIS) &&
931 verifier.EndTable();
932 }
933};
934
935struct AxisAttributeBuilder {
936 typedef AxisAttribute Table;
937 flatbuffers::FlatBufferBuilder &fbb_;
938 flatbuffers::uoffset_t start_;
939 void add_axis(int32_t axis) {
940 fbb_.AddElement<int32_t>(AxisAttribute::VT_AXIS, axis, 0);
941 }
942 explicit AxisAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
943 : fbb_(_fbb) {
944 start_ = fbb_.StartTable();
945 }
946 AxisAttributeBuilder &operator=(const AxisAttributeBuilder &);
947 flatbuffers::Offset<AxisAttribute> Finish() {
948 const auto end = fbb_.EndTable(start_);
949 auto o = flatbuffers::Offset<AxisAttribute>(end);
950 return o;
951 }
952};
953
954inline flatbuffers::Offset<AxisAttribute> CreateAxisAttribute(
955 flatbuffers::FlatBufferBuilder &_fbb,
956 int32_t axis = 0) {
957 AxisAttributeBuilder builder_(_fbb);
958 builder_.add_axis(axis);
959 return builder_.Finish();
960}
961
962struct ReshapeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
963 typedef ReshapeAttributeBuilder Builder;
964 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
965 VT_SHAPE = 4
966 };
967 const flatbuffers::Vector<int32_t> *shape() const {
968 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHAPE);
969 }
970 bool Verify(flatbuffers::Verifier &verifier) const {
971 return VerifyTableStart(verifier) &&
972 VerifyOffset(verifier, VT_SHAPE) &&
973 verifier.VerifyVector(shape()) &&
974 verifier.EndTable();
975 }
976};
977
978struct ReshapeAttributeBuilder {
979 typedef ReshapeAttribute Table;
980 flatbuffers::FlatBufferBuilder &fbb_;
981 flatbuffers::uoffset_t start_;
982 void add_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape) {
983 fbb_.AddOffset(ReshapeAttribute::VT_SHAPE, shape);
984 }
985 explicit ReshapeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
986 : fbb_(_fbb) {
987 start_ = fbb_.StartTable();
988 }
989 ReshapeAttributeBuilder &operator=(const ReshapeAttributeBuilder &);
990 flatbuffers::Offset<ReshapeAttribute> Finish() {
991 const auto end = fbb_.EndTable(start_);
992 auto o = flatbuffers::Offset<ReshapeAttribute>(end);
993 return o;
994 }
995};
996
997inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttribute(
998 flatbuffers::FlatBufferBuilder &_fbb,
999 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape = 0) {
1000 ReshapeAttributeBuilder builder_(_fbb);
1001 builder_.add_shape(shape);
1002 return builder_.Finish();
1003}
1004
1005inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttributeDirect(
1006 flatbuffers::FlatBufferBuilder &_fbb,
1007 const std::vector<int32_t> *shape = nullptr) {
1008 auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0;
1009 return tosa::CreateReshapeAttribute(
1010 _fbb,
1011 shape__);
1012}
1013
1014struct SliceAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1015 typedef SliceAttributeBuilder Builder;
1016 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1017 VT_BEGIN = 4,
1018 VT_SIZE = 6
1019 };
1020 const flatbuffers::Vector<int32_t> *begin() const {
1021 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_BEGIN);
1022 }
1023 const flatbuffers::Vector<int32_t> *size() const {
1024 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SIZE);
1025 }
1026 bool Verify(flatbuffers::Verifier &verifier) const {
1027 return VerifyTableStart(verifier) &&
1028 VerifyOffset(verifier, VT_BEGIN) &&
1029 verifier.VerifyVector(begin()) &&
1030 VerifyOffset(verifier, VT_SIZE) &&
1031 verifier.VerifyVector(size()) &&
1032 verifier.EndTable();
1033 }
1034};
1035
1036struct SliceAttributeBuilder {
1037 typedef SliceAttribute Table;
1038 flatbuffers::FlatBufferBuilder &fbb_;
1039 flatbuffers::uoffset_t start_;
1040 void add_begin(flatbuffers::Offset<flatbuffers::Vector<int32_t>> begin) {
1041 fbb_.AddOffset(SliceAttribute::VT_BEGIN, begin);
1042 }
1043 void add_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> size) {
1044 fbb_.AddOffset(SliceAttribute::VT_SIZE, size);
1045 }
1046 explicit SliceAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1047 : fbb_(_fbb) {
1048 start_ = fbb_.StartTable();
1049 }
1050 SliceAttributeBuilder &operator=(const SliceAttributeBuilder &);
1051 flatbuffers::Offset<SliceAttribute> Finish() {
1052 const auto end = fbb_.EndTable(start_);
1053 auto o = flatbuffers::Offset<SliceAttribute>(end);
1054 return o;
1055 }
1056};
1057
1058inline flatbuffers::Offset<SliceAttribute> CreateSliceAttribute(
1059 flatbuffers::FlatBufferBuilder &_fbb,
1060 flatbuffers::Offset<flatbuffers::Vector<int32_t>> begin = 0,
1061 flatbuffers::Offset<flatbuffers::Vector<int32_t>> size = 0) {
1062 SliceAttributeBuilder builder_(_fbb);
1063 builder_.add_size(size);
1064 builder_.add_begin(begin);
1065 return builder_.Finish();
1066}
1067
1068inline flatbuffers::Offset<SliceAttribute> CreateSliceAttributeDirect(
1069 flatbuffers::FlatBufferBuilder &_fbb,
1070 const std::vector<int32_t> *begin = nullptr,
1071 const std::vector<int32_t> *size = nullptr) {
1072 auto begin__ = begin ? _fbb.CreateVector<int32_t>(*begin) : 0;
1073 auto size__ = size ? _fbb.CreateVector<int32_t>(*size) : 0;
1074 return tosa::CreateSliceAttribute(
1075 _fbb,
1076 begin__,
1077 size__);
1078}
1079
1080struct TileAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1081 typedef TileAttributeBuilder Builder;
1082 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1083 VT_MULTIPLES = 4
1084 };
1085 const flatbuffers::Vector<int32_t> *multiples() const {
1086 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLES);
1087 }
1088 bool Verify(flatbuffers::Verifier &verifier) const {
1089 return VerifyTableStart(verifier) &&
1090 VerifyOffset(verifier, VT_MULTIPLES) &&
1091 verifier.VerifyVector(multiples()) &&
1092 verifier.EndTable();
1093 }
1094};
1095
1096struct TileAttributeBuilder {
1097 typedef TileAttribute Table;
1098 flatbuffers::FlatBufferBuilder &fbb_;
1099 flatbuffers::uoffset_t start_;
1100 void add_multiples(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples) {
1101 fbb_.AddOffset(TileAttribute::VT_MULTIPLES, multiples);
1102 }
1103 explicit TileAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1104 : fbb_(_fbb) {
1105 start_ = fbb_.StartTable();
1106 }
1107 TileAttributeBuilder &operator=(const TileAttributeBuilder &);
1108 flatbuffers::Offset<TileAttribute> Finish() {
1109 const auto end = fbb_.EndTable(start_);
1110 auto o = flatbuffers::Offset<TileAttribute>(end);
1111 return o;
1112 }
1113};
1114
1115inline flatbuffers::Offset<TileAttribute> CreateTileAttribute(
1116 flatbuffers::FlatBufferBuilder &_fbb,
1117 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples = 0) {
1118 TileAttributeBuilder builder_(_fbb);
1119 builder_.add_multiples(multiples);
1120 return builder_.Finish();
1121}
1122
1123inline flatbuffers::Offset<TileAttribute> CreateTileAttributeDirect(
1124 flatbuffers::FlatBufferBuilder &_fbb,
1125 const std::vector<int32_t> *multiples = nullptr) {
1126 auto multiples__ = multiples ? _fbb.CreateVector<int32_t>(*multiples) : 0;
1127 return tosa::CreateTileAttribute(
1128 _fbb,
1129 multiples__);
1130}
1131
1132struct ResizeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1133 typedef ResizeAttributeBuilder Builder;
1134 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1135 VT_OUTPUT_SIZE = 4,
1136 VT_STRIDE = 6,
1137 VT_OFFSET = 8,
1138 VT_SHIFT = 10,
1139 VT_STRIDE_FP = 12,
1140 VT_OFFSET_FP = 14,
1141 VT_MODE = 16
1142 };
1143 const flatbuffers::Vector<int32_t> *output_size() const {
1144 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUT_SIZE);
1145 }
1146 const flatbuffers::Vector<int32_t> *stride() const {
1147 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
1148 }
1149 const flatbuffers::Vector<int32_t> *offset() const {
1150 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OFFSET);
1151 }
1152 int32_t shift() const {
1153 return GetField<int32_t>(VT_SHIFT, 0);
1154 }
1155 const flatbuffers::Vector<float> *stride_fp() const {
1156 return GetPointer<const flatbuffers::Vector<float> *>(VT_STRIDE_FP);
1157 }
1158 const flatbuffers::Vector<float> *offset_fp() const {
1159 return GetPointer<const flatbuffers::Vector<float> *>(VT_OFFSET_FP);
1160 }
1161 tosa::ResizeMode mode() const {
1162 return static_cast<tosa::ResizeMode>(GetField<uint32_t>(VT_MODE, 0));
1163 }
1164 bool Verify(flatbuffers::Verifier &verifier) const {
1165 return VerifyTableStart(verifier) &&
1166 VerifyOffset(verifier, VT_OUTPUT_SIZE) &&
1167 verifier.VerifyVector(output_size()) &&
1168 VerifyOffset(verifier, VT_STRIDE) &&
1169 verifier.VerifyVector(stride()) &&
1170 VerifyOffset(verifier, VT_OFFSET) &&
1171 verifier.VerifyVector(offset()) &&
1172 VerifyField<int32_t>(verifier, VT_SHIFT) &&
1173 VerifyOffset(verifier, VT_STRIDE_FP) &&
1174 verifier.VerifyVector(stride_fp()) &&
1175 VerifyOffset(verifier, VT_OFFSET_FP) &&
1176 verifier.VerifyVector(offset_fp()) &&
1177 VerifyField<uint32_t>(verifier, VT_MODE) &&
1178 verifier.EndTable();
1179 }
1180};
1181
1182struct ResizeAttributeBuilder {
1183 typedef ResizeAttribute Table;
1184 flatbuffers::FlatBufferBuilder &fbb_;
1185 flatbuffers::uoffset_t start_;
1186 void add_output_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_size) {
1187 fbb_.AddOffset(ResizeAttribute::VT_OUTPUT_SIZE, output_size);
1188 }
1189 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
1190 fbb_.AddOffset(ResizeAttribute::VT_STRIDE, stride);
1191 }
1192 void add_offset(flatbuffers::Offset<flatbuffers::Vector<int32_t>> offset) {
1193 fbb_.AddOffset(ResizeAttribute::VT_OFFSET, offset);
1194 }
1195 void add_shift(int32_t shift) {
1196 fbb_.AddElement<int32_t>(ResizeAttribute::VT_SHIFT, shift, 0);
1197 }
1198 void add_stride_fp(flatbuffers::Offset<flatbuffers::Vector<float>> stride_fp) {
1199 fbb_.AddOffset(ResizeAttribute::VT_STRIDE_FP, stride_fp);
1200 }
1201 void add_offset_fp(flatbuffers::Offset<flatbuffers::Vector<float>> offset_fp) {
1202 fbb_.AddOffset(ResizeAttribute::VT_OFFSET_FP, offset_fp);
1203 }
1204 void add_mode(tosa::ResizeMode mode) {
1205 fbb_.AddElement<uint32_t>(ResizeAttribute::VT_MODE, static_cast<uint32_t>(mode), 0);
1206 }
1207 explicit ResizeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1208 : fbb_(_fbb) {
1209 start_ = fbb_.StartTable();
1210 }
1211 ResizeAttributeBuilder &operator=(const ResizeAttributeBuilder &);
1212 flatbuffers::Offset<ResizeAttribute> Finish() {
1213 const auto end = fbb_.EndTable(start_);
1214 auto o = flatbuffers::Offset<ResizeAttribute>(end);
1215 return o;
1216 }
1217};
1218
1219inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttribute(
1220 flatbuffers::FlatBufferBuilder &_fbb,
1221 flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_size = 0,
1222 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
1223 flatbuffers::Offset<flatbuffers::Vector<int32_t>> offset = 0,
1224 int32_t shift = 0,
1225 flatbuffers::Offset<flatbuffers::Vector<float>> stride_fp = 0,
1226 flatbuffers::Offset<flatbuffers::Vector<float>> offset_fp = 0,
1227 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
1228 ResizeAttributeBuilder builder_(_fbb);
1229 builder_.add_mode(mode);
1230 builder_.add_offset_fp(offset_fp);
1231 builder_.add_stride_fp(stride_fp);
1232 builder_.add_shift(shift);
1233 builder_.add_offset(offset);
1234 builder_.add_stride(stride);
1235 builder_.add_output_size(output_size);
1236 return builder_.Finish();
1237}
1238
1239inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttributeDirect(
1240 flatbuffers::FlatBufferBuilder &_fbb,
1241 const std::vector<int32_t> *output_size = nullptr,
1242 const std::vector<int32_t> *stride = nullptr,
1243 const std::vector<int32_t> *offset = nullptr,
1244 int32_t shift = 0,
1245 const std::vector<float> *stride_fp = nullptr,
1246 const std::vector<float> *offset_fp = nullptr,
1247 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
1248 auto output_size__ = output_size ? _fbb.CreateVector<int32_t>(*output_size) : 0;
1249 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
1250 auto offset__ = offset ? _fbb.CreateVector<int32_t>(*offset) : 0;
1251 auto stride_fp__ = stride_fp ? _fbb.CreateVector<float>(*stride_fp) : 0;
1252 auto offset_fp__ = offset_fp ? _fbb.CreateVector<float>(*offset_fp) : 0;
1253 return tosa::CreateResizeAttribute(
1254 _fbb,
1255 output_size__,
1256 stride__,
1257 offset__,
1258 shift,
1259 stride_fp__,
1260 offset_fp__,
1261 mode);
1262}
1263
1264struct ClampAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1265 typedef ClampAttributeBuilder Builder;
1266 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1267 VT_MIN_INT = 4,
1268 VT_MAX_INT = 6,
1269 VT_MIN_FP = 8,
1270 VT_MAX_FP = 10
1271 };
1272 int32_t min_int() const {
1273 return GetField<int32_t>(VT_MIN_INT, 0);
1274 }
1275 int32_t max_int() const {
1276 return GetField<int32_t>(VT_MAX_INT, 0);
1277 }
1278 float min_fp() const {
1279 return GetField<float>(VT_MIN_FP, 0.0f);
1280 }
1281 float max_fp() const {
1282 return GetField<float>(VT_MAX_FP, 0.0f);
1283 }
1284 bool Verify(flatbuffers::Verifier &verifier) const {
1285 return VerifyTableStart(verifier) &&
1286 VerifyField<int32_t>(verifier, VT_MIN_INT) &&
1287 VerifyField<int32_t>(verifier, VT_MAX_INT) &&
1288 VerifyField<float>(verifier, VT_MIN_FP) &&
1289 VerifyField<float>(verifier, VT_MAX_FP) &&
1290 verifier.EndTable();
1291 }
1292};
1293
1294struct ClampAttributeBuilder {
1295 typedef ClampAttribute Table;
1296 flatbuffers::FlatBufferBuilder &fbb_;
1297 flatbuffers::uoffset_t start_;
1298 void add_min_int(int32_t min_int) {
1299 fbb_.AddElement<int32_t>(ClampAttribute::VT_MIN_INT, min_int, 0);
1300 }
1301 void add_max_int(int32_t max_int) {
1302 fbb_.AddElement<int32_t>(ClampAttribute::VT_MAX_INT, max_int, 0);
1303 }
1304 void add_min_fp(float min_fp) {
1305 fbb_.AddElement<float>(ClampAttribute::VT_MIN_FP, min_fp, 0.0f);
1306 }
1307 void add_max_fp(float max_fp) {
1308 fbb_.AddElement<float>(ClampAttribute::VT_MAX_FP, max_fp, 0.0f);
1309 }
1310 explicit ClampAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1311 : fbb_(_fbb) {
1312 start_ = fbb_.StartTable();
1313 }
1314 ClampAttributeBuilder &operator=(const ClampAttributeBuilder &);
1315 flatbuffers::Offset<ClampAttribute> Finish() {
1316 const auto end = fbb_.EndTable(start_);
1317 auto o = flatbuffers::Offset<ClampAttribute>(end);
1318 return o;
1319 }
1320};
1321
1322inline flatbuffers::Offset<ClampAttribute> CreateClampAttribute(
1323 flatbuffers::FlatBufferBuilder &_fbb,
1324 int32_t min_int = 0,
1325 int32_t max_int = 0,
1326 float min_fp = 0.0f,
1327 float max_fp = 0.0f) {
1328 ClampAttributeBuilder builder_(_fbb);
1329 builder_.add_max_fp(max_fp);
1330 builder_.add_min_fp(min_fp);
1331 builder_.add_max_int(max_int);
1332 builder_.add_min_int(min_int);
1333 return builder_.Finish();
1334}
1335
1336struct RescaleAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1337 typedef RescaleAttributeBuilder Builder;
1338 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1339 VT_INPUT_ZP = 4,
1340 VT_OUTPUT_ZP = 6,
1341 VT_MULTIPLIER = 8,
1342 VT_SHIFT = 10,
1343 VT_SCALE32 = 12,
1344 VT_DOUBLE_ROUND = 14,
1345 VT_PER_CHANNEL = 16
1346 };
1347 int32_t input_zp() const {
1348 return GetField<int32_t>(VT_INPUT_ZP, 0);
1349 }
1350 int32_t output_zp() const {
1351 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1352 }
1353 const flatbuffers::Vector<int32_t> *multiplier() const {
1354 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLIER);
1355 }
1356 const flatbuffers::Vector<int32_t> *shift() const {
1357 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHIFT);
1358 }
1359 bool scale32() const {
1360 return GetField<uint8_t>(VT_SCALE32, 0) != 0;
1361 }
1362 bool double_round() const {
1363 return GetField<uint8_t>(VT_DOUBLE_ROUND, 0) != 0;
1364 }
1365 bool per_channel() const {
1366 return GetField<uint8_t>(VT_PER_CHANNEL, 0) != 0;
1367 }
1368 bool Verify(flatbuffers::Verifier &verifier) const {
1369 return VerifyTableStart(verifier) &&
1370 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1371 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP) &&
1372 VerifyOffset(verifier, VT_MULTIPLIER) &&
1373 verifier.VerifyVector(multiplier()) &&
1374 VerifyOffset(verifier, VT_SHIFT) &&
1375 verifier.VerifyVector(shift()) &&
1376 VerifyField<uint8_t>(verifier, VT_SCALE32) &&
1377 VerifyField<uint8_t>(verifier, VT_DOUBLE_ROUND) &&
1378 VerifyField<uint8_t>(verifier, VT_PER_CHANNEL) &&
1379 verifier.EndTable();
1380 }
1381};
1382
1383struct RescaleAttributeBuilder {
1384 typedef RescaleAttribute Table;
1385 flatbuffers::FlatBufferBuilder &fbb_;
1386 flatbuffers::uoffset_t start_;
1387 void add_input_zp(int32_t input_zp) {
1388 fbb_.AddElement<int32_t>(RescaleAttribute::VT_INPUT_ZP, input_zp, 0);
1389 }
1390 void add_output_zp(int32_t output_zp) {
1391 fbb_.AddElement<int32_t>(RescaleAttribute::VT_OUTPUT_ZP, output_zp, 0);
1392 }
1393 void add_multiplier(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier) {
1394 fbb_.AddOffset(RescaleAttribute::VT_MULTIPLIER, multiplier);
1395 }
1396 void add_shift(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift) {
1397 fbb_.AddOffset(RescaleAttribute::VT_SHIFT, shift);
1398 }
1399 void add_scale32(bool scale32) {
1400 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_SCALE32, static_cast<uint8_t>(scale32), 0);
1401 }
1402 void add_double_round(bool double_round) {
1403 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_DOUBLE_ROUND, static_cast<uint8_t>(double_round), 0);
1404 }
1405 void add_per_channel(bool per_channel) {
1406 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_PER_CHANNEL, static_cast<uint8_t>(per_channel), 0);
1407 }
1408 explicit RescaleAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1409 : fbb_(_fbb) {
1410 start_ = fbb_.StartTable();
1411 }
1412 RescaleAttributeBuilder &operator=(const RescaleAttributeBuilder &);
1413 flatbuffers::Offset<RescaleAttribute> Finish() {
1414 const auto end = fbb_.EndTable(start_);
1415 auto o = flatbuffers::Offset<RescaleAttribute>(end);
1416 return o;
1417 }
1418};
1419
1420inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttribute(
1421 flatbuffers::FlatBufferBuilder &_fbb,
1422 int32_t input_zp = 0,
1423 int32_t output_zp = 0,
1424 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier = 0,
1425 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift = 0,
1426 bool scale32 = false,
1427 bool double_round = false,
1428 bool per_channel = false) {
1429 RescaleAttributeBuilder builder_(_fbb);
1430 builder_.add_shift(shift);
1431 builder_.add_multiplier(multiplier);
1432 builder_.add_output_zp(output_zp);
1433 builder_.add_input_zp(input_zp);
1434 builder_.add_per_channel(per_channel);
1435 builder_.add_double_round(double_round);
1436 builder_.add_scale32(scale32);
1437 return builder_.Finish();
1438}
1439
1440inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttributeDirect(
1441 flatbuffers::FlatBufferBuilder &_fbb,
1442 int32_t input_zp = 0,
1443 int32_t output_zp = 0,
1444 const std::vector<int32_t> *multiplier = nullptr,
1445 const std::vector<int32_t> *shift = nullptr,
1446 bool scale32 = false,
1447 bool double_round = false,
1448 bool per_channel = false) {
1449 auto multiplier__ = multiplier ? _fbb.CreateVector<int32_t>(*multiplier) : 0;
1450 auto shift__ = shift ? _fbb.CreateVector<int32_t>(*shift) : 0;
1451 return tosa::CreateRescaleAttribute(
1452 _fbb,
1453 input_zp,
1454 output_zp,
1455 multiplier__,
1456 shift__,
1457 scale32,
1458 double_round,
1459 per_channel);
1460}
1461
1462struct MulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1463 typedef MulAttributeBuilder Builder;
1464 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1465 VT_SHIFT = 4
1466 };
1467 int32_t shift() const {
1468 return GetField<int32_t>(VT_SHIFT, 0);
1469 }
1470 bool Verify(flatbuffers::Verifier &verifier) const {
1471 return VerifyTableStart(verifier) &&
1472 VerifyField<int32_t>(verifier, VT_SHIFT) &&
1473 verifier.EndTable();
1474 }
1475};
1476
1477struct MulAttributeBuilder {
1478 typedef MulAttribute Table;
1479 flatbuffers::FlatBufferBuilder &fbb_;
1480 flatbuffers::uoffset_t start_;
1481 void add_shift(int32_t shift) {
1482 fbb_.AddElement<int32_t>(MulAttribute::VT_SHIFT, shift, 0);
1483 }
1484 explicit MulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1485 : fbb_(_fbb) {
1486 start_ = fbb_.StartTable();
1487 }
1488 MulAttributeBuilder &operator=(const MulAttributeBuilder &);
1489 flatbuffers::Offset<MulAttribute> Finish() {
1490 const auto end = fbb_.EndTable(start_);
1491 auto o = flatbuffers::Offset<MulAttribute>(end);
1492 return o;
1493 }
1494};
1495
1496inline flatbuffers::Offset<MulAttribute> CreateMulAttribute(
1497 flatbuffers::FlatBufferBuilder &_fbb,
1498 int32_t shift = 0) {
1499 MulAttributeBuilder builder_(_fbb);
1500 builder_.add_shift(shift);
1501 return builder_.Finish();
1502}
1503
1504struct ArithmeticRightShiftAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1505 typedef ArithmeticRightShiftAttributeBuilder Builder;
1506 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1507 VT_ROUND = 4
1508 };
1509 bool round() const {
1510 return GetField<uint8_t>(VT_ROUND, 0) != 0;
1511 }
1512 bool Verify(flatbuffers::Verifier &verifier) const {
1513 return VerifyTableStart(verifier) &&
1514 VerifyField<uint8_t>(verifier, VT_ROUND) &&
1515 verifier.EndTable();
1516 }
1517};
1518
1519struct ArithmeticRightShiftAttributeBuilder {
1520 typedef ArithmeticRightShiftAttribute Table;
1521 flatbuffers::FlatBufferBuilder &fbb_;
1522 flatbuffers::uoffset_t start_;
1523 void add_round(bool round) {
1524 fbb_.AddElement<uint8_t>(ArithmeticRightShiftAttribute::VT_ROUND, static_cast<uint8_t>(round), 0);
1525 }
1526 explicit ArithmeticRightShiftAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1527 : fbb_(_fbb) {
1528 start_ = fbb_.StartTable();
1529 }
1530 ArithmeticRightShiftAttributeBuilder &operator=(const ArithmeticRightShiftAttributeBuilder &);
1531 flatbuffers::Offset<ArithmeticRightShiftAttribute> Finish() {
1532 const auto end = fbb_.EndTable(start_);
1533 auto o = flatbuffers::Offset<ArithmeticRightShiftAttribute>(end);
1534 return o;
1535 }
1536};
1537
1538inline flatbuffers::Offset<ArithmeticRightShiftAttribute> CreateArithmeticRightShiftAttribute(
1539 flatbuffers::FlatBufferBuilder &_fbb,
1540 bool round = false) {
1541 ArithmeticRightShiftAttributeBuilder builder_(_fbb);
1542 builder_.add_round(round);
1543 return builder_.Finish();
1544}
1545
1546struct CondIfAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1547 typedef CondIfAttributeBuilder Builder;
1548 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1549 VT_THEN_BRANCH = 4,
1550 VT_ELSE_BRANCH = 6
1551 };
1552 const flatbuffers::String *then_branch() const {
1553 return GetPointer<const flatbuffers::String *>(VT_THEN_BRANCH);
1554 }
1555 const flatbuffers::String *else_branch() const {
1556 return GetPointer<const flatbuffers::String *>(VT_ELSE_BRANCH);
1557 }
1558 bool Verify(flatbuffers::Verifier &verifier) const {
1559 return VerifyTableStart(verifier) &&
1560 VerifyOffset(verifier, VT_THEN_BRANCH) &&
1561 verifier.VerifyString(then_branch()) &&
1562 VerifyOffset(verifier, VT_ELSE_BRANCH) &&
1563 verifier.VerifyString(else_branch()) &&
1564 verifier.EndTable();
1565 }
1566};
1567
1568struct CondIfAttributeBuilder {
1569 typedef CondIfAttribute Table;
1570 flatbuffers::FlatBufferBuilder &fbb_;
1571 flatbuffers::uoffset_t start_;
1572 void add_then_branch(flatbuffers::Offset<flatbuffers::String> then_branch) {
1573 fbb_.AddOffset(CondIfAttribute::VT_THEN_BRANCH, then_branch);
1574 }
1575 void add_else_branch(flatbuffers::Offset<flatbuffers::String> else_branch) {
1576 fbb_.AddOffset(CondIfAttribute::VT_ELSE_BRANCH, else_branch);
1577 }
1578 explicit CondIfAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1579 : fbb_(_fbb) {
1580 start_ = fbb_.StartTable();
1581 }
1582 CondIfAttributeBuilder &operator=(const CondIfAttributeBuilder &);
1583 flatbuffers::Offset<CondIfAttribute> Finish() {
1584 const auto end = fbb_.EndTable(start_);
1585 auto o = flatbuffers::Offset<CondIfAttribute>(end);
1586 return o;
1587 }
1588};
1589
1590inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttribute(
1591 flatbuffers::FlatBufferBuilder &_fbb,
1592 flatbuffers::Offset<flatbuffers::String> then_branch = 0,
1593 flatbuffers::Offset<flatbuffers::String> else_branch = 0) {
1594 CondIfAttributeBuilder builder_(_fbb);
1595 builder_.add_else_branch(else_branch);
1596 builder_.add_then_branch(then_branch);
1597 return builder_.Finish();
1598}
1599
1600inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttributeDirect(
1601 flatbuffers::FlatBufferBuilder &_fbb,
1602 const char *then_branch = nullptr,
1603 const char *else_branch = nullptr) {
1604 auto then_branch__ = then_branch ? _fbb.CreateString(then_branch) : 0;
1605 auto else_branch__ = else_branch ? _fbb.CreateString(else_branch) : 0;
1606 return tosa::CreateCondIfAttribute(
1607 _fbb,
1608 then_branch__,
1609 else_branch__);
1610}
1611
1612struct WhileLoopAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1613 typedef WhileLoopAttributeBuilder Builder;
1614 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1615 VT_COND_BRANCH = 4,
1616 VT_BODY_BRANCH = 6
1617 };
1618 const flatbuffers::String *cond_branch() const {
1619 return GetPointer<const flatbuffers::String *>(VT_COND_BRANCH);
1620 }
1621 const flatbuffers::String *body_branch() const {
1622 return GetPointer<const flatbuffers::String *>(VT_BODY_BRANCH);
1623 }
1624 bool Verify(flatbuffers::Verifier &verifier) const {
1625 return VerifyTableStart(verifier) &&
1626 VerifyOffset(verifier, VT_COND_BRANCH) &&
1627 verifier.VerifyString(cond_branch()) &&
1628 VerifyOffset(verifier, VT_BODY_BRANCH) &&
1629 verifier.VerifyString(body_branch()) &&
1630 verifier.EndTable();
1631 }
1632};
1633
1634struct WhileLoopAttributeBuilder {
1635 typedef WhileLoopAttribute Table;
1636 flatbuffers::FlatBufferBuilder &fbb_;
1637 flatbuffers::uoffset_t start_;
1638 void add_cond_branch(flatbuffers::Offset<flatbuffers::String> cond_branch) {
1639 fbb_.AddOffset(WhileLoopAttribute::VT_COND_BRANCH, cond_branch);
1640 }
1641 void add_body_branch(flatbuffers::Offset<flatbuffers::String> body_branch) {
1642 fbb_.AddOffset(WhileLoopAttribute::VT_BODY_BRANCH, body_branch);
1643 }
1644 explicit WhileLoopAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1645 : fbb_(_fbb) {
1646 start_ = fbb_.StartTable();
1647 }
1648 WhileLoopAttributeBuilder &operator=(const WhileLoopAttributeBuilder &);
1649 flatbuffers::Offset<WhileLoopAttribute> Finish() {
1650 const auto end = fbb_.EndTable(start_);
1651 auto o = flatbuffers::Offset<WhileLoopAttribute>(end);
1652 return o;
1653 }
1654};
1655
1656inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttribute(
1657 flatbuffers::FlatBufferBuilder &_fbb,
1658 flatbuffers::Offset<flatbuffers::String> cond_branch = 0,
1659 flatbuffers::Offset<flatbuffers::String> body_branch = 0) {
1660 WhileLoopAttributeBuilder builder_(_fbb);
1661 builder_.add_body_branch(body_branch);
1662 builder_.add_cond_branch(cond_branch);
1663 return builder_.Finish();
1664}
1665
1666inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttributeDirect(
1667 flatbuffers::FlatBufferBuilder &_fbb,
1668 const char *cond_branch = nullptr,
1669 const char *body_branch = nullptr) {
1670 auto cond_branch__ = cond_branch ? _fbb.CreateString(cond_branch) : 0;
1671 auto body_branch__ = body_branch ? _fbb.CreateString(body_branch) : 0;
1672 return tosa::CreateWhileLoopAttribute(
1673 _fbb,
1674 cond_branch__,
1675 body_branch__);
1676}
1677
1678struct UnaryQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1679 typedef UnaryQuantInfoBuilder Builder;
1680 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1681 VT_INPUT_ZP = 4,
1682 VT_OUTPUT_ZP = 6
1683 };
1684 int32_t input_zp() const {
1685 return GetField<int32_t>(VT_INPUT_ZP, 0);
1686 }
1687 int32_t output_zp() const {
1688 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1689 }
1690 bool Verify(flatbuffers::Verifier &verifier) const {
1691 return VerifyTableStart(verifier) &&
1692 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1693 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP) &&
1694 verifier.EndTable();
1695 }
1696};
1697
1698struct UnaryQuantInfoBuilder {
1699 typedef UnaryQuantInfo Table;
1700 flatbuffers::FlatBufferBuilder &fbb_;
1701 flatbuffers::uoffset_t start_;
1702 void add_input_zp(int32_t input_zp) {
1703 fbb_.AddElement<int32_t>(UnaryQuantInfo::VT_INPUT_ZP, input_zp, 0);
1704 }
1705 void add_output_zp(int32_t output_zp) {
1706 fbb_.AddElement<int32_t>(UnaryQuantInfo::VT_OUTPUT_ZP, output_zp, 0);
1707 }
1708 explicit UnaryQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1709 : fbb_(_fbb) {
1710 start_ = fbb_.StartTable();
1711 }
1712 UnaryQuantInfoBuilder &operator=(const UnaryQuantInfoBuilder &);
1713 flatbuffers::Offset<UnaryQuantInfo> Finish() {
1714 const auto end = fbb_.EndTable(start_);
1715 auto o = flatbuffers::Offset<UnaryQuantInfo>(end);
1716 return o;
1717 }
1718};
1719
1720inline flatbuffers::Offset<UnaryQuantInfo> CreateUnaryQuantInfo(
1721 flatbuffers::FlatBufferBuilder &_fbb,
1722 int32_t input_zp = 0,
1723 int32_t output_zp = 0) {
1724 UnaryQuantInfoBuilder builder_(_fbb);
1725 builder_.add_output_zp(output_zp);
1726 builder_.add_input_zp(input_zp);
1727 return builder_.Finish();
1728}
1729
1730struct ConvQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1731 typedef ConvQuantInfoBuilder Builder;
1732 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1733 VT_INPUT_ZP = 4,
1734 VT_WEIGHT_ZP = 6
1735 };
1736 int32_t input_zp() const {
1737 return GetField<int32_t>(VT_INPUT_ZP, 0);
1738 }
1739 int32_t weight_zp() const {
1740 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
1741 }
1742 bool Verify(flatbuffers::Verifier &verifier) const {
1743 return VerifyTableStart(verifier) &&
1744 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1745 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP) &&
1746 verifier.EndTable();
1747 }
1748};
1749
1750struct ConvQuantInfoBuilder {
1751 typedef ConvQuantInfo Table;
1752 flatbuffers::FlatBufferBuilder &fbb_;
1753 flatbuffers::uoffset_t start_;
1754 void add_input_zp(int32_t input_zp) {
1755 fbb_.AddElement<int32_t>(ConvQuantInfo::VT_INPUT_ZP, input_zp, 0);
1756 }
1757 void add_weight_zp(int32_t weight_zp) {
1758 fbb_.AddElement<int32_t>(ConvQuantInfo::VT_WEIGHT_ZP, weight_zp, 0);
1759 }
1760 explicit ConvQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1761 : fbb_(_fbb) {
1762 start_ = fbb_.StartTable();
1763 }
1764 ConvQuantInfoBuilder &operator=(const ConvQuantInfoBuilder &);
1765 flatbuffers::Offset<ConvQuantInfo> Finish() {
1766 const auto end = fbb_.EndTable(start_);
1767 auto o = flatbuffers::Offset<ConvQuantInfo>(end);
1768 return o;
1769 }
1770};
1771
1772inline flatbuffers::Offset<ConvQuantInfo> CreateConvQuantInfo(
1773 flatbuffers::FlatBufferBuilder &_fbb,
1774 int32_t input_zp = 0,
1775 int32_t weight_zp = 0) {
1776 ConvQuantInfoBuilder builder_(_fbb);
1777 builder_.add_weight_zp(weight_zp);
1778 builder_.add_input_zp(input_zp);
1779 return builder_.Finish();
1780}
1781
1782struct MatMulQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1783 typedef MatMulQuantInfoBuilder Builder;
1784 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1785 VT_A_ZP = 4,
1786 VT_B_ZP = 6
1787 };
1788 int32_t a_zp() const {
1789 return GetField<int32_t>(VT_A_ZP, 0);
1790 }
1791 int32_t b_zp() const {
1792 return GetField<int32_t>(VT_B_ZP, 0);
1793 }
1794 bool Verify(flatbuffers::Verifier &verifier) const {
1795 return VerifyTableStart(verifier) &&
1796 VerifyField<int32_t>(verifier, VT_A_ZP) &&
1797 VerifyField<int32_t>(verifier, VT_B_ZP) &&
1798 verifier.EndTable();
1799 }
1800};
1801
1802struct MatMulQuantInfoBuilder {
1803 typedef MatMulQuantInfo Table;
1804 flatbuffers::FlatBufferBuilder &fbb_;
1805 flatbuffers::uoffset_t start_;
1806 void add_a_zp(int32_t a_zp) {
1807 fbb_.AddElement<int32_t>(MatMulQuantInfo::VT_A_ZP, a_zp, 0);
1808 }
1809 void add_b_zp(int32_t b_zp) {
1810 fbb_.AddElement<int32_t>(MatMulQuantInfo::VT_B_ZP, b_zp, 0);
1811 }
1812 explicit MatMulQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1813 : fbb_(_fbb) {
1814 start_ = fbb_.StartTable();
1815 }
1816 MatMulQuantInfoBuilder &operator=(const MatMulQuantInfoBuilder &);
1817 flatbuffers::Offset<MatMulQuantInfo> Finish() {
1818 const auto end = fbb_.EndTable(start_);
1819 auto o = flatbuffers::Offset<MatMulQuantInfo>(end);
1820 return o;
1821 }
1822};
1823
1824inline flatbuffers::Offset<MatMulQuantInfo> CreateMatMulQuantInfo(
1825 flatbuffers::FlatBufferBuilder &_fbb,
1826 int32_t a_zp = 0,
1827 int32_t b_zp = 0) {
1828 MatMulQuantInfoBuilder builder_(_fbb);
1829 builder_.add_b_zp(b_zp);
1830 builder_.add_a_zp(a_zp);
1831 return builder_.Finish();
1832}
1833
1834struct PadQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1835 typedef PadQuantInfoBuilder Builder;
1836 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1837 VT_INPUT_ZP = 4
1838 };
1839 int32_t input_zp() const {
1840 return GetField<int32_t>(VT_INPUT_ZP, 0);
1841 }
1842 bool Verify(flatbuffers::Verifier &verifier) const {
1843 return VerifyTableStart(verifier) &&
1844 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1845 verifier.EndTable();
1846 }
1847};
1848
1849struct PadQuantInfoBuilder {
1850 typedef PadQuantInfo Table;
1851 flatbuffers::FlatBufferBuilder &fbb_;
1852 flatbuffers::uoffset_t start_;
1853 void add_input_zp(int32_t input_zp) {
1854 fbb_.AddElement<int32_t>(PadQuantInfo::VT_INPUT_ZP, input_zp, 0);
1855 }
1856 explicit PadQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1857 : fbb_(_fbb) {
1858 start_ = fbb_.StartTable();
1859 }
1860 PadQuantInfoBuilder &operator=(const PadQuantInfoBuilder &);
1861 flatbuffers::Offset<PadQuantInfo> Finish() {
1862 const auto end = fbb_.EndTable(start_);
1863 auto o = flatbuffers::Offset<PadQuantInfo>(end);
1864 return o;
1865 }
1866};
1867
1868inline flatbuffers::Offset<PadQuantInfo> CreatePadQuantInfo(
1869 flatbuffers::FlatBufferBuilder &_fbb,
1870 int32_t input_zp = 0) {
1871 PadQuantInfoBuilder builder_(_fbb);
1872 builder_.add_input_zp(input_zp);
1873 return builder_.Finish();
1874}
1875
1876struct Version FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1877 typedef VersionBuilder Builder;
1878 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1879 VT__MAJOR = 4,
1880 VT__MINOR = 6,
1881 VT__PATCH = 8,
1882 VT__EXPERIMENTAL = 10
1883 };
1884 int32_t _major() const {
1885 return GetField<int32_t>(VT__MAJOR, 0);
1886 }
1887 int32_t _minor() const {
Kevin Chenga8b4eaf2021-05-10 13:14:00 -07001888 return GetField<int32_t>(VT__MINOR, 22);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001889 }
1890 int32_t _patch() const {
1891 return GetField<int32_t>(VT__PATCH, 0);
1892 }
1893 bool _experimental() const {
1894 return GetField<uint8_t>(VT__EXPERIMENTAL, 0) != 0;
1895 }
1896 bool Verify(flatbuffers::Verifier &verifier) const {
1897 return VerifyTableStart(verifier) &&
1898 VerifyField<int32_t>(verifier, VT__MAJOR) &&
1899 VerifyField<int32_t>(verifier, VT__MINOR) &&
1900 VerifyField<int32_t>(verifier, VT__PATCH) &&
1901 VerifyField<uint8_t>(verifier, VT__EXPERIMENTAL) &&
1902 verifier.EndTable();
1903 }
1904};
1905
1906struct VersionBuilder {
1907 typedef Version Table;
1908 flatbuffers::FlatBufferBuilder &fbb_;
1909 flatbuffers::uoffset_t start_;
1910 void add__major(int32_t _major) {
1911 fbb_.AddElement<int32_t>(Version::VT__MAJOR, _major, 0);
1912 }
1913 void add__minor(int32_t _minor) {
Kevin Chenga8b4eaf2021-05-10 13:14:00 -07001914 fbb_.AddElement<int32_t>(Version::VT__MINOR, _minor, 22);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001915 }
1916 void add__patch(int32_t _patch) {
1917 fbb_.AddElement<int32_t>(Version::VT__PATCH, _patch, 0);
1918 }
1919 void add__experimental(bool _experimental) {
1920 fbb_.AddElement<uint8_t>(Version::VT__EXPERIMENTAL, static_cast<uint8_t>(_experimental), 0);
1921 }
1922 explicit VersionBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1923 : fbb_(_fbb) {
1924 start_ = fbb_.StartTable();
1925 }
1926 VersionBuilder &operator=(const VersionBuilder &);
1927 flatbuffers::Offset<Version> Finish() {
1928 const auto end = fbb_.EndTable(start_);
1929 auto o = flatbuffers::Offset<Version>(end);
1930 return o;
1931 }
1932};
1933
1934inline flatbuffers::Offset<Version> CreateVersion(
1935 flatbuffers::FlatBufferBuilder &_fbb,
1936 int32_t _major = 0,
Kevin Chenga8b4eaf2021-05-10 13:14:00 -07001937 int32_t _minor = 22,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001938 int32_t _patch = 0,
1939 bool _experimental = false) {
1940 VersionBuilder builder_(_fbb);
1941 builder_.add__patch(_patch);
1942 builder_.add__minor(_minor);
1943 builder_.add__major(_major);
1944 builder_.add__experimental(_experimental);
1945 return builder_.Finish();
1946}
1947
1948struct TosaTensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1949 typedef TosaTensorBuilder Builder;
1950 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1951 VT_NAME = 4,
1952 VT_SHAPE = 6,
1953 VT_TYPE = 8,
1954 VT_NPY_FILENAME = 10
1955 };
1956 const flatbuffers::String *name() const {
1957 return GetPointer<const flatbuffers::String *>(VT_NAME);
1958 }
1959 const flatbuffers::Vector<int32_t> *shape() const {
1960 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHAPE);
1961 }
1962 tosa::DType type() const {
1963 return static_cast<tosa::DType>(GetField<uint32_t>(VT_TYPE, 0));
1964 }
1965 const flatbuffers::String *npy_filename() const {
1966 return GetPointer<const flatbuffers::String *>(VT_NPY_FILENAME);
1967 }
1968 bool Verify(flatbuffers::Verifier &verifier) const {
1969 return VerifyTableStart(verifier) &&
1970 VerifyOffset(verifier, VT_NAME) &&
1971 verifier.VerifyString(name()) &&
1972 VerifyOffset(verifier, VT_SHAPE) &&
1973 verifier.VerifyVector(shape()) &&
1974 VerifyField<uint32_t>(verifier, VT_TYPE) &&
1975 VerifyOffset(verifier, VT_NPY_FILENAME) &&
1976 verifier.VerifyString(npy_filename()) &&
1977 verifier.EndTable();
1978 }
1979};
1980
1981struct TosaTensorBuilder {
1982 typedef TosaTensor Table;
1983 flatbuffers::FlatBufferBuilder &fbb_;
1984 flatbuffers::uoffset_t start_;
1985 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
1986 fbb_.AddOffset(TosaTensor::VT_NAME, name);
1987 }
1988 void add_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape) {
1989 fbb_.AddOffset(TosaTensor::VT_SHAPE, shape);
1990 }
1991 void add_type(tosa::DType type) {
1992 fbb_.AddElement<uint32_t>(TosaTensor::VT_TYPE, static_cast<uint32_t>(type), 0);
1993 }
1994 void add_npy_filename(flatbuffers::Offset<flatbuffers::String> npy_filename) {
1995 fbb_.AddOffset(TosaTensor::VT_NPY_FILENAME, npy_filename);
1996 }
1997 explicit TosaTensorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1998 : fbb_(_fbb) {
1999 start_ = fbb_.StartTable();
2000 }
2001 TosaTensorBuilder &operator=(const TosaTensorBuilder &);
2002 flatbuffers::Offset<TosaTensor> Finish() {
2003 const auto end = fbb_.EndTable(start_);
2004 auto o = flatbuffers::Offset<TosaTensor>(end);
2005 return o;
2006 }
2007};
2008
2009inline flatbuffers::Offset<TosaTensor> CreateTosaTensor(
2010 flatbuffers::FlatBufferBuilder &_fbb,
2011 flatbuffers::Offset<flatbuffers::String> name = 0,
2012 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape = 0,
2013 tosa::DType type = tosa::DType_UNKNOWN,
2014 flatbuffers::Offset<flatbuffers::String> npy_filename = 0) {
2015 TosaTensorBuilder builder_(_fbb);
2016 builder_.add_npy_filename(npy_filename);
2017 builder_.add_type(type);
2018 builder_.add_shape(shape);
2019 builder_.add_name(name);
2020 return builder_.Finish();
2021}
2022
2023inline flatbuffers::Offset<TosaTensor> CreateTosaTensorDirect(
2024 flatbuffers::FlatBufferBuilder &_fbb,
2025 const char *name = nullptr,
2026 const std::vector<int32_t> *shape = nullptr,
2027 tosa::DType type = tosa::DType_UNKNOWN,
2028 const char *npy_filename = nullptr) {
2029 auto name__ = name ? _fbb.CreateString(name) : 0;
2030 auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0;
2031 auto npy_filename__ = npy_filename ? _fbb.CreateString(npy_filename) : 0;
2032 return tosa::CreateTosaTensor(
2033 _fbb,
2034 name__,
2035 shape__,
2036 type,
2037 npy_filename__);
2038}
2039
2040struct TosaOperator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2041 typedef TosaOperatorBuilder Builder;
2042 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2043 VT_OP = 4,
2044 VT_ATTRIBUTE_TYPE = 6,
2045 VT_ATTRIBUTE = 8,
2046 VT_INPUTS = 10,
2047 VT_OUTPUTS = 12,
2048 VT_QUANT_INFO_TYPE = 14,
2049 VT_QUANT_INFO = 16
2050 };
2051 tosa::Op op() const {
2052 return static_cast<tosa::Op>(GetField<uint32_t>(VT_OP, 0));
2053 }
2054 tosa::Attribute attribute_type() const {
2055 return static_cast<tosa::Attribute>(GetField<uint8_t>(VT_ATTRIBUTE_TYPE, 0));
2056 }
2057 const void *attribute() const {
2058 return GetPointer<const void *>(VT_ATTRIBUTE);
2059 }
2060 template<typename T> const T *attribute_as() const;
2061 const tosa::Pool2dAttribute *attribute_as_Pool2dAttribute() const {
2062 return attribute_type() == tosa::Attribute_Pool2dAttribute ? static_cast<const tosa::Pool2dAttribute *>(attribute()) : nullptr;
2063 }
2064 const tosa::Conv2dAttribute *attribute_as_Conv2dAttribute() const {
2065 return attribute_type() == tosa::Attribute_Conv2dAttribute ? static_cast<const tosa::Conv2dAttribute *>(attribute()) : nullptr;
2066 }
2067 const tosa::TransposeConv2dAttribute *attribute_as_TransposeConv2dAttribute() const {
2068 return attribute_type() == tosa::Attribute_TransposeConv2dAttribute ? static_cast<const tosa::TransposeConv2dAttribute *>(attribute()) : nullptr;
2069 }
2070 const tosa::ReluNAttribute *attribute_as_ReluNAttribute() const {
2071 return attribute_type() == tosa::Attribute_ReluNAttribute ? static_cast<const tosa::ReluNAttribute *>(attribute()) : nullptr;
2072 }
2073 const tosa::AxisAttribute *attribute_as_AxisAttribute() const {
2074 return attribute_type() == tosa::Attribute_AxisAttribute ? static_cast<const tosa::AxisAttribute *>(attribute()) : nullptr;
2075 }
2076 const tosa::ReshapeAttribute *attribute_as_ReshapeAttribute() const {
2077 return attribute_type() == tosa::Attribute_ReshapeAttribute ? static_cast<const tosa::ReshapeAttribute *>(attribute()) : nullptr;
2078 }
2079 const tosa::SliceAttribute *attribute_as_SliceAttribute() const {
2080 return attribute_type() == tosa::Attribute_SliceAttribute ? static_cast<const tosa::SliceAttribute *>(attribute()) : nullptr;
2081 }
2082 const tosa::TileAttribute *attribute_as_TileAttribute() const {
2083 return attribute_type() == tosa::Attribute_TileAttribute ? static_cast<const tosa::TileAttribute *>(attribute()) : nullptr;
2084 }
2085 const tosa::ResizeAttribute *attribute_as_ResizeAttribute() const {
2086 return attribute_type() == tosa::Attribute_ResizeAttribute ? static_cast<const tosa::ResizeAttribute *>(attribute()) : nullptr;
2087 }
2088 const tosa::ClampAttribute *attribute_as_ClampAttribute() const {
2089 return attribute_type() == tosa::Attribute_ClampAttribute ? static_cast<const tosa::ClampAttribute *>(attribute()) : nullptr;
2090 }
2091 const tosa::RescaleAttribute *attribute_as_RescaleAttribute() const {
2092 return attribute_type() == tosa::Attribute_RescaleAttribute ? static_cast<const tosa::RescaleAttribute *>(attribute()) : nullptr;
2093 }
2094 const tosa::MulAttribute *attribute_as_MulAttribute() const {
2095 return attribute_type() == tosa::Attribute_MulAttribute ? static_cast<const tosa::MulAttribute *>(attribute()) : nullptr;
2096 }
2097 const tosa::ArithmeticRightShiftAttribute *attribute_as_ArithmeticRightShiftAttribute() const {
2098 return attribute_type() == tosa::Attribute_ArithmeticRightShiftAttribute ? static_cast<const tosa::ArithmeticRightShiftAttribute *>(attribute()) : nullptr;
2099 }
2100 const tosa::CondIfAttribute *attribute_as_CondIfAttribute() const {
2101 return attribute_type() == tosa::Attribute_CondIfAttribute ? static_cast<const tosa::CondIfAttribute *>(attribute()) : nullptr;
2102 }
2103 const tosa::WhileLoopAttribute *attribute_as_WhileLoopAttribute() const {
2104 return attribute_type() == tosa::Attribute_WhileLoopAttribute ? static_cast<const tosa::WhileLoopAttribute *>(attribute()) : nullptr;
2105 }
2106 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2107 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2108 }
2109 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2110 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2111 }
2112 tosa::QuantInfo quant_info_type() const {
2113 return static_cast<tosa::QuantInfo>(GetField<uint8_t>(VT_QUANT_INFO_TYPE, 0));
2114 }
2115 const void *quant_info() const {
2116 return GetPointer<const void *>(VT_QUANT_INFO);
2117 }
2118 template<typename T> const T *quant_info_as() const;
2119 const tosa::UnaryQuantInfo *quant_info_as_UnaryQuantInfo() const {
2120 return quant_info_type() == tosa::QuantInfo_UnaryQuantInfo ? static_cast<const tosa::UnaryQuantInfo *>(quant_info()) : nullptr;
2121 }
2122 const tosa::ConvQuantInfo *quant_info_as_ConvQuantInfo() const {
2123 return quant_info_type() == tosa::QuantInfo_ConvQuantInfo ? static_cast<const tosa::ConvQuantInfo *>(quant_info()) : nullptr;
2124 }
2125 const tosa::MatMulQuantInfo *quant_info_as_MatMulQuantInfo() const {
2126 return quant_info_type() == tosa::QuantInfo_MatMulQuantInfo ? static_cast<const tosa::MatMulQuantInfo *>(quant_info()) : nullptr;
2127 }
2128 const tosa::PadQuantInfo *quant_info_as_PadQuantInfo() const {
2129 return quant_info_type() == tosa::QuantInfo_PadQuantInfo ? static_cast<const tosa::PadQuantInfo *>(quant_info()) : nullptr;
2130 }
2131 bool Verify(flatbuffers::Verifier &verifier) const {
2132 return VerifyTableStart(verifier) &&
2133 VerifyField<uint32_t>(verifier, VT_OP) &&
2134 VerifyField<uint8_t>(verifier, VT_ATTRIBUTE_TYPE) &&
2135 VerifyOffset(verifier, VT_ATTRIBUTE) &&
2136 VerifyAttribute(verifier, attribute(), attribute_type()) &&
2137 VerifyOffset(verifier, VT_INPUTS) &&
2138 verifier.VerifyVector(inputs()) &&
2139 verifier.VerifyVectorOfStrings(inputs()) &&
2140 VerifyOffset(verifier, VT_OUTPUTS) &&
2141 verifier.VerifyVector(outputs()) &&
2142 verifier.VerifyVectorOfStrings(outputs()) &&
2143 VerifyField<uint8_t>(verifier, VT_QUANT_INFO_TYPE) &&
2144 VerifyOffset(verifier, VT_QUANT_INFO) &&
2145 VerifyQuantInfo(verifier, quant_info(), quant_info_type()) &&
2146 verifier.EndTable();
2147 }
2148};
2149
2150template<> inline const tosa::Pool2dAttribute *TosaOperator::attribute_as<tosa::Pool2dAttribute>() const {
2151 return attribute_as_Pool2dAttribute();
2152}
2153
2154template<> inline const tosa::Conv2dAttribute *TosaOperator::attribute_as<tosa::Conv2dAttribute>() const {
2155 return attribute_as_Conv2dAttribute();
2156}
2157
2158template<> inline const tosa::TransposeConv2dAttribute *TosaOperator::attribute_as<tosa::TransposeConv2dAttribute>() const {
2159 return attribute_as_TransposeConv2dAttribute();
2160}
2161
2162template<> inline const tosa::ReluNAttribute *TosaOperator::attribute_as<tosa::ReluNAttribute>() const {
2163 return attribute_as_ReluNAttribute();
2164}
2165
2166template<> inline const tosa::AxisAttribute *TosaOperator::attribute_as<tosa::AxisAttribute>() const {
2167 return attribute_as_AxisAttribute();
2168}
2169
2170template<> inline const tosa::ReshapeAttribute *TosaOperator::attribute_as<tosa::ReshapeAttribute>() const {
2171 return attribute_as_ReshapeAttribute();
2172}
2173
2174template<> inline const tosa::SliceAttribute *TosaOperator::attribute_as<tosa::SliceAttribute>() const {
2175 return attribute_as_SliceAttribute();
2176}
2177
2178template<> inline const tosa::TileAttribute *TosaOperator::attribute_as<tosa::TileAttribute>() const {
2179 return attribute_as_TileAttribute();
2180}
2181
2182template<> inline const tosa::ResizeAttribute *TosaOperator::attribute_as<tosa::ResizeAttribute>() const {
2183 return attribute_as_ResizeAttribute();
2184}
2185
2186template<> inline const tosa::ClampAttribute *TosaOperator::attribute_as<tosa::ClampAttribute>() const {
2187 return attribute_as_ClampAttribute();
2188}
2189
2190template<> inline const tosa::RescaleAttribute *TosaOperator::attribute_as<tosa::RescaleAttribute>() const {
2191 return attribute_as_RescaleAttribute();
2192}
2193
2194template<> inline const tosa::MulAttribute *TosaOperator::attribute_as<tosa::MulAttribute>() const {
2195 return attribute_as_MulAttribute();
2196}
2197
2198template<> inline const tosa::ArithmeticRightShiftAttribute *TosaOperator::attribute_as<tosa::ArithmeticRightShiftAttribute>() const {
2199 return attribute_as_ArithmeticRightShiftAttribute();
2200}
2201
2202template<> inline const tosa::CondIfAttribute *TosaOperator::attribute_as<tosa::CondIfAttribute>() const {
2203 return attribute_as_CondIfAttribute();
2204}
2205
2206template<> inline const tosa::WhileLoopAttribute *TosaOperator::attribute_as<tosa::WhileLoopAttribute>() const {
2207 return attribute_as_WhileLoopAttribute();
2208}
2209
2210template<> inline const tosa::UnaryQuantInfo *TosaOperator::quant_info_as<tosa::UnaryQuantInfo>() const {
2211 return quant_info_as_UnaryQuantInfo();
2212}
2213
2214template<> inline const tosa::ConvQuantInfo *TosaOperator::quant_info_as<tosa::ConvQuantInfo>() const {
2215 return quant_info_as_ConvQuantInfo();
2216}
2217
2218template<> inline const tosa::MatMulQuantInfo *TosaOperator::quant_info_as<tosa::MatMulQuantInfo>() const {
2219 return quant_info_as_MatMulQuantInfo();
2220}
2221
2222template<> inline const tosa::PadQuantInfo *TosaOperator::quant_info_as<tosa::PadQuantInfo>() const {
2223 return quant_info_as_PadQuantInfo();
2224}
2225
2226struct TosaOperatorBuilder {
2227 typedef TosaOperator Table;
2228 flatbuffers::FlatBufferBuilder &fbb_;
2229 flatbuffers::uoffset_t start_;
2230 void add_op(tosa::Op op) {
2231 fbb_.AddElement<uint32_t>(TosaOperator::VT_OP, static_cast<uint32_t>(op), 0);
2232 }
2233 void add_attribute_type(tosa::Attribute attribute_type) {
2234 fbb_.AddElement<uint8_t>(TosaOperator::VT_ATTRIBUTE_TYPE, static_cast<uint8_t>(attribute_type), 0);
2235 }
2236 void add_attribute(flatbuffers::Offset<void> attribute) {
2237 fbb_.AddOffset(TosaOperator::VT_ATTRIBUTE, attribute);
2238 }
2239 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2240 fbb_.AddOffset(TosaOperator::VT_INPUTS, inputs);
2241 }
2242 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2243 fbb_.AddOffset(TosaOperator::VT_OUTPUTS, outputs);
2244 }
2245 void add_quant_info_type(tosa::QuantInfo quant_info_type) {
2246 fbb_.AddElement<uint8_t>(TosaOperator::VT_QUANT_INFO_TYPE, static_cast<uint8_t>(quant_info_type), 0);
2247 }
2248 void add_quant_info(flatbuffers::Offset<void> quant_info) {
2249 fbb_.AddOffset(TosaOperator::VT_QUANT_INFO, quant_info);
2250 }
2251 explicit TosaOperatorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2252 : fbb_(_fbb) {
2253 start_ = fbb_.StartTable();
2254 }
2255 TosaOperatorBuilder &operator=(const TosaOperatorBuilder &);
2256 flatbuffers::Offset<TosaOperator> Finish() {
2257 const auto end = fbb_.EndTable(start_);
2258 auto o = flatbuffers::Offset<TosaOperator>(end);
2259 return o;
2260 }
2261};
2262
2263inline flatbuffers::Offset<TosaOperator> CreateTosaOperator(
2264 flatbuffers::FlatBufferBuilder &_fbb,
2265 tosa::Op op = tosa::Op_UNKNOWN,
2266 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2267 flatbuffers::Offset<void> attribute = 0,
2268 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
2269 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0,
2270 tosa::QuantInfo quant_info_type = tosa::QuantInfo_NONE,
2271 flatbuffers::Offset<void> quant_info = 0) {
2272 TosaOperatorBuilder builder_(_fbb);
2273 builder_.add_quant_info(quant_info);
2274 builder_.add_outputs(outputs);
2275 builder_.add_inputs(inputs);
2276 builder_.add_attribute(attribute);
2277 builder_.add_op(op);
2278 builder_.add_quant_info_type(quant_info_type);
2279 builder_.add_attribute_type(attribute_type);
2280 return builder_.Finish();
2281}
2282
2283inline flatbuffers::Offset<TosaOperator> CreateTosaOperatorDirect(
2284 flatbuffers::FlatBufferBuilder &_fbb,
2285 tosa::Op op = tosa::Op_UNKNOWN,
2286 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2287 flatbuffers::Offset<void> attribute = 0,
2288 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
2289 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr,
2290 tosa::QuantInfo quant_info_type = tosa::QuantInfo_NONE,
2291 flatbuffers::Offset<void> quant_info = 0) {
2292 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2293 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2294 return tosa::CreateTosaOperator(
2295 _fbb,
2296 op,
2297 attribute_type,
2298 attribute,
2299 inputs__,
2300 outputs__,
2301 quant_info_type,
2302 quant_info);
2303}
2304
2305struct TosaBasicBlock FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2306 typedef TosaBasicBlockBuilder Builder;
2307 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2308 VT_NAME = 4,
2309 VT_OPERATORS = 6,
2310 VT_TENSORS = 8,
2311 VT_INPUTS = 10,
2312 VT_OUTPUTS = 12
2313 };
2314 const flatbuffers::String *name() const {
2315 return GetPointer<const flatbuffers::String *>(VT_NAME);
2316 }
2317 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *operators() const {
2318 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *>(VT_OPERATORS);
2319 }
2320 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors() const {
2321 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *>(VT_TENSORS);
2322 }
2323 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2324 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2325 }
2326 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2327 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2328 }
2329 bool Verify(flatbuffers::Verifier &verifier) const {
2330 return VerifyTableStart(verifier) &&
2331 VerifyOffset(verifier, VT_NAME) &&
2332 verifier.VerifyString(name()) &&
2333 VerifyOffset(verifier, VT_OPERATORS) &&
2334 verifier.VerifyVector(operators()) &&
2335 verifier.VerifyVectorOfTables(operators()) &&
2336 VerifyOffset(verifier, VT_TENSORS) &&
2337 verifier.VerifyVector(tensors()) &&
2338 verifier.VerifyVectorOfTables(tensors()) &&
2339 VerifyOffset(verifier, VT_INPUTS) &&
2340 verifier.VerifyVector(inputs()) &&
2341 verifier.VerifyVectorOfStrings(inputs()) &&
2342 VerifyOffset(verifier, VT_OUTPUTS) &&
2343 verifier.VerifyVector(outputs()) &&
2344 verifier.VerifyVectorOfStrings(outputs()) &&
2345 verifier.EndTable();
2346 }
2347};
2348
2349struct TosaBasicBlockBuilder {
2350 typedef TosaBasicBlock Table;
2351 flatbuffers::FlatBufferBuilder &fbb_;
2352 flatbuffers::uoffset_t start_;
2353 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2354 fbb_.AddOffset(TosaBasicBlock::VT_NAME, name);
2355 }
2356 void add_operators(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators) {
2357 fbb_.AddOffset(TosaBasicBlock::VT_OPERATORS, operators);
2358 }
2359 void add_tensors(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors) {
2360 fbb_.AddOffset(TosaBasicBlock::VT_TENSORS, tensors);
2361 }
2362 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2363 fbb_.AddOffset(TosaBasicBlock::VT_INPUTS, inputs);
2364 }
2365 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2366 fbb_.AddOffset(TosaBasicBlock::VT_OUTPUTS, outputs);
2367 }
2368 explicit TosaBasicBlockBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2369 : fbb_(_fbb) {
2370 start_ = fbb_.StartTable();
2371 }
2372 TosaBasicBlockBuilder &operator=(const TosaBasicBlockBuilder &);
2373 flatbuffers::Offset<TosaBasicBlock> Finish() {
2374 const auto end = fbb_.EndTable(start_);
2375 auto o = flatbuffers::Offset<TosaBasicBlock>(end);
2376 return o;
2377 }
2378};
2379
2380inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlock(
2381 flatbuffers::FlatBufferBuilder &_fbb,
2382 flatbuffers::Offset<flatbuffers::String> name = 0,
2383 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators = 0,
2384 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors = 0,
2385 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
2386 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
2387 TosaBasicBlockBuilder builder_(_fbb);
2388 builder_.add_outputs(outputs);
2389 builder_.add_inputs(inputs);
2390 builder_.add_tensors(tensors);
2391 builder_.add_operators(operators);
2392 builder_.add_name(name);
2393 return builder_.Finish();
2394}
2395
2396inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlockDirect(
2397 flatbuffers::FlatBufferBuilder &_fbb,
2398 const char *name = nullptr,
2399 const std::vector<flatbuffers::Offset<tosa::TosaOperator>> *operators = nullptr,
2400 const std::vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors = nullptr,
2401 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
2402 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
2403 auto name__ = name ? _fbb.CreateString(name) : 0;
2404 auto operators__ = operators ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaOperator>>(*operators) : 0;
2405 auto tensors__ = tensors ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaTensor>>(*tensors) : 0;
2406 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2407 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2408 return tosa::CreateTosaBasicBlock(
2409 _fbb,
2410 name__,
2411 operators__,
2412 tensors__,
2413 inputs__,
2414 outputs__);
2415}
2416
2417struct TosaGraph FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2418 typedef TosaGraphBuilder Builder;
2419 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2420 VT_VERSION = 4,
2421 VT_BLOCKS = 6
2422 };
2423 const tosa::Version *version() const {
2424 return GetPointer<const tosa::Version *>(VT_VERSION);
2425 }
2426 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks() const {
2427 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *>(VT_BLOCKS);
2428 }
2429 bool Verify(flatbuffers::Verifier &verifier) const {
2430 return VerifyTableStart(verifier) &&
2431 VerifyOffset(verifier, VT_VERSION) &&
2432 verifier.VerifyTable(version()) &&
2433 VerifyOffset(verifier, VT_BLOCKS) &&
2434 verifier.VerifyVector(blocks()) &&
2435 verifier.VerifyVectorOfTables(blocks()) &&
2436 verifier.EndTable();
2437 }
2438};
2439
2440struct TosaGraphBuilder {
2441 typedef TosaGraph Table;
2442 flatbuffers::FlatBufferBuilder &fbb_;
2443 flatbuffers::uoffset_t start_;
2444 void add_version(flatbuffers::Offset<tosa::Version> version) {
2445 fbb_.AddOffset(TosaGraph::VT_VERSION, version);
2446 }
2447 void add_blocks(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks) {
2448 fbb_.AddOffset(TosaGraph::VT_BLOCKS, blocks);
2449 }
2450 explicit TosaGraphBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2451 : fbb_(_fbb) {
2452 start_ = fbb_.StartTable();
2453 }
2454 TosaGraphBuilder &operator=(const TosaGraphBuilder &);
2455 flatbuffers::Offset<TosaGraph> Finish() {
2456 const auto end = fbb_.EndTable(start_);
2457 auto o = flatbuffers::Offset<TosaGraph>(end);
2458 return o;
2459 }
2460};
2461
2462inline flatbuffers::Offset<TosaGraph> CreateTosaGraph(
2463 flatbuffers::FlatBufferBuilder &_fbb,
2464 flatbuffers::Offset<tosa::Version> version = 0,
2465 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks = 0) {
2466 TosaGraphBuilder builder_(_fbb);
2467 builder_.add_blocks(blocks);
2468 builder_.add_version(version);
2469 return builder_.Finish();
2470}
2471
2472inline flatbuffers::Offset<TosaGraph> CreateTosaGraphDirect(
2473 flatbuffers::FlatBufferBuilder &_fbb,
2474 flatbuffers::Offset<tosa::Version> version = 0,
2475 const std::vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks = nullptr) {
2476 auto blocks__ = blocks ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaBasicBlock>>(*blocks) : 0;
2477 return tosa::CreateTosaGraph(
2478 _fbb,
2479 version,
2480 blocks__);
2481}
2482
2483inline bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type) {
2484 switch (type) {
2485 case Attribute_NONE: {
2486 return true;
2487 }
2488 case Attribute_Pool2dAttribute: {
2489 auto ptr = reinterpret_cast<const tosa::Pool2dAttribute *>(obj);
2490 return verifier.VerifyTable(ptr);
2491 }
2492 case Attribute_Conv2dAttribute: {
2493 auto ptr = reinterpret_cast<const tosa::Conv2dAttribute *>(obj);
2494 return verifier.VerifyTable(ptr);
2495 }
2496 case Attribute_TransposeConv2dAttribute: {
2497 auto ptr = reinterpret_cast<const tosa::TransposeConv2dAttribute *>(obj);
2498 return verifier.VerifyTable(ptr);
2499 }
2500 case Attribute_ReluNAttribute: {
2501 auto ptr = reinterpret_cast<const tosa::ReluNAttribute *>(obj);
2502 return verifier.VerifyTable(ptr);
2503 }
2504 case Attribute_AxisAttribute: {
2505 auto ptr = reinterpret_cast<const tosa::AxisAttribute *>(obj);
2506 return verifier.VerifyTable(ptr);
2507 }
2508 case Attribute_ReshapeAttribute: {
2509 auto ptr = reinterpret_cast<const tosa::ReshapeAttribute *>(obj);
2510 return verifier.VerifyTable(ptr);
2511 }
2512 case Attribute_SliceAttribute: {
2513 auto ptr = reinterpret_cast<const tosa::SliceAttribute *>(obj);
2514 return verifier.VerifyTable(ptr);
2515 }
2516 case Attribute_TileAttribute: {
2517 auto ptr = reinterpret_cast<const tosa::TileAttribute *>(obj);
2518 return verifier.VerifyTable(ptr);
2519 }
2520 case Attribute_ResizeAttribute: {
2521 auto ptr = reinterpret_cast<const tosa::ResizeAttribute *>(obj);
2522 return verifier.VerifyTable(ptr);
2523 }
2524 case Attribute_ClampAttribute: {
2525 auto ptr = reinterpret_cast<const tosa::ClampAttribute *>(obj);
2526 return verifier.VerifyTable(ptr);
2527 }
2528 case Attribute_RescaleAttribute: {
2529 auto ptr = reinterpret_cast<const tosa::RescaleAttribute *>(obj);
2530 return verifier.VerifyTable(ptr);
2531 }
2532 case Attribute_MulAttribute: {
2533 auto ptr = reinterpret_cast<const tosa::MulAttribute *>(obj);
2534 return verifier.VerifyTable(ptr);
2535 }
2536 case Attribute_ArithmeticRightShiftAttribute: {
2537 auto ptr = reinterpret_cast<const tosa::ArithmeticRightShiftAttribute *>(obj);
2538 return verifier.VerifyTable(ptr);
2539 }
2540 case Attribute_CondIfAttribute: {
2541 auto ptr = reinterpret_cast<const tosa::CondIfAttribute *>(obj);
2542 return verifier.VerifyTable(ptr);
2543 }
2544 case Attribute_WhileLoopAttribute: {
2545 auto ptr = reinterpret_cast<const tosa::WhileLoopAttribute *>(obj);
2546 return verifier.VerifyTable(ptr);
2547 }
2548 default: return true;
2549 }
2550}
2551
2552inline bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
2553 if (!values || !types) return !values && !types;
2554 if (values->size() != types->size()) return false;
2555 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
2556 if (!VerifyAttribute(
2557 verifier, values->Get(i), types->GetEnum<Attribute>(i))) {
2558 return false;
2559 }
2560 }
2561 return true;
2562}
2563
2564inline bool VerifyQuantInfo(flatbuffers::Verifier &verifier, const void *obj, QuantInfo type) {
2565 switch (type) {
2566 case QuantInfo_NONE: {
2567 return true;
2568 }
2569 case QuantInfo_UnaryQuantInfo: {
2570 auto ptr = reinterpret_cast<const tosa::UnaryQuantInfo *>(obj);
2571 return verifier.VerifyTable(ptr);
2572 }
2573 case QuantInfo_ConvQuantInfo: {
2574 auto ptr = reinterpret_cast<const tosa::ConvQuantInfo *>(obj);
2575 return verifier.VerifyTable(ptr);
2576 }
2577 case QuantInfo_MatMulQuantInfo: {
2578 auto ptr = reinterpret_cast<const tosa::MatMulQuantInfo *>(obj);
2579 return verifier.VerifyTable(ptr);
2580 }
2581 case QuantInfo_PadQuantInfo: {
2582 auto ptr = reinterpret_cast<const tosa::PadQuantInfo *>(obj);
2583 return verifier.VerifyTable(ptr);
2584 }
2585 default: return true;
2586 }
2587}
2588
2589inline bool VerifyQuantInfoVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
2590 if (!values || !types) return !values && !types;
2591 if (values->size() != types->size()) return false;
2592 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
2593 if (!VerifyQuantInfo(
2594 verifier, values->Get(i), types->GetEnum<QuantInfo>(i))) {
2595 return false;
2596 }
2597 }
2598 return true;
2599}
2600
2601inline const tosa::TosaGraph *GetTosaGraph(const void *buf) {
2602 return flatbuffers::GetRoot<tosa::TosaGraph>(buf);
2603}
2604
2605inline const tosa::TosaGraph *GetSizePrefixedTosaGraph(const void *buf) {
2606 return flatbuffers::GetSizePrefixedRoot<tosa::TosaGraph>(buf);
2607}
2608
2609inline const char *TosaGraphIdentifier() {
2610 return "TOSA";
2611}
2612
2613inline bool TosaGraphBufferHasIdentifier(const void *buf) {
2614 return flatbuffers::BufferHasIdentifier(
2615 buf, TosaGraphIdentifier());
2616}
2617
2618inline bool VerifyTosaGraphBuffer(
2619 flatbuffers::Verifier &verifier) {
2620 return verifier.VerifyBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2621}
2622
2623inline bool VerifySizePrefixedTosaGraphBuffer(
2624 flatbuffers::Verifier &verifier) {
2625 return verifier.VerifySizePrefixedBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2626}
2627
2628inline const char *TosaGraphExtension() {
2629 return "tosa";
2630}
2631
2632inline void FinishTosaGraphBuffer(
2633 flatbuffers::FlatBufferBuilder &fbb,
2634 flatbuffers::Offset<tosa::TosaGraph> root) {
2635 fbb.Finish(root, TosaGraphIdentifier());
2636}
2637
2638inline void FinishSizePrefixedTosaGraphBuffer(
2639 flatbuffers::FlatBufferBuilder &fbb,
2640 flatbuffers::Offset<tosa::TosaGraph> root) {
2641 fbb.FinishSizePrefixed(root, TosaGraphIdentifier());
2642}
2643
2644} // namespace tosa
2645
2646#endif // FLATBUFFERS_GENERATED_TOSA_TOSA_H_