blob: b34875f333ba7a6386e4c9d23c4afa0c1eaed952 [file] [log] [blame]
Eric Kunze2364dcd2021-04-26 11:06:57 -07001// automatically generated by the FlatBuffers compiler, do not modify
2
3
4#ifndef FLATBUFFERS_GENERATED_TOSA_TOSA_H_
5#define FLATBUFFERS_GENERATED_TOSA_TOSA_H_
6
7#include "flatbuffers/flatbuffers.h"
8
9namespace tosa {
10
Kevin Cheng79a41992021-08-31 16:04:40 -070011struct PoolAttribute;
12struct PoolAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070013
Kevin Cheng79a41992021-08-31 16:04:40 -070014struct ConvAttribute;
15struct ConvAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070016
Kevin Cheng79a41992021-08-31 16:04:40 -070017struct TransposeConvAttribute;
18struct TransposeConvAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070019
Kevin Cheng38d214c2021-10-15 15:49:19 -070020struct PadAttribute;
21struct PadAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070022
23struct AxisAttribute;
24struct AxisAttributeBuilder;
25
26struct ReshapeAttribute;
27struct ReshapeAttributeBuilder;
28
29struct SliceAttribute;
30struct SliceAttributeBuilder;
31
32struct TileAttribute;
33struct TileAttributeBuilder;
34
35struct ResizeAttribute;
36struct ResizeAttributeBuilder;
37
38struct ClampAttribute;
39struct ClampAttributeBuilder;
40
41struct RescaleAttribute;
42struct RescaleAttributeBuilder;
43
44struct MulAttribute;
45struct MulAttributeBuilder;
46
47struct ArithmeticRightShiftAttribute;
48struct ArithmeticRightShiftAttributeBuilder;
49
50struct CondIfAttribute;
51struct CondIfAttributeBuilder;
52
53struct WhileLoopAttribute;
54struct WhileLoopAttributeBuilder;
55
Kevin Cheng38d214c2021-10-15 15:49:19 -070056struct TransposeAttribute;
57struct TransposeAttributeBuilder;
58
59struct TableAttribute;
60struct TableAttributeBuilder;
61
Eric Kunzebdcc3fe2022-06-07 05:17:37 +000062struct MatMulAttribute;
63struct MatMulAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070064
Eric Kunzebdcc3fe2022-06-07 05:17:37 +000065struct FullyConnectedAttribute;
66struct FullyConnectedAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070067
Eric Kunzebdcc3fe2022-06-07 05:17:37 +000068struct NegateAttribute;
69struct NegateAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070070
Eric Kunze497ab5d2022-10-21 16:39:01 -070071struct CustomAttribute;
72struct CustomAttributeBuilder;
73
Luke Hutton5e268092023-01-12 22:20:53 +000074struct FFTAttribute;
75struct FFTAttributeBuilder;
76
Eric Kunze2364dcd2021-04-26 11:06:57 -070077struct Version;
78struct VersionBuilder;
79
80struct TosaTensor;
81struct TosaTensorBuilder;
82
83struct TosaOperator;
84struct TosaOperatorBuilder;
85
86struct TosaBasicBlock;
87struct TosaBasicBlockBuilder;
88
Jerry Ge13c78a62022-10-04 20:32:39 -070089struct TosaRegion;
90struct TosaRegionBuilder;
91
Eric Kunze2364dcd2021-04-26 11:06:57 -070092struct TosaGraph;
93struct TosaGraphBuilder;
94
Eric Kunze4381b3d2022-08-22 18:15:41 +000095enum DType : uint32_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -070096 DType_UNKNOWN = 0,
97 DType_BOOL = 1,
98 DType_UINT8 = 2,
99 DType_INT4 = 3,
100 DType_INT8 = 4,
101 DType_INT16 = 5,
102 DType_INT32 = 6,
103 DType_INT48 = 7,
Jeremy Johnsone1072a92022-09-27 12:44:11 +0100104 DType_FP32 = 8,
Jeremy Johnson41027732022-05-25 17:52:29 +0100105 DType_UINT16 = 9,
James Ward485a11d2022-08-05 13:48:37 +0100106 DType_FP16 = 10,
James Ward34a62792022-10-18 17:27:40 +0100107 DType_BF16 = 11,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700108 DType_MIN = DType_UNKNOWN,
James Ward34a62792022-10-18 17:27:40 +0100109 DType_MAX = DType_BF16
Eric Kunze2364dcd2021-04-26 11:06:57 -0700110};
111
James Ward34a62792022-10-18 17:27:40 +0100112inline const DType (&EnumValuesDType())[12] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700113 static const DType values[] = {
114 DType_UNKNOWN,
115 DType_BOOL,
116 DType_UINT8,
117 DType_INT4,
118 DType_INT8,
119 DType_INT16,
120 DType_INT32,
121 DType_INT48,
Jeremy Johnsone1072a92022-09-27 12:44:11 +0100122 DType_FP32,
James Ward485a11d2022-08-05 13:48:37 +0100123 DType_UINT16,
James Ward34a62792022-10-18 17:27:40 +0100124 DType_FP16,
125 DType_BF16
Eric Kunze2364dcd2021-04-26 11:06:57 -0700126 };
127 return values;
128}
129
130inline const char * const *EnumNamesDType() {
James Ward34a62792022-10-18 17:27:40 +0100131 static const char * const names[13] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700132 "UNKNOWN",
133 "BOOL",
134 "UINT8",
135 "INT4",
136 "INT8",
137 "INT16",
138 "INT32",
139 "INT48",
Jeremy Johnsone1072a92022-09-27 12:44:11 +0100140 "FP32",
Jeremy Johnson41027732022-05-25 17:52:29 +0100141 "UINT16",
James Ward485a11d2022-08-05 13:48:37 +0100142 "FP16",
James Ward34a62792022-10-18 17:27:40 +0100143 "BF16",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700144 nullptr
145 };
146 return names;
147}
148
149inline const char *EnumNameDType(DType e) {
James Ward34a62792022-10-18 17:27:40 +0100150 if (flatbuffers::IsOutRange(e, DType_UNKNOWN, DType_BF16)) return "";
Eric Kunze2364dcd2021-04-26 11:06:57 -0700151 const size_t index = static_cast<size_t>(e);
152 return EnumNamesDType()[index];
153}
154
Eric Kunze4381b3d2022-08-22 18:15:41 +0000155enum ResizeMode : uint32_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700156 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
Eric Kunze4381b3d2022-08-22 18:15:41 +0000188enum Op : uint32_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700189 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,
Luke Hutton5e268092023-01-12 22:20:53 +0000258 Op_FFT2D = 69,
259 Op_RFFT2D = 70,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700260 Op_MIN = Op_UNKNOWN,
Luke Hutton5e268092023-01-12 22:20:53 +0000261 Op_MAX = Op_RFFT2D
Eric Kunze2364dcd2021-04-26 11:06:57 -0700262};
263
Luke Hutton5e268092023-01-12 22:20:53 +0000264inline const Op (&EnumValuesOp())[71] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700265 static const Op values[] = {
266 Op_UNKNOWN,
267 Op_ARGMAX,
268 Op_AVG_POOL2D,
269 Op_CONV2D,
270 Op_CONV3D,
271 Op_DEPTHWISE_CONV2D,
272 Op_FULLY_CONNECTED,
273 Op_MATMUL,
274 Op_MAX_POOL2D,
275 Op_TRANSPOSE_CONV2D,
276 Op_CLAMP,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700277 Op_RESERVED,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700278 Op_SIGMOID,
279 Op_TANH,
280 Op_ADD,
281 Op_ARITHMETIC_RIGHT_SHIFT,
282 Op_BITWISE_AND,
283 Op_BITWISE_OR,
284 Op_BITWISE_XOR,
Matthew Haddonab905ec2021-08-23 16:40:57 +0100285 Op_INTDIV,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700286 Op_LOGICAL_AND,
287 Op_LOGICAL_LEFT_SHIFT,
288 Op_LOGICAL_RIGHT_SHIFT,
289 Op_LOGICAL_OR,
290 Op_LOGICAL_XOR,
291 Op_MAXIMUM,
292 Op_MINIMUM,
293 Op_MUL,
294 Op_POW,
295 Op_SUB,
296 Op_TABLE,
297 Op_ABS,
298 Op_BITWISE_NOT,
299 Op_CEIL,
300 Op_CLZ,
301 Op_EXP,
302 Op_FLOOR,
303 Op_LOG,
304 Op_LOGICAL_NOT,
305 Op_NEGATE,
306 Op_RECIPROCAL,
307 Op_RSQRT,
308 Op_SELECT,
309 Op_EQUAL,
310 Op_GREATER,
311 Op_GREATER_EQUAL,
312 Op_REDUCE_ANY,
313 Op_REDUCE_ALL,
314 Op_REDUCE_MAX,
315 Op_REDUCE_MIN,
316 Op_REDUCE_PRODUCT,
317 Op_REDUCE_SUM,
318 Op_CONCAT,
319 Op_PAD,
320 Op_RESHAPE,
321 Op_REVERSE,
322 Op_SLICE,
323 Op_TILE,
324 Op_TRANSPOSE,
325 Op_GATHER,
326 Op_SCATTER,
327 Op_RESIZE,
328 Op_CAST,
329 Op_RESCALE,
330 Op_CONST,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700331 Op_IDENTITY,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700332 Op_CUSTOM,
333 Op_COND_IF,
Luke Hutton5e268092023-01-12 22:20:53 +0000334 Op_WHILE_LOOP,
335 Op_FFT2D,
336 Op_RFFT2D
Eric Kunze2364dcd2021-04-26 11:06:57 -0700337 };
338 return values;
339}
340
341inline const char * const *EnumNamesOp() {
Luke Hutton5e268092023-01-12 22:20:53 +0000342 static const char * const names[72] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700343 "UNKNOWN",
344 "ARGMAX",
345 "AVG_POOL2D",
346 "CONV2D",
347 "CONV3D",
348 "DEPTHWISE_CONV2D",
349 "FULLY_CONNECTED",
350 "MATMUL",
351 "MAX_POOL2D",
352 "TRANSPOSE_CONV2D",
353 "CLAMP",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700354 "RESERVED",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700355 "SIGMOID",
356 "TANH",
357 "ADD",
358 "ARITHMETIC_RIGHT_SHIFT",
359 "BITWISE_AND",
360 "BITWISE_OR",
361 "BITWISE_XOR",
Matthew Haddonab905ec2021-08-23 16:40:57 +0100362 "INTDIV",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700363 "LOGICAL_AND",
364 "LOGICAL_LEFT_SHIFT",
365 "LOGICAL_RIGHT_SHIFT",
366 "LOGICAL_OR",
367 "LOGICAL_XOR",
368 "MAXIMUM",
369 "MINIMUM",
370 "MUL",
371 "POW",
372 "SUB",
373 "TABLE",
374 "ABS",
375 "BITWISE_NOT",
376 "CEIL",
377 "CLZ",
378 "EXP",
379 "FLOOR",
380 "LOG",
381 "LOGICAL_NOT",
382 "NEGATE",
383 "RECIPROCAL",
384 "RSQRT",
385 "SELECT",
386 "EQUAL",
387 "GREATER",
388 "GREATER_EQUAL",
389 "REDUCE_ANY",
390 "REDUCE_ALL",
391 "REDUCE_MAX",
392 "REDUCE_MIN",
393 "REDUCE_PRODUCT",
394 "REDUCE_SUM",
395 "CONCAT",
396 "PAD",
397 "RESHAPE",
398 "REVERSE",
399 "SLICE",
400 "TILE",
401 "TRANSPOSE",
402 "GATHER",
403 "SCATTER",
404 "RESIZE",
405 "CAST",
406 "RESCALE",
407 "CONST",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700408 "IDENTITY",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700409 "CUSTOM",
410 "COND_IF",
411 "WHILE_LOOP",
Luke Hutton5e268092023-01-12 22:20:53 +0000412 "FFT2D",
413 "RFFT2D",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700414 nullptr
415 };
416 return names;
417}
418
419inline const char *EnumNameOp(Op e) {
Luke Hutton5e268092023-01-12 22:20:53 +0000420 if (flatbuffers::IsOutRange(e, Op_UNKNOWN, Op_RFFT2D)) return "";
Eric Kunze2364dcd2021-04-26 11:06:57 -0700421 const size_t index = static_cast<size_t>(e);
422 return EnumNamesOp()[index];
423}
424
Eric Kunze4381b3d2022-08-22 18:15:41 +0000425enum Attribute : uint8_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700426 Attribute_NONE = 0,
Kevin Cheng79a41992021-08-31 16:04:40 -0700427 Attribute_PoolAttribute = 1,
428 Attribute_ConvAttribute = 2,
429 Attribute_TransposeConvAttribute = 3,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700430 Attribute_PadAttribute = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700431 Attribute_AxisAttribute = 5,
432 Attribute_ReshapeAttribute = 6,
433 Attribute_SliceAttribute = 7,
434 Attribute_TileAttribute = 8,
435 Attribute_ResizeAttribute = 9,
436 Attribute_ClampAttribute = 10,
437 Attribute_RescaleAttribute = 11,
438 Attribute_MulAttribute = 12,
439 Attribute_ArithmeticRightShiftAttribute = 13,
440 Attribute_CondIfAttribute = 14,
441 Attribute_WhileLoopAttribute = 15,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700442 Attribute_TransposeAttribute = 16,
443 Attribute_TableAttribute = 17,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000444 Attribute_MatMulAttribute = 18,
445 Attribute_FullyConnectedAttribute = 19,
446 Attribute_NegateAttribute = 20,
Eric Kunze497ab5d2022-10-21 16:39:01 -0700447 Attribute_CustomAttribute = 21,
Luke Hutton5e268092023-01-12 22:20:53 +0000448 Attribute_FFTAttribute = 22,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700449 Attribute_MIN = Attribute_NONE,
Luke Hutton5e268092023-01-12 22:20:53 +0000450 Attribute_MAX = Attribute_FFTAttribute
Eric Kunze2364dcd2021-04-26 11:06:57 -0700451};
452
Luke Hutton5e268092023-01-12 22:20:53 +0000453inline const Attribute (&EnumValuesAttribute())[23] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700454 static const Attribute values[] = {
455 Attribute_NONE,
Kevin Cheng79a41992021-08-31 16:04:40 -0700456 Attribute_PoolAttribute,
457 Attribute_ConvAttribute,
458 Attribute_TransposeConvAttribute,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700459 Attribute_PadAttribute,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700460 Attribute_AxisAttribute,
461 Attribute_ReshapeAttribute,
462 Attribute_SliceAttribute,
463 Attribute_TileAttribute,
464 Attribute_ResizeAttribute,
465 Attribute_ClampAttribute,
466 Attribute_RescaleAttribute,
467 Attribute_MulAttribute,
468 Attribute_ArithmeticRightShiftAttribute,
469 Attribute_CondIfAttribute,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700470 Attribute_WhileLoopAttribute,
471 Attribute_TransposeAttribute,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000472 Attribute_TableAttribute,
473 Attribute_MatMulAttribute,
474 Attribute_FullyConnectedAttribute,
Eric Kunze497ab5d2022-10-21 16:39:01 -0700475 Attribute_NegateAttribute,
Luke Hutton5e268092023-01-12 22:20:53 +0000476 Attribute_CustomAttribute,
477 Attribute_FFTAttribute
Eric Kunze2364dcd2021-04-26 11:06:57 -0700478 };
479 return values;
480}
481
482inline const char * const *EnumNamesAttribute() {
Luke Hutton5e268092023-01-12 22:20:53 +0000483 static const char * const names[24] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700484 "NONE",
Kevin Cheng79a41992021-08-31 16:04:40 -0700485 "PoolAttribute",
486 "ConvAttribute",
487 "TransposeConvAttribute",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700488 "PadAttribute",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700489 "AxisAttribute",
490 "ReshapeAttribute",
491 "SliceAttribute",
492 "TileAttribute",
493 "ResizeAttribute",
494 "ClampAttribute",
495 "RescaleAttribute",
496 "MulAttribute",
497 "ArithmeticRightShiftAttribute",
498 "CondIfAttribute",
499 "WhileLoopAttribute",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700500 "TransposeAttribute",
501 "TableAttribute",
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000502 "MatMulAttribute",
503 "FullyConnectedAttribute",
504 "NegateAttribute",
Eric Kunze497ab5d2022-10-21 16:39:01 -0700505 "CustomAttribute",
Luke Hutton5e268092023-01-12 22:20:53 +0000506 "FFTAttribute",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700507 nullptr
508 };
509 return names;
510}
511
512inline const char *EnumNameAttribute(Attribute e) {
Luke Hutton5e268092023-01-12 22:20:53 +0000513 if (flatbuffers::IsOutRange(e, Attribute_NONE, Attribute_FFTAttribute)) return "";
Eric Kunze2364dcd2021-04-26 11:06:57 -0700514 const size_t index = static_cast<size_t>(e);
515 return EnumNamesAttribute()[index];
516}
517
518template<typename T> struct AttributeTraits {
519 static const Attribute enum_value = Attribute_NONE;
520};
521
Kevin Cheng79a41992021-08-31 16:04:40 -0700522template<> struct AttributeTraits<tosa::PoolAttribute> {
523 static const Attribute enum_value = Attribute_PoolAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700524};
525
Kevin Cheng79a41992021-08-31 16:04:40 -0700526template<> struct AttributeTraits<tosa::ConvAttribute> {
527 static const Attribute enum_value = Attribute_ConvAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700528};
529
Kevin Cheng79a41992021-08-31 16:04:40 -0700530template<> struct AttributeTraits<tosa::TransposeConvAttribute> {
531 static const Attribute enum_value = Attribute_TransposeConvAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700532};
533
Kevin Cheng38d214c2021-10-15 15:49:19 -0700534template<> struct AttributeTraits<tosa::PadAttribute> {
535 static const Attribute enum_value = Attribute_PadAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700536};
537
538template<> struct AttributeTraits<tosa::AxisAttribute> {
539 static const Attribute enum_value = Attribute_AxisAttribute;
540};
541
542template<> struct AttributeTraits<tosa::ReshapeAttribute> {
543 static const Attribute enum_value = Attribute_ReshapeAttribute;
544};
545
546template<> struct AttributeTraits<tosa::SliceAttribute> {
547 static const Attribute enum_value = Attribute_SliceAttribute;
548};
549
550template<> struct AttributeTraits<tosa::TileAttribute> {
551 static const Attribute enum_value = Attribute_TileAttribute;
552};
553
554template<> struct AttributeTraits<tosa::ResizeAttribute> {
555 static const Attribute enum_value = Attribute_ResizeAttribute;
556};
557
558template<> struct AttributeTraits<tosa::ClampAttribute> {
559 static const Attribute enum_value = Attribute_ClampAttribute;
560};
561
562template<> struct AttributeTraits<tosa::RescaleAttribute> {
563 static const Attribute enum_value = Attribute_RescaleAttribute;
564};
565
566template<> struct AttributeTraits<tosa::MulAttribute> {
567 static const Attribute enum_value = Attribute_MulAttribute;
568};
569
570template<> struct AttributeTraits<tosa::ArithmeticRightShiftAttribute> {
571 static const Attribute enum_value = Attribute_ArithmeticRightShiftAttribute;
572};
573
574template<> struct AttributeTraits<tosa::CondIfAttribute> {
575 static const Attribute enum_value = Attribute_CondIfAttribute;
576};
577
578template<> struct AttributeTraits<tosa::WhileLoopAttribute> {
579 static const Attribute enum_value = Attribute_WhileLoopAttribute;
580};
581
Kevin Cheng38d214c2021-10-15 15:49:19 -0700582template<> struct AttributeTraits<tosa::TransposeAttribute> {
583 static const Attribute enum_value = Attribute_TransposeAttribute;
584};
585
586template<> struct AttributeTraits<tosa::TableAttribute> {
587 static const Attribute enum_value = Attribute_TableAttribute;
588};
589
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000590template<> struct AttributeTraits<tosa::MatMulAttribute> {
591 static const Attribute enum_value = Attribute_MatMulAttribute;
592};
593
594template<> struct AttributeTraits<tosa::FullyConnectedAttribute> {
595 static const Attribute enum_value = Attribute_FullyConnectedAttribute;
596};
597
598template<> struct AttributeTraits<tosa::NegateAttribute> {
599 static const Attribute enum_value = Attribute_NegateAttribute;
600};
601
Eric Kunze497ab5d2022-10-21 16:39:01 -0700602template<> struct AttributeTraits<tosa::CustomAttribute> {
603 static const Attribute enum_value = Attribute_CustomAttribute;
604};
605
Luke Hutton5e268092023-01-12 22:20:53 +0000606template<> struct AttributeTraits<tosa::FFTAttribute> {
607 static const Attribute enum_value = Attribute_FFTAttribute;
608};
609
Eric Kunze2364dcd2021-04-26 11:06:57 -0700610bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type);
611bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types);
612
Kevin Cheng79a41992021-08-31 16:04:40 -0700613struct PoolAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
614 typedef PoolAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700615 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -0700616 VT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700617 VT_KERNEL = 6,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000618 VT_STRIDE = 8,
619 VT_INPUT_ZP = 10,
James Ward485a11d2022-08-05 13:48:37 +0100620 VT_OUTPUT_ZP = 12,
621 VT_ACCUM_DTYPE = 14
Eric Kunze2364dcd2021-04-26 11:06:57 -0700622 };
TatWai Chong7be71652022-05-10 17:26:20 -0700623 const flatbuffers::Vector<int32_t> *pad() const {
624 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700625 }
626 const flatbuffers::Vector<int32_t> *kernel() const {
627 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_KERNEL);
628 }
629 const flatbuffers::Vector<int32_t> *stride() const {
630 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
631 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000632 int32_t input_zp() const {
633 return GetField<int32_t>(VT_INPUT_ZP, 0);
634 }
635 int32_t output_zp() const {
636 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
637 }
James Ward485a11d2022-08-05 13:48:37 +0100638 tosa::DType accum_dtype() const {
639 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
640 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700641 bool Verify(flatbuffers::Verifier &verifier) const {
642 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -0700643 VerifyOffset(verifier, VT_PAD) &&
644 verifier.VerifyVector(pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700645 VerifyOffset(verifier, VT_KERNEL) &&
646 verifier.VerifyVector(kernel()) &&
647 VerifyOffset(verifier, VT_STRIDE) &&
648 verifier.VerifyVector(stride()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000649 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
650 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +0100651 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700652 verifier.EndTable();
653 }
654};
655
Kevin Cheng79a41992021-08-31 16:04:40 -0700656struct PoolAttributeBuilder {
657 typedef PoolAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700658 flatbuffers::FlatBufferBuilder &fbb_;
659 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -0700660 void add_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad) {
661 fbb_.AddOffset(PoolAttribute::VT_PAD, pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700662 }
663 void add_kernel(flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700664 fbb_.AddOffset(PoolAttribute::VT_KERNEL, kernel);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700665 }
666 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700667 fbb_.AddOffset(PoolAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700668 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000669 void add_input_zp(int32_t input_zp) {
670 fbb_.AddElement<int32_t>(PoolAttribute::VT_INPUT_ZP, input_zp, 0);
671 }
672 void add_output_zp(int32_t output_zp) {
673 fbb_.AddElement<int32_t>(PoolAttribute::VT_OUTPUT_ZP, output_zp, 0);
674 }
James Ward485a11d2022-08-05 13:48:37 +0100675 void add_accum_dtype(tosa::DType accum_dtype) {
676 fbb_.AddElement<uint32_t>(PoolAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
677 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700678 explicit PoolAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700679 : fbb_(_fbb) {
680 start_ = fbb_.StartTable();
681 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700682 flatbuffers::Offset<PoolAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700683 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700684 auto o = flatbuffers::Offset<PoolAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700685 return o;
686 }
687};
688
Kevin Cheng79a41992021-08-31 16:04:40 -0700689inline flatbuffers::Offset<PoolAttribute> CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700690 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700691 flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700692 flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000693 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
694 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100695 int32_t output_zp = 0,
696 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700697 PoolAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +0100698 builder_.add_accum_dtype(accum_dtype);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000699 builder_.add_output_zp(output_zp);
700 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700701 builder_.add_stride(stride);
702 builder_.add_kernel(kernel);
TatWai Chong7be71652022-05-10 17:26:20 -0700703 builder_.add_pad(pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700704 return builder_.Finish();
705}
706
Kevin Cheng79a41992021-08-31 16:04:40 -0700707inline flatbuffers::Offset<PoolAttribute> CreatePoolAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700708 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700709 const std::vector<int32_t> *pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700710 const std::vector<int32_t> *kernel = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000711 const std::vector<int32_t> *stride = nullptr,
712 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100713 int32_t output_zp = 0,
714 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
TatWai Chong7be71652022-05-10 17:26:20 -0700715 auto pad__ = pad ? _fbb.CreateVector<int32_t>(*pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700716 auto kernel__ = kernel ? _fbb.CreateVector<int32_t>(*kernel) : 0;
717 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700718 return tosa::CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700719 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700720 pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700721 kernel__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000722 stride__,
723 input_zp,
James Ward485a11d2022-08-05 13:48:37 +0100724 output_zp,
725 accum_dtype);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700726}
727
Kevin Cheng79a41992021-08-31 16:04:40 -0700728struct ConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
729 typedef ConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700730 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -0700731 VT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700732 VT_STRIDE = 6,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000733 VT_DILATION = 8,
734 VT_INPUT_ZP = 10,
James Ward485a11d2022-08-05 13:48:37 +0100735 VT_WEIGHT_ZP = 12,
736 VT_ACCUM_DTYPE = 14
Eric Kunze2364dcd2021-04-26 11:06:57 -0700737 };
TatWai Chong7be71652022-05-10 17:26:20 -0700738 const flatbuffers::Vector<int32_t> *pad() const {
739 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700740 }
741 const flatbuffers::Vector<int32_t> *stride() const {
742 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
743 }
744 const flatbuffers::Vector<int32_t> *dilation() const {
745 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_DILATION);
746 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000747 int32_t input_zp() const {
748 return GetField<int32_t>(VT_INPUT_ZP, 0);
749 }
750 int32_t weight_zp() const {
751 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
752 }
James Ward485a11d2022-08-05 13:48:37 +0100753 tosa::DType accum_dtype() const {
754 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
755 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700756 bool Verify(flatbuffers::Verifier &verifier) const {
757 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -0700758 VerifyOffset(verifier, VT_PAD) &&
759 verifier.VerifyVector(pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700760 VerifyOffset(verifier, VT_STRIDE) &&
761 verifier.VerifyVector(stride()) &&
762 VerifyOffset(verifier, VT_DILATION) &&
763 verifier.VerifyVector(dilation()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000764 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
765 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +0100766 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700767 verifier.EndTable();
768 }
769};
770
Kevin Cheng79a41992021-08-31 16:04:40 -0700771struct ConvAttributeBuilder {
772 typedef ConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700773 flatbuffers::FlatBufferBuilder &fbb_;
774 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -0700775 void add_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad) {
776 fbb_.AddOffset(ConvAttribute::VT_PAD, pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700777 }
778 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700779 fbb_.AddOffset(ConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700780 }
781 void add_dilation(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700782 fbb_.AddOffset(ConvAttribute::VT_DILATION, dilation);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700783 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000784 void add_input_zp(int32_t input_zp) {
785 fbb_.AddElement<int32_t>(ConvAttribute::VT_INPUT_ZP, input_zp, 0);
786 }
787 void add_weight_zp(int32_t weight_zp) {
788 fbb_.AddElement<int32_t>(ConvAttribute::VT_WEIGHT_ZP, weight_zp, 0);
789 }
James Ward485a11d2022-08-05 13:48:37 +0100790 void add_accum_dtype(tosa::DType accum_dtype) {
791 fbb_.AddElement<uint32_t>(ConvAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
792 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700793 explicit ConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700794 : fbb_(_fbb) {
795 start_ = fbb_.StartTable();
796 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700797 flatbuffers::Offset<ConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700798 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700799 auto o = flatbuffers::Offset<ConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700800 return o;
801 }
802};
803
Kevin Cheng79a41992021-08-31 16:04:40 -0700804inline flatbuffers::Offset<ConvAttribute> CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700805 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700806 flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700807 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000808 flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation = 0,
809 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100810 int32_t weight_zp = 0,
811 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700812 ConvAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +0100813 builder_.add_accum_dtype(accum_dtype);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000814 builder_.add_weight_zp(weight_zp);
815 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700816 builder_.add_dilation(dilation);
817 builder_.add_stride(stride);
TatWai Chong7be71652022-05-10 17:26:20 -0700818 builder_.add_pad(pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700819 return builder_.Finish();
820}
821
Kevin Cheng79a41992021-08-31 16:04:40 -0700822inline flatbuffers::Offset<ConvAttribute> CreateConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700823 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700824 const std::vector<int32_t> *pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700825 const std::vector<int32_t> *stride = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000826 const std::vector<int32_t> *dilation = nullptr,
827 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100828 int32_t weight_zp = 0,
829 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
TatWai Chong7be71652022-05-10 17:26:20 -0700830 auto pad__ = pad ? _fbb.CreateVector<int32_t>(*pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700831 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
832 auto dilation__ = dilation ? _fbb.CreateVector<int32_t>(*dilation) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700833 return tosa::CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700834 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700835 pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700836 stride__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000837 dilation__,
838 input_zp,
James Ward485a11d2022-08-05 13:48:37 +0100839 weight_zp,
840 accum_dtype);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700841}
842
Kevin Cheng79a41992021-08-31 16:04:40 -0700843struct TransposeConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
844 typedef TransposeConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700845 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700846 VT_OUT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700847 VT_STRIDE = 6,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000848 VT_OUTPUT_SHAPE = 8,
849 VT_INPUT_ZP = 10,
James Ward485a11d2022-08-05 13:48:37 +0100850 VT_WEIGHT_ZP = 12,
851 VT_ACCUM_DTYPE = 14
Eric Kunze2364dcd2021-04-26 11:06:57 -0700852 };
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700853 const flatbuffers::Vector<int32_t> *out_pad() const {
854 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700855 }
856 const flatbuffers::Vector<int32_t> *stride() const {
857 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
858 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700859 const flatbuffers::Vector<int32_t> *output_shape() const {
860 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUT_SHAPE);
861 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000862 int32_t input_zp() const {
863 return GetField<int32_t>(VT_INPUT_ZP, 0);
864 }
865 int32_t weight_zp() const {
866 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
867 }
James Ward485a11d2022-08-05 13:48:37 +0100868 tosa::DType accum_dtype() const {
869 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
870 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700871 bool Verify(flatbuffers::Verifier &verifier) const {
872 return VerifyTableStart(verifier) &&
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700873 VerifyOffset(verifier, VT_OUT_PAD) &&
874 verifier.VerifyVector(out_pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700875 VerifyOffset(verifier, VT_STRIDE) &&
876 verifier.VerifyVector(stride()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700877 VerifyOffset(verifier, VT_OUTPUT_SHAPE) &&
878 verifier.VerifyVector(output_shape()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000879 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
880 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +0100881 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700882 verifier.EndTable();
883 }
884};
885
Kevin Cheng79a41992021-08-31 16:04:40 -0700886struct TransposeConvAttributeBuilder {
887 typedef TransposeConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700888 flatbuffers::FlatBufferBuilder &fbb_;
889 flatbuffers::uoffset_t start_;
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700890 void add_out_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> out_pad) {
891 fbb_.AddOffset(TransposeConvAttribute::VT_OUT_PAD, out_pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700892 }
893 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700894 fbb_.AddOffset(TransposeConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700895 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700896 void add_output_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700897 fbb_.AddOffset(TransposeConvAttribute::VT_OUTPUT_SHAPE, output_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700898 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000899 void add_input_zp(int32_t input_zp) {
900 fbb_.AddElement<int32_t>(TransposeConvAttribute::VT_INPUT_ZP, input_zp, 0);
901 }
902 void add_weight_zp(int32_t weight_zp) {
903 fbb_.AddElement<int32_t>(TransposeConvAttribute::VT_WEIGHT_ZP, weight_zp, 0);
904 }
James Ward485a11d2022-08-05 13:48:37 +0100905 void add_accum_dtype(tosa::DType accum_dtype) {
906 fbb_.AddElement<uint32_t>(TransposeConvAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
907 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700908 explicit TransposeConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700909 : fbb_(_fbb) {
910 start_ = fbb_.StartTable();
911 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700912 flatbuffers::Offset<TransposeConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700913 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700914 auto o = flatbuffers::Offset<TransposeConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700915 return o;
916 }
917};
918
Kevin Cheng79a41992021-08-31 16:04:40 -0700919inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700920 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700921 flatbuffers::Offset<flatbuffers::Vector<int32_t>> out_pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700922 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000923 flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape = 0,
924 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100925 int32_t weight_zp = 0,
926 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700927 TransposeConvAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +0100928 builder_.add_accum_dtype(accum_dtype);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000929 builder_.add_weight_zp(weight_zp);
930 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700931 builder_.add_output_shape(output_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700932 builder_.add_stride(stride);
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700933 builder_.add_out_pad(out_pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700934 return builder_.Finish();
935}
936
Kevin Cheng79a41992021-08-31 16:04:40 -0700937inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700938 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700939 const std::vector<int32_t> *out_pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700940 const std::vector<int32_t> *stride = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000941 const std::vector<int32_t> *output_shape = nullptr,
942 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100943 int32_t weight_zp = 0,
944 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700945 auto out_pad__ = out_pad ? _fbb.CreateVector<int32_t>(*out_pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700946 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700947 auto output_shape__ = output_shape ? _fbb.CreateVector<int32_t>(*output_shape) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700948 return tosa::CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700949 _fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700950 out_pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700951 stride__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000952 output_shape__,
953 input_zp,
James Ward485a11d2022-08-05 13:48:37 +0100954 weight_zp,
955 accum_dtype);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700956}
957
Kevin Cheng38d214c2021-10-15 15:49:19 -0700958struct PadAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
959 typedef PadAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700960 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Kevin Cheng38d214c2021-10-15 15:49:19 -0700961 VT_PADDING = 4,
962 VT_PAD_CONST_INT = 6,
963 VT_PAD_CONST_FP = 8
Eric Kunze2364dcd2021-04-26 11:06:57 -0700964 };
Kevin Cheng38d214c2021-10-15 15:49:19 -0700965 const flatbuffers::Vector<int32_t> *padding() const {
966 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PADDING);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700967 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700968 int32_t pad_const_int() const {
969 return GetField<int32_t>(VT_PAD_CONST_INT, 0);
970 }
James Wardc15f7d52022-12-07 15:38:01 +0000971 const flatbuffers::Vector<uint8_t> *pad_const_fp() const {
972 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_PAD_CONST_FP);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700973 }
974 bool Verify(flatbuffers::Verifier &verifier) const {
975 return VerifyTableStart(verifier) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -0700976 VerifyOffset(verifier, VT_PADDING) &&
977 verifier.VerifyVector(padding()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000978 VerifyField<int32_t>(verifier, VT_PAD_CONST_INT, 4) &&
James Wardc15f7d52022-12-07 15:38:01 +0000979 VerifyOffset(verifier, VT_PAD_CONST_FP) &&
980 verifier.VerifyVector(pad_const_fp()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700981 verifier.EndTable();
982 }
983};
984
Kevin Cheng38d214c2021-10-15 15:49:19 -0700985struct PadAttributeBuilder {
986 typedef PadAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700987 flatbuffers::FlatBufferBuilder &fbb_;
988 flatbuffers::uoffset_t start_;
Kevin Cheng38d214c2021-10-15 15:49:19 -0700989 void add_padding(flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding) {
990 fbb_.AddOffset(PadAttribute::VT_PADDING, padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700991 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700992 void add_pad_const_int(int32_t pad_const_int) {
993 fbb_.AddElement<int32_t>(PadAttribute::VT_PAD_CONST_INT, pad_const_int, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700994 }
James Wardc15f7d52022-12-07 15:38:01 +0000995 void add_pad_const_fp(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> pad_const_fp) {
996 fbb_.AddOffset(PadAttribute::VT_PAD_CONST_FP, pad_const_fp);
Kevin Cheng38d214c2021-10-15 15:49:19 -0700997 }
998 explicit PadAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700999 : fbb_(_fbb) {
1000 start_ = fbb_.StartTable();
1001 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07001002 flatbuffers::Offset<PadAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001003 const auto end = fbb_.EndTable(start_);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001004 auto o = flatbuffers::Offset<PadAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001005 return o;
1006 }
1007};
1008
Kevin Cheng38d214c2021-10-15 15:49:19 -07001009inline flatbuffers::Offset<PadAttribute> CreatePadAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -07001010 flatbuffers::FlatBufferBuilder &_fbb,
Kevin Cheng38d214c2021-10-15 15:49:19 -07001011 flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding = 0,
1012 int32_t pad_const_int = 0,
James Wardc15f7d52022-12-07 15:38:01 +00001013 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> pad_const_fp = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001014 PadAttributeBuilder builder_(_fbb);
1015 builder_.add_pad_const_fp(pad_const_fp);
1016 builder_.add_pad_const_int(pad_const_int);
1017 builder_.add_padding(padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001018 return builder_.Finish();
1019}
1020
Kevin Cheng38d214c2021-10-15 15:49:19 -07001021inline flatbuffers::Offset<PadAttribute> CreatePadAttributeDirect(
1022 flatbuffers::FlatBufferBuilder &_fbb,
1023 const std::vector<int32_t> *padding = nullptr,
1024 int32_t pad_const_int = 0,
James Wardc15f7d52022-12-07 15:38:01 +00001025 const std::vector<uint8_t> *pad_const_fp = nullptr) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001026 auto padding__ = padding ? _fbb.CreateVector<int32_t>(*padding) : 0;
James Wardc15f7d52022-12-07 15:38:01 +00001027 if (pad_const_fp) { _fbb.ForceVectorAlignment(pad_const_fp->size(), sizeof(uint8_t), 8); }
1028 auto pad_const_fp__ = pad_const_fp ? _fbb.CreateVector<uint8_t>(*pad_const_fp) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001029 return tosa::CreatePadAttribute(
1030 _fbb,
1031 padding__,
1032 pad_const_int,
James Wardc15f7d52022-12-07 15:38:01 +00001033 pad_const_fp__);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001034}
1035
Eric Kunze2364dcd2021-04-26 11:06:57 -07001036struct AxisAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1037 typedef AxisAttributeBuilder Builder;
1038 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1039 VT_AXIS = 4
1040 };
1041 int32_t axis() const {
1042 return GetField<int32_t>(VT_AXIS, 0);
1043 }
1044 bool Verify(flatbuffers::Verifier &verifier) const {
1045 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001046 VerifyField<int32_t>(verifier, VT_AXIS, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001047 verifier.EndTable();
1048 }
1049};
1050
1051struct AxisAttributeBuilder {
1052 typedef AxisAttribute Table;
1053 flatbuffers::FlatBufferBuilder &fbb_;
1054 flatbuffers::uoffset_t start_;
1055 void add_axis(int32_t axis) {
1056 fbb_.AddElement<int32_t>(AxisAttribute::VT_AXIS, axis, 0);
1057 }
1058 explicit AxisAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1059 : fbb_(_fbb) {
1060 start_ = fbb_.StartTable();
1061 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001062 flatbuffers::Offset<AxisAttribute> Finish() {
1063 const auto end = fbb_.EndTable(start_);
1064 auto o = flatbuffers::Offset<AxisAttribute>(end);
1065 return o;
1066 }
1067};
1068
1069inline flatbuffers::Offset<AxisAttribute> CreateAxisAttribute(
1070 flatbuffers::FlatBufferBuilder &_fbb,
1071 int32_t axis = 0) {
1072 AxisAttributeBuilder builder_(_fbb);
1073 builder_.add_axis(axis);
1074 return builder_.Finish();
1075}
1076
1077struct ReshapeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1078 typedef ReshapeAttributeBuilder Builder;
1079 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001080 VT_NEW_SHAPE = 4
Eric Kunze2364dcd2021-04-26 11:06:57 -07001081 };
TatWai Chong7be71652022-05-10 17:26:20 -07001082 const flatbuffers::Vector<int32_t> *new_shape() const {
1083 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_NEW_SHAPE);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001084 }
1085 bool Verify(flatbuffers::Verifier &verifier) const {
1086 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001087 VerifyOffset(verifier, VT_NEW_SHAPE) &&
1088 verifier.VerifyVector(new_shape()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001089 verifier.EndTable();
1090 }
1091};
1092
1093struct ReshapeAttributeBuilder {
1094 typedef ReshapeAttribute Table;
1095 flatbuffers::FlatBufferBuilder &fbb_;
1096 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001097 void add_new_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> new_shape) {
1098 fbb_.AddOffset(ReshapeAttribute::VT_NEW_SHAPE, new_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001099 }
1100 explicit ReshapeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1101 : fbb_(_fbb) {
1102 start_ = fbb_.StartTable();
1103 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001104 flatbuffers::Offset<ReshapeAttribute> Finish() {
1105 const auto end = fbb_.EndTable(start_);
1106 auto o = flatbuffers::Offset<ReshapeAttribute>(end);
1107 return o;
1108 }
1109};
1110
1111inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttribute(
1112 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001113 flatbuffers::Offset<flatbuffers::Vector<int32_t>> new_shape = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001114 ReshapeAttributeBuilder builder_(_fbb);
TatWai Chong7be71652022-05-10 17:26:20 -07001115 builder_.add_new_shape(new_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001116 return builder_.Finish();
1117}
1118
1119inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttributeDirect(
1120 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001121 const std::vector<int32_t> *new_shape = nullptr) {
1122 auto new_shape__ = new_shape ? _fbb.CreateVector<int32_t>(*new_shape) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001123 return tosa::CreateReshapeAttribute(
1124 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001125 new_shape__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001126}
1127
1128struct SliceAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1129 typedef SliceAttributeBuilder Builder;
1130 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001131 VT_START = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001132 VT_SIZE = 6
1133 };
TatWai Chong7be71652022-05-10 17:26:20 -07001134 const flatbuffers::Vector<int32_t> *start() const {
1135 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_START);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001136 }
1137 const flatbuffers::Vector<int32_t> *size() const {
1138 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SIZE);
1139 }
1140 bool Verify(flatbuffers::Verifier &verifier) const {
1141 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001142 VerifyOffset(verifier, VT_START) &&
1143 verifier.VerifyVector(start()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001144 VerifyOffset(verifier, VT_SIZE) &&
1145 verifier.VerifyVector(size()) &&
1146 verifier.EndTable();
1147 }
1148};
1149
1150struct SliceAttributeBuilder {
1151 typedef SliceAttribute Table;
1152 flatbuffers::FlatBufferBuilder &fbb_;
1153 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001154 void add_start(flatbuffers::Offset<flatbuffers::Vector<int32_t>> start) {
1155 fbb_.AddOffset(SliceAttribute::VT_START, start);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001156 }
1157 void add_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> size) {
1158 fbb_.AddOffset(SliceAttribute::VT_SIZE, size);
1159 }
1160 explicit SliceAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1161 : fbb_(_fbb) {
1162 start_ = fbb_.StartTable();
1163 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001164 flatbuffers::Offset<SliceAttribute> Finish() {
1165 const auto end = fbb_.EndTable(start_);
1166 auto o = flatbuffers::Offset<SliceAttribute>(end);
1167 return o;
1168 }
1169};
1170
1171inline flatbuffers::Offset<SliceAttribute> CreateSliceAttribute(
1172 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001173 flatbuffers::Offset<flatbuffers::Vector<int32_t>> start = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001174 flatbuffers::Offset<flatbuffers::Vector<int32_t>> size = 0) {
1175 SliceAttributeBuilder builder_(_fbb);
1176 builder_.add_size(size);
TatWai Chong7be71652022-05-10 17:26:20 -07001177 builder_.add_start(start);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001178 return builder_.Finish();
1179}
1180
1181inline flatbuffers::Offset<SliceAttribute> CreateSliceAttributeDirect(
1182 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001183 const std::vector<int32_t> *start = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001184 const std::vector<int32_t> *size = nullptr) {
TatWai Chong7be71652022-05-10 17:26:20 -07001185 auto start__ = start ? _fbb.CreateVector<int32_t>(*start) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001186 auto size__ = size ? _fbb.CreateVector<int32_t>(*size) : 0;
1187 return tosa::CreateSliceAttribute(
1188 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001189 start__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001190 size__);
1191}
1192
1193struct TileAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1194 typedef TileAttributeBuilder Builder;
1195 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1196 VT_MULTIPLES = 4
1197 };
1198 const flatbuffers::Vector<int32_t> *multiples() const {
1199 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLES);
1200 }
1201 bool Verify(flatbuffers::Verifier &verifier) const {
1202 return VerifyTableStart(verifier) &&
1203 VerifyOffset(verifier, VT_MULTIPLES) &&
1204 verifier.VerifyVector(multiples()) &&
1205 verifier.EndTable();
1206 }
1207};
1208
1209struct TileAttributeBuilder {
1210 typedef TileAttribute Table;
1211 flatbuffers::FlatBufferBuilder &fbb_;
1212 flatbuffers::uoffset_t start_;
1213 void add_multiples(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples) {
1214 fbb_.AddOffset(TileAttribute::VT_MULTIPLES, multiples);
1215 }
1216 explicit TileAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1217 : fbb_(_fbb) {
1218 start_ = fbb_.StartTable();
1219 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001220 flatbuffers::Offset<TileAttribute> Finish() {
1221 const auto end = fbb_.EndTable(start_);
1222 auto o = flatbuffers::Offset<TileAttribute>(end);
1223 return o;
1224 }
1225};
1226
1227inline flatbuffers::Offset<TileAttribute> CreateTileAttribute(
1228 flatbuffers::FlatBufferBuilder &_fbb,
1229 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples = 0) {
1230 TileAttributeBuilder builder_(_fbb);
1231 builder_.add_multiples(multiples);
1232 return builder_.Finish();
1233}
1234
1235inline flatbuffers::Offset<TileAttribute> CreateTileAttributeDirect(
1236 flatbuffers::FlatBufferBuilder &_fbb,
1237 const std::vector<int32_t> *multiples = nullptr) {
1238 auto multiples__ = multiples ? _fbb.CreateVector<int32_t>(*multiples) : 0;
1239 return tosa::CreateTileAttribute(
1240 _fbb,
1241 multiples__);
1242}
1243
1244struct ResizeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1245 typedef ResizeAttributeBuilder Builder;
1246 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong49b1ca62022-06-10 01:49:13 -07001247 VT_SCALE = 4,
1248 VT_OFFSET = 6,
1249 VT_BORDER = 8,
1250 VT_MODE = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07001251 };
TatWai Chong49b1ca62022-06-10 01:49:13 -07001252 const flatbuffers::Vector<int16_t> *scale() const {
1253 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_SCALE);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001254 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001255 const flatbuffers::Vector<int16_t> *offset() const {
1256 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_OFFSET);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001257 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001258 const flatbuffers::Vector<int16_t> *border() const {
1259 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_BORDER);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001260 }
1261 tosa::ResizeMode mode() const {
1262 return static_cast<tosa::ResizeMode>(GetField<uint32_t>(VT_MODE, 0));
1263 }
1264 bool Verify(flatbuffers::Verifier &verifier) const {
1265 return VerifyTableStart(verifier) &&
TatWai Chong49b1ca62022-06-10 01:49:13 -07001266 VerifyOffset(verifier, VT_SCALE) &&
1267 verifier.VerifyVector(scale()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001268 VerifyOffset(verifier, VT_OFFSET) &&
1269 verifier.VerifyVector(offset()) &&
TatWai Chong49b1ca62022-06-10 01:49:13 -07001270 VerifyOffset(verifier, VT_BORDER) &&
1271 verifier.VerifyVector(border()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001272 VerifyField<uint32_t>(verifier, VT_MODE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001273 verifier.EndTable();
1274 }
1275};
1276
1277struct ResizeAttributeBuilder {
1278 typedef ResizeAttribute Table;
1279 flatbuffers::FlatBufferBuilder &fbb_;
1280 flatbuffers::uoffset_t start_;
TatWai Chong49b1ca62022-06-10 01:49:13 -07001281 void add_scale(flatbuffers::Offset<flatbuffers::Vector<int16_t>> scale) {
1282 fbb_.AddOffset(ResizeAttribute::VT_SCALE, scale);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001283 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001284 void add_offset(flatbuffers::Offset<flatbuffers::Vector<int16_t>> offset) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001285 fbb_.AddOffset(ResizeAttribute::VT_OFFSET, offset);
1286 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001287 void add_border(flatbuffers::Offset<flatbuffers::Vector<int16_t>> border) {
1288 fbb_.AddOffset(ResizeAttribute::VT_BORDER, border);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001289 }
1290 void add_mode(tosa::ResizeMode mode) {
1291 fbb_.AddElement<uint32_t>(ResizeAttribute::VT_MODE, static_cast<uint32_t>(mode), 0);
1292 }
1293 explicit ResizeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1294 : fbb_(_fbb) {
1295 start_ = fbb_.StartTable();
1296 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001297 flatbuffers::Offset<ResizeAttribute> Finish() {
1298 const auto end = fbb_.EndTable(start_);
1299 auto o = flatbuffers::Offset<ResizeAttribute>(end);
1300 return o;
1301 }
1302};
1303
1304inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttribute(
1305 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001306 flatbuffers::Offset<flatbuffers::Vector<int16_t>> scale = 0,
1307 flatbuffers::Offset<flatbuffers::Vector<int16_t>> offset = 0,
1308 flatbuffers::Offset<flatbuffers::Vector<int16_t>> border = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001309 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
1310 ResizeAttributeBuilder builder_(_fbb);
1311 builder_.add_mode(mode);
TatWai Chong49b1ca62022-06-10 01:49:13 -07001312 builder_.add_border(border);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001313 builder_.add_offset(offset);
TatWai Chong49b1ca62022-06-10 01:49:13 -07001314 builder_.add_scale(scale);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001315 return builder_.Finish();
1316}
1317
1318inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttributeDirect(
1319 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001320 const std::vector<int16_t> *scale = nullptr,
1321 const std::vector<int16_t> *offset = nullptr,
1322 const std::vector<int16_t> *border = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001323 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
TatWai Chong49b1ca62022-06-10 01:49:13 -07001324 auto scale__ = scale ? _fbb.CreateVector<int16_t>(*scale) : 0;
1325 auto offset__ = offset ? _fbb.CreateVector<int16_t>(*offset) : 0;
1326 auto border__ = border ? _fbb.CreateVector<int16_t>(*border) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001327 return tosa::CreateResizeAttribute(
1328 _fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001329 scale__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001330 offset__,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001331 border__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001332 mode);
1333}
1334
1335struct ClampAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1336 typedef ClampAttributeBuilder Builder;
1337 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1338 VT_MIN_INT = 4,
1339 VT_MAX_INT = 6,
1340 VT_MIN_FP = 8,
1341 VT_MAX_FP = 10
1342 };
1343 int32_t min_int() const {
1344 return GetField<int32_t>(VT_MIN_INT, 0);
1345 }
1346 int32_t max_int() const {
1347 return GetField<int32_t>(VT_MAX_INT, 0);
1348 }
James Wardc15f7d52022-12-07 15:38:01 +00001349 const flatbuffers::Vector<uint8_t> *min_fp() const {
1350 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_MIN_FP);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001351 }
James Wardc15f7d52022-12-07 15:38:01 +00001352 const flatbuffers::Vector<uint8_t> *max_fp() const {
1353 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_MAX_FP);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001354 }
1355 bool Verify(flatbuffers::Verifier &verifier) const {
1356 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001357 VerifyField<int32_t>(verifier, VT_MIN_INT, 4) &&
1358 VerifyField<int32_t>(verifier, VT_MAX_INT, 4) &&
James Wardc15f7d52022-12-07 15:38:01 +00001359 VerifyOffset(verifier, VT_MIN_FP) &&
1360 verifier.VerifyVector(min_fp()) &&
1361 VerifyOffset(verifier, VT_MAX_FP) &&
1362 verifier.VerifyVector(max_fp()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001363 verifier.EndTable();
1364 }
1365};
1366
1367struct ClampAttributeBuilder {
1368 typedef ClampAttribute Table;
1369 flatbuffers::FlatBufferBuilder &fbb_;
1370 flatbuffers::uoffset_t start_;
1371 void add_min_int(int32_t min_int) {
1372 fbb_.AddElement<int32_t>(ClampAttribute::VT_MIN_INT, min_int, 0);
1373 }
1374 void add_max_int(int32_t max_int) {
1375 fbb_.AddElement<int32_t>(ClampAttribute::VT_MAX_INT, max_int, 0);
1376 }
James Wardc15f7d52022-12-07 15:38:01 +00001377 void add_min_fp(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> min_fp) {
1378 fbb_.AddOffset(ClampAttribute::VT_MIN_FP, min_fp);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001379 }
James Wardc15f7d52022-12-07 15:38:01 +00001380 void add_max_fp(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> max_fp) {
1381 fbb_.AddOffset(ClampAttribute::VT_MAX_FP, max_fp);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001382 }
1383 explicit ClampAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1384 : fbb_(_fbb) {
1385 start_ = fbb_.StartTable();
1386 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001387 flatbuffers::Offset<ClampAttribute> Finish() {
1388 const auto end = fbb_.EndTable(start_);
1389 auto o = flatbuffers::Offset<ClampAttribute>(end);
1390 return o;
1391 }
1392};
1393
1394inline flatbuffers::Offset<ClampAttribute> CreateClampAttribute(
1395 flatbuffers::FlatBufferBuilder &_fbb,
1396 int32_t min_int = 0,
1397 int32_t max_int = 0,
James Wardc15f7d52022-12-07 15:38:01 +00001398 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> min_fp = 0,
1399 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> max_fp = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001400 ClampAttributeBuilder builder_(_fbb);
1401 builder_.add_max_fp(max_fp);
1402 builder_.add_min_fp(min_fp);
1403 builder_.add_max_int(max_int);
1404 builder_.add_min_int(min_int);
1405 return builder_.Finish();
1406}
1407
James Wardc15f7d52022-12-07 15:38:01 +00001408inline flatbuffers::Offset<ClampAttribute> CreateClampAttributeDirect(
1409 flatbuffers::FlatBufferBuilder &_fbb,
1410 int32_t min_int = 0,
1411 int32_t max_int = 0,
1412 const std::vector<uint8_t> *min_fp = nullptr,
1413 const std::vector<uint8_t> *max_fp = nullptr) {
1414 if (min_fp) { _fbb.ForceVectorAlignment(min_fp->size(), sizeof(uint8_t), 8); }
1415 auto min_fp__ = min_fp ? _fbb.CreateVector<uint8_t>(*min_fp) : 0;
1416 if (max_fp) { _fbb.ForceVectorAlignment(max_fp->size(), sizeof(uint8_t), 8); }
1417 auto max_fp__ = max_fp ? _fbb.CreateVector<uint8_t>(*max_fp) : 0;
1418 return tosa::CreateClampAttribute(
1419 _fbb,
1420 min_int,
1421 max_int,
1422 min_fp__,
1423 max_fp__);
1424}
1425
Eric Kunze2364dcd2021-04-26 11:06:57 -07001426struct RescaleAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1427 typedef RescaleAttributeBuilder Builder;
1428 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1429 VT_INPUT_ZP = 4,
1430 VT_OUTPUT_ZP = 6,
1431 VT_MULTIPLIER = 8,
1432 VT_SHIFT = 10,
1433 VT_SCALE32 = 12,
1434 VT_DOUBLE_ROUND = 14,
1435 VT_PER_CHANNEL = 16
1436 };
1437 int32_t input_zp() const {
1438 return GetField<int32_t>(VT_INPUT_ZP, 0);
1439 }
1440 int32_t output_zp() const {
1441 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1442 }
1443 const flatbuffers::Vector<int32_t> *multiplier() const {
1444 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLIER);
1445 }
1446 const flatbuffers::Vector<int32_t> *shift() const {
1447 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHIFT);
1448 }
1449 bool scale32() const {
1450 return GetField<uint8_t>(VT_SCALE32, 0) != 0;
1451 }
1452 bool double_round() const {
1453 return GetField<uint8_t>(VT_DOUBLE_ROUND, 0) != 0;
1454 }
1455 bool per_channel() const {
1456 return GetField<uint8_t>(VT_PER_CHANNEL, 0) != 0;
1457 }
1458 bool Verify(flatbuffers::Verifier &verifier) const {
1459 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001460 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
1461 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001462 VerifyOffset(verifier, VT_MULTIPLIER) &&
1463 verifier.VerifyVector(multiplier()) &&
1464 VerifyOffset(verifier, VT_SHIFT) &&
1465 verifier.VerifyVector(shift()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001466 VerifyField<uint8_t>(verifier, VT_SCALE32, 1) &&
1467 VerifyField<uint8_t>(verifier, VT_DOUBLE_ROUND, 1) &&
1468 VerifyField<uint8_t>(verifier, VT_PER_CHANNEL, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001469 verifier.EndTable();
1470 }
1471};
1472
1473struct RescaleAttributeBuilder {
1474 typedef RescaleAttribute Table;
1475 flatbuffers::FlatBufferBuilder &fbb_;
1476 flatbuffers::uoffset_t start_;
1477 void add_input_zp(int32_t input_zp) {
1478 fbb_.AddElement<int32_t>(RescaleAttribute::VT_INPUT_ZP, input_zp, 0);
1479 }
1480 void add_output_zp(int32_t output_zp) {
1481 fbb_.AddElement<int32_t>(RescaleAttribute::VT_OUTPUT_ZP, output_zp, 0);
1482 }
1483 void add_multiplier(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier) {
1484 fbb_.AddOffset(RescaleAttribute::VT_MULTIPLIER, multiplier);
1485 }
1486 void add_shift(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift) {
1487 fbb_.AddOffset(RescaleAttribute::VT_SHIFT, shift);
1488 }
1489 void add_scale32(bool scale32) {
1490 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_SCALE32, static_cast<uint8_t>(scale32), 0);
1491 }
1492 void add_double_round(bool double_round) {
1493 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_DOUBLE_ROUND, static_cast<uint8_t>(double_round), 0);
1494 }
1495 void add_per_channel(bool per_channel) {
1496 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_PER_CHANNEL, static_cast<uint8_t>(per_channel), 0);
1497 }
1498 explicit RescaleAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1499 : fbb_(_fbb) {
1500 start_ = fbb_.StartTable();
1501 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001502 flatbuffers::Offset<RescaleAttribute> Finish() {
1503 const auto end = fbb_.EndTable(start_);
1504 auto o = flatbuffers::Offset<RescaleAttribute>(end);
1505 return o;
1506 }
1507};
1508
1509inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttribute(
1510 flatbuffers::FlatBufferBuilder &_fbb,
1511 int32_t input_zp = 0,
1512 int32_t output_zp = 0,
1513 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier = 0,
1514 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift = 0,
1515 bool scale32 = false,
1516 bool double_round = false,
1517 bool per_channel = false) {
1518 RescaleAttributeBuilder builder_(_fbb);
1519 builder_.add_shift(shift);
1520 builder_.add_multiplier(multiplier);
1521 builder_.add_output_zp(output_zp);
1522 builder_.add_input_zp(input_zp);
1523 builder_.add_per_channel(per_channel);
1524 builder_.add_double_round(double_round);
1525 builder_.add_scale32(scale32);
1526 return builder_.Finish();
1527}
1528
1529inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttributeDirect(
1530 flatbuffers::FlatBufferBuilder &_fbb,
1531 int32_t input_zp = 0,
1532 int32_t output_zp = 0,
1533 const std::vector<int32_t> *multiplier = nullptr,
1534 const std::vector<int32_t> *shift = nullptr,
1535 bool scale32 = false,
1536 bool double_round = false,
1537 bool per_channel = false) {
1538 auto multiplier__ = multiplier ? _fbb.CreateVector<int32_t>(*multiplier) : 0;
1539 auto shift__ = shift ? _fbb.CreateVector<int32_t>(*shift) : 0;
1540 return tosa::CreateRescaleAttribute(
1541 _fbb,
1542 input_zp,
1543 output_zp,
1544 multiplier__,
1545 shift__,
1546 scale32,
1547 double_round,
1548 per_channel);
1549}
1550
1551struct MulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1552 typedef MulAttributeBuilder Builder;
1553 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1554 VT_SHIFT = 4
1555 };
1556 int32_t shift() const {
1557 return GetField<int32_t>(VT_SHIFT, 0);
1558 }
1559 bool Verify(flatbuffers::Verifier &verifier) const {
1560 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001561 VerifyField<int32_t>(verifier, VT_SHIFT, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001562 verifier.EndTable();
1563 }
1564};
1565
1566struct MulAttributeBuilder {
1567 typedef MulAttribute Table;
1568 flatbuffers::FlatBufferBuilder &fbb_;
1569 flatbuffers::uoffset_t start_;
1570 void add_shift(int32_t shift) {
1571 fbb_.AddElement<int32_t>(MulAttribute::VT_SHIFT, shift, 0);
1572 }
1573 explicit MulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1574 : fbb_(_fbb) {
1575 start_ = fbb_.StartTable();
1576 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001577 flatbuffers::Offset<MulAttribute> Finish() {
1578 const auto end = fbb_.EndTable(start_);
1579 auto o = flatbuffers::Offset<MulAttribute>(end);
1580 return o;
1581 }
1582};
1583
1584inline flatbuffers::Offset<MulAttribute> CreateMulAttribute(
1585 flatbuffers::FlatBufferBuilder &_fbb,
1586 int32_t shift = 0) {
1587 MulAttributeBuilder builder_(_fbb);
1588 builder_.add_shift(shift);
1589 return builder_.Finish();
1590}
1591
1592struct ArithmeticRightShiftAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1593 typedef ArithmeticRightShiftAttributeBuilder Builder;
1594 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1595 VT_ROUND = 4
1596 };
1597 bool round() const {
1598 return GetField<uint8_t>(VT_ROUND, 0) != 0;
1599 }
1600 bool Verify(flatbuffers::Verifier &verifier) const {
1601 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001602 VerifyField<uint8_t>(verifier, VT_ROUND, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001603 verifier.EndTable();
1604 }
1605};
1606
1607struct ArithmeticRightShiftAttributeBuilder {
1608 typedef ArithmeticRightShiftAttribute Table;
1609 flatbuffers::FlatBufferBuilder &fbb_;
1610 flatbuffers::uoffset_t start_;
1611 void add_round(bool round) {
1612 fbb_.AddElement<uint8_t>(ArithmeticRightShiftAttribute::VT_ROUND, static_cast<uint8_t>(round), 0);
1613 }
1614 explicit ArithmeticRightShiftAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1615 : fbb_(_fbb) {
1616 start_ = fbb_.StartTable();
1617 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001618 flatbuffers::Offset<ArithmeticRightShiftAttribute> Finish() {
1619 const auto end = fbb_.EndTable(start_);
1620 auto o = flatbuffers::Offset<ArithmeticRightShiftAttribute>(end);
1621 return o;
1622 }
1623};
1624
1625inline flatbuffers::Offset<ArithmeticRightShiftAttribute> CreateArithmeticRightShiftAttribute(
1626 flatbuffers::FlatBufferBuilder &_fbb,
1627 bool round = false) {
1628 ArithmeticRightShiftAttributeBuilder builder_(_fbb);
1629 builder_.add_round(round);
1630 return builder_.Finish();
1631}
1632
1633struct CondIfAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1634 typedef CondIfAttributeBuilder Builder;
1635 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1636 VT_THEN_BRANCH = 4,
1637 VT_ELSE_BRANCH = 6
1638 };
1639 const flatbuffers::String *then_branch() const {
1640 return GetPointer<const flatbuffers::String *>(VT_THEN_BRANCH);
1641 }
1642 const flatbuffers::String *else_branch() const {
1643 return GetPointer<const flatbuffers::String *>(VT_ELSE_BRANCH);
1644 }
1645 bool Verify(flatbuffers::Verifier &verifier) const {
1646 return VerifyTableStart(verifier) &&
1647 VerifyOffset(verifier, VT_THEN_BRANCH) &&
1648 verifier.VerifyString(then_branch()) &&
1649 VerifyOffset(verifier, VT_ELSE_BRANCH) &&
1650 verifier.VerifyString(else_branch()) &&
1651 verifier.EndTable();
1652 }
1653};
1654
1655struct CondIfAttributeBuilder {
1656 typedef CondIfAttribute Table;
1657 flatbuffers::FlatBufferBuilder &fbb_;
1658 flatbuffers::uoffset_t start_;
1659 void add_then_branch(flatbuffers::Offset<flatbuffers::String> then_branch) {
1660 fbb_.AddOffset(CondIfAttribute::VT_THEN_BRANCH, then_branch);
1661 }
1662 void add_else_branch(flatbuffers::Offset<flatbuffers::String> else_branch) {
1663 fbb_.AddOffset(CondIfAttribute::VT_ELSE_BRANCH, else_branch);
1664 }
1665 explicit CondIfAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1666 : fbb_(_fbb) {
1667 start_ = fbb_.StartTable();
1668 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001669 flatbuffers::Offset<CondIfAttribute> Finish() {
1670 const auto end = fbb_.EndTable(start_);
1671 auto o = flatbuffers::Offset<CondIfAttribute>(end);
1672 return o;
1673 }
1674};
1675
1676inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttribute(
1677 flatbuffers::FlatBufferBuilder &_fbb,
1678 flatbuffers::Offset<flatbuffers::String> then_branch = 0,
1679 flatbuffers::Offset<flatbuffers::String> else_branch = 0) {
1680 CondIfAttributeBuilder builder_(_fbb);
1681 builder_.add_else_branch(else_branch);
1682 builder_.add_then_branch(then_branch);
1683 return builder_.Finish();
1684}
1685
1686inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttributeDirect(
1687 flatbuffers::FlatBufferBuilder &_fbb,
1688 const char *then_branch = nullptr,
1689 const char *else_branch = nullptr) {
1690 auto then_branch__ = then_branch ? _fbb.CreateString(then_branch) : 0;
1691 auto else_branch__ = else_branch ? _fbb.CreateString(else_branch) : 0;
1692 return tosa::CreateCondIfAttribute(
1693 _fbb,
1694 then_branch__,
1695 else_branch__);
1696}
1697
1698struct WhileLoopAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1699 typedef WhileLoopAttributeBuilder Builder;
1700 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1701 VT_COND_BRANCH = 4,
1702 VT_BODY_BRANCH = 6
1703 };
1704 const flatbuffers::String *cond_branch() const {
1705 return GetPointer<const flatbuffers::String *>(VT_COND_BRANCH);
1706 }
1707 const flatbuffers::String *body_branch() const {
1708 return GetPointer<const flatbuffers::String *>(VT_BODY_BRANCH);
1709 }
1710 bool Verify(flatbuffers::Verifier &verifier) const {
1711 return VerifyTableStart(verifier) &&
1712 VerifyOffset(verifier, VT_COND_BRANCH) &&
1713 verifier.VerifyString(cond_branch()) &&
1714 VerifyOffset(verifier, VT_BODY_BRANCH) &&
1715 verifier.VerifyString(body_branch()) &&
1716 verifier.EndTable();
1717 }
1718};
1719
1720struct WhileLoopAttributeBuilder {
1721 typedef WhileLoopAttribute Table;
1722 flatbuffers::FlatBufferBuilder &fbb_;
1723 flatbuffers::uoffset_t start_;
1724 void add_cond_branch(flatbuffers::Offset<flatbuffers::String> cond_branch) {
1725 fbb_.AddOffset(WhileLoopAttribute::VT_COND_BRANCH, cond_branch);
1726 }
1727 void add_body_branch(flatbuffers::Offset<flatbuffers::String> body_branch) {
1728 fbb_.AddOffset(WhileLoopAttribute::VT_BODY_BRANCH, body_branch);
1729 }
1730 explicit WhileLoopAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1731 : fbb_(_fbb) {
1732 start_ = fbb_.StartTable();
1733 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001734 flatbuffers::Offset<WhileLoopAttribute> Finish() {
1735 const auto end = fbb_.EndTable(start_);
1736 auto o = flatbuffers::Offset<WhileLoopAttribute>(end);
1737 return o;
1738 }
1739};
1740
1741inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttribute(
1742 flatbuffers::FlatBufferBuilder &_fbb,
1743 flatbuffers::Offset<flatbuffers::String> cond_branch = 0,
1744 flatbuffers::Offset<flatbuffers::String> body_branch = 0) {
1745 WhileLoopAttributeBuilder builder_(_fbb);
1746 builder_.add_body_branch(body_branch);
1747 builder_.add_cond_branch(cond_branch);
1748 return builder_.Finish();
1749}
1750
1751inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttributeDirect(
1752 flatbuffers::FlatBufferBuilder &_fbb,
1753 const char *cond_branch = nullptr,
1754 const char *body_branch = nullptr) {
1755 auto cond_branch__ = cond_branch ? _fbb.CreateString(cond_branch) : 0;
1756 auto body_branch__ = body_branch ? _fbb.CreateString(body_branch) : 0;
1757 return tosa::CreateWhileLoopAttribute(
1758 _fbb,
1759 cond_branch__,
1760 body_branch__);
1761}
1762
Kevin Cheng38d214c2021-10-15 15:49:19 -07001763struct TransposeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1764 typedef TransposeAttributeBuilder Builder;
1765 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001766 VT_PERMS = 4
Kevin Cheng38d214c2021-10-15 15:49:19 -07001767 };
TatWai Chong7be71652022-05-10 17:26:20 -07001768 const flatbuffers::Vector<int32_t> *perms() const {
1769 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PERMS);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001770 }
1771 bool Verify(flatbuffers::Verifier &verifier) const {
1772 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001773 VerifyOffset(verifier, VT_PERMS) &&
1774 verifier.VerifyVector(perms()) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -07001775 verifier.EndTable();
1776 }
1777};
1778
1779struct TransposeAttributeBuilder {
1780 typedef TransposeAttribute Table;
1781 flatbuffers::FlatBufferBuilder &fbb_;
1782 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001783 void add_perms(flatbuffers::Offset<flatbuffers::Vector<int32_t>> perms) {
1784 fbb_.AddOffset(TransposeAttribute::VT_PERMS, perms);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001785 }
1786 explicit TransposeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1787 : fbb_(_fbb) {
1788 start_ = fbb_.StartTable();
1789 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07001790 flatbuffers::Offset<TransposeAttribute> Finish() {
1791 const auto end = fbb_.EndTable(start_);
1792 auto o = flatbuffers::Offset<TransposeAttribute>(end);
1793 return o;
1794 }
1795};
1796
1797inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttribute(
1798 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001799 flatbuffers::Offset<flatbuffers::Vector<int32_t>> perms = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001800 TransposeAttributeBuilder builder_(_fbb);
TatWai Chong7be71652022-05-10 17:26:20 -07001801 builder_.add_perms(perms);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001802 return builder_.Finish();
1803}
1804
1805inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttributeDirect(
1806 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001807 const std::vector<int32_t> *perms = nullptr) {
1808 auto perms__ = perms ? _fbb.CreateVector<int32_t>(*perms) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001809 return tosa::CreateTransposeAttribute(
1810 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001811 perms__);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001812}
1813
1814struct TableAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1815 typedef TableAttributeBuilder Builder;
1816 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1817 VT_TABLE = 4
1818 };
TatWai Chong7be71652022-05-10 17:26:20 -07001819 const flatbuffers::Vector<int16_t> *table() const {
1820 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_TABLE);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001821 }
1822 bool Verify(flatbuffers::Verifier &verifier) const {
1823 return VerifyTableStart(verifier) &&
1824 VerifyOffset(verifier, VT_TABLE) &&
1825 verifier.VerifyVector(table()) &&
1826 verifier.EndTable();
1827 }
1828};
1829
1830struct TableAttributeBuilder {
1831 typedef TableAttribute Table;
1832 flatbuffers::FlatBufferBuilder &fbb_;
1833 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001834 void add_table(flatbuffers::Offset<flatbuffers::Vector<int16_t>> table) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001835 fbb_.AddOffset(TableAttribute::VT_TABLE, table);
1836 }
1837 explicit TableAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1838 : fbb_(_fbb) {
1839 start_ = fbb_.StartTable();
1840 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07001841 flatbuffers::Offset<TableAttribute> Finish() {
1842 const auto end = fbb_.EndTable(start_);
1843 auto o = flatbuffers::Offset<TableAttribute>(end);
1844 return o;
1845 }
1846};
1847
1848inline flatbuffers::Offset<TableAttribute> CreateTableAttribute(
1849 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001850 flatbuffers::Offset<flatbuffers::Vector<int16_t>> table = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001851 TableAttributeBuilder builder_(_fbb);
1852 builder_.add_table(table);
1853 return builder_.Finish();
1854}
1855
1856inline flatbuffers::Offset<TableAttribute> CreateTableAttributeDirect(
1857 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001858 const std::vector<int16_t> *table = nullptr) {
1859 auto table__ = table ? _fbb.CreateVector<int16_t>(*table) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001860 return tosa::CreateTableAttribute(
1861 _fbb,
1862 table__);
1863}
1864
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001865struct MatMulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1866 typedef MatMulAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001867 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1868 VT_A_ZP = 4,
James Ward485a11d2022-08-05 13:48:37 +01001869 VT_B_ZP = 6,
1870 VT_ACCUM_DTYPE = 8
Eric Kunze2364dcd2021-04-26 11:06:57 -07001871 };
1872 int32_t a_zp() const {
1873 return GetField<int32_t>(VT_A_ZP, 0);
1874 }
1875 int32_t b_zp() const {
1876 return GetField<int32_t>(VT_B_ZP, 0);
1877 }
James Ward485a11d2022-08-05 13:48:37 +01001878 tosa::DType accum_dtype() const {
1879 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
1880 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001881 bool Verify(flatbuffers::Verifier &verifier) const {
1882 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001883 VerifyField<int32_t>(verifier, VT_A_ZP, 4) &&
1884 VerifyField<int32_t>(verifier, VT_B_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +01001885 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001886 verifier.EndTable();
1887 }
1888};
1889
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001890struct MatMulAttributeBuilder {
1891 typedef MatMulAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001892 flatbuffers::FlatBufferBuilder &fbb_;
1893 flatbuffers::uoffset_t start_;
1894 void add_a_zp(int32_t a_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001895 fbb_.AddElement<int32_t>(MatMulAttribute::VT_A_ZP, a_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001896 }
1897 void add_b_zp(int32_t b_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001898 fbb_.AddElement<int32_t>(MatMulAttribute::VT_B_ZP, b_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001899 }
James Ward485a11d2022-08-05 13:48:37 +01001900 void add_accum_dtype(tosa::DType accum_dtype) {
1901 fbb_.AddElement<uint32_t>(MatMulAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
1902 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001903 explicit MatMulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -07001904 : fbb_(_fbb) {
1905 start_ = fbb_.StartTable();
1906 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001907 flatbuffers::Offset<MatMulAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001908 const auto end = fbb_.EndTable(start_);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001909 auto o = flatbuffers::Offset<MatMulAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001910 return o;
1911 }
1912};
1913
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001914inline flatbuffers::Offset<MatMulAttribute> CreateMatMulAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -07001915 flatbuffers::FlatBufferBuilder &_fbb,
1916 int32_t a_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +01001917 int32_t b_zp = 0,
1918 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001919 MatMulAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +01001920 builder_.add_accum_dtype(accum_dtype);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001921 builder_.add_b_zp(b_zp);
1922 builder_.add_a_zp(a_zp);
1923 return builder_.Finish();
1924}
1925
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001926struct FullyConnectedAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1927 typedef FullyConnectedAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001928 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001929 VT_INPUT_ZP = 4,
James Ward485a11d2022-08-05 13:48:37 +01001930 VT_WEIGHT_ZP = 6,
1931 VT_ACCUM_DTYPE = 8
Eric Kunze2364dcd2021-04-26 11:06:57 -07001932 };
1933 int32_t input_zp() const {
1934 return GetField<int32_t>(VT_INPUT_ZP, 0);
1935 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001936 int32_t weight_zp() const {
1937 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
1938 }
James Ward485a11d2022-08-05 13:48:37 +01001939 tosa::DType accum_dtype() const {
1940 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
1941 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001942 bool Verify(flatbuffers::Verifier &verifier) const {
1943 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001944 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
1945 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +01001946 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001947 verifier.EndTable();
1948 }
1949};
1950
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001951struct FullyConnectedAttributeBuilder {
1952 typedef FullyConnectedAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001953 flatbuffers::FlatBufferBuilder &fbb_;
1954 flatbuffers::uoffset_t start_;
1955 void add_input_zp(int32_t input_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001956 fbb_.AddElement<int32_t>(FullyConnectedAttribute::VT_INPUT_ZP, input_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001957 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001958 void add_weight_zp(int32_t weight_zp) {
1959 fbb_.AddElement<int32_t>(FullyConnectedAttribute::VT_WEIGHT_ZP, weight_zp, 0);
1960 }
James Ward485a11d2022-08-05 13:48:37 +01001961 void add_accum_dtype(tosa::DType accum_dtype) {
1962 fbb_.AddElement<uint32_t>(FullyConnectedAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
1963 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001964 explicit FullyConnectedAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -07001965 : fbb_(_fbb) {
1966 start_ = fbb_.StartTable();
1967 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001968 flatbuffers::Offset<FullyConnectedAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001969 const auto end = fbb_.EndTable(start_);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001970 auto o = flatbuffers::Offset<FullyConnectedAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001971 return o;
1972 }
1973};
1974
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001975inline flatbuffers::Offset<FullyConnectedAttribute> CreateFullyConnectedAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -07001976 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001977 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +01001978 int32_t weight_zp = 0,
1979 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001980 FullyConnectedAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +01001981 builder_.add_accum_dtype(accum_dtype);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001982 builder_.add_weight_zp(weight_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001983 builder_.add_input_zp(input_zp);
1984 return builder_.Finish();
1985}
1986
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001987struct NegateAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1988 typedef NegateAttributeBuilder Builder;
1989 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1990 VT_INPUT1_ZP = 4,
1991 VT_OUTPUT_ZP = 6
1992 };
1993 int32_t input1_zp() const {
1994 return GetField<int32_t>(VT_INPUT1_ZP, 0);
1995 }
1996 int32_t output_zp() const {
1997 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1998 }
1999 bool Verify(flatbuffers::Verifier &verifier) const {
2000 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00002001 VerifyField<int32_t>(verifier, VT_INPUT1_ZP, 4) &&
2002 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP, 4) &&
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002003 verifier.EndTable();
2004 }
2005};
2006
2007struct NegateAttributeBuilder {
2008 typedef NegateAttribute Table;
2009 flatbuffers::FlatBufferBuilder &fbb_;
2010 flatbuffers::uoffset_t start_;
2011 void add_input1_zp(int32_t input1_zp) {
2012 fbb_.AddElement<int32_t>(NegateAttribute::VT_INPUT1_ZP, input1_zp, 0);
2013 }
2014 void add_output_zp(int32_t output_zp) {
2015 fbb_.AddElement<int32_t>(NegateAttribute::VT_OUTPUT_ZP, output_zp, 0);
2016 }
2017 explicit NegateAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2018 : fbb_(_fbb) {
2019 start_ = fbb_.StartTable();
2020 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002021 flatbuffers::Offset<NegateAttribute> Finish() {
2022 const auto end = fbb_.EndTable(start_);
2023 auto o = flatbuffers::Offset<NegateAttribute>(end);
2024 return o;
2025 }
2026};
2027
2028inline flatbuffers::Offset<NegateAttribute> CreateNegateAttribute(
2029 flatbuffers::FlatBufferBuilder &_fbb,
2030 int32_t input1_zp = 0,
2031 int32_t output_zp = 0) {
2032 NegateAttributeBuilder builder_(_fbb);
2033 builder_.add_output_zp(output_zp);
2034 builder_.add_input1_zp(input1_zp);
2035 return builder_.Finish();
2036}
2037
Eric Kunze497ab5d2022-10-21 16:39:01 -07002038struct CustomAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2039 typedef CustomAttributeBuilder Builder;
2040 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2041 VT_IDENTIFIER = 4,
2042 VT_CONFIG = 6,
2043 VT_IMPLEMENTATION_ATTRS = 8
2044 };
2045 const flatbuffers::String *identifier() const {
2046 return GetPointer<const flatbuffers::String *>(VT_IDENTIFIER);
2047 }
2048 const flatbuffers::String *config() const {
2049 return GetPointer<const flatbuffers::String *>(VT_CONFIG);
2050 }
2051 const flatbuffers::Vector<uint8_t> *implementation_attrs() const {
2052 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_IMPLEMENTATION_ATTRS);
2053 }
2054 bool Verify(flatbuffers::Verifier &verifier) const {
2055 return VerifyTableStart(verifier) &&
2056 VerifyOffset(verifier, VT_IDENTIFIER) &&
2057 verifier.VerifyString(identifier()) &&
2058 VerifyOffset(verifier, VT_CONFIG) &&
2059 verifier.VerifyString(config()) &&
2060 VerifyOffset(verifier, VT_IMPLEMENTATION_ATTRS) &&
2061 verifier.VerifyVector(implementation_attrs()) &&
2062 verifier.EndTable();
2063 }
2064};
2065
2066struct CustomAttributeBuilder {
2067 typedef CustomAttribute Table;
2068 flatbuffers::FlatBufferBuilder &fbb_;
2069 flatbuffers::uoffset_t start_;
2070 void add_identifier(flatbuffers::Offset<flatbuffers::String> identifier) {
2071 fbb_.AddOffset(CustomAttribute::VT_IDENTIFIER, identifier);
2072 }
2073 void add_config(flatbuffers::Offset<flatbuffers::String> config) {
2074 fbb_.AddOffset(CustomAttribute::VT_CONFIG, config);
2075 }
2076 void add_implementation_attrs(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> implementation_attrs) {
2077 fbb_.AddOffset(CustomAttribute::VT_IMPLEMENTATION_ATTRS, implementation_attrs);
2078 }
2079 explicit CustomAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2080 : fbb_(_fbb) {
2081 start_ = fbb_.StartTable();
2082 }
2083 flatbuffers::Offset<CustomAttribute> Finish() {
2084 const auto end = fbb_.EndTable(start_);
2085 auto o = flatbuffers::Offset<CustomAttribute>(end);
2086 return o;
2087 }
2088};
2089
2090inline flatbuffers::Offset<CustomAttribute> CreateCustomAttribute(
2091 flatbuffers::FlatBufferBuilder &_fbb,
2092 flatbuffers::Offset<flatbuffers::String> identifier = 0,
2093 flatbuffers::Offset<flatbuffers::String> config = 0,
2094 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> implementation_attrs = 0) {
2095 CustomAttributeBuilder builder_(_fbb);
2096 builder_.add_implementation_attrs(implementation_attrs);
2097 builder_.add_config(config);
2098 builder_.add_identifier(identifier);
2099 return builder_.Finish();
2100}
2101
2102inline flatbuffers::Offset<CustomAttribute> CreateCustomAttributeDirect(
2103 flatbuffers::FlatBufferBuilder &_fbb,
2104 const char *identifier = nullptr,
2105 const char *config = nullptr,
2106 const std::vector<uint8_t> *implementation_attrs = nullptr) {
2107 auto identifier__ = identifier ? _fbb.CreateString(identifier) : 0;
2108 auto config__ = config ? _fbb.CreateString(config) : 0;
2109 auto implementation_attrs__ = implementation_attrs ? _fbb.CreateVector<uint8_t>(*implementation_attrs) : 0;
2110 return tosa::CreateCustomAttribute(
2111 _fbb,
2112 identifier__,
2113 config__,
2114 implementation_attrs__);
2115}
2116
Luke Hutton5e268092023-01-12 22:20:53 +00002117struct FFTAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2118 typedef FFTAttributeBuilder Builder;
2119 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2120 VT_INVERSE = 4
2121 };
2122 bool inverse() const {
2123 return GetField<uint8_t>(VT_INVERSE, 0) != 0;
2124 }
2125 bool Verify(flatbuffers::Verifier &verifier) const {
2126 return VerifyTableStart(verifier) &&
2127 VerifyField<uint8_t>(verifier, VT_INVERSE, 1) &&
2128 verifier.EndTable();
2129 }
2130};
2131
2132struct FFTAttributeBuilder {
2133 typedef FFTAttribute Table;
2134 flatbuffers::FlatBufferBuilder &fbb_;
2135 flatbuffers::uoffset_t start_;
2136 void add_inverse(bool inverse) {
2137 fbb_.AddElement<uint8_t>(FFTAttribute::VT_INVERSE, static_cast<uint8_t>(inverse), 0);
2138 }
2139 explicit FFTAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2140 : fbb_(_fbb) {
2141 start_ = fbb_.StartTable();
2142 }
2143 flatbuffers::Offset<FFTAttribute> Finish() {
2144 const auto end = fbb_.EndTable(start_);
2145 auto o = flatbuffers::Offset<FFTAttribute>(end);
2146 return o;
2147 }
2148};
2149
2150inline flatbuffers::Offset<FFTAttribute> CreateFFTAttribute(
2151 flatbuffers::FlatBufferBuilder &_fbb,
2152 bool inverse = false) {
2153 FFTAttributeBuilder builder_(_fbb);
2154 builder_.add_inverse(inverse);
2155 return builder_.Finish();
2156}
2157
Eric Kunze2364dcd2021-04-26 11:06:57 -07002158struct Version FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2159 typedef VersionBuilder Builder;
2160 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2161 VT__MAJOR = 4,
2162 VT__MINOR = 6,
2163 VT__PATCH = 8,
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002164 VT__DRAFT = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07002165 };
2166 int32_t _major() const {
2167 return GetField<int32_t>(VT__MAJOR, 0);
2168 }
2169 int32_t _minor() const {
Eric Kunze6388a092022-12-07 21:59:31 +00002170 return GetField<int32_t>(VT__MINOR, 51);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002171 }
2172 int32_t _patch() const {
2173 return GetField<int32_t>(VT__PATCH, 0);
2174 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002175 bool _draft() const {
Eric Kunze6388a092022-12-07 21:59:31 +00002176 return GetField<uint8_t>(VT__DRAFT, 1) != 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002177 }
2178 bool Verify(flatbuffers::Verifier &verifier) const {
2179 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00002180 VerifyField<int32_t>(verifier, VT__MAJOR, 4) &&
2181 VerifyField<int32_t>(verifier, VT__MINOR, 4) &&
2182 VerifyField<int32_t>(verifier, VT__PATCH, 4) &&
2183 VerifyField<uint8_t>(verifier, VT__DRAFT, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002184 verifier.EndTable();
2185 }
2186};
2187
2188struct VersionBuilder {
2189 typedef Version Table;
2190 flatbuffers::FlatBufferBuilder &fbb_;
2191 flatbuffers::uoffset_t start_;
2192 void add__major(int32_t _major) {
2193 fbb_.AddElement<int32_t>(Version::VT__MAJOR, _major, 0);
2194 }
2195 void add__minor(int32_t _minor) {
Eric Kunze6388a092022-12-07 21:59:31 +00002196 fbb_.AddElement<int32_t>(Version::VT__MINOR, _minor, 51);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002197 }
2198 void add__patch(int32_t _patch) {
2199 fbb_.AddElement<int32_t>(Version::VT__PATCH, _patch, 0);
2200 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002201 void add__draft(bool _draft) {
Eric Kunze6388a092022-12-07 21:59:31 +00002202 fbb_.AddElement<uint8_t>(Version::VT__DRAFT, static_cast<uint8_t>(_draft), 1);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002203 }
2204 explicit VersionBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2205 : fbb_(_fbb) {
2206 start_ = fbb_.StartTable();
2207 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002208 flatbuffers::Offset<Version> Finish() {
2209 const auto end = fbb_.EndTable(start_);
2210 auto o = flatbuffers::Offset<Version>(end);
2211 return o;
2212 }
2213};
2214
2215inline flatbuffers::Offset<Version> CreateVersion(
2216 flatbuffers::FlatBufferBuilder &_fbb,
2217 int32_t _major = 0,
Eric Kunze6388a092022-12-07 21:59:31 +00002218 int32_t _minor = 51,
Eric Kunze2364dcd2021-04-26 11:06:57 -07002219 int32_t _patch = 0,
Eric Kunze6388a092022-12-07 21:59:31 +00002220 bool _draft = true) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002221 VersionBuilder builder_(_fbb);
2222 builder_.add__patch(_patch);
2223 builder_.add__minor(_minor);
2224 builder_.add__major(_major);
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002225 builder_.add__draft(_draft);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002226 return builder_.Finish();
2227}
2228
2229struct TosaTensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2230 typedef TosaTensorBuilder Builder;
2231 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2232 VT_NAME = 4,
2233 VT_SHAPE = 6,
2234 VT_TYPE = 8,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002235 VT_DATA = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07002236 };
2237 const flatbuffers::String *name() const {
2238 return GetPointer<const flatbuffers::String *>(VT_NAME);
2239 }
2240 const flatbuffers::Vector<int32_t> *shape() const {
2241 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHAPE);
2242 }
2243 tosa::DType type() const {
2244 return static_cast<tosa::DType>(GetField<uint32_t>(VT_TYPE, 0));
2245 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002246 const flatbuffers::Vector<uint8_t> *data() const {
2247 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_DATA);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002248 }
2249 bool Verify(flatbuffers::Verifier &verifier) const {
2250 return VerifyTableStart(verifier) &&
2251 VerifyOffset(verifier, VT_NAME) &&
2252 verifier.VerifyString(name()) &&
2253 VerifyOffset(verifier, VT_SHAPE) &&
2254 verifier.VerifyVector(shape()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00002255 VerifyField<uint32_t>(verifier, VT_TYPE, 4) &&
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002256 VerifyOffset(verifier, VT_DATA) &&
2257 verifier.VerifyVector(data()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002258 verifier.EndTable();
2259 }
2260};
2261
2262struct TosaTensorBuilder {
2263 typedef TosaTensor Table;
2264 flatbuffers::FlatBufferBuilder &fbb_;
2265 flatbuffers::uoffset_t start_;
2266 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2267 fbb_.AddOffset(TosaTensor::VT_NAME, name);
2268 }
2269 void add_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape) {
2270 fbb_.AddOffset(TosaTensor::VT_SHAPE, shape);
2271 }
2272 void add_type(tosa::DType type) {
2273 fbb_.AddElement<uint32_t>(TosaTensor::VT_TYPE, static_cast<uint32_t>(type), 0);
2274 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002275 void add_data(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data) {
2276 fbb_.AddOffset(TosaTensor::VT_DATA, data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002277 }
2278 explicit TosaTensorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2279 : fbb_(_fbb) {
2280 start_ = fbb_.StartTable();
2281 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002282 flatbuffers::Offset<TosaTensor> Finish() {
2283 const auto end = fbb_.EndTable(start_);
2284 auto o = flatbuffers::Offset<TosaTensor>(end);
2285 return o;
2286 }
2287};
2288
2289inline flatbuffers::Offset<TosaTensor> CreateTosaTensor(
2290 flatbuffers::FlatBufferBuilder &_fbb,
2291 flatbuffers::Offset<flatbuffers::String> name = 0,
2292 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape = 0,
2293 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002294 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002295 TosaTensorBuilder builder_(_fbb);
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002296 builder_.add_data(data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002297 builder_.add_type(type);
2298 builder_.add_shape(shape);
2299 builder_.add_name(name);
2300 return builder_.Finish();
2301}
2302
2303inline flatbuffers::Offset<TosaTensor> CreateTosaTensorDirect(
2304 flatbuffers::FlatBufferBuilder &_fbb,
2305 const char *name = nullptr,
2306 const std::vector<int32_t> *shape = nullptr,
2307 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002308 const std::vector<uint8_t> *data = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002309 auto name__ = name ? _fbb.CreateString(name) : 0;
2310 auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0;
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002311 if (data) { _fbb.ForceVectorAlignment(data->size(), sizeof(uint8_t), 8); }
2312 auto data__ = data ? _fbb.CreateVector<uint8_t>(*data) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002313 return tosa::CreateTosaTensor(
2314 _fbb,
2315 name__,
2316 shape__,
2317 type,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002318 data__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002319}
2320
2321struct TosaOperator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2322 typedef TosaOperatorBuilder Builder;
2323 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2324 VT_OP = 4,
2325 VT_ATTRIBUTE_TYPE = 6,
2326 VT_ATTRIBUTE = 8,
2327 VT_INPUTS = 10,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002328 VT_OUTPUTS = 12
Eric Kunze2364dcd2021-04-26 11:06:57 -07002329 };
2330 tosa::Op op() const {
2331 return static_cast<tosa::Op>(GetField<uint32_t>(VT_OP, 0));
2332 }
2333 tosa::Attribute attribute_type() const {
2334 return static_cast<tosa::Attribute>(GetField<uint8_t>(VT_ATTRIBUTE_TYPE, 0));
2335 }
2336 const void *attribute() const {
2337 return GetPointer<const void *>(VT_ATTRIBUTE);
2338 }
2339 template<typename T> const T *attribute_as() const;
Kevin Cheng79a41992021-08-31 16:04:40 -07002340 const tosa::PoolAttribute *attribute_as_PoolAttribute() const {
2341 return attribute_type() == tosa::Attribute_PoolAttribute ? static_cast<const tosa::PoolAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002342 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002343 const tosa::ConvAttribute *attribute_as_ConvAttribute() const {
2344 return attribute_type() == tosa::Attribute_ConvAttribute ? static_cast<const tosa::ConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002345 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002346 const tosa::TransposeConvAttribute *attribute_as_TransposeConvAttribute() const {
2347 return attribute_type() == tosa::Attribute_TransposeConvAttribute ? static_cast<const tosa::TransposeConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002348 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002349 const tosa::PadAttribute *attribute_as_PadAttribute() const {
2350 return attribute_type() == tosa::Attribute_PadAttribute ? static_cast<const tosa::PadAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002351 }
2352 const tosa::AxisAttribute *attribute_as_AxisAttribute() const {
2353 return attribute_type() == tosa::Attribute_AxisAttribute ? static_cast<const tosa::AxisAttribute *>(attribute()) : nullptr;
2354 }
2355 const tosa::ReshapeAttribute *attribute_as_ReshapeAttribute() const {
2356 return attribute_type() == tosa::Attribute_ReshapeAttribute ? static_cast<const tosa::ReshapeAttribute *>(attribute()) : nullptr;
2357 }
2358 const tosa::SliceAttribute *attribute_as_SliceAttribute() const {
2359 return attribute_type() == tosa::Attribute_SliceAttribute ? static_cast<const tosa::SliceAttribute *>(attribute()) : nullptr;
2360 }
2361 const tosa::TileAttribute *attribute_as_TileAttribute() const {
2362 return attribute_type() == tosa::Attribute_TileAttribute ? static_cast<const tosa::TileAttribute *>(attribute()) : nullptr;
2363 }
2364 const tosa::ResizeAttribute *attribute_as_ResizeAttribute() const {
2365 return attribute_type() == tosa::Attribute_ResizeAttribute ? static_cast<const tosa::ResizeAttribute *>(attribute()) : nullptr;
2366 }
2367 const tosa::ClampAttribute *attribute_as_ClampAttribute() const {
2368 return attribute_type() == tosa::Attribute_ClampAttribute ? static_cast<const tosa::ClampAttribute *>(attribute()) : nullptr;
2369 }
2370 const tosa::RescaleAttribute *attribute_as_RescaleAttribute() const {
2371 return attribute_type() == tosa::Attribute_RescaleAttribute ? static_cast<const tosa::RescaleAttribute *>(attribute()) : nullptr;
2372 }
2373 const tosa::MulAttribute *attribute_as_MulAttribute() const {
2374 return attribute_type() == tosa::Attribute_MulAttribute ? static_cast<const tosa::MulAttribute *>(attribute()) : nullptr;
2375 }
2376 const tosa::ArithmeticRightShiftAttribute *attribute_as_ArithmeticRightShiftAttribute() const {
2377 return attribute_type() == tosa::Attribute_ArithmeticRightShiftAttribute ? static_cast<const tosa::ArithmeticRightShiftAttribute *>(attribute()) : nullptr;
2378 }
2379 const tosa::CondIfAttribute *attribute_as_CondIfAttribute() const {
2380 return attribute_type() == tosa::Attribute_CondIfAttribute ? static_cast<const tosa::CondIfAttribute *>(attribute()) : nullptr;
2381 }
2382 const tosa::WhileLoopAttribute *attribute_as_WhileLoopAttribute() const {
2383 return attribute_type() == tosa::Attribute_WhileLoopAttribute ? static_cast<const tosa::WhileLoopAttribute *>(attribute()) : nullptr;
2384 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002385 const tosa::TransposeAttribute *attribute_as_TransposeAttribute() const {
2386 return attribute_type() == tosa::Attribute_TransposeAttribute ? static_cast<const tosa::TransposeAttribute *>(attribute()) : nullptr;
2387 }
2388 const tosa::TableAttribute *attribute_as_TableAttribute() const {
2389 return attribute_type() == tosa::Attribute_TableAttribute ? static_cast<const tosa::TableAttribute *>(attribute()) : nullptr;
2390 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002391 const tosa::MatMulAttribute *attribute_as_MatMulAttribute() const {
2392 return attribute_type() == tosa::Attribute_MatMulAttribute ? static_cast<const tosa::MatMulAttribute *>(attribute()) : nullptr;
2393 }
2394 const tosa::FullyConnectedAttribute *attribute_as_FullyConnectedAttribute() const {
2395 return attribute_type() == tosa::Attribute_FullyConnectedAttribute ? static_cast<const tosa::FullyConnectedAttribute *>(attribute()) : nullptr;
2396 }
2397 const tosa::NegateAttribute *attribute_as_NegateAttribute() const {
2398 return attribute_type() == tosa::Attribute_NegateAttribute ? static_cast<const tosa::NegateAttribute *>(attribute()) : nullptr;
2399 }
Eric Kunze497ab5d2022-10-21 16:39:01 -07002400 const tosa::CustomAttribute *attribute_as_CustomAttribute() const {
2401 return attribute_type() == tosa::Attribute_CustomAttribute ? static_cast<const tosa::CustomAttribute *>(attribute()) : nullptr;
2402 }
Luke Hutton5e268092023-01-12 22:20:53 +00002403 const tosa::FFTAttribute *attribute_as_FFTAttribute() const {
2404 return attribute_type() == tosa::Attribute_FFTAttribute ? static_cast<const tosa::FFTAttribute *>(attribute()) : nullptr;
2405 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002406 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2407 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2408 }
2409 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2410 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2411 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002412 bool Verify(flatbuffers::Verifier &verifier) const {
2413 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00002414 VerifyField<uint32_t>(verifier, VT_OP, 4) &&
2415 VerifyField<uint8_t>(verifier, VT_ATTRIBUTE_TYPE, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002416 VerifyOffset(verifier, VT_ATTRIBUTE) &&
2417 VerifyAttribute(verifier, attribute(), attribute_type()) &&
2418 VerifyOffset(verifier, VT_INPUTS) &&
2419 verifier.VerifyVector(inputs()) &&
2420 verifier.VerifyVectorOfStrings(inputs()) &&
2421 VerifyOffset(verifier, VT_OUTPUTS) &&
2422 verifier.VerifyVector(outputs()) &&
2423 verifier.VerifyVectorOfStrings(outputs()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002424 verifier.EndTable();
2425 }
2426};
2427
Kevin Cheng79a41992021-08-31 16:04:40 -07002428template<> inline const tosa::PoolAttribute *TosaOperator::attribute_as<tosa::PoolAttribute>() const {
2429 return attribute_as_PoolAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002430}
2431
Kevin Cheng79a41992021-08-31 16:04:40 -07002432template<> inline const tosa::ConvAttribute *TosaOperator::attribute_as<tosa::ConvAttribute>() const {
2433 return attribute_as_ConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002434}
2435
Kevin Cheng79a41992021-08-31 16:04:40 -07002436template<> inline const tosa::TransposeConvAttribute *TosaOperator::attribute_as<tosa::TransposeConvAttribute>() const {
2437 return attribute_as_TransposeConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002438}
2439
Kevin Cheng38d214c2021-10-15 15:49:19 -07002440template<> inline const tosa::PadAttribute *TosaOperator::attribute_as<tosa::PadAttribute>() const {
2441 return attribute_as_PadAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002442}
2443
2444template<> inline const tosa::AxisAttribute *TosaOperator::attribute_as<tosa::AxisAttribute>() const {
2445 return attribute_as_AxisAttribute();
2446}
2447
2448template<> inline const tosa::ReshapeAttribute *TosaOperator::attribute_as<tosa::ReshapeAttribute>() const {
2449 return attribute_as_ReshapeAttribute();
2450}
2451
2452template<> inline const tosa::SliceAttribute *TosaOperator::attribute_as<tosa::SliceAttribute>() const {
2453 return attribute_as_SliceAttribute();
2454}
2455
2456template<> inline const tosa::TileAttribute *TosaOperator::attribute_as<tosa::TileAttribute>() const {
2457 return attribute_as_TileAttribute();
2458}
2459
2460template<> inline const tosa::ResizeAttribute *TosaOperator::attribute_as<tosa::ResizeAttribute>() const {
2461 return attribute_as_ResizeAttribute();
2462}
2463
2464template<> inline const tosa::ClampAttribute *TosaOperator::attribute_as<tosa::ClampAttribute>() const {
2465 return attribute_as_ClampAttribute();
2466}
2467
2468template<> inline const tosa::RescaleAttribute *TosaOperator::attribute_as<tosa::RescaleAttribute>() const {
2469 return attribute_as_RescaleAttribute();
2470}
2471
2472template<> inline const tosa::MulAttribute *TosaOperator::attribute_as<tosa::MulAttribute>() const {
2473 return attribute_as_MulAttribute();
2474}
2475
2476template<> inline const tosa::ArithmeticRightShiftAttribute *TosaOperator::attribute_as<tosa::ArithmeticRightShiftAttribute>() const {
2477 return attribute_as_ArithmeticRightShiftAttribute();
2478}
2479
2480template<> inline const tosa::CondIfAttribute *TosaOperator::attribute_as<tosa::CondIfAttribute>() const {
2481 return attribute_as_CondIfAttribute();
2482}
2483
2484template<> inline const tosa::WhileLoopAttribute *TosaOperator::attribute_as<tosa::WhileLoopAttribute>() const {
2485 return attribute_as_WhileLoopAttribute();
2486}
2487
Kevin Cheng38d214c2021-10-15 15:49:19 -07002488template<> inline const tosa::TransposeAttribute *TosaOperator::attribute_as<tosa::TransposeAttribute>() const {
2489 return attribute_as_TransposeAttribute();
2490}
2491
2492template<> inline const tosa::TableAttribute *TosaOperator::attribute_as<tosa::TableAttribute>() const {
2493 return attribute_as_TableAttribute();
2494}
2495
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002496template<> inline const tosa::MatMulAttribute *TosaOperator::attribute_as<tosa::MatMulAttribute>() const {
2497 return attribute_as_MatMulAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002498}
2499
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002500template<> inline const tosa::FullyConnectedAttribute *TosaOperator::attribute_as<tosa::FullyConnectedAttribute>() const {
2501 return attribute_as_FullyConnectedAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002502}
2503
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002504template<> inline const tosa::NegateAttribute *TosaOperator::attribute_as<tosa::NegateAttribute>() const {
2505 return attribute_as_NegateAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002506}
2507
Eric Kunze497ab5d2022-10-21 16:39:01 -07002508template<> inline const tosa::CustomAttribute *TosaOperator::attribute_as<tosa::CustomAttribute>() const {
2509 return attribute_as_CustomAttribute();
2510}
2511
Luke Hutton5e268092023-01-12 22:20:53 +00002512template<> inline const tosa::FFTAttribute *TosaOperator::attribute_as<tosa::FFTAttribute>() const {
2513 return attribute_as_FFTAttribute();
2514}
2515
Eric Kunze2364dcd2021-04-26 11:06:57 -07002516struct TosaOperatorBuilder {
2517 typedef TosaOperator Table;
2518 flatbuffers::FlatBufferBuilder &fbb_;
2519 flatbuffers::uoffset_t start_;
2520 void add_op(tosa::Op op) {
2521 fbb_.AddElement<uint32_t>(TosaOperator::VT_OP, static_cast<uint32_t>(op), 0);
2522 }
2523 void add_attribute_type(tosa::Attribute attribute_type) {
2524 fbb_.AddElement<uint8_t>(TosaOperator::VT_ATTRIBUTE_TYPE, static_cast<uint8_t>(attribute_type), 0);
2525 }
2526 void add_attribute(flatbuffers::Offset<void> attribute) {
2527 fbb_.AddOffset(TosaOperator::VT_ATTRIBUTE, attribute);
2528 }
2529 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2530 fbb_.AddOffset(TosaOperator::VT_INPUTS, inputs);
2531 }
2532 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2533 fbb_.AddOffset(TosaOperator::VT_OUTPUTS, outputs);
2534 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002535 explicit TosaOperatorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2536 : fbb_(_fbb) {
2537 start_ = fbb_.StartTable();
2538 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002539 flatbuffers::Offset<TosaOperator> Finish() {
2540 const auto end = fbb_.EndTable(start_);
2541 auto o = flatbuffers::Offset<TosaOperator>(end);
2542 return o;
2543 }
2544};
2545
2546inline flatbuffers::Offset<TosaOperator> CreateTosaOperator(
2547 flatbuffers::FlatBufferBuilder &_fbb,
2548 tosa::Op op = tosa::Op_UNKNOWN,
2549 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2550 flatbuffers::Offset<void> attribute = 0,
2551 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002552 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002553 TosaOperatorBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002554 builder_.add_outputs(outputs);
2555 builder_.add_inputs(inputs);
2556 builder_.add_attribute(attribute);
2557 builder_.add_op(op);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002558 builder_.add_attribute_type(attribute_type);
2559 return builder_.Finish();
2560}
2561
2562inline flatbuffers::Offset<TosaOperator> CreateTosaOperatorDirect(
2563 flatbuffers::FlatBufferBuilder &_fbb,
2564 tosa::Op op = tosa::Op_UNKNOWN,
2565 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2566 flatbuffers::Offset<void> attribute = 0,
2567 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002568 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002569 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::CreateTosaOperator(
2572 _fbb,
2573 op,
2574 attribute_type,
2575 attribute,
2576 inputs__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002577 outputs__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002578}
2579
2580struct TosaBasicBlock FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2581 typedef TosaBasicBlockBuilder Builder;
2582 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2583 VT_NAME = 4,
2584 VT_OPERATORS = 6,
2585 VT_TENSORS = 8,
2586 VT_INPUTS = 10,
2587 VT_OUTPUTS = 12
2588 };
2589 const flatbuffers::String *name() const {
2590 return GetPointer<const flatbuffers::String *>(VT_NAME);
2591 }
2592 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *operators() const {
2593 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *>(VT_OPERATORS);
2594 }
2595 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors() const {
2596 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *>(VT_TENSORS);
2597 }
2598 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2599 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2600 }
2601 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2602 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2603 }
2604 bool Verify(flatbuffers::Verifier &verifier) const {
2605 return VerifyTableStart(verifier) &&
2606 VerifyOffset(verifier, VT_NAME) &&
2607 verifier.VerifyString(name()) &&
2608 VerifyOffset(verifier, VT_OPERATORS) &&
2609 verifier.VerifyVector(operators()) &&
2610 verifier.VerifyVectorOfTables(operators()) &&
2611 VerifyOffset(verifier, VT_TENSORS) &&
2612 verifier.VerifyVector(tensors()) &&
2613 verifier.VerifyVectorOfTables(tensors()) &&
2614 VerifyOffset(verifier, VT_INPUTS) &&
2615 verifier.VerifyVector(inputs()) &&
2616 verifier.VerifyVectorOfStrings(inputs()) &&
2617 VerifyOffset(verifier, VT_OUTPUTS) &&
2618 verifier.VerifyVector(outputs()) &&
2619 verifier.VerifyVectorOfStrings(outputs()) &&
2620 verifier.EndTable();
2621 }
2622};
2623
2624struct TosaBasicBlockBuilder {
2625 typedef TosaBasicBlock Table;
2626 flatbuffers::FlatBufferBuilder &fbb_;
2627 flatbuffers::uoffset_t start_;
2628 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2629 fbb_.AddOffset(TosaBasicBlock::VT_NAME, name);
2630 }
2631 void add_operators(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators) {
2632 fbb_.AddOffset(TosaBasicBlock::VT_OPERATORS, operators);
2633 }
2634 void add_tensors(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors) {
2635 fbb_.AddOffset(TosaBasicBlock::VT_TENSORS, tensors);
2636 }
2637 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2638 fbb_.AddOffset(TosaBasicBlock::VT_INPUTS, inputs);
2639 }
2640 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2641 fbb_.AddOffset(TosaBasicBlock::VT_OUTPUTS, outputs);
2642 }
2643 explicit TosaBasicBlockBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2644 : fbb_(_fbb) {
2645 start_ = fbb_.StartTable();
2646 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002647 flatbuffers::Offset<TosaBasicBlock> Finish() {
2648 const auto end = fbb_.EndTable(start_);
2649 auto o = flatbuffers::Offset<TosaBasicBlock>(end);
2650 return o;
2651 }
2652};
2653
2654inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlock(
2655 flatbuffers::FlatBufferBuilder &_fbb,
2656 flatbuffers::Offset<flatbuffers::String> name = 0,
2657 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators = 0,
2658 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors = 0,
2659 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
2660 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
2661 TosaBasicBlockBuilder builder_(_fbb);
2662 builder_.add_outputs(outputs);
2663 builder_.add_inputs(inputs);
2664 builder_.add_tensors(tensors);
2665 builder_.add_operators(operators);
2666 builder_.add_name(name);
2667 return builder_.Finish();
2668}
2669
2670inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlockDirect(
2671 flatbuffers::FlatBufferBuilder &_fbb,
2672 const char *name = nullptr,
2673 const std::vector<flatbuffers::Offset<tosa::TosaOperator>> *operators = nullptr,
2674 const std::vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors = nullptr,
2675 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
2676 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
2677 auto name__ = name ? _fbb.CreateString(name) : 0;
2678 auto operators__ = operators ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaOperator>>(*operators) : 0;
2679 auto tensors__ = tensors ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaTensor>>(*tensors) : 0;
2680 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2681 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2682 return tosa::CreateTosaBasicBlock(
2683 _fbb,
2684 name__,
2685 operators__,
2686 tensors__,
2687 inputs__,
2688 outputs__);
2689}
2690
Jerry Ge13c78a62022-10-04 20:32:39 -07002691struct TosaRegion FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2692 typedef TosaRegionBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002693 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Jerry Ge13c78a62022-10-04 20:32:39 -07002694 VT_NAME = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -07002695 VT_BLOCKS = 6
2696 };
Jerry Ge13c78a62022-10-04 20:32:39 -07002697 const flatbuffers::String *name() const {
2698 return GetPointer<const flatbuffers::String *>(VT_NAME);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002699 }
2700 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks() const {
2701 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *>(VT_BLOCKS);
2702 }
2703 bool Verify(flatbuffers::Verifier &verifier) const {
2704 return VerifyTableStart(verifier) &&
Jerry Ge13c78a62022-10-04 20:32:39 -07002705 VerifyOffset(verifier, VT_NAME) &&
2706 verifier.VerifyString(name()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002707 VerifyOffset(verifier, VT_BLOCKS) &&
2708 verifier.VerifyVector(blocks()) &&
2709 verifier.VerifyVectorOfTables(blocks()) &&
2710 verifier.EndTable();
2711 }
2712};
2713
Jerry Ge13c78a62022-10-04 20:32:39 -07002714struct TosaRegionBuilder {
2715 typedef TosaRegion Table;
2716 flatbuffers::FlatBufferBuilder &fbb_;
2717 flatbuffers::uoffset_t start_;
2718 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2719 fbb_.AddOffset(TosaRegion::VT_NAME, name);
2720 }
2721 void add_blocks(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks) {
2722 fbb_.AddOffset(TosaRegion::VT_BLOCKS, blocks);
2723 }
2724 explicit TosaRegionBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2725 : fbb_(_fbb) {
2726 start_ = fbb_.StartTable();
2727 }
2728 flatbuffers::Offset<TosaRegion> Finish() {
2729 const auto end = fbb_.EndTable(start_);
2730 auto o = flatbuffers::Offset<TosaRegion>(end);
2731 return o;
2732 }
2733};
2734
2735inline flatbuffers::Offset<TosaRegion> CreateTosaRegion(
2736 flatbuffers::FlatBufferBuilder &_fbb,
2737 flatbuffers::Offset<flatbuffers::String> name = 0,
2738 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks = 0) {
2739 TosaRegionBuilder builder_(_fbb);
2740 builder_.add_blocks(blocks);
2741 builder_.add_name(name);
2742 return builder_.Finish();
2743}
2744
2745inline flatbuffers::Offset<TosaRegion> CreateTosaRegionDirect(
2746 flatbuffers::FlatBufferBuilder &_fbb,
2747 const char *name = nullptr,
2748 const std::vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks = nullptr) {
2749 auto name__ = name ? _fbb.CreateString(name) : 0;
2750 auto blocks__ = blocks ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaBasicBlock>>(*blocks) : 0;
2751 return tosa::CreateTosaRegion(
2752 _fbb,
2753 name__,
2754 blocks__);
2755}
2756
2757struct TosaGraph FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2758 typedef TosaGraphBuilder Builder;
2759 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2760 VT_VERSION = 4,
2761 VT_REGIONS = 6
2762 };
2763 const tosa::Version *version() const {
2764 return GetPointer<const tosa::Version *>(VT_VERSION);
2765 }
2766 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaRegion>> *regions() const {
2767 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaRegion>> *>(VT_REGIONS);
2768 }
2769 bool Verify(flatbuffers::Verifier &verifier) const {
2770 return VerifyTableStart(verifier) &&
2771 VerifyOffset(verifier, VT_VERSION) &&
2772 verifier.VerifyTable(version()) &&
2773 VerifyOffset(verifier, VT_REGIONS) &&
2774 verifier.VerifyVector(regions()) &&
2775 verifier.VerifyVectorOfTables(regions()) &&
2776 verifier.EndTable();
2777 }
2778};
2779
Eric Kunze2364dcd2021-04-26 11:06:57 -07002780struct TosaGraphBuilder {
2781 typedef TosaGraph Table;
2782 flatbuffers::FlatBufferBuilder &fbb_;
2783 flatbuffers::uoffset_t start_;
2784 void add_version(flatbuffers::Offset<tosa::Version> version) {
2785 fbb_.AddOffset(TosaGraph::VT_VERSION, version);
2786 }
Jerry Ge13c78a62022-10-04 20:32:39 -07002787 void add_regions(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaRegion>>> regions) {
2788 fbb_.AddOffset(TosaGraph::VT_REGIONS, regions);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002789 }
2790 explicit TosaGraphBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2791 : fbb_(_fbb) {
2792 start_ = fbb_.StartTable();
2793 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002794 flatbuffers::Offset<TosaGraph> Finish() {
2795 const auto end = fbb_.EndTable(start_);
2796 auto o = flatbuffers::Offset<TosaGraph>(end);
2797 return o;
2798 }
2799};
2800
2801inline flatbuffers::Offset<TosaGraph> CreateTosaGraph(
2802 flatbuffers::FlatBufferBuilder &_fbb,
2803 flatbuffers::Offset<tosa::Version> version = 0,
Jerry Ge13c78a62022-10-04 20:32:39 -07002804 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaRegion>>> regions = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002805 TosaGraphBuilder builder_(_fbb);
Jerry Ge13c78a62022-10-04 20:32:39 -07002806 builder_.add_regions(regions);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002807 builder_.add_version(version);
2808 return builder_.Finish();
2809}
2810
2811inline flatbuffers::Offset<TosaGraph> CreateTosaGraphDirect(
2812 flatbuffers::FlatBufferBuilder &_fbb,
2813 flatbuffers::Offset<tosa::Version> version = 0,
Jerry Ge13c78a62022-10-04 20:32:39 -07002814 const std::vector<flatbuffers::Offset<tosa::TosaRegion>> *regions = nullptr) {
2815 auto regions__ = regions ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaRegion>>(*regions) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002816 return tosa::CreateTosaGraph(
2817 _fbb,
2818 version,
Jerry Ge13c78a62022-10-04 20:32:39 -07002819 regions__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002820}
2821
2822inline bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type) {
2823 switch (type) {
2824 case Attribute_NONE: {
2825 return true;
2826 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002827 case Attribute_PoolAttribute: {
2828 auto ptr = reinterpret_cast<const tosa::PoolAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002829 return verifier.VerifyTable(ptr);
2830 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002831 case Attribute_ConvAttribute: {
2832 auto ptr = reinterpret_cast<const tosa::ConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002833 return verifier.VerifyTable(ptr);
2834 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002835 case Attribute_TransposeConvAttribute: {
2836 auto ptr = reinterpret_cast<const tosa::TransposeConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002837 return verifier.VerifyTable(ptr);
2838 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002839 case Attribute_PadAttribute: {
2840 auto ptr = reinterpret_cast<const tosa::PadAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002841 return verifier.VerifyTable(ptr);
2842 }
2843 case Attribute_AxisAttribute: {
2844 auto ptr = reinterpret_cast<const tosa::AxisAttribute *>(obj);
2845 return verifier.VerifyTable(ptr);
2846 }
2847 case Attribute_ReshapeAttribute: {
2848 auto ptr = reinterpret_cast<const tosa::ReshapeAttribute *>(obj);
2849 return verifier.VerifyTable(ptr);
2850 }
2851 case Attribute_SliceAttribute: {
2852 auto ptr = reinterpret_cast<const tosa::SliceAttribute *>(obj);
2853 return verifier.VerifyTable(ptr);
2854 }
2855 case Attribute_TileAttribute: {
2856 auto ptr = reinterpret_cast<const tosa::TileAttribute *>(obj);
2857 return verifier.VerifyTable(ptr);
2858 }
2859 case Attribute_ResizeAttribute: {
2860 auto ptr = reinterpret_cast<const tosa::ResizeAttribute *>(obj);
2861 return verifier.VerifyTable(ptr);
2862 }
2863 case Attribute_ClampAttribute: {
2864 auto ptr = reinterpret_cast<const tosa::ClampAttribute *>(obj);
2865 return verifier.VerifyTable(ptr);
2866 }
2867 case Attribute_RescaleAttribute: {
2868 auto ptr = reinterpret_cast<const tosa::RescaleAttribute *>(obj);
2869 return verifier.VerifyTable(ptr);
2870 }
2871 case Attribute_MulAttribute: {
2872 auto ptr = reinterpret_cast<const tosa::MulAttribute *>(obj);
2873 return verifier.VerifyTable(ptr);
2874 }
2875 case Attribute_ArithmeticRightShiftAttribute: {
2876 auto ptr = reinterpret_cast<const tosa::ArithmeticRightShiftAttribute *>(obj);
2877 return verifier.VerifyTable(ptr);
2878 }
2879 case Attribute_CondIfAttribute: {
2880 auto ptr = reinterpret_cast<const tosa::CondIfAttribute *>(obj);
2881 return verifier.VerifyTable(ptr);
2882 }
2883 case Attribute_WhileLoopAttribute: {
2884 auto ptr = reinterpret_cast<const tosa::WhileLoopAttribute *>(obj);
2885 return verifier.VerifyTable(ptr);
2886 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002887 case Attribute_TransposeAttribute: {
2888 auto ptr = reinterpret_cast<const tosa::TransposeAttribute *>(obj);
2889 return verifier.VerifyTable(ptr);
2890 }
2891 case Attribute_TableAttribute: {
2892 auto ptr = reinterpret_cast<const tosa::TableAttribute *>(obj);
2893 return verifier.VerifyTable(ptr);
2894 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002895 case Attribute_MatMulAttribute: {
2896 auto ptr = reinterpret_cast<const tosa::MatMulAttribute *>(obj);
2897 return verifier.VerifyTable(ptr);
2898 }
2899 case Attribute_FullyConnectedAttribute: {
2900 auto ptr = reinterpret_cast<const tosa::FullyConnectedAttribute *>(obj);
2901 return verifier.VerifyTable(ptr);
2902 }
2903 case Attribute_NegateAttribute: {
2904 auto ptr = reinterpret_cast<const tosa::NegateAttribute *>(obj);
2905 return verifier.VerifyTable(ptr);
2906 }
Eric Kunze497ab5d2022-10-21 16:39:01 -07002907 case Attribute_CustomAttribute: {
2908 auto ptr = reinterpret_cast<const tosa::CustomAttribute *>(obj);
2909 return verifier.VerifyTable(ptr);
2910 }
Luke Hutton5e268092023-01-12 22:20:53 +00002911 case Attribute_FFTAttribute: {
2912 auto ptr = reinterpret_cast<const tosa::FFTAttribute *>(obj);
2913 return verifier.VerifyTable(ptr);
2914 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002915 default: return true;
2916 }
2917}
2918
2919inline bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
2920 if (!values || !types) return !values && !types;
2921 if (values->size() != types->size()) return false;
2922 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
2923 if (!VerifyAttribute(
2924 verifier, values->Get(i), types->GetEnum<Attribute>(i))) {
2925 return false;
2926 }
2927 }
2928 return true;
2929}
2930
Eric Kunze2364dcd2021-04-26 11:06:57 -07002931inline const tosa::TosaGraph *GetTosaGraph(const void *buf) {
2932 return flatbuffers::GetRoot<tosa::TosaGraph>(buf);
2933}
2934
2935inline const tosa::TosaGraph *GetSizePrefixedTosaGraph(const void *buf) {
2936 return flatbuffers::GetSizePrefixedRoot<tosa::TosaGraph>(buf);
2937}
2938
2939inline const char *TosaGraphIdentifier() {
2940 return "TOSA";
2941}
2942
2943inline bool TosaGraphBufferHasIdentifier(const void *buf) {
2944 return flatbuffers::BufferHasIdentifier(
2945 buf, TosaGraphIdentifier());
2946}
2947
Eric Kunze4381b3d2022-08-22 18:15:41 +00002948inline bool SizePrefixedTosaGraphBufferHasIdentifier(const void *buf) {
2949 return flatbuffers::BufferHasIdentifier(
2950 buf, TosaGraphIdentifier(), true);
2951}
2952
Eric Kunze2364dcd2021-04-26 11:06:57 -07002953inline bool VerifyTosaGraphBuffer(
2954 flatbuffers::Verifier &verifier) {
2955 return verifier.VerifyBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2956}
2957
2958inline bool VerifySizePrefixedTosaGraphBuffer(
2959 flatbuffers::Verifier &verifier) {
2960 return verifier.VerifySizePrefixedBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2961}
2962
2963inline const char *TosaGraphExtension() {
2964 return "tosa";
2965}
2966
2967inline void FinishTosaGraphBuffer(
2968 flatbuffers::FlatBufferBuilder &fbb,
2969 flatbuffers::Offset<tosa::TosaGraph> root) {
2970 fbb.Finish(root, TosaGraphIdentifier());
2971}
2972
2973inline void FinishSizePrefixedTosaGraphBuffer(
2974 flatbuffers::FlatBufferBuilder &fbb,
2975 flatbuffers::Offset<tosa::TosaGraph> root) {
2976 fbb.FinishSizePrefixed(root, TosaGraphIdentifier());
2977}
2978
2979} // namespace tosa
2980
2981#endif // FLATBUFFERS_GENERATED_TOSA_TOSA_H_