blob: 223760e76bdc79b09242688aa8311be32dd52e4a [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
Kevin Cheng38d214c2021-10-15 15:49:19 -070035struct PadAttribute;
36struct PadAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070037
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
Kevin Cheng38d214c2021-10-15 15:49:19 -070071struct TransposeAttribute;
72struct TransposeAttributeBuilder;
73
74struct TableAttribute;
75struct TableAttributeBuilder;
76
Eric Kunze2364dcd2021-04-26 11:06:57 -070077struct UnaryQuantInfo;
78struct UnaryQuantInfoBuilder;
79
80struct ConvQuantInfo;
81struct ConvQuantInfoBuilder;
82
83struct MatMulQuantInfo;
84struct MatMulQuantInfoBuilder;
85
86struct PadQuantInfo;
87struct PadQuantInfoBuilder;
88
89struct Version;
90struct VersionBuilder;
91
92struct TosaTensor;
93struct TosaTensorBuilder;
94
95struct TosaOperator;
96struct TosaOperatorBuilder;
97
98struct TosaBasicBlock;
99struct TosaBasicBlockBuilder;
100
101struct TosaGraph;
102struct TosaGraphBuilder;
103
104enum DType {
105 DType_UNKNOWN = 0,
106 DType_BOOL = 1,
107 DType_UINT8 = 2,
108 DType_INT4 = 3,
109 DType_INT8 = 4,
110 DType_INT16 = 5,
111 DType_INT32 = 6,
112 DType_INT48 = 7,
113 DType_FLOAT = 8,
114 DType_MIN = DType_UNKNOWN,
115 DType_MAX = DType_FLOAT
116};
117
118inline const DType (&EnumValuesDType())[9] {
119 static const DType values[] = {
120 DType_UNKNOWN,
121 DType_BOOL,
122 DType_UINT8,
123 DType_INT4,
124 DType_INT8,
125 DType_INT16,
126 DType_INT32,
127 DType_INT48,
128 DType_FLOAT
129 };
130 return values;
131}
132
133inline const char * const *EnumNamesDType() {
134 static const char * const names[10] = {
135 "UNKNOWN",
136 "BOOL",
137 "UINT8",
138 "INT4",
139 "INT8",
140 "INT16",
141 "INT32",
142 "INT48",
143 "FLOAT",
144 nullptr
145 };
146 return names;
147}
148
149inline const char *EnumNameDType(DType e) {
150 if (flatbuffers::IsOutRange(e, DType_UNKNOWN, DType_FLOAT)) return "";
151 const size_t index = static_cast<size_t>(e);
152 return EnumNamesDType()[index];
153}
154
155enum ResizeMode {
156 ResizeMode_UNKNOWN = 0,
157 ResizeMode_NEAREST = 1,
158 ResizeMode_BILINEAR = 2,
159 ResizeMode_MIN = ResizeMode_UNKNOWN,
160 ResizeMode_MAX = ResizeMode_BILINEAR
161};
162
163inline const ResizeMode (&EnumValuesResizeMode())[3] {
164 static const ResizeMode values[] = {
165 ResizeMode_UNKNOWN,
166 ResizeMode_NEAREST,
167 ResizeMode_BILINEAR
168 };
169 return values;
170}
171
172inline const char * const *EnumNamesResizeMode() {
173 static const char * const names[4] = {
174 "UNKNOWN",
175 "NEAREST",
176 "BILINEAR",
177 nullptr
178 };
179 return names;
180}
181
182inline const char *EnumNameResizeMode(ResizeMode e) {
183 if (flatbuffers::IsOutRange(e, ResizeMode_UNKNOWN, ResizeMode_BILINEAR)) return "";
184 const size_t index = static_cast<size_t>(e);
185 return EnumNamesResizeMode()[index];
186}
187
188enum Op {
189 Op_UNKNOWN = 0,
190 Op_ARGMAX = 1,
191 Op_AVG_POOL2D = 2,
192 Op_CONV2D = 3,
193 Op_CONV3D = 4,
194 Op_DEPTHWISE_CONV2D = 5,
195 Op_FULLY_CONNECTED = 6,
196 Op_MATMUL = 7,
197 Op_MAX_POOL2D = 8,
198 Op_TRANSPOSE_CONV2D = 9,
199 Op_CLAMP = 10,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700200 Op_RESERVED = 11,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700201 Op_SIGMOID = 12,
202 Op_TANH = 13,
203 Op_ADD = 14,
204 Op_ARITHMETIC_RIGHT_SHIFT = 15,
205 Op_BITWISE_AND = 16,
206 Op_BITWISE_OR = 17,
207 Op_BITWISE_XOR = 18,
Matthew Haddonab905ec2021-08-23 16:40:57 +0100208 Op_INTDIV = 19,
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700209 Op_LOGICAL_AND = 20,
210 Op_LOGICAL_LEFT_SHIFT = 21,
211 Op_LOGICAL_RIGHT_SHIFT = 22,
212 Op_LOGICAL_OR = 23,
213 Op_LOGICAL_XOR = 24,
214 Op_MAXIMUM = 25,
215 Op_MINIMUM = 26,
216 Op_MUL = 27,
217 Op_POW = 28,
218 Op_SUB = 29,
219 Op_TABLE = 30,
220 Op_ABS = 31,
221 Op_BITWISE_NOT = 32,
222 Op_CEIL = 33,
223 Op_CLZ = 34,
224 Op_EXP = 35,
225 Op_FLOOR = 36,
226 Op_LOG = 37,
227 Op_LOGICAL_NOT = 38,
228 Op_NEGATE = 39,
229 Op_RECIPROCAL = 40,
230 Op_RSQRT = 41,
231 Op_SELECT = 42,
232 Op_EQUAL = 43,
233 Op_GREATER = 44,
234 Op_GREATER_EQUAL = 45,
235 Op_REDUCE_ANY = 46,
236 Op_REDUCE_ALL = 47,
237 Op_REDUCE_MAX = 48,
238 Op_REDUCE_MIN = 49,
239 Op_REDUCE_PRODUCT = 50,
240 Op_REDUCE_SUM = 51,
241 Op_CONCAT = 52,
242 Op_PAD = 53,
243 Op_RESHAPE = 54,
244 Op_REVERSE = 55,
245 Op_SLICE = 56,
246 Op_TILE = 57,
247 Op_TRANSPOSE = 58,
248 Op_GATHER = 59,
249 Op_SCATTER = 60,
250 Op_RESIZE = 61,
251 Op_CAST = 62,
252 Op_RESCALE = 63,
253 Op_CONST = 64,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700254 Op_IDENTITY = 65,
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700255 Op_CUSTOM = 66,
256 Op_COND_IF = 67,
257 Op_WHILE_LOOP = 68,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700258 Op_MIN = Op_UNKNOWN,
259 Op_MAX = Op_WHILE_LOOP
260};
261
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700262inline const Op (&EnumValuesOp())[69] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700263 static const Op values[] = {
264 Op_UNKNOWN,
265 Op_ARGMAX,
266 Op_AVG_POOL2D,
267 Op_CONV2D,
268 Op_CONV3D,
269 Op_DEPTHWISE_CONV2D,
270 Op_FULLY_CONNECTED,
271 Op_MATMUL,
272 Op_MAX_POOL2D,
273 Op_TRANSPOSE_CONV2D,
274 Op_CLAMP,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700275 Op_RESERVED,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700276 Op_SIGMOID,
277 Op_TANH,
278 Op_ADD,
279 Op_ARITHMETIC_RIGHT_SHIFT,
280 Op_BITWISE_AND,
281 Op_BITWISE_OR,
282 Op_BITWISE_XOR,
Matthew Haddonab905ec2021-08-23 16:40:57 +0100283 Op_INTDIV,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700284 Op_LOGICAL_AND,
285 Op_LOGICAL_LEFT_SHIFT,
286 Op_LOGICAL_RIGHT_SHIFT,
287 Op_LOGICAL_OR,
288 Op_LOGICAL_XOR,
289 Op_MAXIMUM,
290 Op_MINIMUM,
291 Op_MUL,
292 Op_POW,
293 Op_SUB,
294 Op_TABLE,
295 Op_ABS,
296 Op_BITWISE_NOT,
297 Op_CEIL,
298 Op_CLZ,
299 Op_EXP,
300 Op_FLOOR,
301 Op_LOG,
302 Op_LOGICAL_NOT,
303 Op_NEGATE,
304 Op_RECIPROCAL,
305 Op_RSQRT,
306 Op_SELECT,
307 Op_EQUAL,
308 Op_GREATER,
309 Op_GREATER_EQUAL,
310 Op_REDUCE_ANY,
311 Op_REDUCE_ALL,
312 Op_REDUCE_MAX,
313 Op_REDUCE_MIN,
314 Op_REDUCE_PRODUCT,
315 Op_REDUCE_SUM,
316 Op_CONCAT,
317 Op_PAD,
318 Op_RESHAPE,
319 Op_REVERSE,
320 Op_SLICE,
321 Op_TILE,
322 Op_TRANSPOSE,
323 Op_GATHER,
324 Op_SCATTER,
325 Op_RESIZE,
326 Op_CAST,
327 Op_RESCALE,
328 Op_CONST,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700329 Op_IDENTITY,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700330 Op_CUSTOM,
331 Op_COND_IF,
332 Op_WHILE_LOOP
333 };
334 return values;
335}
336
337inline const char * const *EnumNamesOp() {
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700338 static const char * const names[70] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700339 "UNKNOWN",
340 "ARGMAX",
341 "AVG_POOL2D",
342 "CONV2D",
343 "CONV3D",
344 "DEPTHWISE_CONV2D",
345 "FULLY_CONNECTED",
346 "MATMUL",
347 "MAX_POOL2D",
348 "TRANSPOSE_CONV2D",
349 "CLAMP",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700350 "RESERVED",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700351 "SIGMOID",
352 "TANH",
353 "ADD",
354 "ARITHMETIC_RIGHT_SHIFT",
355 "BITWISE_AND",
356 "BITWISE_OR",
357 "BITWISE_XOR",
Matthew Haddonab905ec2021-08-23 16:40:57 +0100358 "INTDIV",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700359 "LOGICAL_AND",
360 "LOGICAL_LEFT_SHIFT",
361 "LOGICAL_RIGHT_SHIFT",
362 "LOGICAL_OR",
363 "LOGICAL_XOR",
364 "MAXIMUM",
365 "MINIMUM",
366 "MUL",
367 "POW",
368 "SUB",
369 "TABLE",
370 "ABS",
371 "BITWISE_NOT",
372 "CEIL",
373 "CLZ",
374 "EXP",
375 "FLOOR",
376 "LOG",
377 "LOGICAL_NOT",
378 "NEGATE",
379 "RECIPROCAL",
380 "RSQRT",
381 "SELECT",
382 "EQUAL",
383 "GREATER",
384 "GREATER_EQUAL",
385 "REDUCE_ANY",
386 "REDUCE_ALL",
387 "REDUCE_MAX",
388 "REDUCE_MIN",
389 "REDUCE_PRODUCT",
390 "REDUCE_SUM",
391 "CONCAT",
392 "PAD",
393 "RESHAPE",
394 "REVERSE",
395 "SLICE",
396 "TILE",
397 "TRANSPOSE",
398 "GATHER",
399 "SCATTER",
400 "RESIZE",
401 "CAST",
402 "RESCALE",
403 "CONST",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700404 "IDENTITY",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700405 "CUSTOM",
406 "COND_IF",
407 "WHILE_LOOP",
408 nullptr
409 };
410 return names;
411}
412
413inline const char *EnumNameOp(Op e) {
414 if (flatbuffers::IsOutRange(e, Op_UNKNOWN, Op_WHILE_LOOP)) return "";
415 const size_t index = static_cast<size_t>(e);
416 return EnumNamesOp()[index];
417}
418
419enum Attribute {
420 Attribute_NONE = 0,
Kevin Cheng79a41992021-08-31 16:04:40 -0700421 Attribute_PoolAttribute = 1,
422 Attribute_ConvAttribute = 2,
423 Attribute_TransposeConvAttribute = 3,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700424 Attribute_PadAttribute = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700425 Attribute_AxisAttribute = 5,
426 Attribute_ReshapeAttribute = 6,
427 Attribute_SliceAttribute = 7,
428 Attribute_TileAttribute = 8,
429 Attribute_ResizeAttribute = 9,
430 Attribute_ClampAttribute = 10,
431 Attribute_RescaleAttribute = 11,
432 Attribute_MulAttribute = 12,
433 Attribute_ArithmeticRightShiftAttribute = 13,
434 Attribute_CondIfAttribute = 14,
435 Attribute_WhileLoopAttribute = 15,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700436 Attribute_TransposeAttribute = 16,
437 Attribute_TableAttribute = 17,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700438 Attribute_MIN = Attribute_NONE,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700439 Attribute_MAX = Attribute_TableAttribute
Eric Kunze2364dcd2021-04-26 11:06:57 -0700440};
441
Kevin Cheng38d214c2021-10-15 15:49:19 -0700442inline const Attribute (&EnumValuesAttribute())[18] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700443 static const Attribute values[] = {
444 Attribute_NONE,
Kevin Cheng79a41992021-08-31 16:04:40 -0700445 Attribute_PoolAttribute,
446 Attribute_ConvAttribute,
447 Attribute_TransposeConvAttribute,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700448 Attribute_PadAttribute,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700449 Attribute_AxisAttribute,
450 Attribute_ReshapeAttribute,
451 Attribute_SliceAttribute,
452 Attribute_TileAttribute,
453 Attribute_ResizeAttribute,
454 Attribute_ClampAttribute,
455 Attribute_RescaleAttribute,
456 Attribute_MulAttribute,
457 Attribute_ArithmeticRightShiftAttribute,
458 Attribute_CondIfAttribute,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700459 Attribute_WhileLoopAttribute,
460 Attribute_TransposeAttribute,
461 Attribute_TableAttribute
Eric Kunze2364dcd2021-04-26 11:06:57 -0700462 };
463 return values;
464}
465
466inline const char * const *EnumNamesAttribute() {
Kevin Cheng38d214c2021-10-15 15:49:19 -0700467 static const char * const names[19] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700468 "NONE",
Kevin Cheng79a41992021-08-31 16:04:40 -0700469 "PoolAttribute",
470 "ConvAttribute",
471 "TransposeConvAttribute",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700472 "PadAttribute",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700473 "AxisAttribute",
474 "ReshapeAttribute",
475 "SliceAttribute",
476 "TileAttribute",
477 "ResizeAttribute",
478 "ClampAttribute",
479 "RescaleAttribute",
480 "MulAttribute",
481 "ArithmeticRightShiftAttribute",
482 "CondIfAttribute",
483 "WhileLoopAttribute",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700484 "TransposeAttribute",
485 "TableAttribute",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700486 nullptr
487 };
488 return names;
489}
490
491inline const char *EnumNameAttribute(Attribute e) {
Kevin Cheng38d214c2021-10-15 15:49:19 -0700492 if (flatbuffers::IsOutRange(e, Attribute_NONE, Attribute_TableAttribute)) return "";
Eric Kunze2364dcd2021-04-26 11:06:57 -0700493 const size_t index = static_cast<size_t>(e);
494 return EnumNamesAttribute()[index];
495}
496
497template<typename T> struct AttributeTraits {
498 static const Attribute enum_value = Attribute_NONE;
499};
500
Kevin Cheng79a41992021-08-31 16:04:40 -0700501template<> struct AttributeTraits<tosa::PoolAttribute> {
502 static const Attribute enum_value = Attribute_PoolAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700503};
504
Kevin Cheng79a41992021-08-31 16:04:40 -0700505template<> struct AttributeTraits<tosa::ConvAttribute> {
506 static const Attribute enum_value = Attribute_ConvAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700507};
508
Kevin Cheng79a41992021-08-31 16:04:40 -0700509template<> struct AttributeTraits<tosa::TransposeConvAttribute> {
510 static const Attribute enum_value = Attribute_TransposeConvAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700511};
512
Kevin Cheng38d214c2021-10-15 15:49:19 -0700513template<> struct AttributeTraits<tosa::PadAttribute> {
514 static const Attribute enum_value = Attribute_PadAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700515};
516
517template<> struct AttributeTraits<tosa::AxisAttribute> {
518 static const Attribute enum_value = Attribute_AxisAttribute;
519};
520
521template<> struct AttributeTraits<tosa::ReshapeAttribute> {
522 static const Attribute enum_value = Attribute_ReshapeAttribute;
523};
524
525template<> struct AttributeTraits<tosa::SliceAttribute> {
526 static const Attribute enum_value = Attribute_SliceAttribute;
527};
528
529template<> struct AttributeTraits<tosa::TileAttribute> {
530 static const Attribute enum_value = Attribute_TileAttribute;
531};
532
533template<> struct AttributeTraits<tosa::ResizeAttribute> {
534 static const Attribute enum_value = Attribute_ResizeAttribute;
535};
536
537template<> struct AttributeTraits<tosa::ClampAttribute> {
538 static const Attribute enum_value = Attribute_ClampAttribute;
539};
540
541template<> struct AttributeTraits<tosa::RescaleAttribute> {
542 static const Attribute enum_value = Attribute_RescaleAttribute;
543};
544
545template<> struct AttributeTraits<tosa::MulAttribute> {
546 static const Attribute enum_value = Attribute_MulAttribute;
547};
548
549template<> struct AttributeTraits<tosa::ArithmeticRightShiftAttribute> {
550 static const Attribute enum_value = Attribute_ArithmeticRightShiftAttribute;
551};
552
553template<> struct AttributeTraits<tosa::CondIfAttribute> {
554 static const Attribute enum_value = Attribute_CondIfAttribute;
555};
556
557template<> struct AttributeTraits<tosa::WhileLoopAttribute> {
558 static const Attribute enum_value = Attribute_WhileLoopAttribute;
559};
560
Kevin Cheng38d214c2021-10-15 15:49:19 -0700561template<> struct AttributeTraits<tosa::TransposeAttribute> {
562 static const Attribute enum_value = Attribute_TransposeAttribute;
563};
564
565template<> struct AttributeTraits<tosa::TableAttribute> {
566 static const Attribute enum_value = Attribute_TableAttribute;
567};
568
Eric Kunze2364dcd2021-04-26 11:06:57 -0700569bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type);
570bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types);
571
572enum QuantInfo {
573 QuantInfo_NONE = 0,
574 QuantInfo_UnaryQuantInfo = 1,
575 QuantInfo_ConvQuantInfo = 2,
576 QuantInfo_MatMulQuantInfo = 3,
577 QuantInfo_PadQuantInfo = 4,
578 QuantInfo_MIN = QuantInfo_NONE,
579 QuantInfo_MAX = QuantInfo_PadQuantInfo
580};
581
582inline const QuantInfo (&EnumValuesQuantInfo())[5] {
583 static const QuantInfo values[] = {
584 QuantInfo_NONE,
585 QuantInfo_UnaryQuantInfo,
586 QuantInfo_ConvQuantInfo,
587 QuantInfo_MatMulQuantInfo,
588 QuantInfo_PadQuantInfo
589 };
590 return values;
591}
592
593inline const char * const *EnumNamesQuantInfo() {
594 static const char * const names[6] = {
595 "NONE",
596 "UnaryQuantInfo",
597 "ConvQuantInfo",
598 "MatMulQuantInfo",
599 "PadQuantInfo",
600 nullptr
601 };
602 return names;
603}
604
605inline const char *EnumNameQuantInfo(QuantInfo e) {
606 if (flatbuffers::IsOutRange(e, QuantInfo_NONE, QuantInfo_PadQuantInfo)) return "";
607 const size_t index = static_cast<size_t>(e);
608 return EnumNamesQuantInfo()[index];
609}
610
611template<typename T> struct QuantInfoTraits {
612 static const QuantInfo enum_value = QuantInfo_NONE;
613};
614
615template<> struct QuantInfoTraits<tosa::UnaryQuantInfo> {
616 static const QuantInfo enum_value = QuantInfo_UnaryQuantInfo;
617};
618
619template<> struct QuantInfoTraits<tosa::ConvQuantInfo> {
620 static const QuantInfo enum_value = QuantInfo_ConvQuantInfo;
621};
622
623template<> struct QuantInfoTraits<tosa::MatMulQuantInfo> {
624 static const QuantInfo enum_value = QuantInfo_MatMulQuantInfo;
625};
626
627template<> struct QuantInfoTraits<tosa::PadQuantInfo> {
628 static const QuantInfo enum_value = QuantInfo_PadQuantInfo;
629};
630
631bool VerifyQuantInfo(flatbuffers::Verifier &verifier, const void *obj, QuantInfo type);
632bool VerifyQuantInfoVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types);
633
Kevin Cheng79a41992021-08-31 16:04:40 -0700634struct PoolAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
635 typedef PoolAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700636 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
637 VT_PADDING = 4,
638 VT_KERNEL = 6,
639 VT_STRIDE = 8
640 };
641 const flatbuffers::Vector<int32_t> *padding() const {
642 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PADDING);
643 }
644 const flatbuffers::Vector<int32_t> *kernel() const {
645 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_KERNEL);
646 }
647 const flatbuffers::Vector<int32_t> *stride() const {
648 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
649 }
650 bool Verify(flatbuffers::Verifier &verifier) const {
651 return VerifyTableStart(verifier) &&
652 VerifyOffset(verifier, VT_PADDING) &&
653 verifier.VerifyVector(padding()) &&
654 VerifyOffset(verifier, VT_KERNEL) &&
655 verifier.VerifyVector(kernel()) &&
656 VerifyOffset(verifier, VT_STRIDE) &&
657 verifier.VerifyVector(stride()) &&
658 verifier.EndTable();
659 }
660};
661
Kevin Cheng79a41992021-08-31 16:04:40 -0700662struct PoolAttributeBuilder {
663 typedef PoolAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700664 flatbuffers::FlatBufferBuilder &fbb_;
665 flatbuffers::uoffset_t start_;
666 void add_padding(flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700667 fbb_.AddOffset(PoolAttribute::VT_PADDING, padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700668 }
669 void add_kernel(flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700670 fbb_.AddOffset(PoolAttribute::VT_KERNEL, kernel);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700671 }
672 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700673 fbb_.AddOffset(PoolAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700674 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700675 explicit PoolAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700676 : fbb_(_fbb) {
677 start_ = fbb_.StartTable();
678 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700679 PoolAttributeBuilder &operator=(const PoolAttributeBuilder &);
680 flatbuffers::Offset<PoolAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700681 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700682 auto o = flatbuffers::Offset<PoolAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700683 return o;
684 }
685};
686
Kevin Cheng79a41992021-08-31 16:04:40 -0700687inline flatbuffers::Offset<PoolAttribute> CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700688 flatbuffers::FlatBufferBuilder &_fbb,
689 flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding = 0,
690 flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel = 0,
691 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700692 PoolAttributeBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700693 builder_.add_stride(stride);
694 builder_.add_kernel(kernel);
695 builder_.add_padding(padding);
696 return builder_.Finish();
697}
698
Kevin Cheng79a41992021-08-31 16:04:40 -0700699inline flatbuffers::Offset<PoolAttribute> CreatePoolAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700700 flatbuffers::FlatBufferBuilder &_fbb,
701 const std::vector<int32_t> *padding = nullptr,
702 const std::vector<int32_t> *kernel = nullptr,
703 const std::vector<int32_t> *stride = nullptr) {
704 auto padding__ = padding ? _fbb.CreateVector<int32_t>(*padding) : 0;
705 auto kernel__ = kernel ? _fbb.CreateVector<int32_t>(*kernel) : 0;
706 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700707 return tosa::CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700708 _fbb,
709 padding__,
710 kernel__,
711 stride__);
712}
713
Kevin Cheng79a41992021-08-31 16:04:40 -0700714struct ConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
715 typedef ConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700716 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
717 VT_PADDING = 4,
718 VT_STRIDE = 6,
719 VT_DILATION = 8
720 };
721 const flatbuffers::Vector<int32_t> *padding() const {
722 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PADDING);
723 }
724 const flatbuffers::Vector<int32_t> *stride() const {
725 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
726 }
727 const flatbuffers::Vector<int32_t> *dilation() const {
728 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_DILATION);
729 }
730 bool Verify(flatbuffers::Verifier &verifier) const {
731 return VerifyTableStart(verifier) &&
732 VerifyOffset(verifier, VT_PADDING) &&
733 verifier.VerifyVector(padding()) &&
734 VerifyOffset(verifier, VT_STRIDE) &&
735 verifier.VerifyVector(stride()) &&
736 VerifyOffset(verifier, VT_DILATION) &&
737 verifier.VerifyVector(dilation()) &&
738 verifier.EndTable();
739 }
740};
741
Kevin Cheng79a41992021-08-31 16:04:40 -0700742struct ConvAttributeBuilder {
743 typedef ConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700744 flatbuffers::FlatBufferBuilder &fbb_;
745 flatbuffers::uoffset_t start_;
746 void add_padding(flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700747 fbb_.AddOffset(ConvAttribute::VT_PADDING, padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700748 }
749 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700750 fbb_.AddOffset(ConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700751 }
752 void add_dilation(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700753 fbb_.AddOffset(ConvAttribute::VT_DILATION, dilation);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700754 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700755 explicit ConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700756 : fbb_(_fbb) {
757 start_ = fbb_.StartTable();
758 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700759 ConvAttributeBuilder &operator=(const ConvAttributeBuilder &);
760 flatbuffers::Offset<ConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700761 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700762 auto o = flatbuffers::Offset<ConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700763 return o;
764 }
765};
766
Kevin Cheng79a41992021-08-31 16:04:40 -0700767inline flatbuffers::Offset<ConvAttribute> CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700768 flatbuffers::FlatBufferBuilder &_fbb,
769 flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding = 0,
770 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
771 flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation = 0) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700772 ConvAttributeBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700773 builder_.add_dilation(dilation);
774 builder_.add_stride(stride);
775 builder_.add_padding(padding);
776 return builder_.Finish();
777}
778
Kevin Cheng79a41992021-08-31 16:04:40 -0700779inline flatbuffers::Offset<ConvAttribute> CreateConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700780 flatbuffers::FlatBufferBuilder &_fbb,
781 const std::vector<int32_t> *padding = nullptr,
782 const std::vector<int32_t> *stride = nullptr,
783 const std::vector<int32_t> *dilation = nullptr) {
784 auto padding__ = padding ? _fbb.CreateVector<int32_t>(*padding) : 0;
785 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
786 auto dilation__ = dilation ? _fbb.CreateVector<int32_t>(*dilation) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700787 return tosa::CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700788 _fbb,
789 padding__,
790 stride__,
791 dilation__);
792}
793
Kevin Cheng79a41992021-08-31 16:04:40 -0700794struct TransposeConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
795 typedef TransposeConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700796 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
797 VT_OUTPAD = 4,
798 VT_STRIDE = 6,
799 VT_DILATION = 8,
800 VT_OUTPUT_SHAPE = 10
801 };
802 const flatbuffers::Vector<int32_t> *outpad() const {
803 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPAD);
804 }
805 const flatbuffers::Vector<int32_t> *stride() const {
806 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
807 }
808 const flatbuffers::Vector<int32_t> *dilation() const {
809 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_DILATION);
810 }
811 const flatbuffers::Vector<int32_t> *output_shape() const {
812 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUT_SHAPE);
813 }
814 bool Verify(flatbuffers::Verifier &verifier) const {
815 return VerifyTableStart(verifier) &&
816 VerifyOffset(verifier, VT_OUTPAD) &&
817 verifier.VerifyVector(outpad()) &&
818 VerifyOffset(verifier, VT_STRIDE) &&
819 verifier.VerifyVector(stride()) &&
820 VerifyOffset(verifier, VT_DILATION) &&
821 verifier.VerifyVector(dilation()) &&
822 VerifyOffset(verifier, VT_OUTPUT_SHAPE) &&
823 verifier.VerifyVector(output_shape()) &&
824 verifier.EndTable();
825 }
826};
827
Kevin Cheng79a41992021-08-31 16:04:40 -0700828struct TransposeConvAttributeBuilder {
829 typedef TransposeConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700830 flatbuffers::FlatBufferBuilder &fbb_;
831 flatbuffers::uoffset_t start_;
832 void add_outpad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> outpad) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700833 fbb_.AddOffset(TransposeConvAttribute::VT_OUTPAD, outpad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700834 }
835 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700836 fbb_.AddOffset(TransposeConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700837 }
838 void add_dilation(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700839 fbb_.AddOffset(TransposeConvAttribute::VT_DILATION, dilation);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700840 }
841 void add_output_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700842 fbb_.AddOffset(TransposeConvAttribute::VT_OUTPUT_SHAPE, output_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700843 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700844 explicit TransposeConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700845 : fbb_(_fbb) {
846 start_ = fbb_.StartTable();
847 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700848 TransposeConvAttributeBuilder &operator=(const TransposeConvAttributeBuilder &);
849 flatbuffers::Offset<TransposeConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700850 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700851 auto o = flatbuffers::Offset<TransposeConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700852 return o;
853 }
854};
855
Kevin Cheng79a41992021-08-31 16:04:40 -0700856inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700857 flatbuffers::FlatBufferBuilder &_fbb,
858 flatbuffers::Offset<flatbuffers::Vector<int32_t>> outpad = 0,
859 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
860 flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation = 0,
861 flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape = 0) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700862 TransposeConvAttributeBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700863 builder_.add_output_shape(output_shape);
864 builder_.add_dilation(dilation);
865 builder_.add_stride(stride);
866 builder_.add_outpad(outpad);
867 return builder_.Finish();
868}
869
Kevin Cheng79a41992021-08-31 16:04:40 -0700870inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700871 flatbuffers::FlatBufferBuilder &_fbb,
872 const std::vector<int32_t> *outpad = nullptr,
873 const std::vector<int32_t> *stride = nullptr,
874 const std::vector<int32_t> *dilation = nullptr,
875 const std::vector<int32_t> *output_shape = nullptr) {
876 auto outpad__ = outpad ? _fbb.CreateVector<int32_t>(*outpad) : 0;
877 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
878 auto dilation__ = dilation ? _fbb.CreateVector<int32_t>(*dilation) : 0;
879 auto output_shape__ = output_shape ? _fbb.CreateVector<int32_t>(*output_shape) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700880 return tosa::CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700881 _fbb,
882 outpad__,
883 stride__,
884 dilation__,
885 output_shape__);
886}
887
Kevin Cheng38d214c2021-10-15 15:49:19 -0700888struct PadAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
889 typedef PadAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700890 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Kevin Cheng38d214c2021-10-15 15:49:19 -0700891 VT_PADDING = 4,
892 VT_PAD_CONST_INT = 6,
893 VT_PAD_CONST_FP = 8
Eric Kunze2364dcd2021-04-26 11:06:57 -0700894 };
Kevin Cheng38d214c2021-10-15 15:49:19 -0700895 const flatbuffers::Vector<int32_t> *padding() const {
896 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PADDING);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700897 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700898 int32_t pad_const_int() const {
899 return GetField<int32_t>(VT_PAD_CONST_INT, 0);
900 }
901 float pad_const_fp() const {
902 return GetField<float>(VT_PAD_CONST_FP, 0.0f);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700903 }
904 bool Verify(flatbuffers::Verifier &verifier) const {
905 return VerifyTableStart(verifier) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -0700906 VerifyOffset(verifier, VT_PADDING) &&
907 verifier.VerifyVector(padding()) &&
908 VerifyField<int32_t>(verifier, VT_PAD_CONST_INT) &&
909 VerifyField<float>(verifier, VT_PAD_CONST_FP) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700910 verifier.EndTable();
911 }
912};
913
Kevin Cheng38d214c2021-10-15 15:49:19 -0700914struct PadAttributeBuilder {
915 typedef PadAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700916 flatbuffers::FlatBufferBuilder &fbb_;
917 flatbuffers::uoffset_t start_;
Kevin Cheng38d214c2021-10-15 15:49:19 -0700918 void add_padding(flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding) {
919 fbb_.AddOffset(PadAttribute::VT_PADDING, padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700920 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700921 void add_pad_const_int(int32_t pad_const_int) {
922 fbb_.AddElement<int32_t>(PadAttribute::VT_PAD_CONST_INT, pad_const_int, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700923 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700924 void add_pad_const_fp(float pad_const_fp) {
925 fbb_.AddElement<float>(PadAttribute::VT_PAD_CONST_FP, pad_const_fp, 0.0f);
926 }
927 explicit PadAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700928 : fbb_(_fbb) {
929 start_ = fbb_.StartTable();
930 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700931 PadAttributeBuilder &operator=(const PadAttributeBuilder &);
932 flatbuffers::Offset<PadAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700933 const auto end = fbb_.EndTable(start_);
Kevin Cheng38d214c2021-10-15 15:49:19 -0700934 auto o = flatbuffers::Offset<PadAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700935 return o;
936 }
937};
938
Kevin Cheng38d214c2021-10-15 15:49:19 -0700939inline flatbuffers::Offset<PadAttribute> CreatePadAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700940 flatbuffers::FlatBufferBuilder &_fbb,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700941 flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding = 0,
942 int32_t pad_const_int = 0,
943 float pad_const_fp = 0.0f) {
944 PadAttributeBuilder builder_(_fbb);
945 builder_.add_pad_const_fp(pad_const_fp);
946 builder_.add_pad_const_int(pad_const_int);
947 builder_.add_padding(padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700948 return builder_.Finish();
949}
950
Kevin Cheng38d214c2021-10-15 15:49:19 -0700951inline flatbuffers::Offset<PadAttribute> CreatePadAttributeDirect(
952 flatbuffers::FlatBufferBuilder &_fbb,
953 const std::vector<int32_t> *padding = nullptr,
954 int32_t pad_const_int = 0,
955 float pad_const_fp = 0.0f) {
956 auto padding__ = padding ? _fbb.CreateVector<int32_t>(*padding) : 0;
957 return tosa::CreatePadAttribute(
958 _fbb,
959 padding__,
960 pad_const_int,
961 pad_const_fp);
962}
963
Eric Kunze2364dcd2021-04-26 11:06:57 -0700964struct AxisAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
965 typedef AxisAttributeBuilder Builder;
966 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
967 VT_AXIS = 4
968 };
969 int32_t axis() const {
970 return GetField<int32_t>(VT_AXIS, 0);
971 }
972 bool Verify(flatbuffers::Verifier &verifier) const {
973 return VerifyTableStart(verifier) &&
974 VerifyField<int32_t>(verifier, VT_AXIS) &&
975 verifier.EndTable();
976 }
977};
978
979struct AxisAttributeBuilder {
980 typedef AxisAttribute Table;
981 flatbuffers::FlatBufferBuilder &fbb_;
982 flatbuffers::uoffset_t start_;
983 void add_axis(int32_t axis) {
984 fbb_.AddElement<int32_t>(AxisAttribute::VT_AXIS, axis, 0);
985 }
986 explicit AxisAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
987 : fbb_(_fbb) {
988 start_ = fbb_.StartTable();
989 }
990 AxisAttributeBuilder &operator=(const AxisAttributeBuilder &);
991 flatbuffers::Offset<AxisAttribute> Finish() {
992 const auto end = fbb_.EndTable(start_);
993 auto o = flatbuffers::Offset<AxisAttribute>(end);
994 return o;
995 }
996};
997
998inline flatbuffers::Offset<AxisAttribute> CreateAxisAttribute(
999 flatbuffers::FlatBufferBuilder &_fbb,
1000 int32_t axis = 0) {
1001 AxisAttributeBuilder builder_(_fbb);
1002 builder_.add_axis(axis);
1003 return builder_.Finish();
1004}
1005
1006struct ReshapeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1007 typedef ReshapeAttributeBuilder Builder;
1008 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1009 VT_SHAPE = 4
1010 };
1011 const flatbuffers::Vector<int32_t> *shape() const {
1012 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHAPE);
1013 }
1014 bool Verify(flatbuffers::Verifier &verifier) const {
1015 return VerifyTableStart(verifier) &&
1016 VerifyOffset(verifier, VT_SHAPE) &&
1017 verifier.VerifyVector(shape()) &&
1018 verifier.EndTable();
1019 }
1020};
1021
1022struct ReshapeAttributeBuilder {
1023 typedef ReshapeAttribute Table;
1024 flatbuffers::FlatBufferBuilder &fbb_;
1025 flatbuffers::uoffset_t start_;
1026 void add_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape) {
1027 fbb_.AddOffset(ReshapeAttribute::VT_SHAPE, shape);
1028 }
1029 explicit ReshapeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1030 : fbb_(_fbb) {
1031 start_ = fbb_.StartTable();
1032 }
1033 ReshapeAttributeBuilder &operator=(const ReshapeAttributeBuilder &);
1034 flatbuffers::Offset<ReshapeAttribute> Finish() {
1035 const auto end = fbb_.EndTable(start_);
1036 auto o = flatbuffers::Offset<ReshapeAttribute>(end);
1037 return o;
1038 }
1039};
1040
1041inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttribute(
1042 flatbuffers::FlatBufferBuilder &_fbb,
1043 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape = 0) {
1044 ReshapeAttributeBuilder builder_(_fbb);
1045 builder_.add_shape(shape);
1046 return builder_.Finish();
1047}
1048
1049inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttributeDirect(
1050 flatbuffers::FlatBufferBuilder &_fbb,
1051 const std::vector<int32_t> *shape = nullptr) {
1052 auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0;
1053 return tosa::CreateReshapeAttribute(
1054 _fbb,
1055 shape__);
1056}
1057
1058struct SliceAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1059 typedef SliceAttributeBuilder Builder;
1060 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1061 VT_BEGIN = 4,
1062 VT_SIZE = 6
1063 };
1064 const flatbuffers::Vector<int32_t> *begin() const {
1065 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_BEGIN);
1066 }
1067 const flatbuffers::Vector<int32_t> *size() const {
1068 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SIZE);
1069 }
1070 bool Verify(flatbuffers::Verifier &verifier) const {
1071 return VerifyTableStart(verifier) &&
1072 VerifyOffset(verifier, VT_BEGIN) &&
1073 verifier.VerifyVector(begin()) &&
1074 VerifyOffset(verifier, VT_SIZE) &&
1075 verifier.VerifyVector(size()) &&
1076 verifier.EndTable();
1077 }
1078};
1079
1080struct SliceAttributeBuilder {
1081 typedef SliceAttribute Table;
1082 flatbuffers::FlatBufferBuilder &fbb_;
1083 flatbuffers::uoffset_t start_;
1084 void add_begin(flatbuffers::Offset<flatbuffers::Vector<int32_t>> begin) {
1085 fbb_.AddOffset(SliceAttribute::VT_BEGIN, begin);
1086 }
1087 void add_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> size) {
1088 fbb_.AddOffset(SliceAttribute::VT_SIZE, size);
1089 }
1090 explicit SliceAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1091 : fbb_(_fbb) {
1092 start_ = fbb_.StartTable();
1093 }
1094 SliceAttributeBuilder &operator=(const SliceAttributeBuilder &);
1095 flatbuffers::Offset<SliceAttribute> Finish() {
1096 const auto end = fbb_.EndTable(start_);
1097 auto o = flatbuffers::Offset<SliceAttribute>(end);
1098 return o;
1099 }
1100};
1101
1102inline flatbuffers::Offset<SliceAttribute> CreateSliceAttribute(
1103 flatbuffers::FlatBufferBuilder &_fbb,
1104 flatbuffers::Offset<flatbuffers::Vector<int32_t>> begin = 0,
1105 flatbuffers::Offset<flatbuffers::Vector<int32_t>> size = 0) {
1106 SliceAttributeBuilder builder_(_fbb);
1107 builder_.add_size(size);
1108 builder_.add_begin(begin);
1109 return builder_.Finish();
1110}
1111
1112inline flatbuffers::Offset<SliceAttribute> CreateSliceAttributeDirect(
1113 flatbuffers::FlatBufferBuilder &_fbb,
1114 const std::vector<int32_t> *begin = nullptr,
1115 const std::vector<int32_t> *size = nullptr) {
1116 auto begin__ = begin ? _fbb.CreateVector<int32_t>(*begin) : 0;
1117 auto size__ = size ? _fbb.CreateVector<int32_t>(*size) : 0;
1118 return tosa::CreateSliceAttribute(
1119 _fbb,
1120 begin__,
1121 size__);
1122}
1123
1124struct TileAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1125 typedef TileAttributeBuilder Builder;
1126 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1127 VT_MULTIPLES = 4
1128 };
1129 const flatbuffers::Vector<int32_t> *multiples() const {
1130 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLES);
1131 }
1132 bool Verify(flatbuffers::Verifier &verifier) const {
1133 return VerifyTableStart(verifier) &&
1134 VerifyOffset(verifier, VT_MULTIPLES) &&
1135 verifier.VerifyVector(multiples()) &&
1136 verifier.EndTable();
1137 }
1138};
1139
1140struct TileAttributeBuilder {
1141 typedef TileAttribute Table;
1142 flatbuffers::FlatBufferBuilder &fbb_;
1143 flatbuffers::uoffset_t start_;
1144 void add_multiples(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples) {
1145 fbb_.AddOffset(TileAttribute::VT_MULTIPLES, multiples);
1146 }
1147 explicit TileAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1148 : fbb_(_fbb) {
1149 start_ = fbb_.StartTable();
1150 }
1151 TileAttributeBuilder &operator=(const TileAttributeBuilder &);
1152 flatbuffers::Offset<TileAttribute> Finish() {
1153 const auto end = fbb_.EndTable(start_);
1154 auto o = flatbuffers::Offset<TileAttribute>(end);
1155 return o;
1156 }
1157};
1158
1159inline flatbuffers::Offset<TileAttribute> CreateTileAttribute(
1160 flatbuffers::FlatBufferBuilder &_fbb,
1161 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples = 0) {
1162 TileAttributeBuilder builder_(_fbb);
1163 builder_.add_multiples(multiples);
1164 return builder_.Finish();
1165}
1166
1167inline flatbuffers::Offset<TileAttribute> CreateTileAttributeDirect(
1168 flatbuffers::FlatBufferBuilder &_fbb,
1169 const std::vector<int32_t> *multiples = nullptr) {
1170 auto multiples__ = multiples ? _fbb.CreateVector<int32_t>(*multiples) : 0;
1171 return tosa::CreateTileAttribute(
1172 _fbb,
1173 multiples__);
1174}
1175
1176struct ResizeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1177 typedef ResizeAttributeBuilder Builder;
1178 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1179 VT_OUTPUT_SIZE = 4,
1180 VT_STRIDE = 6,
1181 VT_OFFSET = 8,
1182 VT_SHIFT = 10,
1183 VT_STRIDE_FP = 12,
1184 VT_OFFSET_FP = 14,
1185 VT_MODE = 16
1186 };
1187 const flatbuffers::Vector<int32_t> *output_size() const {
1188 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUT_SIZE);
1189 }
1190 const flatbuffers::Vector<int32_t> *stride() const {
1191 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
1192 }
1193 const flatbuffers::Vector<int32_t> *offset() const {
1194 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OFFSET);
1195 }
1196 int32_t shift() const {
1197 return GetField<int32_t>(VT_SHIFT, 0);
1198 }
1199 const flatbuffers::Vector<float> *stride_fp() const {
1200 return GetPointer<const flatbuffers::Vector<float> *>(VT_STRIDE_FP);
1201 }
1202 const flatbuffers::Vector<float> *offset_fp() const {
1203 return GetPointer<const flatbuffers::Vector<float> *>(VT_OFFSET_FP);
1204 }
1205 tosa::ResizeMode mode() const {
1206 return static_cast<tosa::ResizeMode>(GetField<uint32_t>(VT_MODE, 0));
1207 }
1208 bool Verify(flatbuffers::Verifier &verifier) const {
1209 return VerifyTableStart(verifier) &&
1210 VerifyOffset(verifier, VT_OUTPUT_SIZE) &&
1211 verifier.VerifyVector(output_size()) &&
1212 VerifyOffset(verifier, VT_STRIDE) &&
1213 verifier.VerifyVector(stride()) &&
1214 VerifyOffset(verifier, VT_OFFSET) &&
1215 verifier.VerifyVector(offset()) &&
1216 VerifyField<int32_t>(verifier, VT_SHIFT) &&
1217 VerifyOffset(verifier, VT_STRIDE_FP) &&
1218 verifier.VerifyVector(stride_fp()) &&
1219 VerifyOffset(verifier, VT_OFFSET_FP) &&
1220 verifier.VerifyVector(offset_fp()) &&
1221 VerifyField<uint32_t>(verifier, VT_MODE) &&
1222 verifier.EndTable();
1223 }
1224};
1225
1226struct ResizeAttributeBuilder {
1227 typedef ResizeAttribute Table;
1228 flatbuffers::FlatBufferBuilder &fbb_;
1229 flatbuffers::uoffset_t start_;
1230 void add_output_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_size) {
1231 fbb_.AddOffset(ResizeAttribute::VT_OUTPUT_SIZE, output_size);
1232 }
1233 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
1234 fbb_.AddOffset(ResizeAttribute::VT_STRIDE, stride);
1235 }
1236 void add_offset(flatbuffers::Offset<flatbuffers::Vector<int32_t>> offset) {
1237 fbb_.AddOffset(ResizeAttribute::VT_OFFSET, offset);
1238 }
1239 void add_shift(int32_t shift) {
1240 fbb_.AddElement<int32_t>(ResizeAttribute::VT_SHIFT, shift, 0);
1241 }
1242 void add_stride_fp(flatbuffers::Offset<flatbuffers::Vector<float>> stride_fp) {
1243 fbb_.AddOffset(ResizeAttribute::VT_STRIDE_FP, stride_fp);
1244 }
1245 void add_offset_fp(flatbuffers::Offset<flatbuffers::Vector<float>> offset_fp) {
1246 fbb_.AddOffset(ResizeAttribute::VT_OFFSET_FP, offset_fp);
1247 }
1248 void add_mode(tosa::ResizeMode mode) {
1249 fbb_.AddElement<uint32_t>(ResizeAttribute::VT_MODE, static_cast<uint32_t>(mode), 0);
1250 }
1251 explicit ResizeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1252 : fbb_(_fbb) {
1253 start_ = fbb_.StartTable();
1254 }
1255 ResizeAttributeBuilder &operator=(const ResizeAttributeBuilder &);
1256 flatbuffers::Offset<ResizeAttribute> Finish() {
1257 const auto end = fbb_.EndTable(start_);
1258 auto o = flatbuffers::Offset<ResizeAttribute>(end);
1259 return o;
1260 }
1261};
1262
1263inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttribute(
1264 flatbuffers::FlatBufferBuilder &_fbb,
1265 flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_size = 0,
1266 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
1267 flatbuffers::Offset<flatbuffers::Vector<int32_t>> offset = 0,
1268 int32_t shift = 0,
1269 flatbuffers::Offset<flatbuffers::Vector<float>> stride_fp = 0,
1270 flatbuffers::Offset<flatbuffers::Vector<float>> offset_fp = 0,
1271 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
1272 ResizeAttributeBuilder builder_(_fbb);
1273 builder_.add_mode(mode);
1274 builder_.add_offset_fp(offset_fp);
1275 builder_.add_stride_fp(stride_fp);
1276 builder_.add_shift(shift);
1277 builder_.add_offset(offset);
1278 builder_.add_stride(stride);
1279 builder_.add_output_size(output_size);
1280 return builder_.Finish();
1281}
1282
1283inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttributeDirect(
1284 flatbuffers::FlatBufferBuilder &_fbb,
1285 const std::vector<int32_t> *output_size = nullptr,
1286 const std::vector<int32_t> *stride = nullptr,
1287 const std::vector<int32_t> *offset = nullptr,
1288 int32_t shift = 0,
1289 const std::vector<float> *stride_fp = nullptr,
1290 const std::vector<float> *offset_fp = nullptr,
1291 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
1292 auto output_size__ = output_size ? _fbb.CreateVector<int32_t>(*output_size) : 0;
1293 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
1294 auto offset__ = offset ? _fbb.CreateVector<int32_t>(*offset) : 0;
1295 auto stride_fp__ = stride_fp ? _fbb.CreateVector<float>(*stride_fp) : 0;
1296 auto offset_fp__ = offset_fp ? _fbb.CreateVector<float>(*offset_fp) : 0;
1297 return tosa::CreateResizeAttribute(
1298 _fbb,
1299 output_size__,
1300 stride__,
1301 offset__,
1302 shift,
1303 stride_fp__,
1304 offset_fp__,
1305 mode);
1306}
1307
1308struct ClampAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1309 typedef ClampAttributeBuilder Builder;
1310 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1311 VT_MIN_INT = 4,
1312 VT_MAX_INT = 6,
1313 VT_MIN_FP = 8,
1314 VT_MAX_FP = 10
1315 };
1316 int32_t min_int() const {
1317 return GetField<int32_t>(VT_MIN_INT, 0);
1318 }
1319 int32_t max_int() const {
1320 return GetField<int32_t>(VT_MAX_INT, 0);
1321 }
1322 float min_fp() const {
1323 return GetField<float>(VT_MIN_FP, 0.0f);
1324 }
1325 float max_fp() const {
1326 return GetField<float>(VT_MAX_FP, 0.0f);
1327 }
1328 bool Verify(flatbuffers::Verifier &verifier) const {
1329 return VerifyTableStart(verifier) &&
1330 VerifyField<int32_t>(verifier, VT_MIN_INT) &&
1331 VerifyField<int32_t>(verifier, VT_MAX_INT) &&
1332 VerifyField<float>(verifier, VT_MIN_FP) &&
1333 VerifyField<float>(verifier, VT_MAX_FP) &&
1334 verifier.EndTable();
1335 }
1336};
1337
1338struct ClampAttributeBuilder {
1339 typedef ClampAttribute Table;
1340 flatbuffers::FlatBufferBuilder &fbb_;
1341 flatbuffers::uoffset_t start_;
1342 void add_min_int(int32_t min_int) {
1343 fbb_.AddElement<int32_t>(ClampAttribute::VT_MIN_INT, min_int, 0);
1344 }
1345 void add_max_int(int32_t max_int) {
1346 fbb_.AddElement<int32_t>(ClampAttribute::VT_MAX_INT, max_int, 0);
1347 }
1348 void add_min_fp(float min_fp) {
1349 fbb_.AddElement<float>(ClampAttribute::VT_MIN_FP, min_fp, 0.0f);
1350 }
1351 void add_max_fp(float max_fp) {
1352 fbb_.AddElement<float>(ClampAttribute::VT_MAX_FP, max_fp, 0.0f);
1353 }
1354 explicit ClampAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1355 : fbb_(_fbb) {
1356 start_ = fbb_.StartTable();
1357 }
1358 ClampAttributeBuilder &operator=(const ClampAttributeBuilder &);
1359 flatbuffers::Offset<ClampAttribute> Finish() {
1360 const auto end = fbb_.EndTable(start_);
1361 auto o = flatbuffers::Offset<ClampAttribute>(end);
1362 return o;
1363 }
1364};
1365
1366inline flatbuffers::Offset<ClampAttribute> CreateClampAttribute(
1367 flatbuffers::FlatBufferBuilder &_fbb,
1368 int32_t min_int = 0,
1369 int32_t max_int = 0,
1370 float min_fp = 0.0f,
1371 float max_fp = 0.0f) {
1372 ClampAttributeBuilder builder_(_fbb);
1373 builder_.add_max_fp(max_fp);
1374 builder_.add_min_fp(min_fp);
1375 builder_.add_max_int(max_int);
1376 builder_.add_min_int(min_int);
1377 return builder_.Finish();
1378}
1379
1380struct RescaleAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1381 typedef RescaleAttributeBuilder Builder;
1382 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1383 VT_INPUT_ZP = 4,
1384 VT_OUTPUT_ZP = 6,
1385 VT_MULTIPLIER = 8,
1386 VT_SHIFT = 10,
1387 VT_SCALE32 = 12,
1388 VT_DOUBLE_ROUND = 14,
1389 VT_PER_CHANNEL = 16
1390 };
1391 int32_t input_zp() const {
1392 return GetField<int32_t>(VT_INPUT_ZP, 0);
1393 }
1394 int32_t output_zp() const {
1395 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1396 }
1397 const flatbuffers::Vector<int32_t> *multiplier() const {
1398 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLIER);
1399 }
1400 const flatbuffers::Vector<int32_t> *shift() const {
1401 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHIFT);
1402 }
1403 bool scale32() const {
1404 return GetField<uint8_t>(VT_SCALE32, 0) != 0;
1405 }
1406 bool double_round() const {
1407 return GetField<uint8_t>(VT_DOUBLE_ROUND, 0) != 0;
1408 }
1409 bool per_channel() const {
1410 return GetField<uint8_t>(VT_PER_CHANNEL, 0) != 0;
1411 }
1412 bool Verify(flatbuffers::Verifier &verifier) const {
1413 return VerifyTableStart(verifier) &&
1414 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1415 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP) &&
1416 VerifyOffset(verifier, VT_MULTIPLIER) &&
1417 verifier.VerifyVector(multiplier()) &&
1418 VerifyOffset(verifier, VT_SHIFT) &&
1419 verifier.VerifyVector(shift()) &&
1420 VerifyField<uint8_t>(verifier, VT_SCALE32) &&
1421 VerifyField<uint8_t>(verifier, VT_DOUBLE_ROUND) &&
1422 VerifyField<uint8_t>(verifier, VT_PER_CHANNEL) &&
1423 verifier.EndTable();
1424 }
1425};
1426
1427struct RescaleAttributeBuilder {
1428 typedef RescaleAttribute Table;
1429 flatbuffers::FlatBufferBuilder &fbb_;
1430 flatbuffers::uoffset_t start_;
1431 void add_input_zp(int32_t input_zp) {
1432 fbb_.AddElement<int32_t>(RescaleAttribute::VT_INPUT_ZP, input_zp, 0);
1433 }
1434 void add_output_zp(int32_t output_zp) {
1435 fbb_.AddElement<int32_t>(RescaleAttribute::VT_OUTPUT_ZP, output_zp, 0);
1436 }
1437 void add_multiplier(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier) {
1438 fbb_.AddOffset(RescaleAttribute::VT_MULTIPLIER, multiplier);
1439 }
1440 void add_shift(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift) {
1441 fbb_.AddOffset(RescaleAttribute::VT_SHIFT, shift);
1442 }
1443 void add_scale32(bool scale32) {
1444 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_SCALE32, static_cast<uint8_t>(scale32), 0);
1445 }
1446 void add_double_round(bool double_round) {
1447 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_DOUBLE_ROUND, static_cast<uint8_t>(double_round), 0);
1448 }
1449 void add_per_channel(bool per_channel) {
1450 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_PER_CHANNEL, static_cast<uint8_t>(per_channel), 0);
1451 }
1452 explicit RescaleAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1453 : fbb_(_fbb) {
1454 start_ = fbb_.StartTable();
1455 }
1456 RescaleAttributeBuilder &operator=(const RescaleAttributeBuilder &);
1457 flatbuffers::Offset<RescaleAttribute> Finish() {
1458 const auto end = fbb_.EndTable(start_);
1459 auto o = flatbuffers::Offset<RescaleAttribute>(end);
1460 return o;
1461 }
1462};
1463
1464inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttribute(
1465 flatbuffers::FlatBufferBuilder &_fbb,
1466 int32_t input_zp = 0,
1467 int32_t output_zp = 0,
1468 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier = 0,
1469 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift = 0,
1470 bool scale32 = false,
1471 bool double_round = false,
1472 bool per_channel = false) {
1473 RescaleAttributeBuilder builder_(_fbb);
1474 builder_.add_shift(shift);
1475 builder_.add_multiplier(multiplier);
1476 builder_.add_output_zp(output_zp);
1477 builder_.add_input_zp(input_zp);
1478 builder_.add_per_channel(per_channel);
1479 builder_.add_double_round(double_round);
1480 builder_.add_scale32(scale32);
1481 return builder_.Finish();
1482}
1483
1484inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttributeDirect(
1485 flatbuffers::FlatBufferBuilder &_fbb,
1486 int32_t input_zp = 0,
1487 int32_t output_zp = 0,
1488 const std::vector<int32_t> *multiplier = nullptr,
1489 const std::vector<int32_t> *shift = nullptr,
1490 bool scale32 = false,
1491 bool double_round = false,
1492 bool per_channel = false) {
1493 auto multiplier__ = multiplier ? _fbb.CreateVector<int32_t>(*multiplier) : 0;
1494 auto shift__ = shift ? _fbb.CreateVector<int32_t>(*shift) : 0;
1495 return tosa::CreateRescaleAttribute(
1496 _fbb,
1497 input_zp,
1498 output_zp,
1499 multiplier__,
1500 shift__,
1501 scale32,
1502 double_round,
1503 per_channel);
1504}
1505
1506struct MulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1507 typedef MulAttributeBuilder Builder;
1508 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1509 VT_SHIFT = 4
1510 };
1511 int32_t shift() const {
1512 return GetField<int32_t>(VT_SHIFT, 0);
1513 }
1514 bool Verify(flatbuffers::Verifier &verifier) const {
1515 return VerifyTableStart(verifier) &&
1516 VerifyField<int32_t>(verifier, VT_SHIFT) &&
1517 verifier.EndTable();
1518 }
1519};
1520
1521struct MulAttributeBuilder {
1522 typedef MulAttribute Table;
1523 flatbuffers::FlatBufferBuilder &fbb_;
1524 flatbuffers::uoffset_t start_;
1525 void add_shift(int32_t shift) {
1526 fbb_.AddElement<int32_t>(MulAttribute::VT_SHIFT, shift, 0);
1527 }
1528 explicit MulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1529 : fbb_(_fbb) {
1530 start_ = fbb_.StartTable();
1531 }
1532 MulAttributeBuilder &operator=(const MulAttributeBuilder &);
1533 flatbuffers::Offset<MulAttribute> Finish() {
1534 const auto end = fbb_.EndTable(start_);
1535 auto o = flatbuffers::Offset<MulAttribute>(end);
1536 return o;
1537 }
1538};
1539
1540inline flatbuffers::Offset<MulAttribute> CreateMulAttribute(
1541 flatbuffers::FlatBufferBuilder &_fbb,
1542 int32_t shift = 0) {
1543 MulAttributeBuilder builder_(_fbb);
1544 builder_.add_shift(shift);
1545 return builder_.Finish();
1546}
1547
1548struct ArithmeticRightShiftAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1549 typedef ArithmeticRightShiftAttributeBuilder Builder;
1550 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1551 VT_ROUND = 4
1552 };
1553 bool round() const {
1554 return GetField<uint8_t>(VT_ROUND, 0) != 0;
1555 }
1556 bool Verify(flatbuffers::Verifier &verifier) const {
1557 return VerifyTableStart(verifier) &&
1558 VerifyField<uint8_t>(verifier, VT_ROUND) &&
1559 verifier.EndTable();
1560 }
1561};
1562
1563struct ArithmeticRightShiftAttributeBuilder {
1564 typedef ArithmeticRightShiftAttribute Table;
1565 flatbuffers::FlatBufferBuilder &fbb_;
1566 flatbuffers::uoffset_t start_;
1567 void add_round(bool round) {
1568 fbb_.AddElement<uint8_t>(ArithmeticRightShiftAttribute::VT_ROUND, static_cast<uint8_t>(round), 0);
1569 }
1570 explicit ArithmeticRightShiftAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1571 : fbb_(_fbb) {
1572 start_ = fbb_.StartTable();
1573 }
1574 ArithmeticRightShiftAttributeBuilder &operator=(const ArithmeticRightShiftAttributeBuilder &);
1575 flatbuffers::Offset<ArithmeticRightShiftAttribute> Finish() {
1576 const auto end = fbb_.EndTable(start_);
1577 auto o = flatbuffers::Offset<ArithmeticRightShiftAttribute>(end);
1578 return o;
1579 }
1580};
1581
1582inline flatbuffers::Offset<ArithmeticRightShiftAttribute> CreateArithmeticRightShiftAttribute(
1583 flatbuffers::FlatBufferBuilder &_fbb,
1584 bool round = false) {
1585 ArithmeticRightShiftAttributeBuilder builder_(_fbb);
1586 builder_.add_round(round);
1587 return builder_.Finish();
1588}
1589
1590struct CondIfAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1591 typedef CondIfAttributeBuilder Builder;
1592 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1593 VT_THEN_BRANCH = 4,
1594 VT_ELSE_BRANCH = 6
1595 };
1596 const flatbuffers::String *then_branch() const {
1597 return GetPointer<const flatbuffers::String *>(VT_THEN_BRANCH);
1598 }
1599 const flatbuffers::String *else_branch() const {
1600 return GetPointer<const flatbuffers::String *>(VT_ELSE_BRANCH);
1601 }
1602 bool Verify(flatbuffers::Verifier &verifier) const {
1603 return VerifyTableStart(verifier) &&
1604 VerifyOffset(verifier, VT_THEN_BRANCH) &&
1605 verifier.VerifyString(then_branch()) &&
1606 VerifyOffset(verifier, VT_ELSE_BRANCH) &&
1607 verifier.VerifyString(else_branch()) &&
1608 verifier.EndTable();
1609 }
1610};
1611
1612struct CondIfAttributeBuilder {
1613 typedef CondIfAttribute Table;
1614 flatbuffers::FlatBufferBuilder &fbb_;
1615 flatbuffers::uoffset_t start_;
1616 void add_then_branch(flatbuffers::Offset<flatbuffers::String> then_branch) {
1617 fbb_.AddOffset(CondIfAttribute::VT_THEN_BRANCH, then_branch);
1618 }
1619 void add_else_branch(flatbuffers::Offset<flatbuffers::String> else_branch) {
1620 fbb_.AddOffset(CondIfAttribute::VT_ELSE_BRANCH, else_branch);
1621 }
1622 explicit CondIfAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1623 : fbb_(_fbb) {
1624 start_ = fbb_.StartTable();
1625 }
1626 CondIfAttributeBuilder &operator=(const CondIfAttributeBuilder &);
1627 flatbuffers::Offset<CondIfAttribute> Finish() {
1628 const auto end = fbb_.EndTable(start_);
1629 auto o = flatbuffers::Offset<CondIfAttribute>(end);
1630 return o;
1631 }
1632};
1633
1634inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttribute(
1635 flatbuffers::FlatBufferBuilder &_fbb,
1636 flatbuffers::Offset<flatbuffers::String> then_branch = 0,
1637 flatbuffers::Offset<flatbuffers::String> else_branch = 0) {
1638 CondIfAttributeBuilder builder_(_fbb);
1639 builder_.add_else_branch(else_branch);
1640 builder_.add_then_branch(then_branch);
1641 return builder_.Finish();
1642}
1643
1644inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttributeDirect(
1645 flatbuffers::FlatBufferBuilder &_fbb,
1646 const char *then_branch = nullptr,
1647 const char *else_branch = nullptr) {
1648 auto then_branch__ = then_branch ? _fbb.CreateString(then_branch) : 0;
1649 auto else_branch__ = else_branch ? _fbb.CreateString(else_branch) : 0;
1650 return tosa::CreateCondIfAttribute(
1651 _fbb,
1652 then_branch__,
1653 else_branch__);
1654}
1655
1656struct WhileLoopAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1657 typedef WhileLoopAttributeBuilder Builder;
1658 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1659 VT_COND_BRANCH = 4,
1660 VT_BODY_BRANCH = 6
1661 };
1662 const flatbuffers::String *cond_branch() const {
1663 return GetPointer<const flatbuffers::String *>(VT_COND_BRANCH);
1664 }
1665 const flatbuffers::String *body_branch() const {
1666 return GetPointer<const flatbuffers::String *>(VT_BODY_BRANCH);
1667 }
1668 bool Verify(flatbuffers::Verifier &verifier) const {
1669 return VerifyTableStart(verifier) &&
1670 VerifyOffset(verifier, VT_COND_BRANCH) &&
1671 verifier.VerifyString(cond_branch()) &&
1672 VerifyOffset(verifier, VT_BODY_BRANCH) &&
1673 verifier.VerifyString(body_branch()) &&
1674 verifier.EndTable();
1675 }
1676};
1677
1678struct WhileLoopAttributeBuilder {
1679 typedef WhileLoopAttribute Table;
1680 flatbuffers::FlatBufferBuilder &fbb_;
1681 flatbuffers::uoffset_t start_;
1682 void add_cond_branch(flatbuffers::Offset<flatbuffers::String> cond_branch) {
1683 fbb_.AddOffset(WhileLoopAttribute::VT_COND_BRANCH, cond_branch);
1684 }
1685 void add_body_branch(flatbuffers::Offset<flatbuffers::String> body_branch) {
1686 fbb_.AddOffset(WhileLoopAttribute::VT_BODY_BRANCH, body_branch);
1687 }
1688 explicit WhileLoopAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1689 : fbb_(_fbb) {
1690 start_ = fbb_.StartTable();
1691 }
1692 WhileLoopAttributeBuilder &operator=(const WhileLoopAttributeBuilder &);
1693 flatbuffers::Offset<WhileLoopAttribute> Finish() {
1694 const auto end = fbb_.EndTable(start_);
1695 auto o = flatbuffers::Offset<WhileLoopAttribute>(end);
1696 return o;
1697 }
1698};
1699
1700inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttribute(
1701 flatbuffers::FlatBufferBuilder &_fbb,
1702 flatbuffers::Offset<flatbuffers::String> cond_branch = 0,
1703 flatbuffers::Offset<flatbuffers::String> body_branch = 0) {
1704 WhileLoopAttributeBuilder builder_(_fbb);
1705 builder_.add_body_branch(body_branch);
1706 builder_.add_cond_branch(cond_branch);
1707 return builder_.Finish();
1708}
1709
1710inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttributeDirect(
1711 flatbuffers::FlatBufferBuilder &_fbb,
1712 const char *cond_branch = nullptr,
1713 const char *body_branch = nullptr) {
1714 auto cond_branch__ = cond_branch ? _fbb.CreateString(cond_branch) : 0;
1715 auto body_branch__ = body_branch ? _fbb.CreateString(body_branch) : 0;
1716 return tosa::CreateWhileLoopAttribute(
1717 _fbb,
1718 cond_branch__,
1719 body_branch__);
1720}
1721
Kevin Cheng38d214c2021-10-15 15:49:19 -07001722struct TransposeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1723 typedef TransposeAttributeBuilder Builder;
1724 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1725 VT_PERM = 4
1726 };
1727 const flatbuffers::Vector<int32_t> *perm() const {
1728 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PERM);
1729 }
1730 bool Verify(flatbuffers::Verifier &verifier) const {
1731 return VerifyTableStart(verifier) &&
1732 VerifyOffset(verifier, VT_PERM) &&
1733 verifier.VerifyVector(perm()) &&
1734 verifier.EndTable();
1735 }
1736};
1737
1738struct TransposeAttributeBuilder {
1739 typedef TransposeAttribute Table;
1740 flatbuffers::FlatBufferBuilder &fbb_;
1741 flatbuffers::uoffset_t start_;
1742 void add_perm(flatbuffers::Offset<flatbuffers::Vector<int32_t>> perm) {
1743 fbb_.AddOffset(TransposeAttribute::VT_PERM, perm);
1744 }
1745 explicit TransposeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1746 : fbb_(_fbb) {
1747 start_ = fbb_.StartTable();
1748 }
1749 TransposeAttributeBuilder &operator=(const TransposeAttributeBuilder &);
1750 flatbuffers::Offset<TransposeAttribute> Finish() {
1751 const auto end = fbb_.EndTable(start_);
1752 auto o = flatbuffers::Offset<TransposeAttribute>(end);
1753 return o;
1754 }
1755};
1756
1757inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttribute(
1758 flatbuffers::FlatBufferBuilder &_fbb,
1759 flatbuffers::Offset<flatbuffers::Vector<int32_t>> perm = 0) {
1760 TransposeAttributeBuilder builder_(_fbb);
1761 builder_.add_perm(perm);
1762 return builder_.Finish();
1763}
1764
1765inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttributeDirect(
1766 flatbuffers::FlatBufferBuilder &_fbb,
1767 const std::vector<int32_t> *perm = nullptr) {
1768 auto perm__ = perm ? _fbb.CreateVector<int32_t>(*perm) : 0;
1769 return tosa::CreateTransposeAttribute(
1770 _fbb,
1771 perm__);
1772}
1773
1774struct TableAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1775 typedef TableAttributeBuilder Builder;
1776 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1777 VT_TABLE = 4
1778 };
1779 const flatbuffers::Vector<int32_t> *table() const {
1780 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_TABLE);
1781 }
1782 bool Verify(flatbuffers::Verifier &verifier) const {
1783 return VerifyTableStart(verifier) &&
1784 VerifyOffset(verifier, VT_TABLE) &&
1785 verifier.VerifyVector(table()) &&
1786 verifier.EndTable();
1787 }
1788};
1789
1790struct TableAttributeBuilder {
1791 typedef TableAttribute Table;
1792 flatbuffers::FlatBufferBuilder &fbb_;
1793 flatbuffers::uoffset_t start_;
1794 void add_table(flatbuffers::Offset<flatbuffers::Vector<int32_t>> table) {
1795 fbb_.AddOffset(TableAttribute::VT_TABLE, table);
1796 }
1797 explicit TableAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1798 : fbb_(_fbb) {
1799 start_ = fbb_.StartTable();
1800 }
1801 TableAttributeBuilder &operator=(const TableAttributeBuilder &);
1802 flatbuffers::Offset<TableAttribute> Finish() {
1803 const auto end = fbb_.EndTable(start_);
1804 auto o = flatbuffers::Offset<TableAttribute>(end);
1805 return o;
1806 }
1807};
1808
1809inline flatbuffers::Offset<TableAttribute> CreateTableAttribute(
1810 flatbuffers::FlatBufferBuilder &_fbb,
1811 flatbuffers::Offset<flatbuffers::Vector<int32_t>> table = 0) {
1812 TableAttributeBuilder builder_(_fbb);
1813 builder_.add_table(table);
1814 return builder_.Finish();
1815}
1816
1817inline flatbuffers::Offset<TableAttribute> CreateTableAttributeDirect(
1818 flatbuffers::FlatBufferBuilder &_fbb,
1819 const std::vector<int32_t> *table = nullptr) {
1820 auto table__ = table ? _fbb.CreateVector<int32_t>(*table) : 0;
1821 return tosa::CreateTableAttribute(
1822 _fbb,
1823 table__);
1824}
1825
Eric Kunze2364dcd2021-04-26 11:06:57 -07001826struct UnaryQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1827 typedef UnaryQuantInfoBuilder Builder;
1828 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1829 VT_INPUT_ZP = 4,
1830 VT_OUTPUT_ZP = 6
1831 };
1832 int32_t input_zp() const {
1833 return GetField<int32_t>(VT_INPUT_ZP, 0);
1834 }
1835 int32_t output_zp() const {
1836 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1837 }
1838 bool Verify(flatbuffers::Verifier &verifier) const {
1839 return VerifyTableStart(verifier) &&
1840 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1841 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP) &&
1842 verifier.EndTable();
1843 }
1844};
1845
1846struct UnaryQuantInfoBuilder {
1847 typedef UnaryQuantInfo Table;
1848 flatbuffers::FlatBufferBuilder &fbb_;
1849 flatbuffers::uoffset_t start_;
1850 void add_input_zp(int32_t input_zp) {
1851 fbb_.AddElement<int32_t>(UnaryQuantInfo::VT_INPUT_ZP, input_zp, 0);
1852 }
1853 void add_output_zp(int32_t output_zp) {
1854 fbb_.AddElement<int32_t>(UnaryQuantInfo::VT_OUTPUT_ZP, output_zp, 0);
1855 }
1856 explicit UnaryQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1857 : fbb_(_fbb) {
1858 start_ = fbb_.StartTable();
1859 }
1860 UnaryQuantInfoBuilder &operator=(const UnaryQuantInfoBuilder &);
1861 flatbuffers::Offset<UnaryQuantInfo> Finish() {
1862 const auto end = fbb_.EndTable(start_);
1863 auto o = flatbuffers::Offset<UnaryQuantInfo>(end);
1864 return o;
1865 }
1866};
1867
1868inline flatbuffers::Offset<UnaryQuantInfo> CreateUnaryQuantInfo(
1869 flatbuffers::FlatBufferBuilder &_fbb,
1870 int32_t input_zp = 0,
1871 int32_t output_zp = 0) {
1872 UnaryQuantInfoBuilder builder_(_fbb);
1873 builder_.add_output_zp(output_zp);
1874 builder_.add_input_zp(input_zp);
1875 return builder_.Finish();
1876}
1877
1878struct ConvQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1879 typedef ConvQuantInfoBuilder Builder;
1880 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1881 VT_INPUT_ZP = 4,
1882 VT_WEIGHT_ZP = 6
1883 };
1884 int32_t input_zp() const {
1885 return GetField<int32_t>(VT_INPUT_ZP, 0);
1886 }
1887 int32_t weight_zp() const {
1888 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
1889 }
1890 bool Verify(flatbuffers::Verifier &verifier) const {
1891 return VerifyTableStart(verifier) &&
1892 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1893 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP) &&
1894 verifier.EndTable();
1895 }
1896};
1897
1898struct ConvQuantInfoBuilder {
1899 typedef ConvQuantInfo Table;
1900 flatbuffers::FlatBufferBuilder &fbb_;
1901 flatbuffers::uoffset_t start_;
1902 void add_input_zp(int32_t input_zp) {
1903 fbb_.AddElement<int32_t>(ConvQuantInfo::VT_INPUT_ZP, input_zp, 0);
1904 }
1905 void add_weight_zp(int32_t weight_zp) {
1906 fbb_.AddElement<int32_t>(ConvQuantInfo::VT_WEIGHT_ZP, weight_zp, 0);
1907 }
1908 explicit ConvQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1909 : fbb_(_fbb) {
1910 start_ = fbb_.StartTable();
1911 }
1912 ConvQuantInfoBuilder &operator=(const ConvQuantInfoBuilder &);
1913 flatbuffers::Offset<ConvQuantInfo> Finish() {
1914 const auto end = fbb_.EndTable(start_);
1915 auto o = flatbuffers::Offset<ConvQuantInfo>(end);
1916 return o;
1917 }
1918};
1919
1920inline flatbuffers::Offset<ConvQuantInfo> CreateConvQuantInfo(
1921 flatbuffers::FlatBufferBuilder &_fbb,
1922 int32_t input_zp = 0,
1923 int32_t weight_zp = 0) {
1924 ConvQuantInfoBuilder builder_(_fbb);
1925 builder_.add_weight_zp(weight_zp);
1926 builder_.add_input_zp(input_zp);
1927 return builder_.Finish();
1928}
1929
1930struct MatMulQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1931 typedef MatMulQuantInfoBuilder Builder;
1932 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1933 VT_A_ZP = 4,
1934 VT_B_ZP = 6
1935 };
1936 int32_t a_zp() const {
1937 return GetField<int32_t>(VT_A_ZP, 0);
1938 }
1939 int32_t b_zp() const {
1940 return GetField<int32_t>(VT_B_ZP, 0);
1941 }
1942 bool Verify(flatbuffers::Verifier &verifier) const {
1943 return VerifyTableStart(verifier) &&
1944 VerifyField<int32_t>(verifier, VT_A_ZP) &&
1945 VerifyField<int32_t>(verifier, VT_B_ZP) &&
1946 verifier.EndTable();
1947 }
1948};
1949
1950struct MatMulQuantInfoBuilder {
1951 typedef MatMulQuantInfo Table;
1952 flatbuffers::FlatBufferBuilder &fbb_;
1953 flatbuffers::uoffset_t start_;
1954 void add_a_zp(int32_t a_zp) {
1955 fbb_.AddElement<int32_t>(MatMulQuantInfo::VT_A_ZP, a_zp, 0);
1956 }
1957 void add_b_zp(int32_t b_zp) {
1958 fbb_.AddElement<int32_t>(MatMulQuantInfo::VT_B_ZP, b_zp, 0);
1959 }
1960 explicit MatMulQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1961 : fbb_(_fbb) {
1962 start_ = fbb_.StartTable();
1963 }
1964 MatMulQuantInfoBuilder &operator=(const MatMulQuantInfoBuilder &);
1965 flatbuffers::Offset<MatMulQuantInfo> Finish() {
1966 const auto end = fbb_.EndTable(start_);
1967 auto o = flatbuffers::Offset<MatMulQuantInfo>(end);
1968 return o;
1969 }
1970};
1971
1972inline flatbuffers::Offset<MatMulQuantInfo> CreateMatMulQuantInfo(
1973 flatbuffers::FlatBufferBuilder &_fbb,
1974 int32_t a_zp = 0,
1975 int32_t b_zp = 0) {
1976 MatMulQuantInfoBuilder builder_(_fbb);
1977 builder_.add_b_zp(b_zp);
1978 builder_.add_a_zp(a_zp);
1979 return builder_.Finish();
1980}
1981
1982struct PadQuantInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1983 typedef PadQuantInfoBuilder Builder;
1984 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1985 VT_INPUT_ZP = 4
1986 };
1987 int32_t input_zp() const {
1988 return GetField<int32_t>(VT_INPUT_ZP, 0);
1989 }
1990 bool Verify(flatbuffers::Verifier &verifier) const {
1991 return VerifyTableStart(verifier) &&
1992 VerifyField<int32_t>(verifier, VT_INPUT_ZP) &&
1993 verifier.EndTable();
1994 }
1995};
1996
1997struct PadQuantInfoBuilder {
1998 typedef PadQuantInfo Table;
1999 flatbuffers::FlatBufferBuilder &fbb_;
2000 flatbuffers::uoffset_t start_;
2001 void add_input_zp(int32_t input_zp) {
2002 fbb_.AddElement<int32_t>(PadQuantInfo::VT_INPUT_ZP, input_zp, 0);
2003 }
2004 explicit PadQuantInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2005 : fbb_(_fbb) {
2006 start_ = fbb_.StartTable();
2007 }
2008 PadQuantInfoBuilder &operator=(const PadQuantInfoBuilder &);
2009 flatbuffers::Offset<PadQuantInfo> Finish() {
2010 const auto end = fbb_.EndTable(start_);
2011 auto o = flatbuffers::Offset<PadQuantInfo>(end);
2012 return o;
2013 }
2014};
2015
2016inline flatbuffers::Offset<PadQuantInfo> CreatePadQuantInfo(
2017 flatbuffers::FlatBufferBuilder &_fbb,
2018 int32_t input_zp = 0) {
2019 PadQuantInfoBuilder builder_(_fbb);
2020 builder_.add_input_zp(input_zp);
2021 return builder_.Finish();
2022}
2023
2024struct Version FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2025 typedef VersionBuilder Builder;
2026 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2027 VT__MAJOR = 4,
2028 VT__MINOR = 6,
2029 VT__PATCH = 8,
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002030 VT__DRAFT = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07002031 };
2032 int32_t _major() const {
2033 return GetField<int32_t>(VT__MAJOR, 0);
2034 }
2035 int32_t _minor() const {
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002036 return GetField<int32_t>(VT__MINOR, 23);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002037 }
2038 int32_t _patch() const {
2039 return GetField<int32_t>(VT__PATCH, 0);
2040 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002041 bool _draft() const {
2042 return GetField<uint8_t>(VT__DRAFT, 1) != 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002043 }
2044 bool Verify(flatbuffers::Verifier &verifier) const {
2045 return VerifyTableStart(verifier) &&
2046 VerifyField<int32_t>(verifier, VT__MAJOR) &&
2047 VerifyField<int32_t>(verifier, VT__MINOR) &&
2048 VerifyField<int32_t>(verifier, VT__PATCH) &&
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002049 VerifyField<uint8_t>(verifier, VT__DRAFT) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002050 verifier.EndTable();
2051 }
2052};
2053
2054struct VersionBuilder {
2055 typedef Version Table;
2056 flatbuffers::FlatBufferBuilder &fbb_;
2057 flatbuffers::uoffset_t start_;
2058 void add__major(int32_t _major) {
2059 fbb_.AddElement<int32_t>(Version::VT__MAJOR, _major, 0);
2060 }
2061 void add__minor(int32_t _minor) {
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002062 fbb_.AddElement<int32_t>(Version::VT__MINOR, _minor, 23);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002063 }
2064 void add__patch(int32_t _patch) {
2065 fbb_.AddElement<int32_t>(Version::VT__PATCH, _patch, 0);
2066 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002067 void add__draft(bool _draft) {
2068 fbb_.AddElement<uint8_t>(Version::VT__DRAFT, static_cast<uint8_t>(_draft), 1);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002069 }
2070 explicit VersionBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2071 : fbb_(_fbb) {
2072 start_ = fbb_.StartTable();
2073 }
2074 VersionBuilder &operator=(const VersionBuilder &);
2075 flatbuffers::Offset<Version> Finish() {
2076 const auto end = fbb_.EndTable(start_);
2077 auto o = flatbuffers::Offset<Version>(end);
2078 return o;
2079 }
2080};
2081
2082inline flatbuffers::Offset<Version> CreateVersion(
2083 flatbuffers::FlatBufferBuilder &_fbb,
2084 int32_t _major = 0,
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002085 int32_t _minor = 23,
Eric Kunze2364dcd2021-04-26 11:06:57 -07002086 int32_t _patch = 0,
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002087 bool _draft = true) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002088 VersionBuilder builder_(_fbb);
2089 builder_.add__patch(_patch);
2090 builder_.add__minor(_minor);
2091 builder_.add__major(_major);
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002092 builder_.add__draft(_draft);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002093 return builder_.Finish();
2094}
2095
2096struct TosaTensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2097 typedef TosaTensorBuilder Builder;
2098 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2099 VT_NAME = 4,
2100 VT_SHAPE = 6,
2101 VT_TYPE = 8,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002102 VT_DATA = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07002103 };
2104 const flatbuffers::String *name() const {
2105 return GetPointer<const flatbuffers::String *>(VT_NAME);
2106 }
2107 const flatbuffers::Vector<int32_t> *shape() const {
2108 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHAPE);
2109 }
2110 tosa::DType type() const {
2111 return static_cast<tosa::DType>(GetField<uint32_t>(VT_TYPE, 0));
2112 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002113 const flatbuffers::Vector<uint8_t> *data() const {
2114 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_DATA);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002115 }
2116 bool Verify(flatbuffers::Verifier &verifier) const {
2117 return VerifyTableStart(verifier) &&
2118 VerifyOffset(verifier, VT_NAME) &&
2119 verifier.VerifyString(name()) &&
2120 VerifyOffset(verifier, VT_SHAPE) &&
2121 verifier.VerifyVector(shape()) &&
2122 VerifyField<uint32_t>(verifier, VT_TYPE) &&
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002123 VerifyOffset(verifier, VT_DATA) &&
2124 verifier.VerifyVector(data()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002125 verifier.EndTable();
2126 }
2127};
2128
2129struct TosaTensorBuilder {
2130 typedef TosaTensor Table;
2131 flatbuffers::FlatBufferBuilder &fbb_;
2132 flatbuffers::uoffset_t start_;
2133 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2134 fbb_.AddOffset(TosaTensor::VT_NAME, name);
2135 }
2136 void add_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape) {
2137 fbb_.AddOffset(TosaTensor::VT_SHAPE, shape);
2138 }
2139 void add_type(tosa::DType type) {
2140 fbb_.AddElement<uint32_t>(TosaTensor::VT_TYPE, static_cast<uint32_t>(type), 0);
2141 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002142 void add_data(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data) {
2143 fbb_.AddOffset(TosaTensor::VT_DATA, data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002144 }
2145 explicit TosaTensorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2146 : fbb_(_fbb) {
2147 start_ = fbb_.StartTable();
2148 }
2149 TosaTensorBuilder &operator=(const TosaTensorBuilder &);
2150 flatbuffers::Offset<TosaTensor> Finish() {
2151 const auto end = fbb_.EndTable(start_);
2152 auto o = flatbuffers::Offset<TosaTensor>(end);
2153 return o;
2154 }
2155};
2156
2157inline flatbuffers::Offset<TosaTensor> CreateTosaTensor(
2158 flatbuffers::FlatBufferBuilder &_fbb,
2159 flatbuffers::Offset<flatbuffers::String> name = 0,
2160 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape = 0,
2161 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002162 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002163 TosaTensorBuilder builder_(_fbb);
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002164 builder_.add_data(data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002165 builder_.add_type(type);
2166 builder_.add_shape(shape);
2167 builder_.add_name(name);
2168 return builder_.Finish();
2169}
2170
2171inline flatbuffers::Offset<TosaTensor> CreateTosaTensorDirect(
2172 flatbuffers::FlatBufferBuilder &_fbb,
2173 const char *name = nullptr,
2174 const std::vector<int32_t> *shape = nullptr,
2175 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002176 const std::vector<uint8_t> *data = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002177 auto name__ = name ? _fbb.CreateString(name) : 0;
2178 auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0;
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002179 if (data) { _fbb.ForceVectorAlignment(data->size(), sizeof(uint8_t), 8); }
2180 auto data__ = data ? _fbb.CreateVector<uint8_t>(*data) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002181 return tosa::CreateTosaTensor(
2182 _fbb,
2183 name__,
2184 shape__,
2185 type,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002186 data__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002187}
2188
2189struct TosaOperator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2190 typedef TosaOperatorBuilder Builder;
2191 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2192 VT_OP = 4,
2193 VT_ATTRIBUTE_TYPE = 6,
2194 VT_ATTRIBUTE = 8,
2195 VT_INPUTS = 10,
2196 VT_OUTPUTS = 12,
2197 VT_QUANT_INFO_TYPE = 14,
2198 VT_QUANT_INFO = 16
2199 };
2200 tosa::Op op() const {
2201 return static_cast<tosa::Op>(GetField<uint32_t>(VT_OP, 0));
2202 }
2203 tosa::Attribute attribute_type() const {
2204 return static_cast<tosa::Attribute>(GetField<uint8_t>(VT_ATTRIBUTE_TYPE, 0));
2205 }
2206 const void *attribute() const {
2207 return GetPointer<const void *>(VT_ATTRIBUTE);
2208 }
2209 template<typename T> const T *attribute_as() const;
Kevin Cheng79a41992021-08-31 16:04:40 -07002210 const tosa::PoolAttribute *attribute_as_PoolAttribute() const {
2211 return attribute_type() == tosa::Attribute_PoolAttribute ? static_cast<const tosa::PoolAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002212 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002213 const tosa::ConvAttribute *attribute_as_ConvAttribute() const {
2214 return attribute_type() == tosa::Attribute_ConvAttribute ? static_cast<const tosa::ConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002215 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002216 const tosa::TransposeConvAttribute *attribute_as_TransposeConvAttribute() const {
2217 return attribute_type() == tosa::Attribute_TransposeConvAttribute ? static_cast<const tosa::TransposeConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002218 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002219 const tosa::PadAttribute *attribute_as_PadAttribute() const {
2220 return attribute_type() == tosa::Attribute_PadAttribute ? static_cast<const tosa::PadAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002221 }
2222 const tosa::AxisAttribute *attribute_as_AxisAttribute() const {
2223 return attribute_type() == tosa::Attribute_AxisAttribute ? static_cast<const tosa::AxisAttribute *>(attribute()) : nullptr;
2224 }
2225 const tosa::ReshapeAttribute *attribute_as_ReshapeAttribute() const {
2226 return attribute_type() == tosa::Attribute_ReshapeAttribute ? static_cast<const tosa::ReshapeAttribute *>(attribute()) : nullptr;
2227 }
2228 const tosa::SliceAttribute *attribute_as_SliceAttribute() const {
2229 return attribute_type() == tosa::Attribute_SliceAttribute ? static_cast<const tosa::SliceAttribute *>(attribute()) : nullptr;
2230 }
2231 const tosa::TileAttribute *attribute_as_TileAttribute() const {
2232 return attribute_type() == tosa::Attribute_TileAttribute ? static_cast<const tosa::TileAttribute *>(attribute()) : nullptr;
2233 }
2234 const tosa::ResizeAttribute *attribute_as_ResizeAttribute() const {
2235 return attribute_type() == tosa::Attribute_ResizeAttribute ? static_cast<const tosa::ResizeAttribute *>(attribute()) : nullptr;
2236 }
2237 const tosa::ClampAttribute *attribute_as_ClampAttribute() const {
2238 return attribute_type() == tosa::Attribute_ClampAttribute ? static_cast<const tosa::ClampAttribute *>(attribute()) : nullptr;
2239 }
2240 const tosa::RescaleAttribute *attribute_as_RescaleAttribute() const {
2241 return attribute_type() == tosa::Attribute_RescaleAttribute ? static_cast<const tosa::RescaleAttribute *>(attribute()) : nullptr;
2242 }
2243 const tosa::MulAttribute *attribute_as_MulAttribute() const {
2244 return attribute_type() == tosa::Attribute_MulAttribute ? static_cast<const tosa::MulAttribute *>(attribute()) : nullptr;
2245 }
2246 const tosa::ArithmeticRightShiftAttribute *attribute_as_ArithmeticRightShiftAttribute() const {
2247 return attribute_type() == tosa::Attribute_ArithmeticRightShiftAttribute ? static_cast<const tosa::ArithmeticRightShiftAttribute *>(attribute()) : nullptr;
2248 }
2249 const tosa::CondIfAttribute *attribute_as_CondIfAttribute() const {
2250 return attribute_type() == tosa::Attribute_CondIfAttribute ? static_cast<const tosa::CondIfAttribute *>(attribute()) : nullptr;
2251 }
2252 const tosa::WhileLoopAttribute *attribute_as_WhileLoopAttribute() const {
2253 return attribute_type() == tosa::Attribute_WhileLoopAttribute ? static_cast<const tosa::WhileLoopAttribute *>(attribute()) : nullptr;
2254 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002255 const tosa::TransposeAttribute *attribute_as_TransposeAttribute() const {
2256 return attribute_type() == tosa::Attribute_TransposeAttribute ? static_cast<const tosa::TransposeAttribute *>(attribute()) : nullptr;
2257 }
2258 const tosa::TableAttribute *attribute_as_TableAttribute() const {
2259 return attribute_type() == tosa::Attribute_TableAttribute ? static_cast<const tosa::TableAttribute *>(attribute()) : nullptr;
2260 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002261 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2262 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2263 }
2264 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2265 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2266 }
2267 tosa::QuantInfo quant_info_type() const {
2268 return static_cast<tosa::QuantInfo>(GetField<uint8_t>(VT_QUANT_INFO_TYPE, 0));
2269 }
2270 const void *quant_info() const {
2271 return GetPointer<const void *>(VT_QUANT_INFO);
2272 }
2273 template<typename T> const T *quant_info_as() const;
2274 const tosa::UnaryQuantInfo *quant_info_as_UnaryQuantInfo() const {
2275 return quant_info_type() == tosa::QuantInfo_UnaryQuantInfo ? static_cast<const tosa::UnaryQuantInfo *>(quant_info()) : nullptr;
2276 }
2277 const tosa::ConvQuantInfo *quant_info_as_ConvQuantInfo() const {
2278 return quant_info_type() == tosa::QuantInfo_ConvQuantInfo ? static_cast<const tosa::ConvQuantInfo *>(quant_info()) : nullptr;
2279 }
2280 const tosa::MatMulQuantInfo *quant_info_as_MatMulQuantInfo() const {
2281 return quant_info_type() == tosa::QuantInfo_MatMulQuantInfo ? static_cast<const tosa::MatMulQuantInfo *>(quant_info()) : nullptr;
2282 }
2283 const tosa::PadQuantInfo *quant_info_as_PadQuantInfo() const {
2284 return quant_info_type() == tosa::QuantInfo_PadQuantInfo ? static_cast<const tosa::PadQuantInfo *>(quant_info()) : nullptr;
2285 }
2286 bool Verify(flatbuffers::Verifier &verifier) const {
2287 return VerifyTableStart(verifier) &&
2288 VerifyField<uint32_t>(verifier, VT_OP) &&
2289 VerifyField<uint8_t>(verifier, VT_ATTRIBUTE_TYPE) &&
2290 VerifyOffset(verifier, VT_ATTRIBUTE) &&
2291 VerifyAttribute(verifier, attribute(), attribute_type()) &&
2292 VerifyOffset(verifier, VT_INPUTS) &&
2293 verifier.VerifyVector(inputs()) &&
2294 verifier.VerifyVectorOfStrings(inputs()) &&
2295 VerifyOffset(verifier, VT_OUTPUTS) &&
2296 verifier.VerifyVector(outputs()) &&
2297 verifier.VerifyVectorOfStrings(outputs()) &&
2298 VerifyField<uint8_t>(verifier, VT_QUANT_INFO_TYPE) &&
2299 VerifyOffset(verifier, VT_QUANT_INFO) &&
2300 VerifyQuantInfo(verifier, quant_info(), quant_info_type()) &&
2301 verifier.EndTable();
2302 }
2303};
2304
Kevin Cheng79a41992021-08-31 16:04:40 -07002305template<> inline const tosa::PoolAttribute *TosaOperator::attribute_as<tosa::PoolAttribute>() const {
2306 return attribute_as_PoolAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002307}
2308
Kevin Cheng79a41992021-08-31 16:04:40 -07002309template<> inline const tosa::ConvAttribute *TosaOperator::attribute_as<tosa::ConvAttribute>() const {
2310 return attribute_as_ConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002311}
2312
Kevin Cheng79a41992021-08-31 16:04:40 -07002313template<> inline const tosa::TransposeConvAttribute *TosaOperator::attribute_as<tosa::TransposeConvAttribute>() const {
2314 return attribute_as_TransposeConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002315}
2316
Kevin Cheng38d214c2021-10-15 15:49:19 -07002317template<> inline const tosa::PadAttribute *TosaOperator::attribute_as<tosa::PadAttribute>() const {
2318 return attribute_as_PadAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002319}
2320
2321template<> inline const tosa::AxisAttribute *TosaOperator::attribute_as<tosa::AxisAttribute>() const {
2322 return attribute_as_AxisAttribute();
2323}
2324
2325template<> inline const tosa::ReshapeAttribute *TosaOperator::attribute_as<tosa::ReshapeAttribute>() const {
2326 return attribute_as_ReshapeAttribute();
2327}
2328
2329template<> inline const tosa::SliceAttribute *TosaOperator::attribute_as<tosa::SliceAttribute>() const {
2330 return attribute_as_SliceAttribute();
2331}
2332
2333template<> inline const tosa::TileAttribute *TosaOperator::attribute_as<tosa::TileAttribute>() const {
2334 return attribute_as_TileAttribute();
2335}
2336
2337template<> inline const tosa::ResizeAttribute *TosaOperator::attribute_as<tosa::ResizeAttribute>() const {
2338 return attribute_as_ResizeAttribute();
2339}
2340
2341template<> inline const tosa::ClampAttribute *TosaOperator::attribute_as<tosa::ClampAttribute>() const {
2342 return attribute_as_ClampAttribute();
2343}
2344
2345template<> inline const tosa::RescaleAttribute *TosaOperator::attribute_as<tosa::RescaleAttribute>() const {
2346 return attribute_as_RescaleAttribute();
2347}
2348
2349template<> inline const tosa::MulAttribute *TosaOperator::attribute_as<tosa::MulAttribute>() const {
2350 return attribute_as_MulAttribute();
2351}
2352
2353template<> inline const tosa::ArithmeticRightShiftAttribute *TosaOperator::attribute_as<tosa::ArithmeticRightShiftAttribute>() const {
2354 return attribute_as_ArithmeticRightShiftAttribute();
2355}
2356
2357template<> inline const tosa::CondIfAttribute *TosaOperator::attribute_as<tosa::CondIfAttribute>() const {
2358 return attribute_as_CondIfAttribute();
2359}
2360
2361template<> inline const tosa::WhileLoopAttribute *TosaOperator::attribute_as<tosa::WhileLoopAttribute>() const {
2362 return attribute_as_WhileLoopAttribute();
2363}
2364
Kevin Cheng38d214c2021-10-15 15:49:19 -07002365template<> inline const tosa::TransposeAttribute *TosaOperator::attribute_as<tosa::TransposeAttribute>() const {
2366 return attribute_as_TransposeAttribute();
2367}
2368
2369template<> inline const tosa::TableAttribute *TosaOperator::attribute_as<tosa::TableAttribute>() const {
2370 return attribute_as_TableAttribute();
2371}
2372
Eric Kunze2364dcd2021-04-26 11:06:57 -07002373template<> inline const tosa::UnaryQuantInfo *TosaOperator::quant_info_as<tosa::UnaryQuantInfo>() const {
2374 return quant_info_as_UnaryQuantInfo();
2375}
2376
2377template<> inline const tosa::ConvQuantInfo *TosaOperator::quant_info_as<tosa::ConvQuantInfo>() const {
2378 return quant_info_as_ConvQuantInfo();
2379}
2380
2381template<> inline const tosa::MatMulQuantInfo *TosaOperator::quant_info_as<tosa::MatMulQuantInfo>() const {
2382 return quant_info_as_MatMulQuantInfo();
2383}
2384
2385template<> inline const tosa::PadQuantInfo *TosaOperator::quant_info_as<tosa::PadQuantInfo>() const {
2386 return quant_info_as_PadQuantInfo();
2387}
2388
2389struct TosaOperatorBuilder {
2390 typedef TosaOperator Table;
2391 flatbuffers::FlatBufferBuilder &fbb_;
2392 flatbuffers::uoffset_t start_;
2393 void add_op(tosa::Op op) {
2394 fbb_.AddElement<uint32_t>(TosaOperator::VT_OP, static_cast<uint32_t>(op), 0);
2395 }
2396 void add_attribute_type(tosa::Attribute attribute_type) {
2397 fbb_.AddElement<uint8_t>(TosaOperator::VT_ATTRIBUTE_TYPE, static_cast<uint8_t>(attribute_type), 0);
2398 }
2399 void add_attribute(flatbuffers::Offset<void> attribute) {
2400 fbb_.AddOffset(TosaOperator::VT_ATTRIBUTE, attribute);
2401 }
2402 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2403 fbb_.AddOffset(TosaOperator::VT_INPUTS, inputs);
2404 }
2405 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2406 fbb_.AddOffset(TosaOperator::VT_OUTPUTS, outputs);
2407 }
2408 void add_quant_info_type(tosa::QuantInfo quant_info_type) {
2409 fbb_.AddElement<uint8_t>(TosaOperator::VT_QUANT_INFO_TYPE, static_cast<uint8_t>(quant_info_type), 0);
2410 }
2411 void add_quant_info(flatbuffers::Offset<void> quant_info) {
2412 fbb_.AddOffset(TosaOperator::VT_QUANT_INFO, quant_info);
2413 }
2414 explicit TosaOperatorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2415 : fbb_(_fbb) {
2416 start_ = fbb_.StartTable();
2417 }
2418 TosaOperatorBuilder &operator=(const TosaOperatorBuilder &);
2419 flatbuffers::Offset<TosaOperator> Finish() {
2420 const auto end = fbb_.EndTable(start_);
2421 auto o = flatbuffers::Offset<TosaOperator>(end);
2422 return o;
2423 }
2424};
2425
2426inline flatbuffers::Offset<TosaOperator> CreateTosaOperator(
2427 flatbuffers::FlatBufferBuilder &_fbb,
2428 tosa::Op op = tosa::Op_UNKNOWN,
2429 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2430 flatbuffers::Offset<void> attribute = 0,
2431 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
2432 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0,
2433 tosa::QuantInfo quant_info_type = tosa::QuantInfo_NONE,
2434 flatbuffers::Offset<void> quant_info = 0) {
2435 TosaOperatorBuilder builder_(_fbb);
2436 builder_.add_quant_info(quant_info);
2437 builder_.add_outputs(outputs);
2438 builder_.add_inputs(inputs);
2439 builder_.add_attribute(attribute);
2440 builder_.add_op(op);
2441 builder_.add_quant_info_type(quant_info_type);
2442 builder_.add_attribute_type(attribute_type);
2443 return builder_.Finish();
2444}
2445
2446inline flatbuffers::Offset<TosaOperator> CreateTosaOperatorDirect(
2447 flatbuffers::FlatBufferBuilder &_fbb,
2448 tosa::Op op = tosa::Op_UNKNOWN,
2449 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2450 flatbuffers::Offset<void> attribute = 0,
2451 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
2452 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr,
2453 tosa::QuantInfo quant_info_type = tosa::QuantInfo_NONE,
2454 flatbuffers::Offset<void> quant_info = 0) {
2455 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2456 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2457 return tosa::CreateTosaOperator(
2458 _fbb,
2459 op,
2460 attribute_type,
2461 attribute,
2462 inputs__,
2463 outputs__,
2464 quant_info_type,
2465 quant_info);
2466}
2467
2468struct TosaBasicBlock FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2469 typedef TosaBasicBlockBuilder Builder;
2470 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2471 VT_NAME = 4,
2472 VT_OPERATORS = 6,
2473 VT_TENSORS = 8,
2474 VT_INPUTS = 10,
2475 VT_OUTPUTS = 12
2476 };
2477 const flatbuffers::String *name() const {
2478 return GetPointer<const flatbuffers::String *>(VT_NAME);
2479 }
2480 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *operators() const {
2481 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *>(VT_OPERATORS);
2482 }
2483 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors() const {
2484 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *>(VT_TENSORS);
2485 }
2486 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2487 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2488 }
2489 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2490 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2491 }
2492 bool Verify(flatbuffers::Verifier &verifier) const {
2493 return VerifyTableStart(verifier) &&
2494 VerifyOffset(verifier, VT_NAME) &&
2495 verifier.VerifyString(name()) &&
2496 VerifyOffset(verifier, VT_OPERATORS) &&
2497 verifier.VerifyVector(operators()) &&
2498 verifier.VerifyVectorOfTables(operators()) &&
2499 VerifyOffset(verifier, VT_TENSORS) &&
2500 verifier.VerifyVector(tensors()) &&
2501 verifier.VerifyVectorOfTables(tensors()) &&
2502 VerifyOffset(verifier, VT_INPUTS) &&
2503 verifier.VerifyVector(inputs()) &&
2504 verifier.VerifyVectorOfStrings(inputs()) &&
2505 VerifyOffset(verifier, VT_OUTPUTS) &&
2506 verifier.VerifyVector(outputs()) &&
2507 verifier.VerifyVectorOfStrings(outputs()) &&
2508 verifier.EndTable();
2509 }
2510};
2511
2512struct TosaBasicBlockBuilder {
2513 typedef TosaBasicBlock Table;
2514 flatbuffers::FlatBufferBuilder &fbb_;
2515 flatbuffers::uoffset_t start_;
2516 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2517 fbb_.AddOffset(TosaBasicBlock::VT_NAME, name);
2518 }
2519 void add_operators(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators) {
2520 fbb_.AddOffset(TosaBasicBlock::VT_OPERATORS, operators);
2521 }
2522 void add_tensors(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors) {
2523 fbb_.AddOffset(TosaBasicBlock::VT_TENSORS, tensors);
2524 }
2525 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2526 fbb_.AddOffset(TosaBasicBlock::VT_INPUTS, inputs);
2527 }
2528 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2529 fbb_.AddOffset(TosaBasicBlock::VT_OUTPUTS, outputs);
2530 }
2531 explicit TosaBasicBlockBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2532 : fbb_(_fbb) {
2533 start_ = fbb_.StartTable();
2534 }
2535 TosaBasicBlockBuilder &operator=(const TosaBasicBlockBuilder &);
2536 flatbuffers::Offset<TosaBasicBlock> Finish() {
2537 const auto end = fbb_.EndTable(start_);
2538 auto o = flatbuffers::Offset<TosaBasicBlock>(end);
2539 return o;
2540 }
2541};
2542
2543inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlock(
2544 flatbuffers::FlatBufferBuilder &_fbb,
2545 flatbuffers::Offset<flatbuffers::String> name = 0,
2546 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators = 0,
2547 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors = 0,
2548 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
2549 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
2550 TosaBasicBlockBuilder builder_(_fbb);
2551 builder_.add_outputs(outputs);
2552 builder_.add_inputs(inputs);
2553 builder_.add_tensors(tensors);
2554 builder_.add_operators(operators);
2555 builder_.add_name(name);
2556 return builder_.Finish();
2557}
2558
2559inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlockDirect(
2560 flatbuffers::FlatBufferBuilder &_fbb,
2561 const char *name = nullptr,
2562 const std::vector<flatbuffers::Offset<tosa::TosaOperator>> *operators = nullptr,
2563 const std::vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors = nullptr,
2564 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
2565 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
2566 auto name__ = name ? _fbb.CreateString(name) : 0;
2567 auto operators__ = operators ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaOperator>>(*operators) : 0;
2568 auto tensors__ = tensors ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaTensor>>(*tensors) : 0;
2569 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2570 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2571 return tosa::CreateTosaBasicBlock(
2572 _fbb,
2573 name__,
2574 operators__,
2575 tensors__,
2576 inputs__,
2577 outputs__);
2578}
2579
2580struct TosaGraph FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2581 typedef TosaGraphBuilder Builder;
2582 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2583 VT_VERSION = 4,
2584 VT_BLOCKS = 6
2585 };
2586 const tosa::Version *version() const {
2587 return GetPointer<const tosa::Version *>(VT_VERSION);
2588 }
2589 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks() const {
2590 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *>(VT_BLOCKS);
2591 }
2592 bool Verify(flatbuffers::Verifier &verifier) const {
2593 return VerifyTableStart(verifier) &&
2594 VerifyOffset(verifier, VT_VERSION) &&
2595 verifier.VerifyTable(version()) &&
2596 VerifyOffset(verifier, VT_BLOCKS) &&
2597 verifier.VerifyVector(blocks()) &&
2598 verifier.VerifyVectorOfTables(blocks()) &&
2599 verifier.EndTable();
2600 }
2601};
2602
2603struct TosaGraphBuilder {
2604 typedef TosaGraph Table;
2605 flatbuffers::FlatBufferBuilder &fbb_;
2606 flatbuffers::uoffset_t start_;
2607 void add_version(flatbuffers::Offset<tosa::Version> version) {
2608 fbb_.AddOffset(TosaGraph::VT_VERSION, version);
2609 }
2610 void add_blocks(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks) {
2611 fbb_.AddOffset(TosaGraph::VT_BLOCKS, blocks);
2612 }
2613 explicit TosaGraphBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2614 : fbb_(_fbb) {
2615 start_ = fbb_.StartTable();
2616 }
2617 TosaGraphBuilder &operator=(const TosaGraphBuilder &);
2618 flatbuffers::Offset<TosaGraph> Finish() {
2619 const auto end = fbb_.EndTable(start_);
2620 auto o = flatbuffers::Offset<TosaGraph>(end);
2621 return o;
2622 }
2623};
2624
2625inline flatbuffers::Offset<TosaGraph> CreateTosaGraph(
2626 flatbuffers::FlatBufferBuilder &_fbb,
2627 flatbuffers::Offset<tosa::Version> version = 0,
2628 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks = 0) {
2629 TosaGraphBuilder builder_(_fbb);
2630 builder_.add_blocks(blocks);
2631 builder_.add_version(version);
2632 return builder_.Finish();
2633}
2634
2635inline flatbuffers::Offset<TosaGraph> CreateTosaGraphDirect(
2636 flatbuffers::FlatBufferBuilder &_fbb,
2637 flatbuffers::Offset<tosa::Version> version = 0,
2638 const std::vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks = nullptr) {
2639 auto blocks__ = blocks ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaBasicBlock>>(*blocks) : 0;
2640 return tosa::CreateTosaGraph(
2641 _fbb,
2642 version,
2643 blocks__);
2644}
2645
2646inline bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type) {
2647 switch (type) {
2648 case Attribute_NONE: {
2649 return true;
2650 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002651 case Attribute_PoolAttribute: {
2652 auto ptr = reinterpret_cast<const tosa::PoolAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002653 return verifier.VerifyTable(ptr);
2654 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002655 case Attribute_ConvAttribute: {
2656 auto ptr = reinterpret_cast<const tosa::ConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002657 return verifier.VerifyTable(ptr);
2658 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002659 case Attribute_TransposeConvAttribute: {
2660 auto ptr = reinterpret_cast<const tosa::TransposeConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002661 return verifier.VerifyTable(ptr);
2662 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002663 case Attribute_PadAttribute: {
2664 auto ptr = reinterpret_cast<const tosa::PadAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002665 return verifier.VerifyTable(ptr);
2666 }
2667 case Attribute_AxisAttribute: {
2668 auto ptr = reinterpret_cast<const tosa::AxisAttribute *>(obj);
2669 return verifier.VerifyTable(ptr);
2670 }
2671 case Attribute_ReshapeAttribute: {
2672 auto ptr = reinterpret_cast<const tosa::ReshapeAttribute *>(obj);
2673 return verifier.VerifyTable(ptr);
2674 }
2675 case Attribute_SliceAttribute: {
2676 auto ptr = reinterpret_cast<const tosa::SliceAttribute *>(obj);
2677 return verifier.VerifyTable(ptr);
2678 }
2679 case Attribute_TileAttribute: {
2680 auto ptr = reinterpret_cast<const tosa::TileAttribute *>(obj);
2681 return verifier.VerifyTable(ptr);
2682 }
2683 case Attribute_ResizeAttribute: {
2684 auto ptr = reinterpret_cast<const tosa::ResizeAttribute *>(obj);
2685 return verifier.VerifyTable(ptr);
2686 }
2687 case Attribute_ClampAttribute: {
2688 auto ptr = reinterpret_cast<const tosa::ClampAttribute *>(obj);
2689 return verifier.VerifyTable(ptr);
2690 }
2691 case Attribute_RescaleAttribute: {
2692 auto ptr = reinterpret_cast<const tosa::RescaleAttribute *>(obj);
2693 return verifier.VerifyTable(ptr);
2694 }
2695 case Attribute_MulAttribute: {
2696 auto ptr = reinterpret_cast<const tosa::MulAttribute *>(obj);
2697 return verifier.VerifyTable(ptr);
2698 }
2699 case Attribute_ArithmeticRightShiftAttribute: {
2700 auto ptr = reinterpret_cast<const tosa::ArithmeticRightShiftAttribute *>(obj);
2701 return verifier.VerifyTable(ptr);
2702 }
2703 case Attribute_CondIfAttribute: {
2704 auto ptr = reinterpret_cast<const tosa::CondIfAttribute *>(obj);
2705 return verifier.VerifyTable(ptr);
2706 }
2707 case Attribute_WhileLoopAttribute: {
2708 auto ptr = reinterpret_cast<const tosa::WhileLoopAttribute *>(obj);
2709 return verifier.VerifyTable(ptr);
2710 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002711 case Attribute_TransposeAttribute: {
2712 auto ptr = reinterpret_cast<const tosa::TransposeAttribute *>(obj);
2713 return verifier.VerifyTable(ptr);
2714 }
2715 case Attribute_TableAttribute: {
2716 auto ptr = reinterpret_cast<const tosa::TableAttribute *>(obj);
2717 return verifier.VerifyTable(ptr);
2718 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002719 default: return true;
2720 }
2721}
2722
2723inline bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
2724 if (!values || !types) return !values && !types;
2725 if (values->size() != types->size()) return false;
2726 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
2727 if (!VerifyAttribute(
2728 verifier, values->Get(i), types->GetEnum<Attribute>(i))) {
2729 return false;
2730 }
2731 }
2732 return true;
2733}
2734
2735inline bool VerifyQuantInfo(flatbuffers::Verifier &verifier, const void *obj, QuantInfo type) {
2736 switch (type) {
2737 case QuantInfo_NONE: {
2738 return true;
2739 }
2740 case QuantInfo_UnaryQuantInfo: {
2741 auto ptr = reinterpret_cast<const tosa::UnaryQuantInfo *>(obj);
2742 return verifier.VerifyTable(ptr);
2743 }
2744 case QuantInfo_ConvQuantInfo: {
2745 auto ptr = reinterpret_cast<const tosa::ConvQuantInfo *>(obj);
2746 return verifier.VerifyTable(ptr);
2747 }
2748 case QuantInfo_MatMulQuantInfo: {
2749 auto ptr = reinterpret_cast<const tosa::MatMulQuantInfo *>(obj);
2750 return verifier.VerifyTable(ptr);
2751 }
2752 case QuantInfo_PadQuantInfo: {
2753 auto ptr = reinterpret_cast<const tosa::PadQuantInfo *>(obj);
2754 return verifier.VerifyTable(ptr);
2755 }
2756 default: return true;
2757 }
2758}
2759
2760inline bool VerifyQuantInfoVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
2761 if (!values || !types) return !values && !types;
2762 if (values->size() != types->size()) return false;
2763 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
2764 if (!VerifyQuantInfo(
2765 verifier, values->Get(i), types->GetEnum<QuantInfo>(i))) {
2766 return false;
2767 }
2768 }
2769 return true;
2770}
2771
2772inline const tosa::TosaGraph *GetTosaGraph(const void *buf) {
2773 return flatbuffers::GetRoot<tosa::TosaGraph>(buf);
2774}
2775
2776inline const tosa::TosaGraph *GetSizePrefixedTosaGraph(const void *buf) {
2777 return flatbuffers::GetSizePrefixedRoot<tosa::TosaGraph>(buf);
2778}
2779
2780inline const char *TosaGraphIdentifier() {
2781 return "TOSA";
2782}
2783
2784inline bool TosaGraphBufferHasIdentifier(const void *buf) {
2785 return flatbuffers::BufferHasIdentifier(
2786 buf, TosaGraphIdentifier());
2787}
2788
2789inline bool VerifyTosaGraphBuffer(
2790 flatbuffers::Verifier &verifier) {
2791 return verifier.VerifyBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2792}
2793
2794inline bool VerifySizePrefixedTosaGraphBuffer(
2795 flatbuffers::Verifier &verifier) {
2796 return verifier.VerifySizePrefixedBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2797}
2798
2799inline const char *TosaGraphExtension() {
2800 return "tosa";
2801}
2802
2803inline void FinishTosaGraphBuffer(
2804 flatbuffers::FlatBufferBuilder &fbb,
2805 flatbuffers::Offset<tosa::TosaGraph> root) {
2806 fbb.Finish(root, TosaGraphIdentifier());
2807}
2808
2809inline void FinishSizePrefixedTosaGraphBuffer(
2810 flatbuffers::FlatBufferBuilder &fbb,
2811 flatbuffers::Offset<tosa::TosaGraph> root) {
2812 fbb.FinishSizePrefixed(root, TosaGraphIdentifier());
2813}
2814
2815} // namespace tosa
2816
2817#endif // FLATBUFFERS_GENERATED_TOSA_TOSA_H_