MLIR  21.0.0git
TosaComplianceData.h.inc
Go to the documentation of this file.
1 // The profile-based compliance content below is auto-generated by the script
2 // `tools/genspec.py` in https://git.mlplatform.org/tosa/specification.git
3 profileComplianceMap = {
4  {"tosa.argmax",
5  {{{Profile::pro_int}, {{i8T, i32T}}},
6  {{Profile::pro_fp}, {{fp16T, i32T}, {fp32T, i32T}}}}},
7  {"tosa.avg_pool2d",
8  {{{Profile::pro_int}, {{i8T, i8T, i8T, i32T, i8T}}},
9  {{Profile::pro_fp},
10  {{fp16T, fp16T, fp16T, fp16T, fp16T},
11  {fp16T, fp16T, fp16T, fp32T, fp16T},
12  {fp32T, fp32T, fp32T, fp32T, fp32T}}}}},
13  {"tosa.conv2d",
14  {{{Profile::pro_int}, {{i8T, i8T, i32T, i8T, i8T, i32T, i32T}}},
15  {{Profile::pro_fp},
16  {{fp16T, fp16T, fp16T, fp16T, fp16T, fp16T, fp16T},
17  {fp16T, fp16T, fp16T, fp16T, fp16T, fp32T, fp16T},
18  {fp32T, fp32T, fp32T, fp32T, fp32T, fp32T, fp32T}}}}},
19  {"tosa.conv3d",
20  {{{Profile::pro_int}, {{i8T, i8T, i32T, i8T, i8T, i32T, i32T}}},
21  {{Profile::pro_fp},
22  {{fp16T, fp16T, fp16T, fp16T, fp16T, fp16T, fp16T},
23  {fp16T, fp16T, fp16T, fp16T, fp16T, fp32T, fp16T},
24  {fp32T, fp32T, fp32T, fp32T, fp32T, fp32T, fp32T}}}}},
25  {"tosa.depthwise_conv2d",
26  {{{Profile::pro_int}, {{i8T, i8T, i32T, i8T, i8T, i32T, i32T}}},
27  {{Profile::pro_fp},
28  {{fp16T, fp16T, fp16T, fp16T, fp16T, fp16T, fp16T},
29  {fp16T, fp16T, fp16T, fp16T, fp16T, fp32T, fp16T},
30  {fp32T, fp32T, fp32T, fp32T, fp32T, fp32T, fp32T}}}}},
31  {"tosa.matmul",
32  {{{Profile::pro_int}, {{i8T, i8T, i8T, i8T, i32T}}},
33  {{Profile::pro_fp},
34  {{fp16T, fp16T, fp16T, fp16T, fp16T},
35  {fp16T, fp16T, fp16T, fp16T, fp32T},
36  {fp32T, fp32T, fp32T, fp32T, fp32T}}}}},
37  {"tosa.max_pool2d",
38  {{{Profile::pro_int}, {{i8T, i8T}}},
39  {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
40  {"tosa.transpose_conv2d",
41  {{{Profile::pro_int}, {{i8T, i8T, i32T, i8T, i8T, i32T, i32T}}},
42  {{Profile::pro_fp},
43  {{fp16T, fp16T, fp16T, fp16T, fp16T, fp16T, fp16T},
44  {fp16T, fp16T, fp16T, fp16T, fp16T, fp32T, fp16T},
45  {fp32T, fp32T, fp32T, fp32T, fp32T, fp32T, fp32T}}}}},
46  {"tosa.clamp",
47  {{{Profile::pro_int}, {{i8T, i8T}}},
48  {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
49  {"tosa.erf", {{{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
50  {"tosa.sigmoid", {{{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
51  {"tosa.tanh", {{{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
52  {"tosa.add",
53  {{{Profile::pro_int, Profile::pro_fp}, {{i32T, i32T, i32T}}, anyOf},
54  {{Profile::pro_fp}, {{fp16T, fp16T, fp16T}, {fp32T, fp32T, fp32T}}}}},
55  {"tosa.arithmetic_right_shift",
56  {{{Profile::pro_int},
57  {{i8T, i8T, i8T}, {i16T, i16T, i16T}, {i32T, i32T, i32T}}}}},
58  {"tosa.bitwise_and",
59  {{{Profile::pro_int},
60  {{i8T, i8T, i8T}, {i16T, i16T, i16T}, {i32T, i32T, i32T}}}}},
61  {"tosa.bitwise_or",
62  {{{Profile::pro_int},
63  {{i8T, i8T, i8T}, {i16T, i16T, i16T}, {i32T, i32T, i32T}}}}},
64  {"tosa.bitwise_xor",
65  {{{Profile::pro_int},
66  {{i8T, i8T, i8T}, {i16T, i16T, i16T}, {i32T, i32T, i32T}}}}},
67  {"tosa.intdiv",
68  {{{Profile::pro_int, Profile::pro_fp}, {{i32T, i32T, i32T}}, anyOf}}},
69  {"tosa.logical_and",
70  {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT, boolT}}, anyOf}}},
71  {"tosa.logical_left_shift",
72  {{{Profile::pro_int, Profile::pro_fp},
73  {{i8T, i8T, i8T}, {i16T, i16T, i16T}, {i32T, i32T, i32T}},
74  anyOf}}},
75  {"tosa.logical_right_shift",
76  {{{Profile::pro_int, Profile::pro_fp},
77  {{i8T, i8T, i8T}, {i16T, i16T, i16T}, {i32T, i32T, i32T}},
78  anyOf}}},
79  {"tosa.logical_or",
80  {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT, boolT}}, anyOf}}},
81  {"tosa.logical_xor",
82  {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT, boolT}}, anyOf}}},
83  {"tosa.maximum",
84  {{{Profile::pro_int}, {{i32T, i32T, i32T}}},
85  {{Profile::pro_fp}, {{fp16T, fp16T, fp16T}, {fp32T, fp32T, fp32T}}}}},
86  {"tosa.minimum",
87  {{{Profile::pro_int}, {{i32T, i32T, i32T}}},
88  {{Profile::pro_fp}, {{fp16T, fp16T, fp16T}, {fp32T, fp32T, fp32T}}}}},
89  {"tosa.mul",
90  {{{Profile::pro_int}, {{i8T, i8T, i32T}, {i16T, i16T, i32T}}},
91  {{Profile::pro_int, Profile::pro_fp}, {{i32T, i32T, i32T}}, anyOf},
92  {{Profile::pro_fp}, {{fp16T, fp16T, fp16T}, {fp32T, fp32T, fp32T}}}}},
93  {"tosa.pow",
94  {{{Profile::pro_fp}, {{fp16T, fp16T, fp16T}, {fp32T, fp32T, fp32T}}}}},
95  {"tosa.sub",
96  {{{Profile::pro_int, Profile::pro_fp}, {{i32T, i32T, i32T}}, anyOf},
97  {{Profile::pro_fp}, {{fp16T, fp16T, fp16T}, {fp32T, fp32T, fp32T}}}}},
98  {"tosa.table", {{{Profile::pro_int}, {{i8T, i8T, i8T}}}}},
99  {"tosa.abs",
100  {{{Profile::pro_int}, {{i32T, i32T}}},
101  {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
102  {"tosa.bitwise_not",
103  {{{Profile::pro_int}, {{i8T, i8T}, {i16T, i16T}, {i32T, i32T}}}}},
104  {"tosa.ceil", {{{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
105  {"tosa.clz", {{{Profile::pro_int}, {{i32T, i32T}}}}},
106  {"tosa.cos", {{{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
107  {"tosa.exp", {{{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
108  {"tosa.floor", {{{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
109  {"tosa.log", {{{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
110  {"tosa.logical_not",
111  {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT}}, anyOf}}},
112  {"tosa.negate",
113  {{{Profile::pro_int},
114  {{i8T, i8T, i8T, i8T},
115  {i16T, i16T, i16T, i16T},
116  {i32T, i32T, i32T, i32T}}},
117  {{Profile::pro_fp},
118  {{fp16T, fp16T, fp16T, fp16T}, {fp32T, fp32T, fp32T, fp32T}}}}},
119  {"tosa.reciprocal",
120  {{{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
121  {"tosa.rsqrt", {{{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
122  {"tosa.sin", {{{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
123  {"tosa.select",
124  {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT, boolT}}, anyOf},
125  {{Profile::pro_int},
126  {{i8T, i8T, i8T}, {i16T, i16T, i16T}, {i32T, i32T, i32T}}},
127  {{Profile::pro_fp}, {{fp16T, fp16T, fp16T}, {fp32T, fp32T, fp32T}}}}},
128  {"tosa.equal",
129  {{{Profile::pro_int}, {{i32T, i32T, boolT}}},
130  {{Profile::pro_fp}, {{fp16T, fp16T, boolT}, {fp32T, fp32T, boolT}}}}},
131  {"tosa.greater",
132  {{{Profile::pro_int}, {{i32T, i32T, boolT}}},
133  {{Profile::pro_fp}, {{fp16T, fp16T, boolT}, {fp32T, fp32T, boolT}}}}},
134  {"tosa.greater_equal",
135  {{{Profile::pro_int}, {{i32T, i32T, boolT}}},
136  {{Profile::pro_fp}, {{fp16T, fp16T, boolT}, {fp32T, fp32T, boolT}}}}},
137  {"tosa.reduce_all",
138  {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT}}, anyOf}}},
139  {"tosa.reduce_any",
140  {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT}}, anyOf}}},
141  {"tosa.reduce_max",
142  {{{Profile::pro_int}, {{i8T, i8T}, {i16T, i16T}, {i32T, i32T}}},
143  {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
144  {"tosa.reduce_min",
145  {{{Profile::pro_int}, {{i8T, i8T}, {i16T, i16T}, {i32T, i32T}}},
146  {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
147  {"tosa.reduce_product",
148  {{{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
149  {"tosa.reduce_sum",
150  {{{Profile::pro_int}, {{i32T, i32T}}},
151  {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
152  {"tosa.concat",
153  {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT}}, anyOf},
154  {{Profile::pro_int}, {{i8T, i8T}, {i32T, i32T}}},
155  {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
156  {"tosa.pad",
157  {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT, boolT}}, anyOf},
158  {{Profile::pro_int},
159  {{i8T, i8T, i8T}, {i16T, i16T, i16T}, {i32T, i32T, i32T}}},
160  {{Profile::pro_fp}, {{fp16T, fp16T, fp16T}, {fp32T, fp32T, fp32T}}}}},
161  {"tosa.reshape",
162  {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT}}, anyOf},
163  {{Profile::pro_int}, {{i8T, i8T}, {i16T, i16T}, {i32T, i32T}}},
164  {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
165  {"tosa.reverse",
166  {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT}}, anyOf},
167  {{Profile::pro_int}, {{i8T, i8T}, {i16T, i16T}, {i32T, i32T}}},
168  {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
169  {"tosa.slice",
170  {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT}}, anyOf},
171  {{Profile::pro_int}, {{i8T, i8T}, {i16T, i16T}, {i32T, i32T}}},
172  {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
173  {"tosa.tile",
174  {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT}}, anyOf},
175  {{Profile::pro_int}, {{i8T, i8T}, {i16T, i16T}, {i32T, i32T}}},
176  {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
177  {"tosa.transpose",
178  {{{Profile::pro_int, Profile::pro_fp}, {{boolT, boolT}}, anyOf},
179  {{Profile::pro_int}, {{i8T, i8T}, {i16T, i16T}, {i32T, i32T}}},
180  {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
181  {"tosa.gather",
182  {{{Profile::pro_int},
183  {{i8T, i32T, i8T}, {i16T, i32T, i16T}, {i32T, i32T, i32T}}},
184  {{Profile::pro_fp}, {{fp16T, i32T, fp16T}, {fp32T, i32T, fp32T}}}}},
185  {"tosa.scatter",
186  {{{Profile::pro_int},
187  {{i8T, i32T, i8T, i8T},
188  {i16T, i32T, i16T, i16T},
189  {i32T, i32T, i32T, i32T}}},
190  {{Profile::pro_fp},
191  {{fp16T, i32T, fp16T, fp16T}, {fp32T, i32T, fp32T, fp32T}}}}},
192  {"tosa.resize",
193  {{{Profile::pro_int}, {{i8T, i32T}, {i8T, i8T}}},
194  {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
195  {"tosa.cast",
196  {{{Profile::pro_int},
197  {{boolT, i8T},
198  {boolT, i16T},
199  {boolT, i32T},
200  {i8T, boolT},
201  {i8T, i16T},
202  {i8T, i32T},
203  {i16T, boolT},
204  {i16T, i8T},
205  {i16T, i32T},
206  {i32T, boolT},
207  {i32T, i8T},
208  {i32T, i16T}}},
209  {{Profile::pro_fp},
210  {{i8T, fp16T},
211  {i8T, fp32T},
212  {i16T, fp16T},
213  {i16T, fp32T},
214  {i32T, fp16T},
215  {i32T, fp32T},
216  {fp16T, i8T},
217  {fp16T, i16T},
218  {fp16T, i32T},
219  {fp16T, fp32T},
220  {fp32T, i8T},
221  {fp32T, i16T},
222  {fp32T, i32T},
223  {fp32T, fp16T}}}}},
224  {"tosa.rescale",
225  {{{Profile::pro_int},
226  {{i8T, i8T, i8T, i8T},
227  {i8T, i8T, i16T, i16T},
228  {i8T, i8T, i32T, i32T},
229  {i16T, i16T, i8T, i8T},
230  {i16T, i16T, i16T, i16T},
231  {i16T, i16T, i32T, i32T},
232  {i32T, i32T, i8T, i8T},
233  {i32T, i32T, i16T, i16T},
234  {i32T, i32T, i32T, i32T}}}}},
235  {"tosa.const",
236  {{{Profile::pro_int, Profile::pro_fp},
237  {{boolT}, {i8T}, {i16T}, {i32T}},
238  anyOf},
239  {{Profile::pro_fp}, {{fp16T}, {fp32T}}}}},
240  {"tosa.identity",
241  {{{Profile::pro_int, Profile::pro_fp},
242  {{boolT, boolT}, {i8T, i8T}, {i16T, i16T}, {i32T, i32T}},
243  anyOf},
244  {{Profile::pro_fp}, {{fp16T, fp16T}, {fp32T, fp32T}}}}},
245  {"tosa.variable",
246  {{{Profile::pro_int}, {{i8T}}}, {{Profile::pro_fp}, {{fp16T}, {fp32T}}}}},
247  {"tosa.variable_write",
248  {{{Profile::pro_int}, {{i8T}}}, {{Profile::pro_fp}, {{fp16T}, {fp32T}}}}},
249  {"tosa.variable_read",
250  {{{Profile::pro_int}, {{i8T}}}, {{Profile::pro_fp}, {{fp16T}, {fp32T}}}}},
251 };
252 
253 extensionComplianceMap = {
254  {"tosa.argmax",
255  {{{Extension::int16}, {{i16T, i32T}}},
256  {{Extension::fp8e4m3}, {{fp8e4m3T, i32T}}},
257  {{Extension::fp8e5m2}, {{fp8e5m2T, i32T}}},
258  {{Extension::bf16}, {{bf16T, i32T}}}}},
259  {"tosa.avg_pool2d",
260  {{{Extension::int16}, {{i16T, i16T, i16T, i32T, i16T}}},
261  {{Extension::fp8e4m3}, {{fp8e4m3T, fp8e4m3T, fp8e4m3T, fp16T, fp8e4m3T}}},
262  {{Extension::fp8e5m2}, {{fp8e5m2T, fp8e5m2T, fp8e5m2T, fp16T, fp8e5m2T}}},
263  {{Extension::bf16}, {{bf16T, bf16T, bf16T, fp32T, bf16T}}}}},
264  {"tosa.conv2d",
265  {{{Extension::int4}, {{i8T, i4T, i32T, i8T, i4T, i32T, i32T}}},
266  {{Extension::int16}, {{i16T, i8T, i48T, i16T, i8T, i48T, i48T}}},
267  {{Extension::fp8e4m3},
268  {{fp8e4m3T, fp8e4m3T, fp16T, fp8e4m3T, fp8e4m3T, fp16T, fp16T}}},
269  {{Extension::fp8e5m2},
270  {{fp8e5m2T, fp8e5m2T, fp16T, fp8e5m2T, fp8e5m2T, fp16T, fp16T}}},
271  {{Extension::bf16},
272  {{bf16T, bf16T, bf16T, bf16T, bf16T, fp32T, bf16T}}}}},
273  {"tosa.conv3d",
274  {{{Extension::int4}, {{i8T, i4T, i32T, i8T, i4T, i32T, i32T}}},
275  {{Extension::int16}, {{i16T, i8T, i48T, i16T, i8T, i48T, i48T}}},
276  {{Extension::fp8e4m3},
277  {{fp8e4m3T, fp8e4m3T, fp16T, fp8e4m3T, fp8e4m3T, fp16T, fp16T}}},
278  {{Extension::fp8e5m2},
279  {{fp8e5m2T, fp8e5m2T, fp16T, fp8e5m2T, fp8e5m2T, fp16T, fp16T}}},
280  {{Extension::bf16},
281  {{bf16T, bf16T, bf16T, bf16T, bf16T, fp32T, bf16T}}}}},
282  {"tosa.depthwise_conv2d",
283  {{{Extension::int4}, {{i8T, i4T, i32T, i8T, i4T, i32T, i32T}}},
284  {{Extension::int16}, {{i16T, i8T, i48T, i16T, i8T, i48T, i48T}}},
285  {{Extension::fp8e4m3},
286  {{fp8e4m3T, fp8e4m3T, fp16T, fp8e4m3T, fp8e4m3T, fp16T, fp16T}}},
287  {{Extension::fp8e5m2},
288  {{fp8e5m2T, fp8e5m2T, fp16T, fp8e5m2T, fp8e5m2T, fp16T, fp16T}}},
289  {{Extension::bf16},
290  {{bf16T, bf16T, bf16T, bf16T, bf16T, fp32T, bf16T}}}}},
291  {"tosa.fft2d", {{{Extension::fft}, {{fp32T, fp32T, fp32T, fp32T}}}}},
292  {"tosa.matmul",
293  {{{Extension::int16}, {{i16T, i16T, i16T, i16T, i48T}}},
294  {{Extension::fp8e4m3},
295  {{fp8e4m3T, fp8e4m3T, fp8e4m3T, fp8e4m3T, fp16T},
296  {fp8e4m3T, fp8e4m3T, fp8e4m3T, fp8e4m3T, fp32T}}},
297  {{Extension::fp8e5m2},
298  {{fp8e5m2T, fp8e5m2T, fp8e5m2T, fp8e5m2T, fp16T},
299  {fp8e5m2T, fp8e5m2T, fp8e5m2T, fp8e5m2T, fp32T}}},
300  {{Extension::fp8e4m3, Extension::fp8e5m2},
301  {{fp8e4m3T, fp8e5m2T, fp8e4m3T, fp8e5m2T, fp16T},
302  {fp8e4m3T, fp8e5m2T, fp8e4m3T, fp8e5m2T, fp32T},
303  {fp8e5m2T, fp8e4m3T, fp8e5m2T, fp8e4m3T, fp16T},
304  {fp8e5m2T, fp8e4m3T, fp8e5m2T, fp8e4m3T, fp32T}},
305  allOf},
306  {{Extension::bf16}, {{bf16T, bf16T, bf16T, bf16T, fp32T}}}}},
307  {"tosa.max_pool2d",
308  {{{Extension::int16}, {{i16T, i16T}}},
309  {{Extension::fp8e4m3}, {{fp8e4m3T, fp8e4m3T}}},
310  {{Extension::fp8e5m2}, {{fp8e5m2T, fp8e5m2T}}},
311  {{Extension::bf16}, {{bf16T, bf16T}}}}},
312  {"tosa.rfft2d", {{{Extension::fft}, {{fp32T, fp32T, fp32T}}}}},
313  {"tosa.transpose_conv2d",
314  {{{Extension::int4}, {{i8T, i4T, i32T, i8T, i4T, i32T, i32T}}},
315  {{Extension::int16}, {{i16T, i8T, i48T, i16T, i8T, i48T, i48T}}},
316  {{Extension::fp8e4m3},
317  {{fp8e4m3T, fp8e4m3T, fp16T, fp8e4m3T, fp8e4m3T, fp16T, fp16T}}},
318  {{Extension::fp8e5m2},
319  {{fp8e5m2T, fp8e5m2T, fp16T, fp8e5m2T, fp8e5m2T, fp16T, fp16T}}},
320  {{Extension::bf16},
321  {{bf16T, bf16T, bf16T, bf16T, bf16T, fp32T, bf16T}}}}},
322  {"tosa.clamp",
323  {{{Extension::int16}, {{i16T, i16T}}},
324  {{Extension::bf16}, {{bf16T, bf16T}}}}},
325  {"tosa.erf", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
326  {"tosa.sigmoid", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
327  {"tosa.tanh", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
328  {"tosa.add", {{{Extension::bf16}, {{bf16T, bf16T, bf16T}}}}},
329  {"tosa.maximum", {{{Extension::bf16}, {{bf16T, bf16T, bf16T}}}}},
330  {"tosa.minimum", {{{Extension::bf16}, {{bf16T, bf16T, bf16T}}}}},
331  {"tosa.mul", {{{Extension::bf16}, {{bf16T, bf16T, bf16T}}}}},
332  {"tosa.pow", {{{Extension::bf16}, {{bf16T, bf16T, bf16T}}}}},
333  {"tosa.sub", {{{Extension::bf16}, {{bf16T, bf16T, bf16T}}}}},
334  {"tosa.table", {{{Extension::int16}, {{i16T, i16T, i32T}}}}},
335  {"tosa.abs", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
336  {"tosa.ceil", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
337  {"tosa.cos", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
338  {"tosa.exp", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
339  {"tosa.floor", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
340  {"tosa.log", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
341  {"tosa.negate", {{{Extension::bf16}, {{bf16T, bf16T, bf16T, bf16T}}}}},
342  {"tosa.reciprocal", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
343  {"tosa.rsqrt", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
344  {"tosa.sin", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
345  {"tosa.select", {{{Extension::bf16}, {{bf16T, bf16T, bf16T}}}}},
346  {"tosa.equal", {{{Extension::bf16}, {{bf16T, bf16T, boolT}}}}},
347  {"tosa.greater", {{{Extension::bf16}, {{bf16T, bf16T, boolT}}}}},
348  {"tosa.greater_equal", {{{Extension::bf16}, {{bf16T, bf16T, boolT}}}}},
349  {"tosa.reduce_max", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
350  {"tosa.reduce_min", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
351  {"tosa.reduce_product", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
352  {"tosa.reduce_sum", {{{Extension::bf16}, {{bf16T, bf16T}}}}},
353  {"tosa.concat",
354  {{{Extension::int16}, {{i16T, i16T}}},
355  {{Extension::fp8e4m3}, {{fp8e4m3T, fp8e4m3T}}},
356  {{Extension::fp8e5m2}, {{fp8e5m2T, fp8e5m2T}}},
357  {{Extension::bf16}, {{bf16T, bf16T}}}}},
358  {"tosa.pad",
359  {{{Extension::fp8e4m3}, {{fp8e4m3T, fp8e4m3T, fp8e4m3T}}},
360  {{Extension::fp8e5m2}, {{fp8e5m2T, fp8e5m2T, fp8e5m2T}}},
361  {{Extension::bf16}, {{bf16T, bf16T, bf16T}}}}},
362  {"tosa.reshape",
363  {{{Extension::fp8e4m3}, {{fp8e4m3T, fp8e4m3T}}},
364  {{Extension::fp8e5m2}, {{fp8e5m2T, fp8e5m2T}}},
365  {{Extension::bf16}, {{bf16T, bf16T}}}}},
366  {"tosa.reverse",
367  {{{Extension::fp8e4m3}, {{fp8e4m3T, fp8e4m3T}}},
368  {{Extension::fp8e5m2}, {{fp8e5m2T, fp8e5m2T}}},
369  {{Extension::bf16}, {{bf16T, bf16T}}}}},
370  {"tosa.slice",
371  {{{Extension::fp8e4m3}, {{fp8e4m3T, fp8e4m3T}}},
372  {{Extension::fp8e5m2}, {{fp8e5m2T, fp8e5m2T}}},
373  {{Extension::bf16}, {{bf16T, bf16T}}}}},
374  {"tosa.tile",
375  {{{Extension::fp8e4m3}, {{fp8e4m3T, fp8e4m3T}}},
376  {{Extension::fp8e5m2}, {{fp8e5m2T, fp8e5m2T}}},
377  {{Extension::bf16}, {{bf16T, bf16T}}}}},
378  {"tosa.transpose",
379  {{{Extension::fp8e4m3}, {{fp8e4m3T, fp8e4m3T}}},
380  {{Extension::fp8e5m2}, {{fp8e5m2T, fp8e5m2T}}},
381  {{Extension::bf16}, {{bf16T, bf16T}}}}},
382  {"tosa.gather",
383  {{{Extension::fp8e4m3}, {{fp8e4m3T, i32T, fp8e4m3T}}},
384  {{Extension::fp8e5m2}, {{fp8e5m2T, i32T, fp8e5m2T}}},
385  {{Extension::bf16}, {{bf16T, i32T, bf16T}}}}},
386  {"tosa.scatter",
387  {{{Extension::fp8e4m3}, {{fp8e4m3T, i32T, fp8e4m3T, fp8e4m3T}}},
388  {{Extension::fp8e5m2}, {{fp8e5m2T, i32T, fp8e5m2T, fp8e5m2T}}},
389  {{Extension::bf16}, {{bf16T, i32T, bf16T, bf16T}}}}},
390  {"tosa.resize",
391  {{{Extension::int16}, {{i16T, i48T}, {i16T, i16T}}},
392  {{Extension::bf16}, {{bf16T, bf16T}}}}},
393  {"tosa.cast",
394  {{{Extension::bf16},
395  {{i8T, bf16T},
396  {i16T, bf16T},
397  {i32T, bf16T},
398  {bf16T, i8T},
399  {bf16T, i16T},
400  {bf16T, i32T},
401  {bf16T, fp32T},
402  {fp32T, bf16T}}},
403  {{Extension::bf16, Extension::fp8e4m3},
404  {{bf16T, fp8e4m3T}, {fp8e4m3T, bf16T}},
405  allOf},
406  {{Extension::bf16, Extension::fp8e5m2},
407  {{bf16T, fp8e5m2T}, {fp8e5m2T, bf16T}},
408  allOf},
409  {{Extension::fp8e4m3},
410  {{fp8e4m3T, fp16T},
411  {fp8e4m3T, fp32T},
412  {fp16T, fp8e4m3T},
413  {fp32T, fp8e4m3T}}},
414  {{Extension::fp8e5m2},
415  {{fp8e5m2T, fp16T},
416  {fp8e5m2T, fp32T},
417  {fp16T, fp8e5m2T},
418  {fp32T, fp8e5m2T}}}}},
419  {"tosa.rescale",
420  {{{Extension::int16},
421  {{i48T, i48T, i8T, i8T},
422  {i48T, i48T, i16T, i16T},
423  {i48T, i48T, i32T, i32T}}}}},
424  {"tosa.const",
425  {{{Extension::int4}, {{i4T}}},
426  {{Extension::int16}, {{i48T}}},
427  {{Extension::fp8e4m3}, {{fp8e4m3T}}},
428  {{Extension::fp8e5m2}, {{fp8e5m2T}}},
429  {{Extension::bf16}, {{bf16T}}}}},
430  {"tosa.identity",
431  {{{Extension::int4}, {{i4T, i4T}}},
432  {{Extension::int16}, {{i48T, i48T}}},
433  {{Extension::fp8e4m3}, {{fp8e4m3T, fp8e4m3T}}},
434  {{Extension::fp8e5m2}, {{fp8e5m2T, fp8e5m2T}}},
435  {{Extension::bf16}, {{bf16T, bf16T}}}}},
436  {"tosa.cond_if", {{{Extension::controlflow}, {{boolT}}}}},
437  {"tosa.while_loop", {{{Extension::controlflow}, {{boolT}}}}},
438  {"tosa.variable", {{{Extension::variable}, {{i8T}, {fp16T}, {fp32T}}}}},
439  {"tosa.variable_write",
440  {{{Extension::variable}, {{i8T}, {fp16T}, {fp32T}}}}},
441  {"tosa.variable_read",
442  {{{Extension::variable}, {{i8T}, {fp16T}, {fp32T}}}}},
443 };
444 // End of auto-generated metadata