blob: 77d05dda3275d5e9878dc6a1039c2808ec32d0d5 [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 Wardea00fd02023-01-20 16:03:50 +0000735 VT_WEIGHT_ZP = 12
Eric Kunze2364dcd2021-04-26 11:06:57 -0700736 };
TatWai Chong7be71652022-05-10 17:26:20 -0700737 const flatbuffers::Vector<int32_t> *pad() const {
738 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700739 }
740 const flatbuffers::Vector<int32_t> *stride() const {
741 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
742 }
743 const flatbuffers::Vector<int32_t> *dilation() const {
744 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_DILATION);
745 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000746 int32_t input_zp() const {
747 return GetField<int32_t>(VT_INPUT_ZP, 0);
748 }
749 int32_t weight_zp() const {
750 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
751 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700752 bool Verify(flatbuffers::Verifier &verifier) const {
753 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -0700754 VerifyOffset(verifier, VT_PAD) &&
755 verifier.VerifyVector(pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700756 VerifyOffset(verifier, VT_STRIDE) &&
757 verifier.VerifyVector(stride()) &&
758 VerifyOffset(verifier, VT_DILATION) &&
759 verifier.VerifyVector(dilation()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000760 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
761 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700762 verifier.EndTable();
763 }
764};
765
Kevin Cheng79a41992021-08-31 16:04:40 -0700766struct ConvAttributeBuilder {
767 typedef ConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700768 flatbuffers::FlatBufferBuilder &fbb_;
769 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -0700770 void add_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad) {
771 fbb_.AddOffset(ConvAttribute::VT_PAD, pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700772 }
773 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700774 fbb_.AddOffset(ConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700775 }
776 void add_dilation(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700777 fbb_.AddOffset(ConvAttribute::VT_DILATION, dilation);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700778 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000779 void add_input_zp(int32_t input_zp) {
780 fbb_.AddElement<int32_t>(ConvAttribute::VT_INPUT_ZP, input_zp, 0);
781 }
782 void add_weight_zp(int32_t weight_zp) {
783 fbb_.AddElement<int32_t>(ConvAttribute::VT_WEIGHT_ZP, weight_zp, 0);
784 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700785 explicit ConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700786 : fbb_(_fbb) {
787 start_ = fbb_.StartTable();
788 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700789 flatbuffers::Offset<ConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700790 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700791 auto o = flatbuffers::Offset<ConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700792 return o;
793 }
794};
795
Kevin Cheng79a41992021-08-31 16:04:40 -0700796inline flatbuffers::Offset<ConvAttribute> CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700797 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700798 flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700799 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000800 flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation = 0,
801 int32_t input_zp = 0,
James Wardea00fd02023-01-20 16:03:50 +0000802 int32_t weight_zp = 0) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700803 ConvAttributeBuilder builder_(_fbb);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000804 builder_.add_weight_zp(weight_zp);
805 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700806 builder_.add_dilation(dilation);
807 builder_.add_stride(stride);
TatWai Chong7be71652022-05-10 17:26:20 -0700808 builder_.add_pad(pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700809 return builder_.Finish();
810}
811
Kevin Cheng79a41992021-08-31 16:04:40 -0700812inline flatbuffers::Offset<ConvAttribute> CreateConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700813 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700814 const std::vector<int32_t> *pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700815 const std::vector<int32_t> *stride = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000816 const std::vector<int32_t> *dilation = nullptr,
817 int32_t input_zp = 0,
James Wardea00fd02023-01-20 16:03:50 +0000818 int32_t weight_zp = 0) {
TatWai Chong7be71652022-05-10 17:26:20 -0700819 auto pad__ = pad ? _fbb.CreateVector<int32_t>(*pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700820 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
821 auto dilation__ = dilation ? _fbb.CreateVector<int32_t>(*dilation) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700822 return tosa::CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700823 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700824 pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700825 stride__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000826 dilation__,
827 input_zp,
James Wardea00fd02023-01-20 16:03:50 +0000828 weight_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700829}
830
Kevin Cheng79a41992021-08-31 16:04:40 -0700831struct TransposeConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
832 typedef TransposeConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700833 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700834 VT_OUT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700835 VT_STRIDE = 6,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000836 VT_OUTPUT_SHAPE = 8,
837 VT_INPUT_ZP = 10,
James Wardea00fd02023-01-20 16:03:50 +0000838 VT_WEIGHT_ZP = 12
Eric Kunze2364dcd2021-04-26 11:06:57 -0700839 };
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700840 const flatbuffers::Vector<int32_t> *out_pad() const {
841 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700842 }
843 const flatbuffers::Vector<int32_t> *stride() const {
844 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
845 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700846 const flatbuffers::Vector<int32_t> *output_shape() const {
847 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUT_SHAPE);
848 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000849 int32_t input_zp() const {
850 return GetField<int32_t>(VT_INPUT_ZP, 0);
851 }
852 int32_t weight_zp() const {
853 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
854 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700855 bool Verify(flatbuffers::Verifier &verifier) const {
856 return VerifyTableStart(verifier) &&
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700857 VerifyOffset(verifier, VT_OUT_PAD) &&
858 verifier.VerifyVector(out_pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700859 VerifyOffset(verifier, VT_STRIDE) &&
860 verifier.VerifyVector(stride()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700861 VerifyOffset(verifier, VT_OUTPUT_SHAPE) &&
862 verifier.VerifyVector(output_shape()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000863 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
864 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700865 verifier.EndTable();
866 }
867};
868
Kevin Cheng79a41992021-08-31 16:04:40 -0700869struct TransposeConvAttributeBuilder {
870 typedef TransposeConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700871 flatbuffers::FlatBufferBuilder &fbb_;
872 flatbuffers::uoffset_t start_;
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700873 void add_out_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> out_pad) {
874 fbb_.AddOffset(TransposeConvAttribute::VT_OUT_PAD, out_pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700875 }
876 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700877 fbb_.AddOffset(TransposeConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700878 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700879 void add_output_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700880 fbb_.AddOffset(TransposeConvAttribute::VT_OUTPUT_SHAPE, output_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700881 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000882 void add_input_zp(int32_t input_zp) {
883 fbb_.AddElement<int32_t>(TransposeConvAttribute::VT_INPUT_ZP, input_zp, 0);
884 }
885 void add_weight_zp(int32_t weight_zp) {
886 fbb_.AddElement<int32_t>(TransposeConvAttribute::VT_WEIGHT_ZP, weight_zp, 0);
887 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700888 explicit TransposeConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700889 : fbb_(_fbb) {
890 start_ = fbb_.StartTable();
891 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700892 flatbuffers::Offset<TransposeConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700893 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700894 auto o = flatbuffers::Offset<TransposeConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700895 return o;
896 }
897};
898
Kevin Cheng79a41992021-08-31 16:04:40 -0700899inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700900 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700901 flatbuffers::Offset<flatbuffers::Vector<int32_t>> out_pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700902 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000903 flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape = 0,
904 int32_t input_zp = 0,
James Wardea00fd02023-01-20 16:03:50 +0000905 int32_t weight_zp = 0) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700906 TransposeConvAttributeBuilder builder_(_fbb);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000907 builder_.add_weight_zp(weight_zp);
908 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700909 builder_.add_output_shape(output_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700910 builder_.add_stride(stride);
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700911 builder_.add_out_pad(out_pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700912 return builder_.Finish();
913}
914
Kevin Cheng79a41992021-08-31 16:04:40 -0700915inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700916 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700917 const std::vector<int32_t> *out_pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700918 const std::vector<int32_t> *stride = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000919 const std::vector<int32_t> *output_shape = nullptr,
920 int32_t input_zp = 0,
James Wardea00fd02023-01-20 16:03:50 +0000921 int32_t weight_zp = 0) {
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700922 auto out_pad__ = out_pad ? _fbb.CreateVector<int32_t>(*out_pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700923 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700924 auto output_shape__ = output_shape ? _fbb.CreateVector<int32_t>(*output_shape) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700925 return tosa::CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700926 _fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700927 out_pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700928 stride__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000929 output_shape__,
930 input_zp,
James Wardea00fd02023-01-20 16:03:50 +0000931 weight_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700932}
933
Kevin Cheng38d214c2021-10-15 15:49:19 -0700934struct PadAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
935 typedef PadAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700936 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Kevin Cheng38d214c2021-10-15 15:49:19 -0700937 VT_PADDING = 4,
938 VT_PAD_CONST_INT = 6,
939 VT_PAD_CONST_FP = 8
Eric Kunze2364dcd2021-04-26 11:06:57 -0700940 };
Kevin Cheng38d214c2021-10-15 15:49:19 -0700941 const flatbuffers::Vector<int32_t> *padding() const {
942 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PADDING);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700943 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700944 int32_t pad_const_int() const {
945 return GetField<int32_t>(VT_PAD_CONST_INT, 0);
946 }
James Wardc15f7d52022-12-07 15:38:01 +0000947 const flatbuffers::Vector<uint8_t> *pad_const_fp() const {
948 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_PAD_CONST_FP);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700949 }
950 bool Verify(flatbuffers::Verifier &verifier) const {
951 return VerifyTableStart(verifier) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -0700952 VerifyOffset(verifier, VT_PADDING) &&
953 verifier.VerifyVector(padding()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000954 VerifyField<int32_t>(verifier, VT_PAD_CONST_INT, 4) &&
James Wardc15f7d52022-12-07 15:38:01 +0000955 VerifyOffset(verifier, VT_PAD_CONST_FP) &&
956 verifier.VerifyVector(pad_const_fp()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700957 verifier.EndTable();
958 }
959};
960
Kevin Cheng38d214c2021-10-15 15:49:19 -0700961struct PadAttributeBuilder {
962 typedef PadAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700963 flatbuffers::FlatBufferBuilder &fbb_;
964 flatbuffers::uoffset_t start_;
Kevin Cheng38d214c2021-10-15 15:49:19 -0700965 void add_padding(flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding) {
966 fbb_.AddOffset(PadAttribute::VT_PADDING, padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700967 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700968 void add_pad_const_int(int32_t pad_const_int) {
969 fbb_.AddElement<int32_t>(PadAttribute::VT_PAD_CONST_INT, pad_const_int, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700970 }
James Wardc15f7d52022-12-07 15:38:01 +0000971 void add_pad_const_fp(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> pad_const_fp) {
972 fbb_.AddOffset(PadAttribute::VT_PAD_CONST_FP, pad_const_fp);
Kevin Cheng38d214c2021-10-15 15:49:19 -0700973 }
974 explicit PadAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700975 : fbb_(_fbb) {
976 start_ = fbb_.StartTable();
977 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700978 flatbuffers::Offset<PadAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700979 const auto end = fbb_.EndTable(start_);
Kevin Cheng38d214c2021-10-15 15:49:19 -0700980 auto o = flatbuffers::Offset<PadAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700981 return o;
982 }
983};
984
Kevin Cheng38d214c2021-10-15 15:49:19 -0700985inline flatbuffers::Offset<PadAttribute> CreatePadAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700986 flatbuffers::FlatBufferBuilder &_fbb,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700987 flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding = 0,
988 int32_t pad_const_int = 0,
James Wardc15f7d52022-12-07 15:38:01 +0000989 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> pad_const_fp = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -0700990 PadAttributeBuilder builder_(_fbb);
991 builder_.add_pad_const_fp(pad_const_fp);
992 builder_.add_pad_const_int(pad_const_int);
993 builder_.add_padding(padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700994 return builder_.Finish();
995}
996
Kevin Cheng38d214c2021-10-15 15:49:19 -0700997inline flatbuffers::Offset<PadAttribute> CreatePadAttributeDirect(
998 flatbuffers::FlatBufferBuilder &_fbb,
999 const std::vector<int32_t> *padding = nullptr,
1000 int32_t pad_const_int = 0,
James Wardc15f7d52022-12-07 15:38:01 +00001001 const std::vector<uint8_t> *pad_const_fp = nullptr) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001002 auto padding__ = padding ? _fbb.CreateVector<int32_t>(*padding) : 0;
James Wardc15f7d52022-12-07 15:38:01 +00001003 if (pad_const_fp) { _fbb.ForceVectorAlignment(pad_const_fp->size(), sizeof(uint8_t), 8); }
1004 auto pad_const_fp__ = pad_const_fp ? _fbb.CreateVector<uint8_t>(*pad_const_fp) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001005 return tosa::CreatePadAttribute(
1006 _fbb,
1007 padding__,
1008 pad_const_int,
James Wardc15f7d52022-12-07 15:38:01 +00001009 pad_const_fp__);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001010}
1011
Eric Kunze2364dcd2021-04-26 11:06:57 -07001012struct AxisAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1013 typedef AxisAttributeBuilder Builder;
1014 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1015 VT_AXIS = 4
1016 };
1017 int32_t axis() const {
1018 return GetField<int32_t>(VT_AXIS, 0);
1019 }
1020 bool Verify(flatbuffers::Verifier &verifier) const {
1021 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001022 VerifyField<int32_t>(verifier, VT_AXIS, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001023 verifier.EndTable();
1024 }
1025};
1026
1027struct AxisAttributeBuilder {
1028 typedef AxisAttribute Table;
1029 flatbuffers::FlatBufferBuilder &fbb_;
1030 flatbuffers::uoffset_t start_;
1031 void add_axis(int32_t axis) {
1032 fbb_.AddElement<int32_t>(AxisAttribute::VT_AXIS, axis, 0);
1033 }
1034 explicit AxisAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1035 : fbb_(_fbb) {
1036 start_ = fbb_.StartTable();
1037 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001038 flatbuffers::Offset<AxisAttribute> Finish() {
1039 const auto end = fbb_.EndTable(start_);
1040 auto o = flatbuffers::Offset<AxisAttribute>(end);
1041 return o;
1042 }
1043};
1044
1045inline flatbuffers::Offset<AxisAttribute> CreateAxisAttribute(
1046 flatbuffers::FlatBufferBuilder &_fbb,
1047 int32_t axis = 0) {
1048 AxisAttributeBuilder builder_(_fbb);
1049 builder_.add_axis(axis);
1050 return builder_.Finish();
1051}
1052
1053struct ReshapeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1054 typedef ReshapeAttributeBuilder Builder;
1055 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001056 VT_NEW_SHAPE = 4
Eric Kunze2364dcd2021-04-26 11:06:57 -07001057 };
TatWai Chong7be71652022-05-10 17:26:20 -07001058 const flatbuffers::Vector<int32_t> *new_shape() const {
1059 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_NEW_SHAPE);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001060 }
1061 bool Verify(flatbuffers::Verifier &verifier) const {
1062 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001063 VerifyOffset(verifier, VT_NEW_SHAPE) &&
1064 verifier.VerifyVector(new_shape()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001065 verifier.EndTable();
1066 }
1067};
1068
1069struct ReshapeAttributeBuilder {
1070 typedef ReshapeAttribute Table;
1071 flatbuffers::FlatBufferBuilder &fbb_;
1072 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001073 void add_new_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> new_shape) {
1074 fbb_.AddOffset(ReshapeAttribute::VT_NEW_SHAPE, new_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001075 }
1076 explicit ReshapeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1077 : fbb_(_fbb) {
1078 start_ = fbb_.StartTable();
1079 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001080 flatbuffers::Offset<ReshapeAttribute> Finish() {
1081 const auto end = fbb_.EndTable(start_);
1082 auto o = flatbuffers::Offset<ReshapeAttribute>(end);
1083 return o;
1084 }
1085};
1086
1087inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttribute(
1088 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001089 flatbuffers::Offset<flatbuffers::Vector<int32_t>> new_shape = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001090 ReshapeAttributeBuilder builder_(_fbb);
TatWai Chong7be71652022-05-10 17:26:20 -07001091 builder_.add_new_shape(new_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001092 return builder_.Finish();
1093}
1094
1095inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttributeDirect(
1096 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001097 const std::vector<int32_t> *new_shape = nullptr) {
1098 auto new_shape__ = new_shape ? _fbb.CreateVector<int32_t>(*new_shape) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001099 return tosa::CreateReshapeAttribute(
1100 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001101 new_shape__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001102}
1103
1104struct SliceAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1105 typedef SliceAttributeBuilder Builder;
1106 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001107 VT_START = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001108 VT_SIZE = 6
1109 };
TatWai Chong7be71652022-05-10 17:26:20 -07001110 const flatbuffers::Vector<int32_t> *start() const {
1111 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_START);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001112 }
1113 const flatbuffers::Vector<int32_t> *size() const {
1114 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SIZE);
1115 }
1116 bool Verify(flatbuffers::Verifier &verifier) const {
1117 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001118 VerifyOffset(verifier, VT_START) &&
1119 verifier.VerifyVector(start()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001120 VerifyOffset(verifier, VT_SIZE) &&
1121 verifier.VerifyVector(size()) &&
1122 verifier.EndTable();
1123 }
1124};
1125
1126struct SliceAttributeBuilder {
1127 typedef SliceAttribute Table;
1128 flatbuffers::FlatBufferBuilder &fbb_;
1129 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001130 void add_start(flatbuffers::Offset<flatbuffers::Vector<int32_t>> start) {
1131 fbb_.AddOffset(SliceAttribute::VT_START, start);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001132 }
1133 void add_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> size) {
1134 fbb_.AddOffset(SliceAttribute::VT_SIZE, size);
1135 }
1136 explicit SliceAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1137 : fbb_(_fbb) {
1138 start_ = fbb_.StartTable();
1139 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001140 flatbuffers::Offset<SliceAttribute> Finish() {
1141 const auto end = fbb_.EndTable(start_);
1142 auto o = flatbuffers::Offset<SliceAttribute>(end);
1143 return o;
1144 }
1145};
1146
1147inline flatbuffers::Offset<SliceAttribute> CreateSliceAttribute(
1148 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001149 flatbuffers::Offset<flatbuffers::Vector<int32_t>> start = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001150 flatbuffers::Offset<flatbuffers::Vector<int32_t>> size = 0) {
1151 SliceAttributeBuilder builder_(_fbb);
1152 builder_.add_size(size);
TatWai Chong7be71652022-05-10 17:26:20 -07001153 builder_.add_start(start);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001154 return builder_.Finish();
1155}
1156
1157inline flatbuffers::Offset<SliceAttribute> CreateSliceAttributeDirect(
1158 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001159 const std::vector<int32_t> *start = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001160 const std::vector<int32_t> *size = nullptr) {
TatWai Chong7be71652022-05-10 17:26:20 -07001161 auto start__ = start ? _fbb.CreateVector<int32_t>(*start) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001162 auto size__ = size ? _fbb.CreateVector<int32_t>(*size) : 0;
1163 return tosa::CreateSliceAttribute(
1164 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001165 start__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001166 size__);
1167}
1168
1169struct TileAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1170 typedef TileAttributeBuilder Builder;
1171 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1172 VT_MULTIPLES = 4
1173 };
1174 const flatbuffers::Vector<int32_t> *multiples() const {
1175 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLES);
1176 }
1177 bool Verify(flatbuffers::Verifier &verifier) const {
1178 return VerifyTableStart(verifier) &&
1179 VerifyOffset(verifier, VT_MULTIPLES) &&
1180 verifier.VerifyVector(multiples()) &&
1181 verifier.EndTable();
1182 }
1183};
1184
1185struct TileAttributeBuilder {
1186 typedef TileAttribute Table;
1187 flatbuffers::FlatBufferBuilder &fbb_;
1188 flatbuffers::uoffset_t start_;
1189 void add_multiples(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples) {
1190 fbb_.AddOffset(TileAttribute::VT_MULTIPLES, multiples);
1191 }
1192 explicit TileAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1193 : fbb_(_fbb) {
1194 start_ = fbb_.StartTable();
1195 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001196 flatbuffers::Offset<TileAttribute> Finish() {
1197 const auto end = fbb_.EndTable(start_);
1198 auto o = flatbuffers::Offset<TileAttribute>(end);
1199 return o;
1200 }
1201};
1202
1203inline flatbuffers::Offset<TileAttribute> CreateTileAttribute(
1204 flatbuffers::FlatBufferBuilder &_fbb,
1205 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples = 0) {
1206 TileAttributeBuilder builder_(_fbb);
1207 builder_.add_multiples(multiples);
1208 return builder_.Finish();
1209}
1210
1211inline flatbuffers::Offset<TileAttribute> CreateTileAttributeDirect(
1212 flatbuffers::FlatBufferBuilder &_fbb,
1213 const std::vector<int32_t> *multiples = nullptr) {
1214 auto multiples__ = multiples ? _fbb.CreateVector<int32_t>(*multiples) : 0;
1215 return tosa::CreateTileAttribute(
1216 _fbb,
1217 multiples__);
1218}
1219
1220struct ResizeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1221 typedef ResizeAttributeBuilder Builder;
1222 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong49b1ca62022-06-10 01:49:13 -07001223 VT_SCALE = 4,
1224 VT_OFFSET = 6,
1225 VT_BORDER = 8,
1226 VT_MODE = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07001227 };
TatWai Chong49b1ca62022-06-10 01:49:13 -07001228 const flatbuffers::Vector<int16_t> *scale() const {
1229 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_SCALE);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001230 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001231 const flatbuffers::Vector<int16_t> *offset() const {
1232 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_OFFSET);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001233 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001234 const flatbuffers::Vector<int16_t> *border() const {
1235 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_BORDER);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001236 }
1237 tosa::ResizeMode mode() const {
1238 return static_cast<tosa::ResizeMode>(GetField<uint32_t>(VT_MODE, 0));
1239 }
1240 bool Verify(flatbuffers::Verifier &verifier) const {
1241 return VerifyTableStart(verifier) &&
TatWai Chong49b1ca62022-06-10 01:49:13 -07001242 VerifyOffset(verifier, VT_SCALE) &&
1243 verifier.VerifyVector(scale()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001244 VerifyOffset(verifier, VT_OFFSET) &&
1245 verifier.VerifyVector(offset()) &&
TatWai Chong49b1ca62022-06-10 01:49:13 -07001246 VerifyOffset(verifier, VT_BORDER) &&
1247 verifier.VerifyVector(border()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001248 VerifyField<uint32_t>(verifier, VT_MODE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001249 verifier.EndTable();
1250 }
1251};
1252
1253struct ResizeAttributeBuilder {
1254 typedef ResizeAttribute Table;
1255 flatbuffers::FlatBufferBuilder &fbb_;
1256 flatbuffers::uoffset_t start_;
TatWai Chong49b1ca62022-06-10 01:49:13 -07001257 void add_scale(flatbuffers::Offset<flatbuffers::Vector<int16_t>> scale) {
1258 fbb_.AddOffset(ResizeAttribute::VT_SCALE, scale);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001259 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001260 void add_offset(flatbuffers::Offset<flatbuffers::Vector<int16_t>> offset) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001261 fbb_.AddOffset(ResizeAttribute::VT_OFFSET, offset);
1262 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001263 void add_border(flatbuffers::Offset<flatbuffers::Vector<int16_t>> border) {
1264 fbb_.AddOffset(ResizeAttribute::VT_BORDER, border);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001265 }
1266 void add_mode(tosa::ResizeMode mode) {
1267 fbb_.AddElement<uint32_t>(ResizeAttribute::VT_MODE, static_cast<uint32_t>(mode), 0);
1268 }
1269 explicit ResizeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1270 : fbb_(_fbb) {
1271 start_ = fbb_.StartTable();
1272 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001273 flatbuffers::Offset<ResizeAttribute> Finish() {
1274 const auto end = fbb_.EndTable(start_);
1275 auto o = flatbuffers::Offset<ResizeAttribute>(end);
1276 return o;
1277 }
1278};
1279
1280inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttribute(
1281 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001282 flatbuffers::Offset<flatbuffers::Vector<int16_t>> scale = 0,
1283 flatbuffers::Offset<flatbuffers::Vector<int16_t>> offset = 0,
1284 flatbuffers::Offset<flatbuffers::Vector<int16_t>> border = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001285 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
1286 ResizeAttributeBuilder builder_(_fbb);
1287 builder_.add_mode(mode);
TatWai Chong49b1ca62022-06-10 01:49:13 -07001288 builder_.add_border(border);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001289 builder_.add_offset(offset);
TatWai Chong49b1ca62022-06-10 01:49:13 -07001290 builder_.add_scale(scale);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001291 return builder_.Finish();
1292}
1293
1294inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttributeDirect(
1295 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001296 const std::vector<int16_t> *scale = nullptr,
1297 const std::vector<int16_t> *offset = nullptr,
1298 const std::vector<int16_t> *border = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001299 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
TatWai Chong49b1ca62022-06-10 01:49:13 -07001300 auto scale__ = scale ? _fbb.CreateVector<int16_t>(*scale) : 0;
1301 auto offset__ = offset ? _fbb.CreateVector<int16_t>(*offset) : 0;
1302 auto border__ = border ? _fbb.CreateVector<int16_t>(*border) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001303 return tosa::CreateResizeAttribute(
1304 _fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001305 scale__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001306 offset__,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001307 border__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001308 mode);
1309}
1310
1311struct ClampAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1312 typedef ClampAttributeBuilder Builder;
1313 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1314 VT_MIN_INT = 4,
1315 VT_MAX_INT = 6,
1316 VT_MIN_FP = 8,
1317 VT_MAX_FP = 10
1318 };
1319 int32_t min_int() const {
1320 return GetField<int32_t>(VT_MIN_INT, 0);
1321 }
1322 int32_t max_int() const {
1323 return GetField<int32_t>(VT_MAX_INT, 0);
1324 }
James Wardc15f7d52022-12-07 15:38:01 +00001325 const flatbuffers::Vector<uint8_t> *min_fp() const {
1326 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_MIN_FP);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001327 }
James Wardc15f7d52022-12-07 15:38:01 +00001328 const flatbuffers::Vector<uint8_t> *max_fp() const {
1329 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_MAX_FP);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001330 }
1331 bool Verify(flatbuffers::Verifier &verifier) const {
1332 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001333 VerifyField<int32_t>(verifier, VT_MIN_INT, 4) &&
1334 VerifyField<int32_t>(verifier, VT_MAX_INT, 4) &&
James Wardc15f7d52022-12-07 15:38:01 +00001335 VerifyOffset(verifier, VT_MIN_FP) &&
1336 verifier.VerifyVector(min_fp()) &&
1337 VerifyOffset(verifier, VT_MAX_FP) &&
1338 verifier.VerifyVector(max_fp()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001339 verifier.EndTable();
1340 }
1341};
1342
1343struct ClampAttributeBuilder {
1344 typedef ClampAttribute Table;
1345 flatbuffers::FlatBufferBuilder &fbb_;
1346 flatbuffers::uoffset_t start_;
1347 void add_min_int(int32_t min_int) {
1348 fbb_.AddElement<int32_t>(ClampAttribute::VT_MIN_INT, min_int, 0);
1349 }
1350 void add_max_int(int32_t max_int) {
1351 fbb_.AddElement<int32_t>(ClampAttribute::VT_MAX_INT, max_int, 0);
1352 }
James Wardc15f7d52022-12-07 15:38:01 +00001353 void add_min_fp(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> min_fp) {
1354 fbb_.AddOffset(ClampAttribute::VT_MIN_FP, min_fp);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001355 }
James Wardc15f7d52022-12-07 15:38:01 +00001356 void add_max_fp(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> max_fp) {
1357 fbb_.AddOffset(ClampAttribute::VT_MAX_FP, max_fp);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001358 }
1359 explicit ClampAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1360 : fbb_(_fbb) {
1361 start_ = fbb_.StartTable();
1362 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001363 flatbuffers::Offset<ClampAttribute> Finish() {
1364 const auto end = fbb_.EndTable(start_);
1365 auto o = flatbuffers::Offset<ClampAttribute>(end);
1366 return o;
1367 }
1368};
1369
1370inline flatbuffers::Offset<ClampAttribute> CreateClampAttribute(
1371 flatbuffers::FlatBufferBuilder &_fbb,
1372 int32_t min_int = 0,
1373 int32_t max_int = 0,
James Wardc15f7d52022-12-07 15:38:01 +00001374 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> min_fp = 0,
1375 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> max_fp = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001376 ClampAttributeBuilder builder_(_fbb);
1377 builder_.add_max_fp(max_fp);
1378 builder_.add_min_fp(min_fp);
1379 builder_.add_max_int(max_int);
1380 builder_.add_min_int(min_int);
1381 return builder_.Finish();
1382}
1383
James Wardc15f7d52022-12-07 15:38:01 +00001384inline flatbuffers::Offset<ClampAttribute> CreateClampAttributeDirect(
1385 flatbuffers::FlatBufferBuilder &_fbb,
1386 int32_t min_int = 0,
1387 int32_t max_int = 0,
1388 const std::vector<uint8_t> *min_fp = nullptr,
1389 const std::vector<uint8_t> *max_fp = nullptr) {
1390 if (min_fp) { _fbb.ForceVectorAlignment(min_fp->size(), sizeof(uint8_t), 8); }
1391 auto min_fp__ = min_fp ? _fbb.CreateVector<uint8_t>(*min_fp) : 0;
1392 if (max_fp) { _fbb.ForceVectorAlignment(max_fp->size(), sizeof(uint8_t), 8); }
1393 auto max_fp__ = max_fp ? _fbb.CreateVector<uint8_t>(*max_fp) : 0;
1394 return tosa::CreateClampAttribute(
1395 _fbb,
1396 min_int,
1397 max_int,
1398 min_fp__,
1399 max_fp__);
1400}
1401
Eric Kunze2364dcd2021-04-26 11:06:57 -07001402struct RescaleAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1403 typedef RescaleAttributeBuilder Builder;
1404 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1405 VT_INPUT_ZP = 4,
1406 VT_OUTPUT_ZP = 6,
1407 VT_MULTIPLIER = 8,
1408 VT_SHIFT = 10,
1409 VT_SCALE32 = 12,
1410 VT_DOUBLE_ROUND = 14,
1411 VT_PER_CHANNEL = 16
1412 };
1413 int32_t input_zp() const {
1414 return GetField<int32_t>(VT_INPUT_ZP, 0);
1415 }
1416 int32_t output_zp() const {
1417 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1418 }
1419 const flatbuffers::Vector<int32_t> *multiplier() const {
1420 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLIER);
1421 }
1422 const flatbuffers::Vector<int32_t> *shift() const {
1423 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHIFT);
1424 }
1425 bool scale32() const {
1426 return GetField<uint8_t>(VT_SCALE32, 0) != 0;
1427 }
1428 bool double_round() const {
1429 return GetField<uint8_t>(VT_DOUBLE_ROUND, 0) != 0;
1430 }
1431 bool per_channel() const {
1432 return GetField<uint8_t>(VT_PER_CHANNEL, 0) != 0;
1433 }
1434 bool Verify(flatbuffers::Verifier &verifier) const {
1435 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001436 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
1437 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001438 VerifyOffset(verifier, VT_MULTIPLIER) &&
1439 verifier.VerifyVector(multiplier()) &&
1440 VerifyOffset(verifier, VT_SHIFT) &&
1441 verifier.VerifyVector(shift()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001442 VerifyField<uint8_t>(verifier, VT_SCALE32, 1) &&
1443 VerifyField<uint8_t>(verifier, VT_DOUBLE_ROUND, 1) &&
1444 VerifyField<uint8_t>(verifier, VT_PER_CHANNEL, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001445 verifier.EndTable();
1446 }
1447};
1448
1449struct RescaleAttributeBuilder {
1450 typedef RescaleAttribute Table;
1451 flatbuffers::FlatBufferBuilder &fbb_;
1452 flatbuffers::uoffset_t start_;
1453 void add_input_zp(int32_t input_zp) {
1454 fbb_.AddElement<int32_t>(RescaleAttribute::VT_INPUT_ZP, input_zp, 0);
1455 }
1456 void add_output_zp(int32_t output_zp) {
1457 fbb_.AddElement<int32_t>(RescaleAttribute::VT_OUTPUT_ZP, output_zp, 0);
1458 }
1459 void add_multiplier(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier) {
1460 fbb_.AddOffset(RescaleAttribute::VT_MULTIPLIER, multiplier);
1461 }
1462 void add_shift(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift) {
1463 fbb_.AddOffset(RescaleAttribute::VT_SHIFT, shift);
1464 }
1465 void add_scale32(bool scale32) {
1466 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_SCALE32, static_cast<uint8_t>(scale32), 0);
1467 }
1468 void add_double_round(bool double_round) {
1469 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_DOUBLE_ROUND, static_cast<uint8_t>(double_round), 0);
1470 }
1471 void add_per_channel(bool per_channel) {
1472 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_PER_CHANNEL, static_cast<uint8_t>(per_channel), 0);
1473 }
1474 explicit RescaleAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1475 : fbb_(_fbb) {
1476 start_ = fbb_.StartTable();
1477 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001478 flatbuffers::Offset<RescaleAttribute> Finish() {
1479 const auto end = fbb_.EndTable(start_);
1480 auto o = flatbuffers::Offset<RescaleAttribute>(end);
1481 return o;
1482 }
1483};
1484
1485inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttribute(
1486 flatbuffers::FlatBufferBuilder &_fbb,
1487 int32_t input_zp = 0,
1488 int32_t output_zp = 0,
1489 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier = 0,
1490 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift = 0,
1491 bool scale32 = false,
1492 bool double_round = false,
1493 bool per_channel = false) {
1494 RescaleAttributeBuilder builder_(_fbb);
1495 builder_.add_shift(shift);
1496 builder_.add_multiplier(multiplier);
1497 builder_.add_output_zp(output_zp);
1498 builder_.add_input_zp(input_zp);
1499 builder_.add_per_channel(per_channel);
1500 builder_.add_double_round(double_round);
1501 builder_.add_scale32(scale32);
1502 return builder_.Finish();
1503}
1504
1505inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttributeDirect(
1506 flatbuffers::FlatBufferBuilder &_fbb,
1507 int32_t input_zp = 0,
1508 int32_t output_zp = 0,
1509 const std::vector<int32_t> *multiplier = nullptr,
1510 const std::vector<int32_t> *shift = nullptr,
1511 bool scale32 = false,
1512 bool double_round = false,
1513 bool per_channel = false) {
1514 auto multiplier__ = multiplier ? _fbb.CreateVector<int32_t>(*multiplier) : 0;
1515 auto shift__ = shift ? _fbb.CreateVector<int32_t>(*shift) : 0;
1516 return tosa::CreateRescaleAttribute(
1517 _fbb,
1518 input_zp,
1519 output_zp,
1520 multiplier__,
1521 shift__,
1522 scale32,
1523 double_round,
1524 per_channel);
1525}
1526
1527struct MulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1528 typedef MulAttributeBuilder Builder;
1529 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1530 VT_SHIFT = 4
1531 };
1532 int32_t shift() const {
1533 return GetField<int32_t>(VT_SHIFT, 0);
1534 }
1535 bool Verify(flatbuffers::Verifier &verifier) const {
1536 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001537 VerifyField<int32_t>(verifier, VT_SHIFT, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001538 verifier.EndTable();
1539 }
1540};
1541
1542struct MulAttributeBuilder {
1543 typedef MulAttribute Table;
1544 flatbuffers::FlatBufferBuilder &fbb_;
1545 flatbuffers::uoffset_t start_;
1546 void add_shift(int32_t shift) {
1547 fbb_.AddElement<int32_t>(MulAttribute::VT_SHIFT, shift, 0);
1548 }
1549 explicit MulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1550 : fbb_(_fbb) {
1551 start_ = fbb_.StartTable();
1552 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001553 flatbuffers::Offset<MulAttribute> Finish() {
1554 const auto end = fbb_.EndTable(start_);
1555 auto o = flatbuffers::Offset<MulAttribute>(end);
1556 return o;
1557 }
1558};
1559
1560inline flatbuffers::Offset<MulAttribute> CreateMulAttribute(
1561 flatbuffers::FlatBufferBuilder &_fbb,
1562 int32_t shift = 0) {
1563 MulAttributeBuilder builder_(_fbb);
1564 builder_.add_shift(shift);
1565 return builder_.Finish();
1566}
1567
1568struct ArithmeticRightShiftAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1569 typedef ArithmeticRightShiftAttributeBuilder Builder;
1570 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1571 VT_ROUND = 4
1572 };
1573 bool round() const {
1574 return GetField<uint8_t>(VT_ROUND, 0) != 0;
1575 }
1576 bool Verify(flatbuffers::Verifier &verifier) const {
1577 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001578 VerifyField<uint8_t>(verifier, VT_ROUND, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001579 verifier.EndTable();
1580 }
1581};
1582
1583struct ArithmeticRightShiftAttributeBuilder {
1584 typedef ArithmeticRightShiftAttribute Table;
1585 flatbuffers::FlatBufferBuilder &fbb_;
1586 flatbuffers::uoffset_t start_;
1587 void add_round(bool round) {
1588 fbb_.AddElement<uint8_t>(ArithmeticRightShiftAttribute::VT_ROUND, static_cast<uint8_t>(round), 0);
1589 }
1590 explicit ArithmeticRightShiftAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1591 : fbb_(_fbb) {
1592 start_ = fbb_.StartTable();
1593 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001594 flatbuffers::Offset<ArithmeticRightShiftAttribute> Finish() {
1595 const auto end = fbb_.EndTable(start_);
1596 auto o = flatbuffers::Offset<ArithmeticRightShiftAttribute>(end);
1597 return o;
1598 }
1599};
1600
1601inline flatbuffers::Offset<ArithmeticRightShiftAttribute> CreateArithmeticRightShiftAttribute(
1602 flatbuffers::FlatBufferBuilder &_fbb,
1603 bool round = false) {
1604 ArithmeticRightShiftAttributeBuilder builder_(_fbb);
1605 builder_.add_round(round);
1606 return builder_.Finish();
1607}
1608
1609struct CondIfAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1610 typedef CondIfAttributeBuilder Builder;
1611 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1612 VT_THEN_BRANCH = 4,
1613 VT_ELSE_BRANCH = 6
1614 };
1615 const flatbuffers::String *then_branch() const {
1616 return GetPointer<const flatbuffers::String *>(VT_THEN_BRANCH);
1617 }
1618 const flatbuffers::String *else_branch() const {
1619 return GetPointer<const flatbuffers::String *>(VT_ELSE_BRANCH);
1620 }
1621 bool Verify(flatbuffers::Verifier &verifier) const {
1622 return VerifyTableStart(verifier) &&
1623 VerifyOffset(verifier, VT_THEN_BRANCH) &&
1624 verifier.VerifyString(then_branch()) &&
1625 VerifyOffset(verifier, VT_ELSE_BRANCH) &&
1626 verifier.VerifyString(else_branch()) &&
1627 verifier.EndTable();
1628 }
1629};
1630
1631struct CondIfAttributeBuilder {
1632 typedef CondIfAttribute Table;
1633 flatbuffers::FlatBufferBuilder &fbb_;
1634 flatbuffers::uoffset_t start_;
1635 void add_then_branch(flatbuffers::Offset<flatbuffers::String> then_branch) {
1636 fbb_.AddOffset(CondIfAttribute::VT_THEN_BRANCH, then_branch);
1637 }
1638 void add_else_branch(flatbuffers::Offset<flatbuffers::String> else_branch) {
1639 fbb_.AddOffset(CondIfAttribute::VT_ELSE_BRANCH, else_branch);
1640 }
1641 explicit CondIfAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1642 : fbb_(_fbb) {
1643 start_ = fbb_.StartTable();
1644 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001645 flatbuffers::Offset<CondIfAttribute> Finish() {
1646 const auto end = fbb_.EndTable(start_);
1647 auto o = flatbuffers::Offset<CondIfAttribute>(end);
1648 return o;
1649 }
1650};
1651
1652inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttribute(
1653 flatbuffers::FlatBufferBuilder &_fbb,
1654 flatbuffers::Offset<flatbuffers::String> then_branch = 0,
1655 flatbuffers::Offset<flatbuffers::String> else_branch = 0) {
1656 CondIfAttributeBuilder builder_(_fbb);
1657 builder_.add_else_branch(else_branch);
1658 builder_.add_then_branch(then_branch);
1659 return builder_.Finish();
1660}
1661
1662inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttributeDirect(
1663 flatbuffers::FlatBufferBuilder &_fbb,
1664 const char *then_branch = nullptr,
1665 const char *else_branch = nullptr) {
1666 auto then_branch__ = then_branch ? _fbb.CreateString(then_branch) : 0;
1667 auto else_branch__ = else_branch ? _fbb.CreateString(else_branch) : 0;
1668 return tosa::CreateCondIfAttribute(
1669 _fbb,
1670 then_branch__,
1671 else_branch__);
1672}
1673
1674struct WhileLoopAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1675 typedef WhileLoopAttributeBuilder Builder;
1676 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1677 VT_COND_BRANCH = 4,
1678 VT_BODY_BRANCH = 6
1679 };
1680 const flatbuffers::String *cond_branch() const {
1681 return GetPointer<const flatbuffers::String *>(VT_COND_BRANCH);
1682 }
1683 const flatbuffers::String *body_branch() const {
1684 return GetPointer<const flatbuffers::String *>(VT_BODY_BRANCH);
1685 }
1686 bool Verify(flatbuffers::Verifier &verifier) const {
1687 return VerifyTableStart(verifier) &&
1688 VerifyOffset(verifier, VT_COND_BRANCH) &&
1689 verifier.VerifyString(cond_branch()) &&
1690 VerifyOffset(verifier, VT_BODY_BRANCH) &&
1691 verifier.VerifyString(body_branch()) &&
1692 verifier.EndTable();
1693 }
1694};
1695
1696struct WhileLoopAttributeBuilder {
1697 typedef WhileLoopAttribute Table;
1698 flatbuffers::FlatBufferBuilder &fbb_;
1699 flatbuffers::uoffset_t start_;
1700 void add_cond_branch(flatbuffers::Offset<flatbuffers::String> cond_branch) {
1701 fbb_.AddOffset(WhileLoopAttribute::VT_COND_BRANCH, cond_branch);
1702 }
1703 void add_body_branch(flatbuffers::Offset<flatbuffers::String> body_branch) {
1704 fbb_.AddOffset(WhileLoopAttribute::VT_BODY_BRANCH, body_branch);
1705 }
1706 explicit WhileLoopAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1707 : fbb_(_fbb) {
1708 start_ = fbb_.StartTable();
1709 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001710 flatbuffers::Offset<WhileLoopAttribute> Finish() {
1711 const auto end = fbb_.EndTable(start_);
1712 auto o = flatbuffers::Offset<WhileLoopAttribute>(end);
1713 return o;
1714 }
1715};
1716
1717inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttribute(
1718 flatbuffers::FlatBufferBuilder &_fbb,
1719 flatbuffers::Offset<flatbuffers::String> cond_branch = 0,
1720 flatbuffers::Offset<flatbuffers::String> body_branch = 0) {
1721 WhileLoopAttributeBuilder builder_(_fbb);
1722 builder_.add_body_branch(body_branch);
1723 builder_.add_cond_branch(cond_branch);
1724 return builder_.Finish();
1725}
1726
1727inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttributeDirect(
1728 flatbuffers::FlatBufferBuilder &_fbb,
1729 const char *cond_branch = nullptr,
1730 const char *body_branch = nullptr) {
1731 auto cond_branch__ = cond_branch ? _fbb.CreateString(cond_branch) : 0;
1732 auto body_branch__ = body_branch ? _fbb.CreateString(body_branch) : 0;
1733 return tosa::CreateWhileLoopAttribute(
1734 _fbb,
1735 cond_branch__,
1736 body_branch__);
1737}
1738
Kevin Cheng38d214c2021-10-15 15:49:19 -07001739struct TransposeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1740 typedef TransposeAttributeBuilder Builder;
1741 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001742 VT_PERMS = 4
Kevin Cheng38d214c2021-10-15 15:49:19 -07001743 };
TatWai Chong7be71652022-05-10 17:26:20 -07001744 const flatbuffers::Vector<int32_t> *perms() const {
1745 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PERMS);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001746 }
1747 bool Verify(flatbuffers::Verifier &verifier) const {
1748 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001749 VerifyOffset(verifier, VT_PERMS) &&
1750 verifier.VerifyVector(perms()) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -07001751 verifier.EndTable();
1752 }
1753};
1754
1755struct TransposeAttributeBuilder {
1756 typedef TransposeAttribute Table;
1757 flatbuffers::FlatBufferBuilder &fbb_;
1758 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001759 void add_perms(flatbuffers::Offset<flatbuffers::Vector<int32_t>> perms) {
1760 fbb_.AddOffset(TransposeAttribute::VT_PERMS, perms);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001761 }
1762 explicit TransposeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1763 : fbb_(_fbb) {
1764 start_ = fbb_.StartTable();
1765 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07001766 flatbuffers::Offset<TransposeAttribute> Finish() {
1767 const auto end = fbb_.EndTable(start_);
1768 auto o = flatbuffers::Offset<TransposeAttribute>(end);
1769 return o;
1770 }
1771};
1772
1773inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttribute(
1774 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001775 flatbuffers::Offset<flatbuffers::Vector<int32_t>> perms = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001776 TransposeAttributeBuilder builder_(_fbb);
TatWai Chong7be71652022-05-10 17:26:20 -07001777 builder_.add_perms(perms);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001778 return builder_.Finish();
1779}
1780
1781inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttributeDirect(
1782 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001783 const std::vector<int32_t> *perms = nullptr) {
1784 auto perms__ = perms ? _fbb.CreateVector<int32_t>(*perms) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001785 return tosa::CreateTransposeAttribute(
1786 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001787 perms__);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001788}
1789
1790struct TableAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1791 typedef TableAttributeBuilder Builder;
1792 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1793 VT_TABLE = 4
1794 };
TatWai Chong7be71652022-05-10 17:26:20 -07001795 const flatbuffers::Vector<int16_t> *table() const {
1796 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_TABLE);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001797 }
1798 bool Verify(flatbuffers::Verifier &verifier) const {
1799 return VerifyTableStart(verifier) &&
1800 VerifyOffset(verifier, VT_TABLE) &&
1801 verifier.VerifyVector(table()) &&
1802 verifier.EndTable();
1803 }
1804};
1805
1806struct TableAttributeBuilder {
1807 typedef TableAttribute Table;
1808 flatbuffers::FlatBufferBuilder &fbb_;
1809 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001810 void add_table(flatbuffers::Offset<flatbuffers::Vector<int16_t>> table) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001811 fbb_.AddOffset(TableAttribute::VT_TABLE, table);
1812 }
1813 explicit TableAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1814 : fbb_(_fbb) {
1815 start_ = fbb_.StartTable();
1816 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07001817 flatbuffers::Offset<TableAttribute> Finish() {
1818 const auto end = fbb_.EndTable(start_);
1819 auto o = flatbuffers::Offset<TableAttribute>(end);
1820 return o;
1821 }
1822};
1823
1824inline flatbuffers::Offset<TableAttribute> CreateTableAttribute(
1825 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001826 flatbuffers::Offset<flatbuffers::Vector<int16_t>> table = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001827 TableAttributeBuilder builder_(_fbb);
1828 builder_.add_table(table);
1829 return builder_.Finish();
1830}
1831
1832inline flatbuffers::Offset<TableAttribute> CreateTableAttributeDirect(
1833 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001834 const std::vector<int16_t> *table = nullptr) {
1835 auto table__ = table ? _fbb.CreateVector<int16_t>(*table) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001836 return tosa::CreateTableAttribute(
1837 _fbb,
1838 table__);
1839}
1840
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001841struct MatMulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1842 typedef MatMulAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001843 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1844 VT_A_ZP = 4,
James Wardea00fd02023-01-20 16:03:50 +00001845 VT_B_ZP = 6
Eric Kunze2364dcd2021-04-26 11:06:57 -07001846 };
1847 int32_t a_zp() const {
1848 return GetField<int32_t>(VT_A_ZP, 0);
1849 }
1850 int32_t b_zp() const {
1851 return GetField<int32_t>(VT_B_ZP, 0);
1852 }
1853 bool Verify(flatbuffers::Verifier &verifier) const {
1854 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001855 VerifyField<int32_t>(verifier, VT_A_ZP, 4) &&
1856 VerifyField<int32_t>(verifier, VT_B_ZP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001857 verifier.EndTable();
1858 }
1859};
1860
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001861struct MatMulAttributeBuilder {
1862 typedef MatMulAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001863 flatbuffers::FlatBufferBuilder &fbb_;
1864 flatbuffers::uoffset_t start_;
1865 void add_a_zp(int32_t a_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001866 fbb_.AddElement<int32_t>(MatMulAttribute::VT_A_ZP, a_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001867 }
1868 void add_b_zp(int32_t b_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001869 fbb_.AddElement<int32_t>(MatMulAttribute::VT_B_ZP, b_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001870 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001871 explicit MatMulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -07001872 : fbb_(_fbb) {
1873 start_ = fbb_.StartTable();
1874 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001875 flatbuffers::Offset<MatMulAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001876 const auto end = fbb_.EndTable(start_);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001877 auto o = flatbuffers::Offset<MatMulAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001878 return o;
1879 }
1880};
1881
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001882inline flatbuffers::Offset<MatMulAttribute> CreateMatMulAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -07001883 flatbuffers::FlatBufferBuilder &_fbb,
1884 int32_t a_zp = 0,
James Wardea00fd02023-01-20 16:03:50 +00001885 int32_t b_zp = 0) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001886 MatMulAttributeBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001887 builder_.add_b_zp(b_zp);
1888 builder_.add_a_zp(a_zp);
1889 return builder_.Finish();
1890}
1891
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001892struct FullyConnectedAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1893 typedef FullyConnectedAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001894 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001895 VT_INPUT_ZP = 4,
James Wardea00fd02023-01-20 16:03:50 +00001896 VT_WEIGHT_ZP = 6
Eric Kunze2364dcd2021-04-26 11:06:57 -07001897 };
1898 int32_t input_zp() const {
1899 return GetField<int32_t>(VT_INPUT_ZP, 0);
1900 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001901 int32_t weight_zp() const {
1902 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
1903 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001904 bool Verify(flatbuffers::Verifier &verifier) const {
1905 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001906 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
1907 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001908 verifier.EndTable();
1909 }
1910};
1911
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001912struct FullyConnectedAttributeBuilder {
1913 typedef FullyConnectedAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001914 flatbuffers::FlatBufferBuilder &fbb_;
1915 flatbuffers::uoffset_t start_;
1916 void add_input_zp(int32_t input_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001917 fbb_.AddElement<int32_t>(FullyConnectedAttribute::VT_INPUT_ZP, input_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001918 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001919 void add_weight_zp(int32_t weight_zp) {
1920 fbb_.AddElement<int32_t>(FullyConnectedAttribute::VT_WEIGHT_ZP, weight_zp, 0);
1921 }
1922 explicit FullyConnectedAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -07001923 : fbb_(_fbb) {
1924 start_ = fbb_.StartTable();
1925 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001926 flatbuffers::Offset<FullyConnectedAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001927 const auto end = fbb_.EndTable(start_);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001928 auto o = flatbuffers::Offset<FullyConnectedAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001929 return o;
1930 }
1931};
1932
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001933inline flatbuffers::Offset<FullyConnectedAttribute> CreateFullyConnectedAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -07001934 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001935 int32_t input_zp = 0,
James Wardea00fd02023-01-20 16:03:50 +00001936 int32_t weight_zp = 0) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001937 FullyConnectedAttributeBuilder builder_(_fbb);
1938 builder_.add_weight_zp(weight_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001939 builder_.add_input_zp(input_zp);
1940 return builder_.Finish();
1941}
1942
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001943struct NegateAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1944 typedef NegateAttributeBuilder Builder;
1945 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1946 VT_INPUT1_ZP = 4,
1947 VT_OUTPUT_ZP = 6
1948 };
1949 int32_t input1_zp() const {
1950 return GetField<int32_t>(VT_INPUT1_ZP, 0);
1951 }
1952 int32_t output_zp() const {
1953 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1954 }
1955 bool Verify(flatbuffers::Verifier &verifier) const {
1956 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001957 VerifyField<int32_t>(verifier, VT_INPUT1_ZP, 4) &&
1958 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP, 4) &&
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001959 verifier.EndTable();
1960 }
1961};
1962
1963struct NegateAttributeBuilder {
1964 typedef NegateAttribute Table;
1965 flatbuffers::FlatBufferBuilder &fbb_;
1966 flatbuffers::uoffset_t start_;
1967 void add_input1_zp(int32_t input1_zp) {
1968 fbb_.AddElement<int32_t>(NegateAttribute::VT_INPUT1_ZP, input1_zp, 0);
1969 }
1970 void add_output_zp(int32_t output_zp) {
1971 fbb_.AddElement<int32_t>(NegateAttribute::VT_OUTPUT_ZP, output_zp, 0);
1972 }
1973 explicit NegateAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1974 : fbb_(_fbb) {
1975 start_ = fbb_.StartTable();
1976 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001977 flatbuffers::Offset<NegateAttribute> Finish() {
1978 const auto end = fbb_.EndTable(start_);
1979 auto o = flatbuffers::Offset<NegateAttribute>(end);
1980 return o;
1981 }
1982};
1983
1984inline flatbuffers::Offset<NegateAttribute> CreateNegateAttribute(
1985 flatbuffers::FlatBufferBuilder &_fbb,
1986 int32_t input1_zp = 0,
1987 int32_t output_zp = 0) {
1988 NegateAttributeBuilder builder_(_fbb);
1989 builder_.add_output_zp(output_zp);
1990 builder_.add_input1_zp(input1_zp);
1991 return builder_.Finish();
1992}
1993
Eric Kunze497ab5d2022-10-21 16:39:01 -07001994struct CustomAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1995 typedef CustomAttributeBuilder Builder;
1996 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1997 VT_IDENTIFIER = 4,
1998 VT_CONFIG = 6,
1999 VT_IMPLEMENTATION_ATTRS = 8
2000 };
2001 const flatbuffers::String *identifier() const {
2002 return GetPointer<const flatbuffers::String *>(VT_IDENTIFIER);
2003 }
2004 const flatbuffers::String *config() const {
2005 return GetPointer<const flatbuffers::String *>(VT_CONFIG);
2006 }
2007 const flatbuffers::Vector<uint8_t> *implementation_attrs() const {
2008 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_IMPLEMENTATION_ATTRS);
2009 }
2010 bool Verify(flatbuffers::Verifier &verifier) const {
2011 return VerifyTableStart(verifier) &&
2012 VerifyOffset(verifier, VT_IDENTIFIER) &&
2013 verifier.VerifyString(identifier()) &&
2014 VerifyOffset(verifier, VT_CONFIG) &&
2015 verifier.VerifyString(config()) &&
2016 VerifyOffset(verifier, VT_IMPLEMENTATION_ATTRS) &&
2017 verifier.VerifyVector(implementation_attrs()) &&
2018 verifier.EndTable();
2019 }
2020};
2021
2022struct CustomAttributeBuilder {
2023 typedef CustomAttribute Table;
2024 flatbuffers::FlatBufferBuilder &fbb_;
2025 flatbuffers::uoffset_t start_;
2026 void add_identifier(flatbuffers::Offset<flatbuffers::String> identifier) {
2027 fbb_.AddOffset(CustomAttribute::VT_IDENTIFIER, identifier);
2028 }
2029 void add_config(flatbuffers::Offset<flatbuffers::String> config) {
2030 fbb_.AddOffset(CustomAttribute::VT_CONFIG, config);
2031 }
2032 void add_implementation_attrs(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> implementation_attrs) {
2033 fbb_.AddOffset(CustomAttribute::VT_IMPLEMENTATION_ATTRS, implementation_attrs);
2034 }
2035 explicit CustomAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2036 : fbb_(_fbb) {
2037 start_ = fbb_.StartTable();
2038 }
2039 flatbuffers::Offset<CustomAttribute> Finish() {
2040 const auto end = fbb_.EndTable(start_);
2041 auto o = flatbuffers::Offset<CustomAttribute>(end);
2042 return o;
2043 }
2044};
2045
2046inline flatbuffers::Offset<CustomAttribute> CreateCustomAttribute(
2047 flatbuffers::FlatBufferBuilder &_fbb,
2048 flatbuffers::Offset<flatbuffers::String> identifier = 0,
2049 flatbuffers::Offset<flatbuffers::String> config = 0,
2050 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> implementation_attrs = 0) {
2051 CustomAttributeBuilder builder_(_fbb);
2052 builder_.add_implementation_attrs(implementation_attrs);
2053 builder_.add_config(config);
2054 builder_.add_identifier(identifier);
2055 return builder_.Finish();
2056}
2057
2058inline flatbuffers::Offset<CustomAttribute> CreateCustomAttributeDirect(
2059 flatbuffers::FlatBufferBuilder &_fbb,
2060 const char *identifier = nullptr,
2061 const char *config = nullptr,
2062 const std::vector<uint8_t> *implementation_attrs = nullptr) {
2063 auto identifier__ = identifier ? _fbb.CreateString(identifier) : 0;
2064 auto config__ = config ? _fbb.CreateString(config) : 0;
2065 auto implementation_attrs__ = implementation_attrs ? _fbb.CreateVector<uint8_t>(*implementation_attrs) : 0;
2066 return tosa::CreateCustomAttribute(
2067 _fbb,
2068 identifier__,
2069 config__,
2070 implementation_attrs__);
2071}
2072
Luke Hutton5e268092023-01-12 22:20:53 +00002073struct FFTAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2074 typedef FFTAttributeBuilder Builder;
2075 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2076 VT_INVERSE = 4
2077 };
2078 bool inverse() const {
2079 return GetField<uint8_t>(VT_INVERSE, 0) != 0;
2080 }
2081 bool Verify(flatbuffers::Verifier &verifier) const {
2082 return VerifyTableStart(verifier) &&
2083 VerifyField<uint8_t>(verifier, VT_INVERSE, 1) &&
2084 verifier.EndTable();
2085 }
2086};
2087
2088struct FFTAttributeBuilder {
2089 typedef FFTAttribute Table;
2090 flatbuffers::FlatBufferBuilder &fbb_;
2091 flatbuffers::uoffset_t start_;
2092 void add_inverse(bool inverse) {
2093 fbb_.AddElement<uint8_t>(FFTAttribute::VT_INVERSE, static_cast<uint8_t>(inverse), 0);
2094 }
2095 explicit FFTAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2096 : fbb_(_fbb) {
2097 start_ = fbb_.StartTable();
2098 }
2099 flatbuffers::Offset<FFTAttribute> Finish() {
2100 const auto end = fbb_.EndTable(start_);
2101 auto o = flatbuffers::Offset<FFTAttribute>(end);
2102 return o;
2103 }
2104};
2105
2106inline flatbuffers::Offset<FFTAttribute> CreateFFTAttribute(
2107 flatbuffers::FlatBufferBuilder &_fbb,
2108 bool inverse = false) {
2109 FFTAttributeBuilder builder_(_fbb);
2110 builder_.add_inverse(inverse);
2111 return builder_.Finish();
2112}
2113
Eric Kunze2364dcd2021-04-26 11:06:57 -07002114struct Version FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2115 typedef VersionBuilder Builder;
2116 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2117 VT__MAJOR = 4,
2118 VT__MINOR = 6,
2119 VT__PATCH = 8,
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002120 VT__DRAFT = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07002121 };
2122 int32_t _major() const {
2123 return GetField<int32_t>(VT__MAJOR, 0);
2124 }
2125 int32_t _minor() const {
Eric Kunzefb90dd42023-03-08 13:07:07 -08002126 return GetField<int32_t>(VT__MINOR, 60);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002127 }
2128 int32_t _patch() const {
2129 return GetField<int32_t>(VT__PATCH, 0);
2130 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002131 bool _draft() const {
Eric Kunzefb90dd42023-03-08 13:07:07 -08002132 return GetField<uint8_t>(VT__DRAFT, 0) != 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002133 }
2134 bool Verify(flatbuffers::Verifier &verifier) const {
2135 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00002136 VerifyField<int32_t>(verifier, VT__MAJOR, 4) &&
2137 VerifyField<int32_t>(verifier, VT__MINOR, 4) &&
2138 VerifyField<int32_t>(verifier, VT__PATCH, 4) &&
2139 VerifyField<uint8_t>(verifier, VT__DRAFT, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002140 verifier.EndTable();
2141 }
2142};
2143
2144struct VersionBuilder {
2145 typedef Version Table;
2146 flatbuffers::FlatBufferBuilder &fbb_;
2147 flatbuffers::uoffset_t start_;
2148 void add__major(int32_t _major) {
2149 fbb_.AddElement<int32_t>(Version::VT__MAJOR, _major, 0);
2150 }
2151 void add__minor(int32_t _minor) {
Eric Kunzefb90dd42023-03-08 13:07:07 -08002152 fbb_.AddElement<int32_t>(Version::VT__MINOR, _minor, 60);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002153 }
2154 void add__patch(int32_t _patch) {
2155 fbb_.AddElement<int32_t>(Version::VT__PATCH, _patch, 0);
2156 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002157 void add__draft(bool _draft) {
Eric Kunzefb90dd42023-03-08 13:07:07 -08002158 fbb_.AddElement<uint8_t>(Version::VT__DRAFT, static_cast<uint8_t>(_draft), 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002159 }
2160 explicit VersionBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2161 : fbb_(_fbb) {
2162 start_ = fbb_.StartTable();
2163 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002164 flatbuffers::Offset<Version> Finish() {
2165 const auto end = fbb_.EndTable(start_);
2166 auto o = flatbuffers::Offset<Version>(end);
2167 return o;
2168 }
2169};
2170
2171inline flatbuffers::Offset<Version> CreateVersion(
2172 flatbuffers::FlatBufferBuilder &_fbb,
2173 int32_t _major = 0,
Eric Kunzefb90dd42023-03-08 13:07:07 -08002174 int32_t _minor = 60,
Eric Kunze2364dcd2021-04-26 11:06:57 -07002175 int32_t _patch = 0,
Eric Kunzefb90dd42023-03-08 13:07:07 -08002176 bool _draft = false) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002177 VersionBuilder builder_(_fbb);
2178 builder_.add__patch(_patch);
2179 builder_.add__minor(_minor);
2180 builder_.add__major(_major);
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002181 builder_.add__draft(_draft);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002182 return builder_.Finish();
2183}
2184
2185struct TosaTensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2186 typedef TosaTensorBuilder Builder;
2187 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2188 VT_NAME = 4,
2189 VT_SHAPE = 6,
2190 VT_TYPE = 8,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002191 VT_DATA = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07002192 };
2193 const flatbuffers::String *name() const {
2194 return GetPointer<const flatbuffers::String *>(VT_NAME);
2195 }
2196 const flatbuffers::Vector<int32_t> *shape() const {
2197 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHAPE);
2198 }
2199 tosa::DType type() const {
2200 return static_cast<tosa::DType>(GetField<uint32_t>(VT_TYPE, 0));
2201 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002202 const flatbuffers::Vector<uint8_t> *data() const {
2203 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_DATA);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002204 }
2205 bool Verify(flatbuffers::Verifier &verifier) const {
2206 return VerifyTableStart(verifier) &&
2207 VerifyOffset(verifier, VT_NAME) &&
2208 verifier.VerifyString(name()) &&
2209 VerifyOffset(verifier, VT_SHAPE) &&
2210 verifier.VerifyVector(shape()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00002211 VerifyField<uint32_t>(verifier, VT_TYPE, 4) &&
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002212 VerifyOffset(verifier, VT_DATA) &&
2213 verifier.VerifyVector(data()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002214 verifier.EndTable();
2215 }
2216};
2217
2218struct TosaTensorBuilder {
2219 typedef TosaTensor Table;
2220 flatbuffers::FlatBufferBuilder &fbb_;
2221 flatbuffers::uoffset_t start_;
2222 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2223 fbb_.AddOffset(TosaTensor::VT_NAME, name);
2224 }
2225 void add_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape) {
2226 fbb_.AddOffset(TosaTensor::VT_SHAPE, shape);
2227 }
2228 void add_type(tosa::DType type) {
2229 fbb_.AddElement<uint32_t>(TosaTensor::VT_TYPE, static_cast<uint32_t>(type), 0);
2230 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002231 void add_data(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data) {
2232 fbb_.AddOffset(TosaTensor::VT_DATA, data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002233 }
2234 explicit TosaTensorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2235 : fbb_(_fbb) {
2236 start_ = fbb_.StartTable();
2237 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002238 flatbuffers::Offset<TosaTensor> Finish() {
2239 const auto end = fbb_.EndTable(start_);
2240 auto o = flatbuffers::Offset<TosaTensor>(end);
2241 return o;
2242 }
2243};
2244
2245inline flatbuffers::Offset<TosaTensor> CreateTosaTensor(
2246 flatbuffers::FlatBufferBuilder &_fbb,
2247 flatbuffers::Offset<flatbuffers::String> name = 0,
2248 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape = 0,
2249 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002250 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002251 TosaTensorBuilder builder_(_fbb);
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002252 builder_.add_data(data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002253 builder_.add_type(type);
2254 builder_.add_shape(shape);
2255 builder_.add_name(name);
2256 return builder_.Finish();
2257}
2258
2259inline flatbuffers::Offset<TosaTensor> CreateTosaTensorDirect(
2260 flatbuffers::FlatBufferBuilder &_fbb,
2261 const char *name = nullptr,
2262 const std::vector<int32_t> *shape = nullptr,
2263 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002264 const std::vector<uint8_t> *data = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002265 auto name__ = name ? _fbb.CreateString(name) : 0;
2266 auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0;
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002267 if (data) { _fbb.ForceVectorAlignment(data->size(), sizeof(uint8_t), 8); }
2268 auto data__ = data ? _fbb.CreateVector<uint8_t>(*data) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002269 return tosa::CreateTosaTensor(
2270 _fbb,
2271 name__,
2272 shape__,
2273 type,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002274 data__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002275}
2276
2277struct TosaOperator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2278 typedef TosaOperatorBuilder Builder;
2279 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2280 VT_OP = 4,
2281 VT_ATTRIBUTE_TYPE = 6,
2282 VT_ATTRIBUTE = 8,
2283 VT_INPUTS = 10,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002284 VT_OUTPUTS = 12
Eric Kunze2364dcd2021-04-26 11:06:57 -07002285 };
2286 tosa::Op op() const {
2287 return static_cast<tosa::Op>(GetField<uint32_t>(VT_OP, 0));
2288 }
2289 tosa::Attribute attribute_type() const {
2290 return static_cast<tosa::Attribute>(GetField<uint8_t>(VT_ATTRIBUTE_TYPE, 0));
2291 }
2292 const void *attribute() const {
2293 return GetPointer<const void *>(VT_ATTRIBUTE);
2294 }
2295 template<typename T> const T *attribute_as() const;
Kevin Cheng79a41992021-08-31 16:04:40 -07002296 const tosa::PoolAttribute *attribute_as_PoolAttribute() const {
2297 return attribute_type() == tosa::Attribute_PoolAttribute ? static_cast<const tosa::PoolAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002298 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002299 const tosa::ConvAttribute *attribute_as_ConvAttribute() const {
2300 return attribute_type() == tosa::Attribute_ConvAttribute ? static_cast<const tosa::ConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002301 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002302 const tosa::TransposeConvAttribute *attribute_as_TransposeConvAttribute() const {
2303 return attribute_type() == tosa::Attribute_TransposeConvAttribute ? static_cast<const tosa::TransposeConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002304 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002305 const tosa::PadAttribute *attribute_as_PadAttribute() const {
2306 return attribute_type() == tosa::Attribute_PadAttribute ? static_cast<const tosa::PadAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002307 }
2308 const tosa::AxisAttribute *attribute_as_AxisAttribute() const {
2309 return attribute_type() == tosa::Attribute_AxisAttribute ? static_cast<const tosa::AxisAttribute *>(attribute()) : nullptr;
2310 }
2311 const tosa::ReshapeAttribute *attribute_as_ReshapeAttribute() const {
2312 return attribute_type() == tosa::Attribute_ReshapeAttribute ? static_cast<const tosa::ReshapeAttribute *>(attribute()) : nullptr;
2313 }
2314 const tosa::SliceAttribute *attribute_as_SliceAttribute() const {
2315 return attribute_type() == tosa::Attribute_SliceAttribute ? static_cast<const tosa::SliceAttribute *>(attribute()) : nullptr;
2316 }
2317 const tosa::TileAttribute *attribute_as_TileAttribute() const {
2318 return attribute_type() == tosa::Attribute_TileAttribute ? static_cast<const tosa::TileAttribute *>(attribute()) : nullptr;
2319 }
2320 const tosa::ResizeAttribute *attribute_as_ResizeAttribute() const {
2321 return attribute_type() == tosa::Attribute_ResizeAttribute ? static_cast<const tosa::ResizeAttribute *>(attribute()) : nullptr;
2322 }
2323 const tosa::ClampAttribute *attribute_as_ClampAttribute() const {
2324 return attribute_type() == tosa::Attribute_ClampAttribute ? static_cast<const tosa::ClampAttribute *>(attribute()) : nullptr;
2325 }
2326 const tosa::RescaleAttribute *attribute_as_RescaleAttribute() const {
2327 return attribute_type() == tosa::Attribute_RescaleAttribute ? static_cast<const tosa::RescaleAttribute *>(attribute()) : nullptr;
2328 }
2329 const tosa::MulAttribute *attribute_as_MulAttribute() const {
2330 return attribute_type() == tosa::Attribute_MulAttribute ? static_cast<const tosa::MulAttribute *>(attribute()) : nullptr;
2331 }
2332 const tosa::ArithmeticRightShiftAttribute *attribute_as_ArithmeticRightShiftAttribute() const {
2333 return attribute_type() == tosa::Attribute_ArithmeticRightShiftAttribute ? static_cast<const tosa::ArithmeticRightShiftAttribute *>(attribute()) : nullptr;
2334 }
2335 const tosa::CondIfAttribute *attribute_as_CondIfAttribute() const {
2336 return attribute_type() == tosa::Attribute_CondIfAttribute ? static_cast<const tosa::CondIfAttribute *>(attribute()) : nullptr;
2337 }
2338 const tosa::WhileLoopAttribute *attribute_as_WhileLoopAttribute() const {
2339 return attribute_type() == tosa::Attribute_WhileLoopAttribute ? static_cast<const tosa::WhileLoopAttribute *>(attribute()) : nullptr;
2340 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002341 const tosa::TransposeAttribute *attribute_as_TransposeAttribute() const {
2342 return attribute_type() == tosa::Attribute_TransposeAttribute ? static_cast<const tosa::TransposeAttribute *>(attribute()) : nullptr;
2343 }
2344 const tosa::TableAttribute *attribute_as_TableAttribute() const {
2345 return attribute_type() == tosa::Attribute_TableAttribute ? static_cast<const tosa::TableAttribute *>(attribute()) : nullptr;
2346 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002347 const tosa::MatMulAttribute *attribute_as_MatMulAttribute() const {
2348 return attribute_type() == tosa::Attribute_MatMulAttribute ? static_cast<const tosa::MatMulAttribute *>(attribute()) : nullptr;
2349 }
2350 const tosa::FullyConnectedAttribute *attribute_as_FullyConnectedAttribute() const {
2351 return attribute_type() == tosa::Attribute_FullyConnectedAttribute ? static_cast<const tosa::FullyConnectedAttribute *>(attribute()) : nullptr;
2352 }
2353 const tosa::NegateAttribute *attribute_as_NegateAttribute() const {
2354 return attribute_type() == tosa::Attribute_NegateAttribute ? static_cast<const tosa::NegateAttribute *>(attribute()) : nullptr;
2355 }
Eric Kunze497ab5d2022-10-21 16:39:01 -07002356 const tosa::CustomAttribute *attribute_as_CustomAttribute() const {
2357 return attribute_type() == tosa::Attribute_CustomAttribute ? static_cast<const tosa::CustomAttribute *>(attribute()) : nullptr;
2358 }
Luke Hutton5e268092023-01-12 22:20:53 +00002359 const tosa::FFTAttribute *attribute_as_FFTAttribute() const {
2360 return attribute_type() == tosa::Attribute_FFTAttribute ? static_cast<const tosa::FFTAttribute *>(attribute()) : nullptr;
2361 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002362 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2363 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2364 }
2365 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2366 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2367 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002368 bool Verify(flatbuffers::Verifier &verifier) const {
2369 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00002370 VerifyField<uint32_t>(verifier, VT_OP, 4) &&
2371 VerifyField<uint8_t>(verifier, VT_ATTRIBUTE_TYPE, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002372 VerifyOffset(verifier, VT_ATTRIBUTE) &&
2373 VerifyAttribute(verifier, attribute(), attribute_type()) &&
2374 VerifyOffset(verifier, VT_INPUTS) &&
2375 verifier.VerifyVector(inputs()) &&
2376 verifier.VerifyVectorOfStrings(inputs()) &&
2377 VerifyOffset(verifier, VT_OUTPUTS) &&
2378 verifier.VerifyVector(outputs()) &&
2379 verifier.VerifyVectorOfStrings(outputs()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002380 verifier.EndTable();
2381 }
2382};
2383
Kevin Cheng79a41992021-08-31 16:04:40 -07002384template<> inline const tosa::PoolAttribute *TosaOperator::attribute_as<tosa::PoolAttribute>() const {
2385 return attribute_as_PoolAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002386}
2387
Kevin Cheng79a41992021-08-31 16:04:40 -07002388template<> inline const tosa::ConvAttribute *TosaOperator::attribute_as<tosa::ConvAttribute>() const {
2389 return attribute_as_ConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002390}
2391
Kevin Cheng79a41992021-08-31 16:04:40 -07002392template<> inline const tosa::TransposeConvAttribute *TosaOperator::attribute_as<tosa::TransposeConvAttribute>() const {
2393 return attribute_as_TransposeConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002394}
2395
Kevin Cheng38d214c2021-10-15 15:49:19 -07002396template<> inline const tosa::PadAttribute *TosaOperator::attribute_as<tosa::PadAttribute>() const {
2397 return attribute_as_PadAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002398}
2399
2400template<> inline const tosa::AxisAttribute *TosaOperator::attribute_as<tosa::AxisAttribute>() const {
2401 return attribute_as_AxisAttribute();
2402}
2403
2404template<> inline const tosa::ReshapeAttribute *TosaOperator::attribute_as<tosa::ReshapeAttribute>() const {
2405 return attribute_as_ReshapeAttribute();
2406}
2407
2408template<> inline const tosa::SliceAttribute *TosaOperator::attribute_as<tosa::SliceAttribute>() const {
2409 return attribute_as_SliceAttribute();
2410}
2411
2412template<> inline const tosa::TileAttribute *TosaOperator::attribute_as<tosa::TileAttribute>() const {
2413 return attribute_as_TileAttribute();
2414}
2415
2416template<> inline const tosa::ResizeAttribute *TosaOperator::attribute_as<tosa::ResizeAttribute>() const {
2417 return attribute_as_ResizeAttribute();
2418}
2419
2420template<> inline const tosa::ClampAttribute *TosaOperator::attribute_as<tosa::ClampAttribute>() const {
2421 return attribute_as_ClampAttribute();
2422}
2423
2424template<> inline const tosa::RescaleAttribute *TosaOperator::attribute_as<tosa::RescaleAttribute>() const {
2425 return attribute_as_RescaleAttribute();
2426}
2427
2428template<> inline const tosa::MulAttribute *TosaOperator::attribute_as<tosa::MulAttribute>() const {
2429 return attribute_as_MulAttribute();
2430}
2431
2432template<> inline const tosa::ArithmeticRightShiftAttribute *TosaOperator::attribute_as<tosa::ArithmeticRightShiftAttribute>() const {
2433 return attribute_as_ArithmeticRightShiftAttribute();
2434}
2435
2436template<> inline const tosa::CondIfAttribute *TosaOperator::attribute_as<tosa::CondIfAttribute>() const {
2437 return attribute_as_CondIfAttribute();
2438}
2439
2440template<> inline const tosa::WhileLoopAttribute *TosaOperator::attribute_as<tosa::WhileLoopAttribute>() const {
2441 return attribute_as_WhileLoopAttribute();
2442}
2443
Kevin Cheng38d214c2021-10-15 15:49:19 -07002444template<> inline const tosa::TransposeAttribute *TosaOperator::attribute_as<tosa::TransposeAttribute>() const {
2445 return attribute_as_TransposeAttribute();
2446}
2447
2448template<> inline const tosa::TableAttribute *TosaOperator::attribute_as<tosa::TableAttribute>() const {
2449 return attribute_as_TableAttribute();
2450}
2451
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002452template<> inline const tosa::MatMulAttribute *TosaOperator::attribute_as<tosa::MatMulAttribute>() const {
2453 return attribute_as_MatMulAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002454}
2455
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002456template<> inline const tosa::FullyConnectedAttribute *TosaOperator::attribute_as<tosa::FullyConnectedAttribute>() const {
2457 return attribute_as_FullyConnectedAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002458}
2459
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002460template<> inline const tosa::NegateAttribute *TosaOperator::attribute_as<tosa::NegateAttribute>() const {
2461 return attribute_as_NegateAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002462}
2463
Eric Kunze497ab5d2022-10-21 16:39:01 -07002464template<> inline const tosa::CustomAttribute *TosaOperator::attribute_as<tosa::CustomAttribute>() const {
2465 return attribute_as_CustomAttribute();
2466}
2467
Luke Hutton5e268092023-01-12 22:20:53 +00002468template<> inline const tosa::FFTAttribute *TosaOperator::attribute_as<tosa::FFTAttribute>() const {
2469 return attribute_as_FFTAttribute();
2470}
2471
Eric Kunze2364dcd2021-04-26 11:06:57 -07002472struct TosaOperatorBuilder {
2473 typedef TosaOperator Table;
2474 flatbuffers::FlatBufferBuilder &fbb_;
2475 flatbuffers::uoffset_t start_;
2476 void add_op(tosa::Op op) {
2477 fbb_.AddElement<uint32_t>(TosaOperator::VT_OP, static_cast<uint32_t>(op), 0);
2478 }
2479 void add_attribute_type(tosa::Attribute attribute_type) {
2480 fbb_.AddElement<uint8_t>(TosaOperator::VT_ATTRIBUTE_TYPE, static_cast<uint8_t>(attribute_type), 0);
2481 }
2482 void add_attribute(flatbuffers::Offset<void> attribute) {
2483 fbb_.AddOffset(TosaOperator::VT_ATTRIBUTE, attribute);
2484 }
2485 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2486 fbb_.AddOffset(TosaOperator::VT_INPUTS, inputs);
2487 }
2488 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2489 fbb_.AddOffset(TosaOperator::VT_OUTPUTS, outputs);
2490 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002491 explicit TosaOperatorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2492 : fbb_(_fbb) {
2493 start_ = fbb_.StartTable();
2494 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002495 flatbuffers::Offset<TosaOperator> Finish() {
2496 const auto end = fbb_.EndTable(start_);
2497 auto o = flatbuffers::Offset<TosaOperator>(end);
2498 return o;
2499 }
2500};
2501
2502inline flatbuffers::Offset<TosaOperator> CreateTosaOperator(
2503 flatbuffers::FlatBufferBuilder &_fbb,
2504 tosa::Op op = tosa::Op_UNKNOWN,
2505 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2506 flatbuffers::Offset<void> attribute = 0,
2507 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002508 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002509 TosaOperatorBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002510 builder_.add_outputs(outputs);
2511 builder_.add_inputs(inputs);
2512 builder_.add_attribute(attribute);
2513 builder_.add_op(op);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002514 builder_.add_attribute_type(attribute_type);
2515 return builder_.Finish();
2516}
2517
2518inline flatbuffers::Offset<TosaOperator> CreateTosaOperatorDirect(
2519 flatbuffers::FlatBufferBuilder &_fbb,
2520 tosa::Op op = tosa::Op_UNKNOWN,
2521 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2522 flatbuffers::Offset<void> attribute = 0,
2523 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002524 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002525 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2526 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2527 return tosa::CreateTosaOperator(
2528 _fbb,
2529 op,
2530 attribute_type,
2531 attribute,
2532 inputs__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002533 outputs__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002534}
2535
2536struct TosaBasicBlock FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2537 typedef TosaBasicBlockBuilder Builder;
2538 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2539 VT_NAME = 4,
2540 VT_OPERATORS = 6,
2541 VT_TENSORS = 8,
2542 VT_INPUTS = 10,
2543 VT_OUTPUTS = 12
2544 };
2545 const flatbuffers::String *name() const {
2546 return GetPointer<const flatbuffers::String *>(VT_NAME);
2547 }
2548 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *operators() const {
2549 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *>(VT_OPERATORS);
2550 }
2551 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors() const {
2552 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *>(VT_TENSORS);
2553 }
2554 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2555 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2556 }
2557 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2558 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2559 }
2560 bool Verify(flatbuffers::Verifier &verifier) const {
2561 return VerifyTableStart(verifier) &&
2562 VerifyOffset(verifier, VT_NAME) &&
2563 verifier.VerifyString(name()) &&
2564 VerifyOffset(verifier, VT_OPERATORS) &&
2565 verifier.VerifyVector(operators()) &&
2566 verifier.VerifyVectorOfTables(operators()) &&
2567 VerifyOffset(verifier, VT_TENSORS) &&
2568 verifier.VerifyVector(tensors()) &&
2569 verifier.VerifyVectorOfTables(tensors()) &&
2570 VerifyOffset(verifier, VT_INPUTS) &&
2571 verifier.VerifyVector(inputs()) &&
2572 verifier.VerifyVectorOfStrings(inputs()) &&
2573 VerifyOffset(verifier, VT_OUTPUTS) &&
2574 verifier.VerifyVector(outputs()) &&
2575 verifier.VerifyVectorOfStrings(outputs()) &&
2576 verifier.EndTable();
2577 }
2578};
2579
2580struct TosaBasicBlockBuilder {
2581 typedef TosaBasicBlock Table;
2582 flatbuffers::FlatBufferBuilder &fbb_;
2583 flatbuffers::uoffset_t start_;
2584 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2585 fbb_.AddOffset(TosaBasicBlock::VT_NAME, name);
2586 }
2587 void add_operators(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators) {
2588 fbb_.AddOffset(TosaBasicBlock::VT_OPERATORS, operators);
2589 }
2590 void add_tensors(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors) {
2591 fbb_.AddOffset(TosaBasicBlock::VT_TENSORS, tensors);
2592 }
2593 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2594 fbb_.AddOffset(TosaBasicBlock::VT_INPUTS, inputs);
2595 }
2596 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2597 fbb_.AddOffset(TosaBasicBlock::VT_OUTPUTS, outputs);
2598 }
2599 explicit TosaBasicBlockBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2600 : fbb_(_fbb) {
2601 start_ = fbb_.StartTable();
2602 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002603 flatbuffers::Offset<TosaBasicBlock> Finish() {
2604 const auto end = fbb_.EndTable(start_);
2605 auto o = flatbuffers::Offset<TosaBasicBlock>(end);
2606 return o;
2607 }
2608};
2609
2610inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlock(
2611 flatbuffers::FlatBufferBuilder &_fbb,
2612 flatbuffers::Offset<flatbuffers::String> name = 0,
2613 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators = 0,
2614 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors = 0,
2615 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
2616 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
2617 TosaBasicBlockBuilder builder_(_fbb);
2618 builder_.add_outputs(outputs);
2619 builder_.add_inputs(inputs);
2620 builder_.add_tensors(tensors);
2621 builder_.add_operators(operators);
2622 builder_.add_name(name);
2623 return builder_.Finish();
2624}
2625
2626inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlockDirect(
2627 flatbuffers::FlatBufferBuilder &_fbb,
2628 const char *name = nullptr,
2629 const std::vector<flatbuffers::Offset<tosa::TosaOperator>> *operators = nullptr,
2630 const std::vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors = nullptr,
2631 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
2632 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
2633 auto name__ = name ? _fbb.CreateString(name) : 0;
2634 auto operators__ = operators ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaOperator>>(*operators) : 0;
2635 auto tensors__ = tensors ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaTensor>>(*tensors) : 0;
2636 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2637 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2638 return tosa::CreateTosaBasicBlock(
2639 _fbb,
2640 name__,
2641 operators__,
2642 tensors__,
2643 inputs__,
2644 outputs__);
2645}
2646
Jerry Ge13c78a62022-10-04 20:32:39 -07002647struct TosaRegion FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2648 typedef TosaRegionBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002649 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Jerry Ge13c78a62022-10-04 20:32:39 -07002650 VT_NAME = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -07002651 VT_BLOCKS = 6
2652 };
Jerry Ge13c78a62022-10-04 20:32:39 -07002653 const flatbuffers::String *name() const {
2654 return GetPointer<const flatbuffers::String *>(VT_NAME);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002655 }
2656 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks() const {
2657 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *>(VT_BLOCKS);
2658 }
2659 bool Verify(flatbuffers::Verifier &verifier) const {
2660 return VerifyTableStart(verifier) &&
Jerry Ge13c78a62022-10-04 20:32:39 -07002661 VerifyOffset(verifier, VT_NAME) &&
2662 verifier.VerifyString(name()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002663 VerifyOffset(verifier, VT_BLOCKS) &&
2664 verifier.VerifyVector(blocks()) &&
2665 verifier.VerifyVectorOfTables(blocks()) &&
2666 verifier.EndTable();
2667 }
2668};
2669
Jerry Ge13c78a62022-10-04 20:32:39 -07002670struct TosaRegionBuilder {
2671 typedef TosaRegion Table;
2672 flatbuffers::FlatBufferBuilder &fbb_;
2673 flatbuffers::uoffset_t start_;
2674 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2675 fbb_.AddOffset(TosaRegion::VT_NAME, name);
2676 }
2677 void add_blocks(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks) {
2678 fbb_.AddOffset(TosaRegion::VT_BLOCKS, blocks);
2679 }
2680 explicit TosaRegionBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2681 : fbb_(_fbb) {
2682 start_ = fbb_.StartTable();
2683 }
2684 flatbuffers::Offset<TosaRegion> Finish() {
2685 const auto end = fbb_.EndTable(start_);
2686 auto o = flatbuffers::Offset<TosaRegion>(end);
2687 return o;
2688 }
2689};
2690
2691inline flatbuffers::Offset<TosaRegion> CreateTosaRegion(
2692 flatbuffers::FlatBufferBuilder &_fbb,
2693 flatbuffers::Offset<flatbuffers::String> name = 0,
2694 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks = 0) {
2695 TosaRegionBuilder builder_(_fbb);
2696 builder_.add_blocks(blocks);
2697 builder_.add_name(name);
2698 return builder_.Finish();
2699}
2700
2701inline flatbuffers::Offset<TosaRegion> CreateTosaRegionDirect(
2702 flatbuffers::FlatBufferBuilder &_fbb,
2703 const char *name = nullptr,
2704 const std::vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks = nullptr) {
2705 auto name__ = name ? _fbb.CreateString(name) : 0;
2706 auto blocks__ = blocks ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaBasicBlock>>(*blocks) : 0;
2707 return tosa::CreateTosaRegion(
2708 _fbb,
2709 name__,
2710 blocks__);
2711}
2712
2713struct TosaGraph FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2714 typedef TosaGraphBuilder Builder;
2715 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2716 VT_VERSION = 4,
2717 VT_REGIONS = 6
2718 };
2719 const tosa::Version *version() const {
2720 return GetPointer<const tosa::Version *>(VT_VERSION);
2721 }
2722 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaRegion>> *regions() const {
2723 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaRegion>> *>(VT_REGIONS);
2724 }
2725 bool Verify(flatbuffers::Verifier &verifier) const {
2726 return VerifyTableStart(verifier) &&
2727 VerifyOffset(verifier, VT_VERSION) &&
2728 verifier.VerifyTable(version()) &&
2729 VerifyOffset(verifier, VT_REGIONS) &&
2730 verifier.VerifyVector(regions()) &&
2731 verifier.VerifyVectorOfTables(regions()) &&
2732 verifier.EndTable();
2733 }
2734};
2735
Eric Kunze2364dcd2021-04-26 11:06:57 -07002736struct TosaGraphBuilder {
2737 typedef TosaGraph Table;
2738 flatbuffers::FlatBufferBuilder &fbb_;
2739 flatbuffers::uoffset_t start_;
2740 void add_version(flatbuffers::Offset<tosa::Version> version) {
2741 fbb_.AddOffset(TosaGraph::VT_VERSION, version);
2742 }
Jerry Ge13c78a62022-10-04 20:32:39 -07002743 void add_regions(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaRegion>>> regions) {
2744 fbb_.AddOffset(TosaGraph::VT_REGIONS, regions);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002745 }
2746 explicit TosaGraphBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2747 : fbb_(_fbb) {
2748 start_ = fbb_.StartTable();
2749 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002750 flatbuffers::Offset<TosaGraph> Finish() {
2751 const auto end = fbb_.EndTable(start_);
2752 auto o = flatbuffers::Offset<TosaGraph>(end);
2753 return o;
2754 }
2755};
2756
2757inline flatbuffers::Offset<TosaGraph> CreateTosaGraph(
2758 flatbuffers::FlatBufferBuilder &_fbb,
2759 flatbuffers::Offset<tosa::Version> version = 0,
Jerry Ge13c78a62022-10-04 20:32:39 -07002760 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaRegion>>> regions = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002761 TosaGraphBuilder builder_(_fbb);
Jerry Ge13c78a62022-10-04 20:32:39 -07002762 builder_.add_regions(regions);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002763 builder_.add_version(version);
2764 return builder_.Finish();
2765}
2766
2767inline flatbuffers::Offset<TosaGraph> CreateTosaGraphDirect(
2768 flatbuffers::FlatBufferBuilder &_fbb,
2769 flatbuffers::Offset<tosa::Version> version = 0,
Jerry Ge13c78a62022-10-04 20:32:39 -07002770 const std::vector<flatbuffers::Offset<tosa::TosaRegion>> *regions = nullptr) {
2771 auto regions__ = regions ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaRegion>>(*regions) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002772 return tosa::CreateTosaGraph(
2773 _fbb,
2774 version,
Jerry Ge13c78a62022-10-04 20:32:39 -07002775 regions__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002776}
2777
2778inline bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type) {
2779 switch (type) {
2780 case Attribute_NONE: {
2781 return true;
2782 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002783 case Attribute_PoolAttribute: {
2784 auto ptr = reinterpret_cast<const tosa::PoolAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002785 return verifier.VerifyTable(ptr);
2786 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002787 case Attribute_ConvAttribute: {
2788 auto ptr = reinterpret_cast<const tosa::ConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002789 return verifier.VerifyTable(ptr);
2790 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002791 case Attribute_TransposeConvAttribute: {
2792 auto ptr = reinterpret_cast<const tosa::TransposeConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002793 return verifier.VerifyTable(ptr);
2794 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002795 case Attribute_PadAttribute: {
2796 auto ptr = reinterpret_cast<const tosa::PadAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002797 return verifier.VerifyTable(ptr);
2798 }
2799 case Attribute_AxisAttribute: {
2800 auto ptr = reinterpret_cast<const tosa::AxisAttribute *>(obj);
2801 return verifier.VerifyTable(ptr);
2802 }
2803 case Attribute_ReshapeAttribute: {
2804 auto ptr = reinterpret_cast<const tosa::ReshapeAttribute *>(obj);
2805 return verifier.VerifyTable(ptr);
2806 }
2807 case Attribute_SliceAttribute: {
2808 auto ptr = reinterpret_cast<const tosa::SliceAttribute *>(obj);
2809 return verifier.VerifyTable(ptr);
2810 }
2811 case Attribute_TileAttribute: {
2812 auto ptr = reinterpret_cast<const tosa::TileAttribute *>(obj);
2813 return verifier.VerifyTable(ptr);
2814 }
2815 case Attribute_ResizeAttribute: {
2816 auto ptr = reinterpret_cast<const tosa::ResizeAttribute *>(obj);
2817 return verifier.VerifyTable(ptr);
2818 }
2819 case Attribute_ClampAttribute: {
2820 auto ptr = reinterpret_cast<const tosa::ClampAttribute *>(obj);
2821 return verifier.VerifyTable(ptr);
2822 }
2823 case Attribute_RescaleAttribute: {
2824 auto ptr = reinterpret_cast<const tosa::RescaleAttribute *>(obj);
2825 return verifier.VerifyTable(ptr);
2826 }
2827 case Attribute_MulAttribute: {
2828 auto ptr = reinterpret_cast<const tosa::MulAttribute *>(obj);
2829 return verifier.VerifyTable(ptr);
2830 }
2831 case Attribute_ArithmeticRightShiftAttribute: {
2832 auto ptr = reinterpret_cast<const tosa::ArithmeticRightShiftAttribute *>(obj);
2833 return verifier.VerifyTable(ptr);
2834 }
2835 case Attribute_CondIfAttribute: {
2836 auto ptr = reinterpret_cast<const tosa::CondIfAttribute *>(obj);
2837 return verifier.VerifyTable(ptr);
2838 }
2839 case Attribute_WhileLoopAttribute: {
2840 auto ptr = reinterpret_cast<const tosa::WhileLoopAttribute *>(obj);
2841 return verifier.VerifyTable(ptr);
2842 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002843 case Attribute_TransposeAttribute: {
2844 auto ptr = reinterpret_cast<const tosa::TransposeAttribute *>(obj);
2845 return verifier.VerifyTable(ptr);
2846 }
2847 case Attribute_TableAttribute: {
2848 auto ptr = reinterpret_cast<const tosa::TableAttribute *>(obj);
2849 return verifier.VerifyTable(ptr);
2850 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002851 case Attribute_MatMulAttribute: {
2852 auto ptr = reinterpret_cast<const tosa::MatMulAttribute *>(obj);
2853 return verifier.VerifyTable(ptr);
2854 }
2855 case Attribute_FullyConnectedAttribute: {
2856 auto ptr = reinterpret_cast<const tosa::FullyConnectedAttribute *>(obj);
2857 return verifier.VerifyTable(ptr);
2858 }
2859 case Attribute_NegateAttribute: {
2860 auto ptr = reinterpret_cast<const tosa::NegateAttribute *>(obj);
2861 return verifier.VerifyTable(ptr);
2862 }
Eric Kunze497ab5d2022-10-21 16:39:01 -07002863 case Attribute_CustomAttribute: {
2864 auto ptr = reinterpret_cast<const tosa::CustomAttribute *>(obj);
2865 return verifier.VerifyTable(ptr);
2866 }
Luke Hutton5e268092023-01-12 22:20:53 +00002867 case Attribute_FFTAttribute: {
2868 auto ptr = reinterpret_cast<const tosa::FFTAttribute *>(obj);
2869 return verifier.VerifyTable(ptr);
2870 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002871 default: return true;
2872 }
2873}
2874
2875inline bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
2876 if (!values || !types) return !values && !types;
2877 if (values->size() != types->size()) return false;
2878 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
2879 if (!VerifyAttribute(
2880 verifier, values->Get(i), types->GetEnum<Attribute>(i))) {
2881 return false;
2882 }
2883 }
2884 return true;
2885}
2886
Eric Kunze2364dcd2021-04-26 11:06:57 -07002887inline const tosa::TosaGraph *GetTosaGraph(const void *buf) {
2888 return flatbuffers::GetRoot<tosa::TosaGraph>(buf);
2889}
2890
2891inline const tosa::TosaGraph *GetSizePrefixedTosaGraph(const void *buf) {
2892 return flatbuffers::GetSizePrefixedRoot<tosa::TosaGraph>(buf);
2893}
2894
2895inline const char *TosaGraphIdentifier() {
2896 return "TOSA";
2897}
2898
2899inline bool TosaGraphBufferHasIdentifier(const void *buf) {
2900 return flatbuffers::BufferHasIdentifier(
2901 buf, TosaGraphIdentifier());
2902}
2903
Eric Kunze4381b3d2022-08-22 18:15:41 +00002904inline bool SizePrefixedTosaGraphBufferHasIdentifier(const void *buf) {
2905 return flatbuffers::BufferHasIdentifier(
2906 buf, TosaGraphIdentifier(), true);
2907}
2908
Eric Kunze2364dcd2021-04-26 11:06:57 -07002909inline bool VerifyTosaGraphBuffer(
2910 flatbuffers::Verifier &verifier) {
2911 return verifier.VerifyBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2912}
2913
2914inline bool VerifySizePrefixedTosaGraphBuffer(
2915 flatbuffers::Verifier &verifier) {
2916 return verifier.VerifySizePrefixedBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2917}
2918
2919inline const char *TosaGraphExtension() {
2920 return "tosa";
2921}
2922
2923inline void FinishTosaGraphBuffer(
2924 flatbuffers::FlatBufferBuilder &fbb,
2925 flatbuffers::Offset<tosa::TosaGraph> root) {
2926 fbb.Finish(root, TosaGraphIdentifier());
2927}
2928
2929inline void FinishSizePrefixedTosaGraphBuffer(
2930 flatbuffers::FlatBufferBuilder &fbb,
2931 flatbuffers::Offset<tosa::TosaGraph> root) {
2932 fbb.FinishSizePrefixed(root, TosaGraphIdentifier());
2933}
2934
2935} // namespace tosa
2936
2937#endif // FLATBUFFERS_GENERATED_TOSA_TOSA_H_