blob: 51e33ce52ea12a49e7c56f85d67be1e5740510bb [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
Kevin Cheng79a41992021-08-31 16:04:40 -070026struct PoolAttribute;
27struct PoolAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070028
Kevin Cheng79a41992021-08-31 16:04:40 -070029struct ConvAttribute;
30struct ConvAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070031
Kevin Cheng79a41992021-08-31 16:04:40 -070032struct TransposeConvAttribute;
33struct TransposeConvAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070034
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,
Matthew Haddonab905ec2021-08-23 16:40:57 +0100202 Op_INTDIV = 19,
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700203 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,
Matthew Haddonab905ec2021-08-23 16:40:57 +0100277 Op_INTDIV,
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",
Matthew Haddonab905ec2021-08-23 16:40:57 +0100352 "INTDIV",
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,
Kevin Cheng79a41992021-08-31 16:04:40 -0700415 Attribute_PoolAttribute = 1,
416 Attribute_ConvAttribute = 2,
417 Attribute_TransposeConvAttribute = 3,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700418 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,
Kevin Cheng79a41992021-08-31 16:04:40 -0700437 Attribute_PoolAttribute,
438 Attribute_ConvAttribute,
439 Attribute_TransposeConvAttribute,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700440 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",
Kevin Cheng79a41992021-08-31 16:04:40 -0700459 "PoolAttribute",
460 "ConvAttribute",
461 "TransposeConvAttribute",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700462 "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
Kevin Cheng79a41992021-08-31 16:04:40 -0700489template<> struct AttributeTraits<tosa::PoolAttribute> {
490 static const Attribute enum_value = Attribute_PoolAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700491};
492
Kevin Cheng79a41992021-08-31 16:04:40 -0700493template<> struct AttributeTraits<tosa::ConvAttribute> {
494 static const Attribute enum_value = Attribute_ConvAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700495};
496
Kevin Cheng79a41992021-08-31 16:04:40 -0700497template<> struct AttributeTraits<tosa::TransposeConvAttribute> {
498 static const Attribute enum_value = Attribute_TransposeConvAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700499};
500
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
Kevin Cheng79a41992021-08-31 16:04:40 -0700614struct PoolAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
615 typedef PoolAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700616 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
Kevin Cheng79a41992021-08-31 16:04:40 -0700642struct PoolAttributeBuilder {
643 typedef PoolAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700644 flatbuffers::FlatBufferBuilder &fbb_;
645 flatbuffers::uoffset_t start_;
646 void add_padding(flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700647 fbb_.AddOffset(PoolAttribute::VT_PADDING, padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700648 }
649 void add_kernel(flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700650 fbb_.AddOffset(PoolAttribute::VT_KERNEL, kernel);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700651 }
652 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700653 fbb_.AddOffset(PoolAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700654 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700655 explicit PoolAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700656 : fbb_(_fbb) {
657 start_ = fbb_.StartTable();
658 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700659 PoolAttributeBuilder &operator=(const PoolAttributeBuilder &);
660 flatbuffers::Offset<PoolAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700661 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700662 auto o = flatbuffers::Offset<PoolAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700663 return o;
664 }
665};
666
Kevin Cheng79a41992021-08-31 16:04:40 -0700667inline flatbuffers::Offset<PoolAttribute> CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700668 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) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700672 PoolAttributeBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700673 builder_.add_stride(stride);
674 builder_.add_kernel(kernel);
675 builder_.add_padding(padding);
676 return builder_.Finish();
677}
678
Kevin Cheng79a41992021-08-31 16:04:40 -0700679inline flatbuffers::Offset<PoolAttribute> CreatePoolAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700680 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;
Kevin Cheng79a41992021-08-31 16:04:40 -0700687 return tosa::CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700688 _fbb,
689 padding__,
690 kernel__,
691 stride__);
692}
693
Kevin Cheng79a41992021-08-31 16:04:40 -0700694struct ConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
695 typedef ConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700696 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
Kevin Cheng79a41992021-08-31 16:04:40 -0700722struct ConvAttributeBuilder {
723 typedef ConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700724 flatbuffers::FlatBufferBuilder &fbb_;
725 flatbuffers::uoffset_t start_;
726 void add_padding(flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700727 fbb_.AddOffset(ConvAttribute::VT_PADDING, padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700728 }
729 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700730 fbb_.AddOffset(ConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700731 }
732 void add_dilation(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700733 fbb_.AddOffset(ConvAttribute::VT_DILATION, dilation);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700734 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700735 explicit ConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700736 : fbb_(_fbb) {
737 start_ = fbb_.StartTable();
738 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700739 ConvAttributeBuilder &operator=(const ConvAttributeBuilder &);
740 flatbuffers::Offset<ConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700741 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700742 auto o = flatbuffers::Offset<ConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700743 return o;
744 }
745};
746
Kevin Cheng79a41992021-08-31 16:04:40 -0700747inline flatbuffers::Offset<ConvAttribute> CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700748 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) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700752 ConvAttributeBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700753 builder_.add_dilation(dilation);
754 builder_.add_stride(stride);
755 builder_.add_padding(padding);
756 return builder_.Finish();
757}
758
Kevin Cheng79a41992021-08-31 16:04:40 -0700759inline flatbuffers::Offset<ConvAttribute> CreateConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700760 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;
Kevin Cheng79a41992021-08-31 16:04:40 -0700767 return tosa::CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700768 _fbb,
769 padding__,
770 stride__,
771 dilation__);
772}
773
Kevin Cheng79a41992021-08-31 16:04:40 -0700774struct TransposeConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
775 typedef TransposeConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700776 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
Kevin Cheng79a41992021-08-31 16:04:40 -0700808struct TransposeConvAttributeBuilder {
809 typedef TransposeConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700810 flatbuffers::FlatBufferBuilder &fbb_;
811 flatbuffers::uoffset_t start_;
812 void add_outpad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> outpad) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700813 fbb_.AddOffset(TransposeConvAttribute::VT_OUTPAD, outpad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700814 }
815 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700816 fbb_.AddOffset(TransposeConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700817 }
818 void add_dilation(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700819 fbb_.AddOffset(TransposeConvAttribute::VT_DILATION, dilation);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700820 }
821 void add_output_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700822 fbb_.AddOffset(TransposeConvAttribute::VT_OUTPUT_SHAPE, output_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700823 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700824 explicit TransposeConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700825 : fbb_(_fbb) {
826 start_ = fbb_.StartTable();
827 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700828 TransposeConvAttributeBuilder &operator=(const TransposeConvAttributeBuilder &);
829 flatbuffers::Offset<TransposeConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700830 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700831 auto o = flatbuffers::Offset<TransposeConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700832 return o;
833 }
834};
835
Kevin Cheng79a41992021-08-31 16:04:40 -0700836inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700837 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) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700842 TransposeConvAttributeBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700843 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
Kevin Cheng79a41992021-08-31 16:04:40 -0700850inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700851 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;
Kevin Cheng79a41992021-08-31 16:04:40 -0700860 return tosa::CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700861 _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,
Kevin Chengb97cb1d2021-10-14 11:53:39 -07001882 VT__DRAFT = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07001883 };
1884 int32_t _major() const {
1885 return GetField<int32_t>(VT__MAJOR, 0);
1886 }
1887 int32_t _minor() const {
Kevin Chengb97cb1d2021-10-14 11:53:39 -07001888 return GetField<int32_t>(VT__MINOR, 23);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001889 }
1890 int32_t _patch() const {
1891 return GetField<int32_t>(VT__PATCH, 0);
1892 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07001893 bool _draft() const {
1894 return GetField<uint8_t>(VT__DRAFT, 1) != 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001895 }
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) &&
Kevin Chengb97cb1d2021-10-14 11:53:39 -07001901 VerifyField<uint8_t>(verifier, VT__DRAFT) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001902 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 Chengb97cb1d2021-10-14 11:53:39 -07001914 fbb_.AddElement<int32_t>(Version::VT__MINOR, _minor, 23);
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 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07001919 void add__draft(bool _draft) {
1920 fbb_.AddElement<uint8_t>(Version::VT__DRAFT, static_cast<uint8_t>(_draft), 1);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001921 }
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 Chengb97cb1d2021-10-14 11:53:39 -07001937 int32_t _minor = 23,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001938 int32_t _patch = 0,
Kevin Chengb97cb1d2021-10-14 11:53:39 -07001939 bool _draft = true) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001940 VersionBuilder builder_(_fbb);
1941 builder_.add__patch(_patch);
1942 builder_.add__minor(_minor);
1943 builder_.add__major(_major);
Kevin Chengb97cb1d2021-10-14 11:53:39 -07001944 builder_.add__draft(_draft);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001945 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,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07001954 VT_DATA = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07001955 };
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 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07001965 const flatbuffers::Vector<uint8_t> *data() const {
1966 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_DATA);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001967 }
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) &&
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07001975 VerifyOffset(verifier, VT_DATA) &&
1976 verifier.VerifyVector(data()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001977 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 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07001994 void add_data(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data) {
1995 fbb_.AddOffset(TosaTensor::VT_DATA, data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001996 }
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,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002014 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002015 TosaTensorBuilder builder_(_fbb);
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002016 builder_.add_data(data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002017 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,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002028 const std::vector<uint8_t> *data = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002029 auto name__ = name ? _fbb.CreateString(name) : 0;
2030 auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0;
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002031 if (data) { _fbb.ForceVectorAlignment(data->size(), sizeof(uint8_t), 8); }
2032 auto data__ = data ? _fbb.CreateVector<uint8_t>(*data) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002033 return tosa::CreateTosaTensor(
2034 _fbb,
2035 name__,
2036 shape__,
2037 type,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002038 data__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002039}
2040
2041struct TosaOperator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2042 typedef TosaOperatorBuilder Builder;
2043 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2044 VT_OP = 4,
2045 VT_ATTRIBUTE_TYPE = 6,
2046 VT_ATTRIBUTE = 8,
2047 VT_INPUTS = 10,
2048 VT_OUTPUTS = 12,
2049 VT_QUANT_INFO_TYPE = 14,
2050 VT_QUANT_INFO = 16
2051 };
2052 tosa::Op op() const {
2053 return static_cast<tosa::Op>(GetField<uint32_t>(VT_OP, 0));
2054 }
2055 tosa::Attribute attribute_type() const {
2056 return static_cast<tosa::Attribute>(GetField<uint8_t>(VT_ATTRIBUTE_TYPE, 0));
2057 }
2058 const void *attribute() const {
2059 return GetPointer<const void *>(VT_ATTRIBUTE);
2060 }
2061 template<typename T> const T *attribute_as() const;
Kevin Cheng79a41992021-08-31 16:04:40 -07002062 const tosa::PoolAttribute *attribute_as_PoolAttribute() const {
2063 return attribute_type() == tosa::Attribute_PoolAttribute ? static_cast<const tosa::PoolAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002064 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002065 const tosa::ConvAttribute *attribute_as_ConvAttribute() const {
2066 return attribute_type() == tosa::Attribute_ConvAttribute ? static_cast<const tosa::ConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002067 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002068 const tosa::TransposeConvAttribute *attribute_as_TransposeConvAttribute() const {
2069 return attribute_type() == tosa::Attribute_TransposeConvAttribute ? static_cast<const tosa::TransposeConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002070 }
2071 const tosa::ReluNAttribute *attribute_as_ReluNAttribute() const {
2072 return attribute_type() == tosa::Attribute_ReluNAttribute ? static_cast<const tosa::ReluNAttribute *>(attribute()) : nullptr;
2073 }
2074 const tosa::AxisAttribute *attribute_as_AxisAttribute() const {
2075 return attribute_type() == tosa::Attribute_AxisAttribute ? static_cast<const tosa::AxisAttribute *>(attribute()) : nullptr;
2076 }
2077 const tosa::ReshapeAttribute *attribute_as_ReshapeAttribute() const {
2078 return attribute_type() == tosa::Attribute_ReshapeAttribute ? static_cast<const tosa::ReshapeAttribute *>(attribute()) : nullptr;
2079 }
2080 const tosa::SliceAttribute *attribute_as_SliceAttribute() const {
2081 return attribute_type() == tosa::Attribute_SliceAttribute ? static_cast<const tosa::SliceAttribute *>(attribute()) : nullptr;
2082 }
2083 const tosa::TileAttribute *attribute_as_TileAttribute() const {
2084 return attribute_type() == tosa::Attribute_TileAttribute ? static_cast<const tosa::TileAttribute *>(attribute()) : nullptr;
2085 }
2086 const tosa::ResizeAttribute *attribute_as_ResizeAttribute() const {
2087 return attribute_type() == tosa::Attribute_ResizeAttribute ? static_cast<const tosa::ResizeAttribute *>(attribute()) : nullptr;
2088 }
2089 const tosa::ClampAttribute *attribute_as_ClampAttribute() const {
2090 return attribute_type() == tosa::Attribute_ClampAttribute ? static_cast<const tosa::ClampAttribute *>(attribute()) : nullptr;
2091 }
2092 const tosa::RescaleAttribute *attribute_as_RescaleAttribute() const {
2093 return attribute_type() == tosa::Attribute_RescaleAttribute ? static_cast<const tosa::RescaleAttribute *>(attribute()) : nullptr;
2094 }
2095 const tosa::MulAttribute *attribute_as_MulAttribute() const {
2096 return attribute_type() == tosa::Attribute_MulAttribute ? static_cast<const tosa::MulAttribute *>(attribute()) : nullptr;
2097 }
2098 const tosa::ArithmeticRightShiftAttribute *attribute_as_ArithmeticRightShiftAttribute() const {
2099 return attribute_type() == tosa::Attribute_ArithmeticRightShiftAttribute ? static_cast<const tosa::ArithmeticRightShiftAttribute *>(attribute()) : nullptr;
2100 }
2101 const tosa::CondIfAttribute *attribute_as_CondIfAttribute() const {
2102 return attribute_type() == tosa::Attribute_CondIfAttribute ? static_cast<const tosa::CondIfAttribute *>(attribute()) : nullptr;
2103 }
2104 const tosa::WhileLoopAttribute *attribute_as_WhileLoopAttribute() const {
2105 return attribute_type() == tosa::Attribute_WhileLoopAttribute ? static_cast<const tosa::WhileLoopAttribute *>(attribute()) : nullptr;
2106 }
2107 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2108 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2109 }
2110 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2111 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2112 }
2113 tosa::QuantInfo quant_info_type() const {
2114 return static_cast<tosa::QuantInfo>(GetField<uint8_t>(VT_QUANT_INFO_TYPE, 0));
2115 }
2116 const void *quant_info() const {
2117 return GetPointer<const void *>(VT_QUANT_INFO);
2118 }
2119 template<typename T> const T *quant_info_as() const;
2120 const tosa::UnaryQuantInfo *quant_info_as_UnaryQuantInfo() const {
2121 return quant_info_type() == tosa::QuantInfo_UnaryQuantInfo ? static_cast<const tosa::UnaryQuantInfo *>(quant_info()) : nullptr;
2122 }
2123 const tosa::ConvQuantInfo *quant_info_as_ConvQuantInfo() const {
2124 return quant_info_type() == tosa::QuantInfo_ConvQuantInfo ? static_cast<const tosa::ConvQuantInfo *>(quant_info()) : nullptr;
2125 }
2126 const tosa::MatMulQuantInfo *quant_info_as_MatMulQuantInfo() const {
2127 return quant_info_type() == tosa::QuantInfo_MatMulQuantInfo ? static_cast<const tosa::MatMulQuantInfo *>(quant_info()) : nullptr;
2128 }
2129 const tosa::PadQuantInfo *quant_info_as_PadQuantInfo() const {
2130 return quant_info_type() == tosa::QuantInfo_PadQuantInfo ? static_cast<const tosa::PadQuantInfo *>(quant_info()) : nullptr;
2131 }
2132 bool Verify(flatbuffers::Verifier &verifier) const {
2133 return VerifyTableStart(verifier) &&
2134 VerifyField<uint32_t>(verifier, VT_OP) &&
2135 VerifyField<uint8_t>(verifier, VT_ATTRIBUTE_TYPE) &&
2136 VerifyOffset(verifier, VT_ATTRIBUTE) &&
2137 VerifyAttribute(verifier, attribute(), attribute_type()) &&
2138 VerifyOffset(verifier, VT_INPUTS) &&
2139 verifier.VerifyVector(inputs()) &&
2140 verifier.VerifyVectorOfStrings(inputs()) &&
2141 VerifyOffset(verifier, VT_OUTPUTS) &&
2142 verifier.VerifyVector(outputs()) &&
2143 verifier.VerifyVectorOfStrings(outputs()) &&
2144 VerifyField<uint8_t>(verifier, VT_QUANT_INFO_TYPE) &&
2145 VerifyOffset(verifier, VT_QUANT_INFO) &&
2146 VerifyQuantInfo(verifier, quant_info(), quant_info_type()) &&
2147 verifier.EndTable();
2148 }
2149};
2150
Kevin Cheng79a41992021-08-31 16:04:40 -07002151template<> inline const tosa::PoolAttribute *TosaOperator::attribute_as<tosa::PoolAttribute>() const {
2152 return attribute_as_PoolAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002153}
2154
Kevin Cheng79a41992021-08-31 16:04:40 -07002155template<> inline const tosa::ConvAttribute *TosaOperator::attribute_as<tosa::ConvAttribute>() const {
2156 return attribute_as_ConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002157}
2158
Kevin Cheng79a41992021-08-31 16:04:40 -07002159template<> inline const tosa::TransposeConvAttribute *TosaOperator::attribute_as<tosa::TransposeConvAttribute>() const {
2160 return attribute_as_TransposeConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002161}
2162
2163template<> inline const tosa::ReluNAttribute *TosaOperator::attribute_as<tosa::ReluNAttribute>() const {
2164 return attribute_as_ReluNAttribute();
2165}
2166
2167template<> inline const tosa::AxisAttribute *TosaOperator::attribute_as<tosa::AxisAttribute>() const {
2168 return attribute_as_AxisAttribute();
2169}
2170
2171template<> inline const tosa::ReshapeAttribute *TosaOperator::attribute_as<tosa::ReshapeAttribute>() const {
2172 return attribute_as_ReshapeAttribute();
2173}
2174
2175template<> inline const tosa::SliceAttribute *TosaOperator::attribute_as<tosa::SliceAttribute>() const {
2176 return attribute_as_SliceAttribute();
2177}
2178
2179template<> inline const tosa::TileAttribute *TosaOperator::attribute_as<tosa::TileAttribute>() const {
2180 return attribute_as_TileAttribute();
2181}
2182
2183template<> inline const tosa::ResizeAttribute *TosaOperator::attribute_as<tosa::ResizeAttribute>() const {
2184 return attribute_as_ResizeAttribute();
2185}
2186
2187template<> inline const tosa::ClampAttribute *TosaOperator::attribute_as<tosa::ClampAttribute>() const {
2188 return attribute_as_ClampAttribute();
2189}
2190
2191template<> inline const tosa::RescaleAttribute *TosaOperator::attribute_as<tosa::RescaleAttribute>() const {
2192 return attribute_as_RescaleAttribute();
2193}
2194
2195template<> inline const tosa::MulAttribute *TosaOperator::attribute_as<tosa::MulAttribute>() const {
2196 return attribute_as_MulAttribute();
2197}
2198
2199template<> inline const tosa::ArithmeticRightShiftAttribute *TosaOperator::attribute_as<tosa::ArithmeticRightShiftAttribute>() const {
2200 return attribute_as_ArithmeticRightShiftAttribute();
2201}
2202
2203template<> inline const tosa::CondIfAttribute *TosaOperator::attribute_as<tosa::CondIfAttribute>() const {
2204 return attribute_as_CondIfAttribute();
2205}
2206
2207template<> inline const tosa::WhileLoopAttribute *TosaOperator::attribute_as<tosa::WhileLoopAttribute>() const {
2208 return attribute_as_WhileLoopAttribute();
2209}
2210
2211template<> inline const tosa::UnaryQuantInfo *TosaOperator::quant_info_as<tosa::UnaryQuantInfo>() const {
2212 return quant_info_as_UnaryQuantInfo();
2213}
2214
2215template<> inline const tosa::ConvQuantInfo *TosaOperator::quant_info_as<tosa::ConvQuantInfo>() const {
2216 return quant_info_as_ConvQuantInfo();
2217}
2218
2219template<> inline const tosa::MatMulQuantInfo *TosaOperator::quant_info_as<tosa::MatMulQuantInfo>() const {
2220 return quant_info_as_MatMulQuantInfo();
2221}
2222
2223template<> inline const tosa::PadQuantInfo *TosaOperator::quant_info_as<tosa::PadQuantInfo>() const {
2224 return quant_info_as_PadQuantInfo();
2225}
2226
2227struct TosaOperatorBuilder {
2228 typedef TosaOperator Table;
2229 flatbuffers::FlatBufferBuilder &fbb_;
2230 flatbuffers::uoffset_t start_;
2231 void add_op(tosa::Op op) {
2232 fbb_.AddElement<uint32_t>(TosaOperator::VT_OP, static_cast<uint32_t>(op), 0);
2233 }
2234 void add_attribute_type(tosa::Attribute attribute_type) {
2235 fbb_.AddElement<uint8_t>(TosaOperator::VT_ATTRIBUTE_TYPE, static_cast<uint8_t>(attribute_type), 0);
2236 }
2237 void add_attribute(flatbuffers::Offset<void> attribute) {
2238 fbb_.AddOffset(TosaOperator::VT_ATTRIBUTE, attribute);
2239 }
2240 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2241 fbb_.AddOffset(TosaOperator::VT_INPUTS, inputs);
2242 }
2243 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2244 fbb_.AddOffset(TosaOperator::VT_OUTPUTS, outputs);
2245 }
2246 void add_quant_info_type(tosa::QuantInfo quant_info_type) {
2247 fbb_.AddElement<uint8_t>(TosaOperator::VT_QUANT_INFO_TYPE, static_cast<uint8_t>(quant_info_type), 0);
2248 }
2249 void add_quant_info(flatbuffers::Offset<void> quant_info) {
2250 fbb_.AddOffset(TosaOperator::VT_QUANT_INFO, quant_info);
2251 }
2252 explicit TosaOperatorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2253 : fbb_(_fbb) {
2254 start_ = fbb_.StartTable();
2255 }
2256 TosaOperatorBuilder &operator=(const TosaOperatorBuilder &);
2257 flatbuffers::Offset<TosaOperator> Finish() {
2258 const auto end = fbb_.EndTable(start_);
2259 auto o = flatbuffers::Offset<TosaOperator>(end);
2260 return o;
2261 }
2262};
2263
2264inline flatbuffers::Offset<TosaOperator> CreateTosaOperator(
2265 flatbuffers::FlatBufferBuilder &_fbb,
2266 tosa::Op op = tosa::Op_UNKNOWN,
2267 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2268 flatbuffers::Offset<void> attribute = 0,
2269 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
2270 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0,
2271 tosa::QuantInfo quant_info_type = tosa::QuantInfo_NONE,
2272 flatbuffers::Offset<void> quant_info = 0) {
2273 TosaOperatorBuilder builder_(_fbb);
2274 builder_.add_quant_info(quant_info);
2275 builder_.add_outputs(outputs);
2276 builder_.add_inputs(inputs);
2277 builder_.add_attribute(attribute);
2278 builder_.add_op(op);
2279 builder_.add_quant_info_type(quant_info_type);
2280 builder_.add_attribute_type(attribute_type);
2281 return builder_.Finish();
2282}
2283
2284inline flatbuffers::Offset<TosaOperator> CreateTosaOperatorDirect(
2285 flatbuffers::FlatBufferBuilder &_fbb,
2286 tosa::Op op = tosa::Op_UNKNOWN,
2287 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2288 flatbuffers::Offset<void> attribute = 0,
2289 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
2290 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr,
2291 tosa::QuantInfo quant_info_type = tosa::QuantInfo_NONE,
2292 flatbuffers::Offset<void> quant_info = 0) {
2293 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2294 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2295 return tosa::CreateTosaOperator(
2296 _fbb,
2297 op,
2298 attribute_type,
2299 attribute,
2300 inputs__,
2301 outputs__,
2302 quant_info_type,
2303 quant_info);
2304}
2305
2306struct TosaBasicBlock FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2307 typedef TosaBasicBlockBuilder Builder;
2308 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2309 VT_NAME = 4,
2310 VT_OPERATORS = 6,
2311 VT_TENSORS = 8,
2312 VT_INPUTS = 10,
2313 VT_OUTPUTS = 12
2314 };
2315 const flatbuffers::String *name() const {
2316 return GetPointer<const flatbuffers::String *>(VT_NAME);
2317 }
2318 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *operators() const {
2319 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *>(VT_OPERATORS);
2320 }
2321 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors() const {
2322 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *>(VT_TENSORS);
2323 }
2324 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2325 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2326 }
2327 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2328 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2329 }
2330 bool Verify(flatbuffers::Verifier &verifier) const {
2331 return VerifyTableStart(verifier) &&
2332 VerifyOffset(verifier, VT_NAME) &&
2333 verifier.VerifyString(name()) &&
2334 VerifyOffset(verifier, VT_OPERATORS) &&
2335 verifier.VerifyVector(operators()) &&
2336 verifier.VerifyVectorOfTables(operators()) &&
2337 VerifyOffset(verifier, VT_TENSORS) &&
2338 verifier.VerifyVector(tensors()) &&
2339 verifier.VerifyVectorOfTables(tensors()) &&
2340 VerifyOffset(verifier, VT_INPUTS) &&
2341 verifier.VerifyVector(inputs()) &&
2342 verifier.VerifyVectorOfStrings(inputs()) &&
2343 VerifyOffset(verifier, VT_OUTPUTS) &&
2344 verifier.VerifyVector(outputs()) &&
2345 verifier.VerifyVectorOfStrings(outputs()) &&
2346 verifier.EndTable();
2347 }
2348};
2349
2350struct TosaBasicBlockBuilder {
2351 typedef TosaBasicBlock Table;
2352 flatbuffers::FlatBufferBuilder &fbb_;
2353 flatbuffers::uoffset_t start_;
2354 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2355 fbb_.AddOffset(TosaBasicBlock::VT_NAME, name);
2356 }
2357 void add_operators(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators) {
2358 fbb_.AddOffset(TosaBasicBlock::VT_OPERATORS, operators);
2359 }
2360 void add_tensors(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors) {
2361 fbb_.AddOffset(TosaBasicBlock::VT_TENSORS, tensors);
2362 }
2363 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2364 fbb_.AddOffset(TosaBasicBlock::VT_INPUTS, inputs);
2365 }
2366 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2367 fbb_.AddOffset(TosaBasicBlock::VT_OUTPUTS, outputs);
2368 }
2369 explicit TosaBasicBlockBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2370 : fbb_(_fbb) {
2371 start_ = fbb_.StartTable();
2372 }
2373 TosaBasicBlockBuilder &operator=(const TosaBasicBlockBuilder &);
2374 flatbuffers::Offset<TosaBasicBlock> Finish() {
2375 const auto end = fbb_.EndTable(start_);
2376 auto o = flatbuffers::Offset<TosaBasicBlock>(end);
2377 return o;
2378 }
2379};
2380
2381inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlock(
2382 flatbuffers::FlatBufferBuilder &_fbb,
2383 flatbuffers::Offset<flatbuffers::String> name = 0,
2384 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators = 0,
2385 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors = 0,
2386 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
2387 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
2388 TosaBasicBlockBuilder builder_(_fbb);
2389 builder_.add_outputs(outputs);
2390 builder_.add_inputs(inputs);
2391 builder_.add_tensors(tensors);
2392 builder_.add_operators(operators);
2393 builder_.add_name(name);
2394 return builder_.Finish();
2395}
2396
2397inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlockDirect(
2398 flatbuffers::FlatBufferBuilder &_fbb,
2399 const char *name = nullptr,
2400 const std::vector<flatbuffers::Offset<tosa::TosaOperator>> *operators = nullptr,
2401 const std::vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors = nullptr,
2402 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
2403 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
2404 auto name__ = name ? _fbb.CreateString(name) : 0;
2405 auto operators__ = operators ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaOperator>>(*operators) : 0;
2406 auto tensors__ = tensors ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaTensor>>(*tensors) : 0;
2407 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2408 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2409 return tosa::CreateTosaBasicBlock(
2410 _fbb,
2411 name__,
2412 operators__,
2413 tensors__,
2414 inputs__,
2415 outputs__);
2416}
2417
2418struct TosaGraph FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2419 typedef TosaGraphBuilder Builder;
2420 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2421 VT_VERSION = 4,
2422 VT_BLOCKS = 6
2423 };
2424 const tosa::Version *version() const {
2425 return GetPointer<const tosa::Version *>(VT_VERSION);
2426 }
2427 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks() const {
2428 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *>(VT_BLOCKS);
2429 }
2430 bool Verify(flatbuffers::Verifier &verifier) const {
2431 return VerifyTableStart(verifier) &&
2432 VerifyOffset(verifier, VT_VERSION) &&
2433 verifier.VerifyTable(version()) &&
2434 VerifyOffset(verifier, VT_BLOCKS) &&
2435 verifier.VerifyVector(blocks()) &&
2436 verifier.VerifyVectorOfTables(blocks()) &&
2437 verifier.EndTable();
2438 }
2439};
2440
2441struct TosaGraphBuilder {
2442 typedef TosaGraph Table;
2443 flatbuffers::FlatBufferBuilder &fbb_;
2444 flatbuffers::uoffset_t start_;
2445 void add_version(flatbuffers::Offset<tosa::Version> version) {
2446 fbb_.AddOffset(TosaGraph::VT_VERSION, version);
2447 }
2448 void add_blocks(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks) {
2449 fbb_.AddOffset(TosaGraph::VT_BLOCKS, blocks);
2450 }
2451 explicit TosaGraphBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2452 : fbb_(_fbb) {
2453 start_ = fbb_.StartTable();
2454 }
2455 TosaGraphBuilder &operator=(const TosaGraphBuilder &);
2456 flatbuffers::Offset<TosaGraph> Finish() {
2457 const auto end = fbb_.EndTable(start_);
2458 auto o = flatbuffers::Offset<TosaGraph>(end);
2459 return o;
2460 }
2461};
2462
2463inline flatbuffers::Offset<TosaGraph> CreateTosaGraph(
2464 flatbuffers::FlatBufferBuilder &_fbb,
2465 flatbuffers::Offset<tosa::Version> version = 0,
2466 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks = 0) {
2467 TosaGraphBuilder builder_(_fbb);
2468 builder_.add_blocks(blocks);
2469 builder_.add_version(version);
2470 return builder_.Finish();
2471}
2472
2473inline flatbuffers::Offset<TosaGraph> CreateTosaGraphDirect(
2474 flatbuffers::FlatBufferBuilder &_fbb,
2475 flatbuffers::Offset<tosa::Version> version = 0,
2476 const std::vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks = nullptr) {
2477 auto blocks__ = blocks ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaBasicBlock>>(*blocks) : 0;
2478 return tosa::CreateTosaGraph(
2479 _fbb,
2480 version,
2481 blocks__);
2482}
2483
2484inline bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type) {
2485 switch (type) {
2486 case Attribute_NONE: {
2487 return true;
2488 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002489 case Attribute_PoolAttribute: {
2490 auto ptr = reinterpret_cast<const tosa::PoolAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002491 return verifier.VerifyTable(ptr);
2492 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002493 case Attribute_ConvAttribute: {
2494 auto ptr = reinterpret_cast<const tosa::ConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002495 return verifier.VerifyTable(ptr);
2496 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002497 case Attribute_TransposeConvAttribute: {
2498 auto ptr = reinterpret_cast<const tosa::TransposeConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002499 return verifier.VerifyTable(ptr);
2500 }
2501 case Attribute_ReluNAttribute: {
2502 auto ptr = reinterpret_cast<const tosa::ReluNAttribute *>(obj);
2503 return verifier.VerifyTable(ptr);
2504 }
2505 case Attribute_AxisAttribute: {
2506 auto ptr = reinterpret_cast<const tosa::AxisAttribute *>(obj);
2507 return verifier.VerifyTable(ptr);
2508 }
2509 case Attribute_ReshapeAttribute: {
2510 auto ptr = reinterpret_cast<const tosa::ReshapeAttribute *>(obj);
2511 return verifier.VerifyTable(ptr);
2512 }
2513 case Attribute_SliceAttribute: {
2514 auto ptr = reinterpret_cast<const tosa::SliceAttribute *>(obj);
2515 return verifier.VerifyTable(ptr);
2516 }
2517 case Attribute_TileAttribute: {
2518 auto ptr = reinterpret_cast<const tosa::TileAttribute *>(obj);
2519 return verifier.VerifyTable(ptr);
2520 }
2521 case Attribute_ResizeAttribute: {
2522 auto ptr = reinterpret_cast<const tosa::ResizeAttribute *>(obj);
2523 return verifier.VerifyTable(ptr);
2524 }
2525 case Attribute_ClampAttribute: {
2526 auto ptr = reinterpret_cast<const tosa::ClampAttribute *>(obj);
2527 return verifier.VerifyTable(ptr);
2528 }
2529 case Attribute_RescaleAttribute: {
2530 auto ptr = reinterpret_cast<const tosa::RescaleAttribute *>(obj);
2531 return verifier.VerifyTable(ptr);
2532 }
2533 case Attribute_MulAttribute: {
2534 auto ptr = reinterpret_cast<const tosa::MulAttribute *>(obj);
2535 return verifier.VerifyTable(ptr);
2536 }
2537 case Attribute_ArithmeticRightShiftAttribute: {
2538 auto ptr = reinterpret_cast<const tosa::ArithmeticRightShiftAttribute *>(obj);
2539 return verifier.VerifyTable(ptr);
2540 }
2541 case Attribute_CondIfAttribute: {
2542 auto ptr = reinterpret_cast<const tosa::CondIfAttribute *>(obj);
2543 return verifier.VerifyTable(ptr);
2544 }
2545 case Attribute_WhileLoopAttribute: {
2546 auto ptr = reinterpret_cast<const tosa::WhileLoopAttribute *>(obj);
2547 return verifier.VerifyTable(ptr);
2548 }
2549 default: return true;
2550 }
2551}
2552
2553inline bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
2554 if (!values || !types) return !values && !types;
2555 if (values->size() != types->size()) return false;
2556 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
2557 if (!VerifyAttribute(
2558 verifier, values->Get(i), types->GetEnum<Attribute>(i))) {
2559 return false;
2560 }
2561 }
2562 return true;
2563}
2564
2565inline bool VerifyQuantInfo(flatbuffers::Verifier &verifier, const void *obj, QuantInfo type) {
2566 switch (type) {
2567 case QuantInfo_NONE: {
2568 return true;
2569 }
2570 case QuantInfo_UnaryQuantInfo: {
2571 auto ptr = reinterpret_cast<const tosa::UnaryQuantInfo *>(obj);
2572 return verifier.VerifyTable(ptr);
2573 }
2574 case QuantInfo_ConvQuantInfo: {
2575 auto ptr = reinterpret_cast<const tosa::ConvQuantInfo *>(obj);
2576 return verifier.VerifyTable(ptr);
2577 }
2578 case QuantInfo_MatMulQuantInfo: {
2579 auto ptr = reinterpret_cast<const tosa::MatMulQuantInfo *>(obj);
2580 return verifier.VerifyTable(ptr);
2581 }
2582 case QuantInfo_PadQuantInfo: {
2583 auto ptr = reinterpret_cast<const tosa::PadQuantInfo *>(obj);
2584 return verifier.VerifyTable(ptr);
2585 }
2586 default: return true;
2587 }
2588}
2589
2590inline bool VerifyQuantInfoVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
2591 if (!values || !types) return !values && !types;
2592 if (values->size() != types->size()) return false;
2593 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
2594 if (!VerifyQuantInfo(
2595 verifier, values->Get(i), types->GetEnum<QuantInfo>(i))) {
2596 return false;
2597 }
2598 }
2599 return true;
2600}
2601
2602inline const tosa::TosaGraph *GetTosaGraph(const void *buf) {
2603 return flatbuffers::GetRoot<tosa::TosaGraph>(buf);
2604}
2605
2606inline const tosa::TosaGraph *GetSizePrefixedTosaGraph(const void *buf) {
2607 return flatbuffers::GetSizePrefixedRoot<tosa::TosaGraph>(buf);
2608}
2609
2610inline const char *TosaGraphIdentifier() {
2611 return "TOSA";
2612}
2613
2614inline bool TosaGraphBufferHasIdentifier(const void *buf) {
2615 return flatbuffers::BufferHasIdentifier(
2616 buf, TosaGraphIdentifier());
2617}
2618
2619inline bool VerifyTosaGraphBuffer(
2620 flatbuffers::Verifier &verifier) {
2621 return verifier.VerifyBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2622}
2623
2624inline bool VerifySizePrefixedTosaGraphBuffer(
2625 flatbuffers::Verifier &verifier) {
2626 return verifier.VerifySizePrefixedBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2627}
2628
2629inline const char *TosaGraphExtension() {
2630 return "tosa";
2631}
2632
2633inline void FinishTosaGraphBuffer(
2634 flatbuffers::FlatBufferBuilder &fbb,
2635 flatbuffers::Offset<tosa::TosaGraph> root) {
2636 fbb.Finish(root, TosaGraphIdentifier());
2637}
2638
2639inline void FinishSizePrefixedTosaGraphBuffer(
2640 flatbuffers::FlatBufferBuilder &fbb,
2641 flatbuffers::Offset<tosa::TosaGraph> root) {
2642 fbb.FinishSizePrefixed(root, TosaGraphIdentifier());
2643}
2644
2645} // namespace tosa
2646
2647#endif // FLATBUFFERS_GENERATED_TOSA_TOSA_H_