Line data Source code
1 : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2 : |* *|
3 : |* Assembly Matcher Source Fragment *|
4 : |* *|
5 : |* Automatically generated file, do not edit! *|
6 : |* *|
7 : \*===----------------------------------------------------------------------===*/
8 :
9 :
10 : #ifdef GET_ASSEMBLER_HEADER
11 : #undef GET_ASSEMBLER_HEADER
12 : // This should be included into the middle of the declaration of
13 : // your subclasses implementation of MCTargetAsmParser.
14 : uint64_t ComputeAvailableFeatures(const FeatureBitset& FB) const;
15 : void convertToMCInst(unsigned Kind, MCInst &Inst, unsigned Opcode,
16 : const OperandVector &Operands,
17 : const SmallBitVector &OptionalOperandsMask);
18 : void convertToMapAndConstraints(unsigned Kind,
19 : const OperandVector &Operands) override;
20 : unsigned MatchInstructionImpl(const OperandVector &Operands,
21 : MCInst &Inst,
22 : uint64_t &ErrorInfo,
23 : bool matchingInlineAsm,
24 : unsigned VariantID = 0);
25 : OperandMatchResultTy MatchOperandParserImpl(
26 : OperandVector &Operands,
27 : StringRef Mnemonic,
28 : bool ParseForAllFeatures = false);
29 : OperandMatchResultTy tryCustomParseOperand(
30 : OperandVector &Operands,
31 : unsigned MCK);
32 :
33 : #endif // GET_ASSEMBLER_HEADER_INFO
34 :
35 :
36 : #ifdef GET_OPERAND_DIAGNOSTIC_TYPES
37 : #undef GET_OPERAND_DIAGNOSTIC_TYPES
38 :
39 : #endif // GET_OPERAND_DIAGNOSTIC_TYPES
40 :
41 :
42 : #ifdef GET_REGISTER_MATCHER
43 : #undef GET_REGISTER_MATCHER
44 :
45 : // Flags for subtarget features that participate in instruction matching.
46 : enum SubtargetFeatureFlag : uint64_t {
47 : Feature_isSICI = (1ULL << 30),
48 : Feature_isVI = (1ULL << 31),
49 : Feature_isGFX9 = (1ULL << 28),
50 : Feature_isCIVI = (1ULL << 26),
51 : Feature_HasFlatAddressSpace = (1ULL << 8),
52 : Feature_HasFlatGlobalInsts = (1ULL << 9),
53 : Feature_HasFlatScratchInsts = (1ULL << 10),
54 : Feature_HasD16LoadStore = (1ULL << 4),
55 : Feature_HasUnpackedD16VMem = (1ULL << 20),
56 : Feature_HasPackedD16VMem = (1ULL << 15),
57 : Feature_D16PreservesUnusedBits = (1ULL << 0),
58 : Feature_HasDSAddTid = (1ULL << 7),
59 : Feature_HasAddNoCarryInsts = (1ULL << 3),
60 : Feature_NotHasAddNoCarryInsts = (1ULL << 23),
61 : Feature_Has16BitInsts = (1ULL << 2),
62 : Feature_HasVOP3PInsts = (1ULL << 22),
63 : Feature_NotHasVOP3PInsts = (1ULL << 24),
64 : Feature_HasSDWA = (1ULL << 17),
65 : Feature_HasSDWA9 = (1ULL << 18),
66 : Feature_HasDPP = (1ULL << 6),
67 : Feature_HasR128A16 = (1ULL << 16),
68 : Feature_HasIntClamp = (1ULL << 12),
69 : Feature_HasMadMixInsts = (1ULL << 13),
70 : Feature_HasScalarAtomics = (1ULL << 19),
71 : Feature_HasVGPRIndexMode = (1ULL << 21),
72 : Feature_HasMovrel = (1ULL << 14),
73 : Feature_HasFmaMixInsts = (1ULL << 11),
74 : Feature_HasDLInsts = (1ULL << 5),
75 : Feature_isCIOnly = (1ULL << 25),
76 : Feature_isVIOnly = (1ULL << 32),
77 : Feature_DisableInst = (1ULL << 1),
78 : Feature_isGCN = (1ULL << 27),
79 : Feature_isSI = (1ULL << 29),
80 : Feature_None = 0
81 : };
82 :
83 : #endif // GET_REGISTER_MATCHER
84 :
85 :
86 : #ifdef GET_SUBTARGET_FEATURE_NAME
87 : #undef GET_SUBTARGET_FEATURE_NAME
88 :
89 : // User-level names for subtarget features that participate in
90 : // instruction matching.
91 : static const char *getSubtargetFeatureName(uint64_t Val) {
92 : switch(Val) {
93 : case Feature_isSICI: return "";
94 : case Feature_isVI: return "";
95 : case Feature_isGFX9: return "";
96 : case Feature_isCIVI: return "";
97 : case Feature_HasFlatAddressSpace: return "";
98 : case Feature_HasFlatGlobalInsts: return "";
99 : case Feature_HasFlatScratchInsts: return "";
100 : case Feature_HasD16LoadStore: return "";
101 : case Feature_HasUnpackedD16VMem: return "";
102 : case Feature_HasPackedD16VMem: return "";
103 : case Feature_D16PreservesUnusedBits: return "";
104 : case Feature_HasDSAddTid: return "";
105 : case Feature_HasAddNoCarryInsts: return "";
106 : case Feature_NotHasAddNoCarryInsts: return "";
107 : case Feature_Has16BitInsts: return "";
108 : case Feature_HasVOP3PInsts: return "";
109 : case Feature_NotHasVOP3PInsts: return "";
110 : case Feature_HasSDWA: return "";
111 : case Feature_HasSDWA9: return "";
112 : case Feature_HasDPP: return "";
113 : case Feature_HasR128A16: return "";
114 : case Feature_HasIntClamp: return "";
115 : case Feature_HasMadMixInsts: return "";
116 : case Feature_HasScalarAtomics: return "";
117 : case Feature_HasVGPRIndexMode: return "";
118 : case Feature_HasMovrel: return "";
119 : case Feature_HasFmaMixInsts: return "";
120 : case Feature_HasDLInsts: return "";
121 : case Feature_isCIOnly: return "";
122 : case Feature_isVIOnly: return "";
123 : case Feature_DisableInst: return "";
124 : case Feature_isGCN: return "";
125 : case Feature_isSI: return "";
126 : default: return "(unknown)";
127 : }
128 : }
129 :
130 : #endif // GET_SUBTARGET_FEATURE_NAME
131 :
132 :
133 : #ifdef GET_MATCHER_IMPLEMENTATION
134 : #undef GET_MATCHER_IMPLEMENTATION
135 :
136 216633 : static void applyMnemonicAliases(StringRef &Mnemonic, uint64_t Features, unsigned VariantID) {
137 216633 : switch (VariantID) {
138 : case 0:
139 : switch (Mnemonic.size()) {
140 : default: break;
141 : case 9: // 1 string to match.
142 14496 : if (memcmp(Mnemonic.data()+0, "v_nop_e32", 9) != 0)
143 : break;
144 0 : Mnemonic = "v_nop"; // "v_nop_e32"
145 0 : return;
146 : case 10: // 1 string to match.
147 9017 : if (memcmp(Mnemonic.data()+0, "v_swap_b32", 10) != 0)
148 : break;
149 29 : Mnemonic = "v_swap_b32"; // "v_swap_b32"
150 29 : return;
151 : case 11: // 2 strings to match.
152 5021 : if (memcmp(Mnemonic.data()+0, "v_mad", 5) != 0)
153 : break;
154 : switch (Mnemonic[5]) {
155 : default: break;
156 : case 'a': // 1 string to match.
157 93 : if (memcmp(Mnemonic.data()+6, "k_f16", 5) != 0)
158 : break;
159 35 : Mnemonic = "v_madak_f16"; // "v_madak_f16"
160 35 : return;
161 : case 'm': // 1 string to match.
162 83 : if (memcmp(Mnemonic.data()+6, "k_f16", 5) != 0)
163 : break;
164 39 : Mnemonic = "v_madmk_f16"; // "v_madmk_f16"
165 39 : return;
166 : }
167 : break;
168 : case 12: // 1 string to match.
169 11824 : if (memcmp(Mnemonic.data()+0, "v_or_b32_e32", 12) != 0)
170 : break;
171 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_or_b32_e32"
172 0 : Mnemonic = "v_or_b32";
173 : return;
174 : case 13: // 46 strings to match.
175 13990 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
176 : break;
177 : switch (Mnemonic[2]) {
178 : default: break;
179 304 : case 'a': // 6 strings to match.
180 : switch (Mnemonic[3]) {
181 : default: break;
182 : case 'd': // 5 strings to match.
183 18 : if (memcmp(Mnemonic.data()+4, "d_", 2) != 0)
184 : break;
185 : switch (Mnemonic[6]) {
186 : default: break;
187 0 : case 'f': // 2 strings to match.
188 : switch (Mnemonic[7]) {
189 : default: break;
190 : case '1': // 1 string to match.
191 0 : if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
192 : break;
193 0 : Mnemonic = "v_add_f16"; // "v_add_f16_e32"
194 0 : return;
195 : case '3': // 1 string to match.
196 0 : if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
197 : break;
198 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_add_f32_e32"
199 0 : Mnemonic = "v_add_f32";
200 : return;
201 : }
202 : break;
203 : case 'i': // 1 string to match.
204 0 : if (memcmp(Mnemonic.data()+7, "32_e32", 6) != 0)
205 : break;
206 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_add_i32_e32"
207 0 : Mnemonic = "v_add_i32";
208 : return;
209 0 : case 'u': // 2 strings to match.
210 : switch (Mnemonic[7]) {
211 : default: break;
212 : case '1': // 1 string to match.
213 0 : if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
214 : break;
215 0 : Mnemonic = "v_add_u16"; // "v_add_u16_e32"
216 0 : return;
217 : case '3': // 1 string to match.
218 0 : if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
219 : break;
220 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_add_u32_e32"
221 0 : Mnemonic = "v_add_u32";
222 : return;
223 : }
224 : break;
225 : }
226 : break;
227 : case 'n': // 1 string to match.
228 0 : if (memcmp(Mnemonic.data()+4, "d_b32_e32", 9) != 0)
229 : break;
230 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_and_b32_e32"
231 0 : Mnemonic = "v_and_b32";
232 : return;
233 : }
234 : break;
235 : case 'b': // 1 string to match.
236 0 : if (memcmp(Mnemonic.data()+3, "fm_b32_e32", 10) != 0)
237 : break;
238 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_bfm_b32_e32"
239 0 : Mnemonic = "v_bfm_b32";
240 : return;
241 7160 : case 'c': // 3 strings to match.
242 : switch (Mnemonic[3]) {
243 : default: break;
244 : case 'l': // 1 string to match.
245 0 : if (memcmp(Mnemonic.data()+4, "rexcp_e32", 9) != 0)
246 : break;
247 0 : Mnemonic = "v_clrexcp"; // "v_clrexcp_e32"
248 0 : return;
249 : case 'o': // 2 strings to match.
250 0 : if (memcmp(Mnemonic.data()+4, "s_f", 3) != 0)
251 : break;
252 : switch (Mnemonic[7]) {
253 : default: break;
254 : case '1': // 1 string to match.
255 0 : if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
256 : break;
257 0 : Mnemonic = "v_cos_f16"; // "v_cos_f16_e32"
258 0 : return;
259 : case '3': // 1 string to match.
260 0 : if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
261 : break;
262 0 : Mnemonic = "v_cos_f32"; // "v_cos_f32_e32"
263 0 : return;
264 : }
265 : break;
266 : }
267 : break;
268 : case 'e': // 2 strings to match.
269 0 : if (memcmp(Mnemonic.data()+3, "xp_f", 4) != 0)
270 : break;
271 : switch (Mnemonic[7]) {
272 : default: break;
273 : case '1': // 1 string to match.
274 0 : if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
275 : break;
276 0 : Mnemonic = "v_exp_f16"; // "v_exp_f16_e32"
277 0 : return;
278 : case '3': // 1 string to match.
279 0 : if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
280 : break;
281 0 : Mnemonic = "v_exp_f32"; // "v_exp_f32_e32"
282 0 : return;
283 : }
284 : break;
285 : case 'l': // 2 strings to match.
286 666 : if (memcmp(Mnemonic.data()+3, "og_f", 4) != 0)
287 : break;
288 : switch (Mnemonic[7]) {
289 : default: break;
290 : case '1': // 1 string to match.
291 0 : if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
292 : break;
293 0 : Mnemonic = "v_log_f16"; // "v_log_f16_e32"
294 0 : return;
295 : case '3': // 1 string to match.
296 0 : if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
297 : break;
298 0 : Mnemonic = "v_log_f32"; // "v_log_f32_e32"
299 0 : return;
300 : }
301 : break;
302 1734 : case 'm': // 17 strings to match.
303 : switch (Mnemonic[3]) {
304 : default: break;
305 1258 : case 'a': // 8 strings to match.
306 : switch (Mnemonic[4]) {
307 : default: break;
308 : case 'c': // 2 strings to match.
309 0 : if (memcmp(Mnemonic.data()+5, "_f", 2) != 0)
310 : break;
311 : switch (Mnemonic[7]) {
312 : default: break;
313 : case '1': // 1 string to match.
314 0 : if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
315 : break;
316 0 : Mnemonic = "v_mac_f16"; // "v_mac_f16_e32"
317 0 : return;
318 : case '3': // 1 string to match.
319 0 : if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
320 : break;
321 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_mac_f32_e32"
322 0 : Mnemonic = "v_mac_f32";
323 : return;
324 : }
325 : break;
326 0 : case 'x': // 6 strings to match.
327 0 : if (Mnemonic[5] != '_')
328 : break;
329 : switch (Mnemonic[6]) {
330 : default: break;
331 0 : case 'f': // 2 strings to match.
332 : switch (Mnemonic[7]) {
333 : default: break;
334 : case '1': // 1 string to match.
335 0 : if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
336 : break;
337 0 : Mnemonic = "v_max_f16"; // "v_max_f16_e32"
338 0 : return;
339 : case '3': // 1 string to match.
340 0 : if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
341 : break;
342 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_max_f32_e32"
343 0 : Mnemonic = "v_max_f32";
344 : return;
345 : }
346 : break;
347 0 : case 'i': // 2 strings to match.
348 : switch (Mnemonic[7]) {
349 : default: break;
350 : case '1': // 1 string to match.
351 0 : if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
352 : break;
353 0 : Mnemonic = "v_max_i16"; // "v_max_i16_e32"
354 0 : return;
355 : case '3': // 1 string to match.
356 0 : if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
357 : break;
358 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_max_i32_e32"
359 0 : Mnemonic = "v_max_i32";
360 : return;
361 : }
362 : break;
363 0 : case 'u': // 2 strings to match.
364 : switch (Mnemonic[7]) {
365 : default: break;
366 : case '1': // 1 string to match.
367 0 : if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
368 : break;
369 0 : Mnemonic = "v_max_u16"; // "v_max_u16_e32"
370 0 : return;
371 : case '3': // 1 string to match.
372 0 : if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
373 : break;
374 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_max_u32_e32"
375 0 : Mnemonic = "v_max_u32";
376 : return;
377 : }
378 : break;
379 : }
380 : break;
381 : }
382 : break;
383 : case 'i': // 6 strings to match.
384 0 : if (memcmp(Mnemonic.data()+4, "n_", 2) != 0)
385 : break;
386 : switch (Mnemonic[6]) {
387 : default: break;
388 0 : case 'f': // 2 strings to match.
389 : switch (Mnemonic[7]) {
390 : default: break;
391 : case '1': // 1 string to match.
392 0 : if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
393 : break;
394 0 : Mnemonic = "v_min_f16"; // "v_min_f16_e32"
395 0 : return;
396 : case '3': // 1 string to match.
397 0 : if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
398 : break;
399 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_min_f32_e32"
400 0 : Mnemonic = "v_min_f32";
401 : return;
402 : }
403 : break;
404 0 : case 'i': // 2 strings to match.
405 : switch (Mnemonic[7]) {
406 : default: break;
407 : case '1': // 1 string to match.
408 0 : if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
409 : break;
410 0 : Mnemonic = "v_min_i16"; // "v_min_i16_e32"
411 0 : return;
412 : case '3': // 1 string to match.
413 0 : if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
414 : break;
415 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_min_i32_e32"
416 0 : Mnemonic = "v_min_i32";
417 : return;
418 : }
419 : break;
420 0 : case 'u': // 2 strings to match.
421 : switch (Mnemonic[7]) {
422 : default: break;
423 : case '1': // 1 string to match.
424 0 : if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
425 : break;
426 0 : Mnemonic = "v_min_u16"; // "v_min_u16_e32"
427 0 : return;
428 : case '3': // 1 string to match.
429 0 : if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
430 : break;
431 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_min_u32_e32"
432 0 : Mnemonic = "v_min_u32";
433 : return;
434 : }
435 : break;
436 : }
437 : break;
438 : case 'o': // 1 string to match.
439 164 : if (memcmp(Mnemonic.data()+4, "v_b32_e32", 9) != 0)
440 : break;
441 0 : Mnemonic = "v_mov_b32"; // "v_mov_b32_e32"
442 0 : return;
443 : case 'u': // 2 strings to match.
444 312 : if (memcmp(Mnemonic.data()+4, "l_f", 3) != 0)
445 : break;
446 : switch (Mnemonic[7]) {
447 : default: break;
448 : case '1': // 1 string to match.
449 0 : if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
450 : break;
451 0 : Mnemonic = "v_mul_f16"; // "v_mul_f16_e32"
452 0 : return;
453 : case '3': // 1 string to match.
454 0 : if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
455 : break;
456 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_mul_f32_e32"
457 0 : Mnemonic = "v_mul_f32";
458 : return;
459 : }
460 : break;
461 : }
462 : break;
463 : case 'n': // 1 string to match.
464 0 : if (memcmp(Mnemonic.data()+3, "ot_b32_e32", 10) != 0)
465 : break;
466 0 : Mnemonic = "v_not_b32"; // "v_not_b32_e32"
467 0 : return;
468 0 : case 'r': // 6 strings to match.
469 : switch (Mnemonic[3]) {
470 : default: break;
471 : case 'c': // 3 strings to match.
472 0 : if (memcmp(Mnemonic.data()+4, "p_f", 3) != 0)
473 : break;
474 : switch (Mnemonic[7]) {
475 : default: break;
476 : case '1': // 1 string to match.
477 0 : if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
478 : break;
479 0 : Mnemonic = "v_rcp_f16"; // "v_rcp_f16_e32"
480 0 : return;
481 : case '3': // 1 string to match.
482 0 : if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
483 : break;
484 0 : Mnemonic = "v_rcp_f32"; // "v_rcp_f32_e32"
485 0 : return;
486 : case '6': // 1 string to match.
487 0 : if (memcmp(Mnemonic.data()+8, "4_e32", 5) != 0)
488 : break;
489 0 : Mnemonic = "v_rcp_f64"; // "v_rcp_f64_e32"
490 0 : return;
491 : }
492 : break;
493 : case 's': // 3 strings to match.
494 0 : if (memcmp(Mnemonic.data()+4, "q_f", 3) != 0)
495 : break;
496 : switch (Mnemonic[7]) {
497 : default: break;
498 : case '1': // 1 string to match.
499 0 : if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
500 : break;
501 0 : Mnemonic = "v_rsq_f16"; // "v_rsq_f16_e32"
502 0 : return;
503 : case '3': // 1 string to match.
504 0 : if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
505 : break;
506 0 : Mnemonic = "v_rsq_f32"; // "v_rsq_f32_e32"
507 0 : return;
508 : case '6': // 1 string to match.
509 0 : if (memcmp(Mnemonic.data()+8, "4_e32", 5) != 0)
510 : break;
511 0 : Mnemonic = "v_rsq_f64"; // "v_rsq_f64_e32"
512 0 : return;
513 : }
514 : break;
515 : }
516 : break;
517 52 : case 's': // 7 strings to match.
518 : switch (Mnemonic[3]) {
519 : default: break;
520 : case 'i': // 2 strings to match.
521 0 : if (memcmp(Mnemonic.data()+4, "n_f", 3) != 0)
522 : break;
523 : switch (Mnemonic[7]) {
524 : default: break;
525 : case '1': // 1 string to match.
526 0 : if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
527 : break;
528 0 : Mnemonic = "v_sin_f16"; // "v_sin_f16_e32"
529 0 : return;
530 : case '3': // 1 string to match.
531 0 : if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
532 : break;
533 0 : Mnemonic = "v_sin_f32"; // "v_sin_f32_e32"
534 0 : return;
535 : }
536 : break;
537 : case 'u': // 5 strings to match.
538 52 : if (memcmp(Mnemonic.data()+4, "b_", 2) != 0)
539 : break;
540 : switch (Mnemonic[6]) {
541 : default: break;
542 0 : case 'f': // 2 strings to match.
543 : switch (Mnemonic[7]) {
544 : default: break;
545 : case '1': // 1 string to match.
546 0 : if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
547 : break;
548 0 : Mnemonic = "v_sub_f16"; // "v_sub_f16_e32"
549 0 : return;
550 : case '3': // 1 string to match.
551 0 : if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
552 : break;
553 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_sub_f32_e32"
554 0 : Mnemonic = "v_sub_f32";
555 : return;
556 : }
557 : break;
558 : case 'i': // 1 string to match.
559 0 : if (memcmp(Mnemonic.data()+7, "32_e32", 6) != 0)
560 : break;
561 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_sub_i32_e32"
562 0 : Mnemonic = "v_sub_i32";
563 : return;
564 0 : case 'u': // 2 strings to match.
565 : switch (Mnemonic[7]) {
566 : default: break;
567 : case '1': // 1 string to match.
568 0 : if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
569 : break;
570 0 : Mnemonic = "v_sub_u16"; // "v_sub_u16_e32"
571 0 : return;
572 : case '3': // 1 string to match.
573 0 : if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
574 : break;
575 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_sub_u32_e32"
576 0 : Mnemonic = "v_sub_u32";
577 : return;
578 : }
579 : break;
580 : }
581 : break;
582 : }
583 : break;
584 : case 'x': // 1 string to match.
585 0 : if (memcmp(Mnemonic.data()+3, "or_b32_e32", 10) != 0)
586 : break;
587 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_xor_b32_e32"
588 0 : Mnemonic = "v_xor_b32";
589 : return;
590 : }
591 : break;
592 : case 14: // 16 strings to match.
593 6128 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
594 : break;
595 : switch (Mnemonic[2]) {
596 : default: break;
597 274 : case 'a': // 2 strings to match.
598 : switch (Mnemonic[3]) {
599 : default: break;
600 : case 'd': // 1 string to match.
601 92 : if (memcmp(Mnemonic.data()+4, "dc_u32_e32", 10) != 0)
602 : break;
603 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_addc_u32_e32"
604 0 : Mnemonic = "v_addc_u32";
605 : return;
606 : case 's': // 1 string to match.
607 0 : if (memcmp(Mnemonic.data()+4, "hr_i32_e32", 10) != 0)
608 : break;
609 0 : if ((Features & Feature_isSICI) == Feature_isSICI) // "v_ashr_i32_e32"
610 0 : Mnemonic = "v_ashr_i32";
611 : return;
612 : }
613 : break;
614 : case 'c': // 3 strings to match.
615 2003 : if (memcmp(Mnemonic.data()+3, "eil_f", 5) != 0)
616 : break;
617 : switch (Mnemonic[8]) {
618 : default: break;
619 : case '1': // 1 string to match.
620 0 : if (memcmp(Mnemonic.data()+9, "6_e32", 5) != 0)
621 : break;
622 0 : Mnemonic = "v_ceil_f16"; // "v_ceil_f16_e32"
623 0 : return;
624 : case '3': // 1 string to match.
625 0 : if (memcmp(Mnemonic.data()+9, "2_e32", 5) != 0)
626 : break;
627 0 : Mnemonic = "v_ceil_f32"; // "v_ceil_f32_e32"
628 0 : return;
629 : case '6': // 1 string to match.
630 0 : if (memcmp(Mnemonic.data()+9, "4_e32", 5) != 0)
631 : break;
632 0 : Mnemonic = "v_ceil_f64"; // "v_ceil_f64_e32"
633 0 : return;
634 : }
635 : break;
636 0 : case 'f': // 4 strings to match.
637 : switch (Mnemonic[3]) {
638 : default: break;
639 0 : case 'f': // 3 strings to match.
640 0 : if (Mnemonic[4] != 'b')
641 : break;
642 : switch (Mnemonic[5]) {
643 : default: break;
644 0 : case 'h': // 2 strings to match.
645 0 : if (Mnemonic[6] != '_')
646 : break;
647 : switch (Mnemonic[7]) {
648 : default: break;
649 : case 'i': // 1 string to match.
650 0 : if (memcmp(Mnemonic.data()+8, "32_e32", 6) != 0)
651 : break;
652 0 : Mnemonic = "v_ffbh_i32"; // "v_ffbh_i32_e32"
653 0 : return;
654 : case 'u': // 1 string to match.
655 0 : if (memcmp(Mnemonic.data()+8, "32_e32", 6) != 0)
656 : break;
657 0 : Mnemonic = "v_ffbh_u32"; // "v_ffbh_u32_e32"
658 0 : return;
659 : }
660 : break;
661 : case 'l': // 1 string to match.
662 0 : if (memcmp(Mnemonic.data()+6, "_b32_e32", 8) != 0)
663 : break;
664 0 : Mnemonic = "v_ffbl_b32"; // "v_ffbl_b32_e32"
665 0 : return;
666 : }
667 : break;
668 : case 'm': // 1 string to match.
669 0 : if (memcmp(Mnemonic.data()+4, "ac_f32_e32", 10) != 0)
670 : break;
671 0 : Mnemonic = "v_fmac_f32"; // "v_fmac_f32_e32"
672 0 : return;
673 : }
674 : break;
675 : case 'l': // 2 strings to match.
676 92 : if (memcmp(Mnemonic.data()+3, "sh", 2) != 0)
677 : break;
678 : switch (Mnemonic[5]) {
679 : default: break;
680 : case 'l': // 1 string to match.
681 92 : if (memcmp(Mnemonic.data()+6, "_b32_e32", 8) != 0)
682 : break;
683 0 : if ((Features & Feature_isSICI) == Feature_isSICI) // "v_lshl_b32_e32"
684 0 : Mnemonic = "v_lshl_b32";
685 : return;
686 : case 'r': // 1 string to match.
687 0 : if (memcmp(Mnemonic.data()+6, "_b32_e32", 8) != 0)
688 : break;
689 0 : if ((Features & Feature_isSICI) == Feature_isSICI) // "v_lshr_b32_e32"
690 0 : Mnemonic = "v_lshr_b32";
691 : return;
692 : }
693 : break;
694 0 : case 's': // 4 strings to match.
695 : switch (Mnemonic[3]) {
696 : default: break;
697 : case 'q': // 3 strings to match.
698 0 : if (memcmp(Mnemonic.data()+4, "rt_f", 4) != 0)
699 : break;
700 : switch (Mnemonic[8]) {
701 : default: break;
702 : case '1': // 1 string to match.
703 0 : if (memcmp(Mnemonic.data()+9, "6_e32", 5) != 0)
704 : break;
705 0 : Mnemonic = "v_sqrt_f16"; // "v_sqrt_f16_e32"
706 0 : return;
707 : case '3': // 1 string to match.
708 0 : if (memcmp(Mnemonic.data()+9, "2_e32", 5) != 0)
709 : break;
710 0 : Mnemonic = "v_sqrt_f32"; // "v_sqrt_f32_e32"
711 0 : return;
712 : case '6': // 1 string to match.
713 0 : if (memcmp(Mnemonic.data()+9, "4_e32", 5) != 0)
714 : break;
715 0 : Mnemonic = "v_sqrt_f64"; // "v_sqrt_f64_e32"
716 0 : return;
717 : }
718 : break;
719 : case 'u': // 1 string to match.
720 0 : if (memcmp(Mnemonic.data()+4, "bb_u32_e32", 10) != 0)
721 : break;
722 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_subb_u32_e32"
723 0 : Mnemonic = "v_subb_u32";
724 : return;
725 : }
726 : break;
727 : case 'x': // 1 string to match.
728 0 : if (memcmp(Mnemonic.data()+3, "nor_b32_e32", 11) != 0)
729 : break;
730 0 : Mnemonic = "v_xnor_b32"; // "v_xnor_b32_e32"
731 0 : return;
732 : }
733 : break;
734 : case 15: // 17 strings to match.
735 5889 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
736 : break;
737 : switch (Mnemonic[2]) {
738 : default: break;
739 : case 'b': // 1 string to match.
740 0 : if (memcmp(Mnemonic.data()+3, "frev_b32_e32", 12) != 0)
741 : break;
742 0 : Mnemonic = "v_bfrev_b32"; // "v_bfrev_b32_e32"
743 0 : return;
744 22 : case 'f': // 6 strings to match.
745 : switch (Mnemonic[3]) {
746 : default: break;
747 : case 'l': // 3 strings to match.
748 0 : if (memcmp(Mnemonic.data()+4, "oor_f", 5) != 0)
749 : break;
750 : switch (Mnemonic[9]) {
751 : default: break;
752 : case '1': // 1 string to match.
753 0 : if (memcmp(Mnemonic.data()+10, "6_e32", 5) != 0)
754 : break;
755 0 : Mnemonic = "v_floor_f16"; // "v_floor_f16_e32"
756 0 : return;
757 : case '3': // 1 string to match.
758 0 : if (memcmp(Mnemonic.data()+10, "2_e32", 5) != 0)
759 : break;
760 0 : Mnemonic = "v_floor_f32"; // "v_floor_f32_e32"
761 0 : return;
762 : case '6': // 1 string to match.
763 0 : if (memcmp(Mnemonic.data()+10, "4_e32", 5) != 0)
764 : break;
765 0 : Mnemonic = "v_floor_f64"; // "v_floor_f64_e32"
766 0 : return;
767 : }
768 : break;
769 : case 'r': // 3 strings to match.
770 0 : if (memcmp(Mnemonic.data()+4, "act_f", 5) != 0)
771 : break;
772 : switch (Mnemonic[9]) {
773 : default: break;
774 : case '1': // 1 string to match.
775 0 : if (memcmp(Mnemonic.data()+10, "6_e32", 5) != 0)
776 : break;
777 0 : Mnemonic = "v_fract_f16"; // "v_fract_f16_e32"
778 0 : return;
779 : case '3': // 1 string to match.
780 0 : if (memcmp(Mnemonic.data()+10, "2_e32", 5) != 0)
781 : break;
782 0 : Mnemonic = "v_fract_f32"; // "v_fract_f32_e32"
783 0 : return;
784 : case '6': // 1 string to match.
785 0 : if (memcmp(Mnemonic.data()+10, "4_e32", 5) != 0)
786 : break;
787 0 : Mnemonic = "v_fract_f64"; // "v_fract_f64_e32"
788 0 : return;
789 : }
790 : break;
791 : }
792 : break;
793 : case 'l': // 2 strings to match.
794 39 : if (memcmp(Mnemonic.data()+3, "dexp_f", 6) != 0)
795 : break;
796 : switch (Mnemonic[9]) {
797 : default: break;
798 : case '1': // 1 string to match.
799 0 : if (memcmp(Mnemonic.data()+10, "6_e32", 5) != 0)
800 : break;
801 0 : Mnemonic = "v_ldexp_f16"; // "v_ldexp_f16_e32"
802 0 : return;
803 : case '3': // 1 string to match.
804 0 : if (memcmp(Mnemonic.data()+10, "2_e32", 5) != 0)
805 : break;
806 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_ldexp_f32_e32"
807 0 : Mnemonic = "v_ldexp_f32";
808 : return;
809 : }
810 : break;
811 : case 'm': // 2 strings to match.
812 272 : if (memcmp(Mnemonic.data()+3, "ad", 2) != 0)
813 : break;
814 : switch (Mnemonic[5]) {
815 : default: break;
816 : case 'a': // 1 string to match.
817 0 : if (memcmp(Mnemonic.data()+6, "k_f32_e32", 9) != 0)
818 : break;
819 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_madak_f32_e32"
820 0 : Mnemonic = "v_madak_f32";
821 : return;
822 : case 'm': // 1 string to match.
823 0 : if (memcmp(Mnemonic.data()+6, "k_f32_e32", 9) != 0)
824 : break;
825 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_madmk_f32_e32"
826 0 : Mnemonic = "v_madmk_f32";
827 : return;
828 : }
829 : break;
830 : case 'r': // 3 strings to match.
831 215 : if (memcmp(Mnemonic.data()+3, "ndne_f", 6) != 0)
832 : break;
833 : switch (Mnemonic[9]) {
834 : default: break;
835 : case '1': // 1 string to match.
836 0 : if (memcmp(Mnemonic.data()+10, "6_e32", 5) != 0)
837 : break;
838 0 : Mnemonic = "v_rndne_f16"; // "v_rndne_f16_e32"
839 0 : return;
840 : case '3': // 1 string to match.
841 0 : if (memcmp(Mnemonic.data()+10, "2_e32", 5) != 0)
842 : break;
843 0 : Mnemonic = "v_rndne_f32"; // "v_rndne_f32_e32"
844 0 : return;
845 : case '6': // 1 string to match.
846 0 : if (memcmp(Mnemonic.data()+10, "4_e32", 5) != 0)
847 : break;
848 0 : Mnemonic = "v_rndne_f64"; // "v_rndne_f64_e32"
849 0 : return;
850 : }
851 : break;
852 : case 't': // 3 strings to match.
853 0 : if (memcmp(Mnemonic.data()+3, "runc_f", 6) != 0)
854 : break;
855 : switch (Mnemonic[9]) {
856 : default: break;
857 : case '1': // 1 string to match.
858 0 : if (memcmp(Mnemonic.data()+10, "6_e32", 5) != 0)
859 : break;
860 0 : Mnemonic = "v_trunc_f16"; // "v_trunc_f16_e32"
861 0 : return;
862 : case '3': // 1 string to match.
863 0 : if (memcmp(Mnemonic.data()+10, "2_e32", 5) != 0)
864 : break;
865 0 : Mnemonic = "v_trunc_f32"; // "v_trunc_f32_e32"
866 0 : return;
867 : case '6': // 1 string to match.
868 0 : if (memcmp(Mnemonic.data()+10, "4_e32", 5) != 0)
869 : break;
870 0 : Mnemonic = "v_trunc_f64"; // "v_trunc_f64_e32"
871 0 : return;
872 : }
873 : break;
874 : }
875 : break;
876 : case 16: // 6 strings to match.
877 5049 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
878 : break;
879 : switch (Mnemonic[2]) {
880 : default: break;
881 : case 'm': // 1 string to match.
882 937 : if (memcmp(Mnemonic.data()+3, "ul_lo_u16_e32", 13) != 0)
883 : break;
884 0 : Mnemonic = "v_mul_lo_u16"; // "v_mul_lo_u16_e32"
885 0 : return;
886 : case 's': // 5 strings to match.
887 18 : if (memcmp(Mnemonic.data()+3, "ubrev_", 6) != 0)
888 : break;
889 : switch (Mnemonic[9]) {
890 : default: break;
891 0 : case 'f': // 2 strings to match.
892 : switch (Mnemonic[10]) {
893 : default: break;
894 : case '1': // 1 string to match.
895 0 : if (memcmp(Mnemonic.data()+11, "6_e32", 5) != 0)
896 : break;
897 0 : Mnemonic = "v_subrev_f16"; // "v_subrev_f16_e32"
898 0 : return;
899 : case '3': // 1 string to match.
900 0 : if (memcmp(Mnemonic.data()+11, "2_e32", 5) != 0)
901 : break;
902 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_subrev_f32_e32"
903 0 : Mnemonic = "v_subrev_f32";
904 : return;
905 : }
906 : break;
907 : case 'i': // 1 string to match.
908 0 : if (memcmp(Mnemonic.data()+10, "32_e32", 6) != 0)
909 : break;
910 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_subrev_i32_e32"
911 0 : Mnemonic = "v_subrev_i32";
912 : return;
913 0 : case 'u': // 2 strings to match.
914 : switch (Mnemonic[10]) {
915 : default: break;
916 : case '1': // 1 string to match.
917 0 : if (memcmp(Mnemonic.data()+11, "6_e32", 5) != 0)
918 : break;
919 0 : Mnemonic = "v_subrev_u16"; // "v_subrev_u16_e32"
920 0 : return;
921 : case '3': // 1 string to match.
922 0 : if (memcmp(Mnemonic.data()+11, "2_e32", 5) != 0)
923 : break;
924 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_subrev_u32_e32"
925 0 : Mnemonic = "v_subrev_u32";
926 : return;
927 : }
928 : break;
929 : }
930 : break;
931 : }
932 : break;
933 : case 17: // 29 strings to match.
934 3793 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
935 : break;
936 : switch (Mnemonic[2]) {
937 : default: break;
938 : case 'a': // 2 strings to match.
939 0 : if (memcmp(Mnemonic.data()+3, "shrrev_i", 8) != 0)
940 : break;
941 : switch (Mnemonic[11]) {
942 : default: break;
943 : case '1': // 1 string to match.
944 0 : if (memcmp(Mnemonic.data()+12, "6_e32", 5) != 0)
945 : break;
946 0 : Mnemonic = "v_ashrrev_i16"; // "v_ashrrev_i16_e32"
947 0 : return;
948 : case '3': // 1 string to match.
949 0 : if (memcmp(Mnemonic.data()+12, "2_e32", 5) != 0)
950 : break;
951 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_ashrrev_i32_e32"
952 0 : Mnemonic = "v_ashrrev_i32";
953 : return;
954 : }
955 : break;
956 210 : case 'c': // 17 strings to match.
957 : switch (Mnemonic[3]) {
958 : default: break;
959 : case 'n': // 1 string to match.
960 0 : if (memcmp(Mnemonic.data()+4, "dmask_b32_e32", 13) != 0)
961 : break;
962 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_cndmask_b32_e32"
963 0 : Mnemonic = "v_cndmask_b32";
964 : return;
965 : case 'v': // 16 strings to match.
966 210 : if (memcmp(Mnemonic.data()+4, "t_", 2) != 0)
967 : break;
968 : switch (Mnemonic[6]) {
969 : default: break;
970 109 : case 'f': // 10 strings to match.
971 : switch (Mnemonic[7]) {
972 : default: break;
973 : case '1': // 3 strings to match.
974 0 : if (memcmp(Mnemonic.data()+8, "6_", 2) != 0)
975 : break;
976 : switch (Mnemonic[10]) {
977 : default: break;
978 : case 'f': // 1 string to match.
979 0 : if (memcmp(Mnemonic.data()+11, "32_e32", 6) != 0)
980 : break;
981 0 : Mnemonic = "v_cvt_f16_f32"; // "v_cvt_f16_f32_e32"
982 0 : return;
983 : case 'i': // 1 string to match.
984 0 : if (memcmp(Mnemonic.data()+11, "16_e32", 6) != 0)
985 : break;
986 0 : Mnemonic = "v_cvt_f16_i16"; // "v_cvt_f16_i16_e32"
987 0 : return;
988 : case 'u': // 1 string to match.
989 0 : if (memcmp(Mnemonic.data()+11, "16_e32", 6) != 0)
990 : break;
991 0 : Mnemonic = "v_cvt_f16_u16"; // "v_cvt_f16_u16_e32"
992 0 : return;
993 : }
994 : break;
995 : case '3': // 4 strings to match.
996 0 : if (memcmp(Mnemonic.data()+8, "2_", 2) != 0)
997 : break;
998 : switch (Mnemonic[10]) {
999 : default: break;
1000 0 : case 'f': // 2 strings to match.
1001 : switch (Mnemonic[11]) {
1002 : default: break;
1003 : case '1': // 1 string to match.
1004 0 : if (memcmp(Mnemonic.data()+12, "6_e32", 5) != 0)
1005 : break;
1006 0 : Mnemonic = "v_cvt_f32_f16"; // "v_cvt_f32_f16_e32"
1007 0 : return;
1008 : case '6': // 1 string to match.
1009 0 : if (memcmp(Mnemonic.data()+12, "4_e32", 5) != 0)
1010 : break;
1011 0 : Mnemonic = "v_cvt_f32_f64"; // "v_cvt_f32_f64_e32"
1012 0 : return;
1013 : }
1014 : break;
1015 : case 'i': // 1 string to match.
1016 0 : if (memcmp(Mnemonic.data()+11, "32_e32", 6) != 0)
1017 : break;
1018 0 : Mnemonic = "v_cvt_f32_i32"; // "v_cvt_f32_i32_e32"
1019 0 : return;
1020 : case 'u': // 1 string to match.
1021 0 : if (memcmp(Mnemonic.data()+11, "32_e32", 6) != 0)
1022 : break;
1023 0 : Mnemonic = "v_cvt_f32_u32"; // "v_cvt_f32_u32_e32"
1024 0 : return;
1025 : }
1026 : break;
1027 : case '6': // 3 strings to match.
1028 0 : if (memcmp(Mnemonic.data()+8, "4_", 2) != 0)
1029 : break;
1030 : switch (Mnemonic[10]) {
1031 : default: break;
1032 : case 'f': // 1 string to match.
1033 0 : if (memcmp(Mnemonic.data()+11, "32_e32", 6) != 0)
1034 : break;
1035 0 : Mnemonic = "v_cvt_f64_f32"; // "v_cvt_f64_f32_e32"
1036 0 : return;
1037 : case 'i': // 1 string to match.
1038 0 : if (memcmp(Mnemonic.data()+11, "32_e32", 6) != 0)
1039 : break;
1040 0 : Mnemonic = "v_cvt_f64_i32"; // "v_cvt_f64_i32_e32"
1041 0 : return;
1042 : case 'u': // 1 string to match.
1043 0 : if (memcmp(Mnemonic.data()+11, "32_e32", 6) != 0)
1044 : break;
1045 0 : Mnemonic = "v_cvt_f64_u32"; // "v_cvt_f64_u32_e32"
1046 0 : return;
1047 : }
1048 : break;
1049 : }
1050 : break;
1051 0 : case 'i': // 3 strings to match.
1052 : switch (Mnemonic[7]) {
1053 : default: break;
1054 : case '1': // 1 string to match.
1055 0 : if (memcmp(Mnemonic.data()+8, "6_f16_e32", 9) != 0)
1056 : break;
1057 0 : Mnemonic = "v_cvt_i16_f16"; // "v_cvt_i16_f16_e32"
1058 0 : return;
1059 : case '3': // 2 strings to match.
1060 0 : if (memcmp(Mnemonic.data()+8, "2_f", 3) != 0)
1061 : break;
1062 : switch (Mnemonic[11]) {
1063 : default: break;
1064 : case '3': // 1 string to match.
1065 0 : if (memcmp(Mnemonic.data()+12, "2_e32", 5) != 0)
1066 : break;
1067 0 : Mnemonic = "v_cvt_i32_f32"; // "v_cvt_i32_f32_e32"
1068 0 : return;
1069 : case '6': // 1 string to match.
1070 0 : if (memcmp(Mnemonic.data()+12, "4_e32", 5) != 0)
1071 : break;
1072 0 : Mnemonic = "v_cvt_i32_f64"; // "v_cvt_i32_f64_e32"
1073 0 : return;
1074 : }
1075 : break;
1076 : }
1077 : break;
1078 0 : case 'u': // 3 strings to match.
1079 : switch (Mnemonic[7]) {
1080 : default: break;
1081 : case '1': // 1 string to match.
1082 0 : if (memcmp(Mnemonic.data()+8, "6_f16_e32", 9) != 0)
1083 : break;
1084 0 : Mnemonic = "v_cvt_u16_f16"; // "v_cvt_u16_f16_e32"
1085 0 : return;
1086 : case '3': // 2 strings to match.
1087 0 : if (memcmp(Mnemonic.data()+8, "2_f", 3) != 0)
1088 : break;
1089 : switch (Mnemonic[11]) {
1090 : default: break;
1091 : case '3': // 1 string to match.
1092 0 : if (memcmp(Mnemonic.data()+12, "2_e32", 5) != 0)
1093 : break;
1094 0 : Mnemonic = "v_cvt_u32_f32"; // "v_cvt_u32_f32_e32"
1095 0 : return;
1096 : case '6': // 1 string to match.
1097 0 : if (memcmp(Mnemonic.data()+12, "4_e32", 5) != 0)
1098 : break;
1099 0 : Mnemonic = "v_cvt_u32_f64"; // "v_cvt_u32_f64_e32"
1100 0 : return;
1101 : }
1102 : break;
1103 : }
1104 : break;
1105 : }
1106 : break;
1107 : }
1108 : break;
1109 : case 'l': // 4 strings to match.
1110 0 : if (memcmp(Mnemonic.data()+3, "sh", 2) != 0)
1111 : break;
1112 : switch (Mnemonic[5]) {
1113 : default: break;
1114 : case 'l': // 2 strings to match.
1115 0 : if (memcmp(Mnemonic.data()+6, "rev_b", 5) != 0)
1116 : break;
1117 : switch (Mnemonic[11]) {
1118 : default: break;
1119 : case '1': // 1 string to match.
1120 0 : if (memcmp(Mnemonic.data()+12, "6_e32", 5) != 0)
1121 : break;
1122 0 : Mnemonic = "v_lshlrev_b16"; // "v_lshlrev_b16_e32"
1123 0 : return;
1124 : case '3': // 1 string to match.
1125 0 : if (memcmp(Mnemonic.data()+12, "2_e32", 5) != 0)
1126 : break;
1127 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_lshlrev_b32_e32"
1128 0 : Mnemonic = "v_lshlrev_b32";
1129 : return;
1130 : }
1131 : break;
1132 : case 'r': // 2 strings to match.
1133 0 : if (memcmp(Mnemonic.data()+6, "rev_b", 5) != 0)
1134 : break;
1135 : switch (Mnemonic[11]) {
1136 : default: break;
1137 : case '1': // 1 string to match.
1138 0 : if (memcmp(Mnemonic.data()+12, "6_e32", 5) != 0)
1139 : break;
1140 0 : Mnemonic = "v_lshrrev_b16"; // "v_lshrrev_b16_e32"
1141 0 : return;
1142 : case '3': // 1 string to match.
1143 0 : if (memcmp(Mnemonic.data()+12, "2_e32", 5) != 0)
1144 : break;
1145 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_lshrrev_b32_e32"
1146 0 : Mnemonic = "v_lshrrev_b32";
1147 : return;
1148 : }
1149 : break;
1150 : }
1151 : break;
1152 211 : case 'm': // 5 strings to match.
1153 : switch (Mnemonic[3]) {
1154 : default: break;
1155 0 : case 'o': // 3 strings to match.
1156 0 : if (Mnemonic[4] != 'v')
1157 : break;
1158 : switch (Mnemonic[5]) {
1159 : default: break;
1160 : case '_': // 1 string to match.
1161 0 : if (memcmp(Mnemonic.data()+6, "fed_b32_e32", 11) != 0)
1162 : break;
1163 0 : Mnemonic = "v_mov_fed_b32"; // "v_mov_fed_b32_e32"
1164 0 : return;
1165 : case 'r': // 2 strings to match.
1166 0 : if (memcmp(Mnemonic.data()+6, "el", 2) != 0)
1167 : break;
1168 : switch (Mnemonic[8]) {
1169 : default: break;
1170 : case 'd': // 1 string to match.
1171 0 : if (memcmp(Mnemonic.data()+9, "_b32_e32", 8) != 0)
1172 : break;
1173 0 : Mnemonic = "v_movreld_b32"; // "v_movreld_b32_e32"
1174 0 : return;
1175 : case 's': // 1 string to match.
1176 0 : if (memcmp(Mnemonic.data()+9, "_b32_e32", 8) != 0)
1177 : break;
1178 0 : Mnemonic = "v_movrels_b32"; // "v_movrels_b32_e32"
1179 0 : return;
1180 : }
1181 : break;
1182 : }
1183 : break;
1184 : case 'u': // 2 strings to match.
1185 0 : if (memcmp(Mnemonic.data()+4, "l_", 2) != 0)
1186 : break;
1187 : switch (Mnemonic[6]) {
1188 : default: break;
1189 : case 'i': // 1 string to match.
1190 0 : if (memcmp(Mnemonic.data()+7, "32_i24_e32", 10) != 0)
1191 : break;
1192 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_mul_i32_i24_e32"
1193 0 : Mnemonic = "v_mul_i32_i24";
1194 : return;
1195 : case 'u': // 1 string to match.
1196 0 : if (memcmp(Mnemonic.data()+7, "32_u24_e32", 10) != 0)
1197 : break;
1198 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_mul_u32_u24_e32"
1199 0 : Mnemonic = "v_mul_u32_u24";
1200 : return;
1201 : }
1202 : break;
1203 : }
1204 : break;
1205 : case 's': // 1 string to match.
1206 0 : if (memcmp(Mnemonic.data()+3, "ubbrev_u32_e32", 14) != 0)
1207 : break;
1208 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_subbrev_u32_e32"
1209 0 : Mnemonic = "v_subbrev_u32";
1210 : return;
1211 : }
1212 : break;
1213 : case 18: // 3 strings to match.
1214 2576 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
1215 : break;
1216 : switch (Mnemonic[2]) {
1217 : default: break;
1218 : case 'b': // 1 string to match.
1219 0 : if (memcmp(Mnemonic.data()+3, "cnt_u32_b32_e32", 15) != 0)
1220 : break;
1221 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_bcnt_u32_b32_e32"
1222 0 : Mnemonic = "v_bcnt_u32_b32";
1223 : return;
1224 : case 'm': // 1 string to match.
1225 264 : if (memcmp(Mnemonic.data()+3, "ovrelsd_b32_e32", 15) != 0)
1226 : break;
1227 0 : Mnemonic = "v_movrelsd_b32"; // "v_movrelsd_b32_e32"
1228 0 : return;
1229 : case 'r': // 1 string to match.
1230 0 : if (memcmp(Mnemonic.data()+3, "eadlane_b32_e32", 15) != 0)
1231 : break;
1232 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_readlane_b32_e32"
1233 0 : Mnemonic = "v_readlane_b32";
1234 : return;
1235 : }
1236 : break;
1237 : case 19: // 8 strings to match.
1238 2102 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
1239 : break;
1240 : switch (Mnemonic[2]) {
1241 : default: break;
1242 : case 'l': // 1 string to match.
1243 0 : if (memcmp(Mnemonic.data()+3, "og_clamp_f32_e32", 16) != 0)
1244 : break;
1245 0 : Mnemonic = "v_log_clamp_f32"; // "v_log_clamp_f32_e32"
1246 0 : return;
1247 44 : case 'r': // 5 strings to match.
1248 : switch (Mnemonic[3]) {
1249 : default: break;
1250 : case 'c': // 3 strings to match.
1251 0 : if (memcmp(Mnemonic.data()+4, "p_", 2) != 0)
1252 : break;
1253 : switch (Mnemonic[6]) {
1254 : default: break;
1255 : case 'c': // 2 strings to match.
1256 0 : if (memcmp(Mnemonic.data()+7, "lamp_f", 6) != 0)
1257 : break;
1258 : switch (Mnemonic[13]) {
1259 : default: break;
1260 : case '3': // 1 string to match.
1261 0 : if (memcmp(Mnemonic.data()+14, "2_e32", 5) != 0)
1262 : break;
1263 0 : Mnemonic = "v_rcp_clamp_f32"; // "v_rcp_clamp_f32_e32"
1264 0 : return;
1265 : case '6': // 1 string to match.
1266 0 : if (memcmp(Mnemonic.data()+14, "4_e32", 5) != 0)
1267 : break;
1268 0 : Mnemonic = "v_rcp_clamp_f64"; // "v_rcp_clamp_f64_e32"
1269 0 : return;
1270 : }
1271 : break;
1272 : case 'i': // 1 string to match.
1273 0 : if (memcmp(Mnemonic.data()+7, "flag_f32_e32", 12) != 0)
1274 : break;
1275 0 : Mnemonic = "v_rcp_iflag_f32"; // "v_rcp_iflag_f32_e32"
1276 0 : return;
1277 : }
1278 : break;
1279 : case 's': // 2 strings to match.
1280 0 : if (memcmp(Mnemonic.data()+4, "q_clamp_f", 9) != 0)
1281 : break;
1282 : switch (Mnemonic[13]) {
1283 : default: break;
1284 : case '3': // 1 string to match.
1285 0 : if (memcmp(Mnemonic.data()+14, "2_e32", 5) != 0)
1286 : break;
1287 0 : Mnemonic = "v_rsq_clamp_f32"; // "v_rsq_clamp_f32_e32"
1288 0 : return;
1289 : case '6': // 1 string to match.
1290 0 : if (memcmp(Mnemonic.data()+14, "4_e32", 5) != 0)
1291 : break;
1292 0 : Mnemonic = "v_rsq_clamp_f64"; // "v_rsq_clamp_f64_e32"
1293 0 : return;
1294 : }
1295 : break;
1296 : }
1297 : break;
1298 : case 's': // 1 string to match.
1299 0 : if (memcmp(Mnemonic.data()+3, "at_pk_u8_i16_e32", 16) != 0)
1300 : break;
1301 0 : Mnemonic = "v_sat_pk_u8_i16"; // "v_sat_pk_u8_i16_e32"
1302 0 : return;
1303 : case 'w': // 1 string to match.
1304 0 : if (memcmp(Mnemonic.data()+3, "ritelane_b32_e32", 16) != 0)
1305 : break;
1306 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_writelane_b32_e32"
1307 0 : Mnemonic = "v_writelane_b32";
1308 : return;
1309 : }
1310 : break;
1311 : case 20: // 20 strings to match.
1312 2014 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
1313 : break;
1314 : switch (Mnemonic[2]) {
1315 : default: break;
1316 : case 'c': // 7 strings to match.
1317 629 : if (memcmp(Mnemonic.data()+3, "vt_", 3) != 0)
1318 : break;
1319 : switch (Mnemonic[6]) {
1320 : default: break;
1321 : case 'f': // 4 strings to match.
1322 0 : if (memcmp(Mnemonic.data()+7, "32_ubyte", 8) != 0)
1323 : break;
1324 : switch (Mnemonic[15]) {
1325 : default: break;
1326 : case '0': // 1 string to match.
1327 0 : if (memcmp(Mnemonic.data()+16, "_e32", 4) != 0)
1328 : break;
1329 0 : Mnemonic = "v_cvt_f32_ubyte0"; // "v_cvt_f32_ubyte0_e32"
1330 0 : return;
1331 : case '1': // 1 string to match.
1332 0 : if (memcmp(Mnemonic.data()+16, "_e32", 4) != 0)
1333 : break;
1334 0 : Mnemonic = "v_cvt_f32_ubyte1"; // "v_cvt_f32_ubyte1_e32"
1335 0 : return;
1336 : case '2': // 1 string to match.
1337 0 : if (memcmp(Mnemonic.data()+16, "_e32", 4) != 0)
1338 : break;
1339 0 : Mnemonic = "v_cvt_f32_ubyte2"; // "v_cvt_f32_ubyte2_e32"
1340 0 : return;
1341 : case '3': // 1 string to match.
1342 0 : if (memcmp(Mnemonic.data()+16, "_e32", 4) != 0)
1343 : break;
1344 0 : Mnemonic = "v_cvt_f32_ubyte3"; // "v_cvt_f32_ubyte3_e32"
1345 0 : return;
1346 : }
1347 : break;
1348 : case 'o': // 1 string to match.
1349 0 : if (memcmp(Mnemonic.data()+7, "ff_f32_i4_e32", 13) != 0)
1350 : break;
1351 0 : Mnemonic = "v_cvt_off_f32_i4"; // "v_cvt_off_f32_i4_e32"
1352 0 : return;
1353 : case 'p': // 2 strings to match.
1354 629 : if (memcmp(Mnemonic.data()+7, "k_", 2) != 0)
1355 : break;
1356 : switch (Mnemonic[9]) {
1357 : default: break;
1358 : case 'i': // 1 string to match.
1359 0 : if (memcmp(Mnemonic.data()+10, "16_i32_e32", 10) != 0)
1360 : break;
1361 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_cvt_pk_i16_i32_e32"
1362 0 : Mnemonic = "v_cvt_pk_i16_i32";
1363 : return;
1364 : case 'u': // 1 string to match.
1365 0 : if (memcmp(Mnemonic.data()+10, "16_u32_e32", 10) != 0)
1366 : break;
1367 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_cvt_pk_u16_u32_e32"
1368 0 : Mnemonic = "v_cvt_pk_u16_u32";
1369 : return;
1370 : }
1371 : break;
1372 : }
1373 : break;
1374 : case 'e': // 1 string to match.
1375 0 : if (memcmp(Mnemonic.data()+3, "xp_legacy_f32_e32", 17) != 0)
1376 : break;
1377 0 : Mnemonic = "v_exp_legacy_f32"; // "v_exp_legacy_f32_e32"
1378 0 : return;
1379 : case 'f': // 3 strings to match.
1380 0 : if (memcmp(Mnemonic.data()+3, "rexp_mant_f", 11) != 0)
1381 : break;
1382 : switch (Mnemonic[14]) {
1383 : default: break;
1384 : case '1': // 1 string to match.
1385 0 : if (memcmp(Mnemonic.data()+15, "6_e32", 5) != 0)
1386 : break;
1387 0 : Mnemonic = "v_frexp_mant_f16"; // "v_frexp_mant_f16_e32"
1388 0 : return;
1389 : case '3': // 1 string to match.
1390 0 : if (memcmp(Mnemonic.data()+15, "2_e32", 5) != 0)
1391 : break;
1392 0 : Mnemonic = "v_frexp_mant_f32"; // "v_frexp_mant_f32_e32"
1393 0 : return;
1394 : case '6': // 1 string to match.
1395 0 : if (memcmp(Mnemonic.data()+15, "4_e32", 5) != 0)
1396 : break;
1397 0 : Mnemonic = "v_frexp_mant_f64"; // "v_frexp_mant_f64_e32"
1398 0 : return;
1399 : }
1400 : break;
1401 : case 'l': // 1 string to match.
1402 0 : if (memcmp(Mnemonic.data()+3, "og_legacy_f32_e32", 17) != 0)
1403 : break;
1404 0 : Mnemonic = "v_log_legacy_f32"; // "v_log_legacy_f32_e32"
1405 0 : return;
1406 0 : case 'm': // 6 strings to match.
1407 : switch (Mnemonic[3]) {
1408 : default: break;
1409 0 : case 'a': // 2 strings to match.
1410 : switch (Mnemonic[4]) {
1411 : default: break;
1412 : case 'c': // 1 string to match.
1413 0 : if (memcmp(Mnemonic.data()+5, "_legacy_f32_e32", 15) != 0)
1414 : break;
1415 0 : if ((Features & Feature_isSICI) == Feature_isSICI) // "v_mac_legacy_f32_e32"
1416 0 : Mnemonic = "v_mac_legacy_f32";
1417 : return;
1418 : case 'x': // 1 string to match.
1419 0 : if (memcmp(Mnemonic.data()+5, "_legacy_f32_e32", 15) != 0)
1420 : break;
1421 0 : if ((Features & Feature_isSICI) == Feature_isSICI) // "v_max_legacy_f32_e32"
1422 0 : Mnemonic = "v_max_legacy_f32";
1423 : return;
1424 : }
1425 : break;
1426 : case 'i': // 1 string to match.
1427 0 : if (memcmp(Mnemonic.data()+4, "n_legacy_f32_e32", 16) != 0)
1428 : break;
1429 0 : if ((Features & Feature_isSICI) == Feature_isSICI) // "v_min_legacy_f32_e32"
1430 0 : Mnemonic = "v_min_legacy_f32";
1431 : return;
1432 : case 'u': // 3 strings to match.
1433 0 : if (memcmp(Mnemonic.data()+4, "l_", 2) != 0)
1434 : break;
1435 : switch (Mnemonic[6]) {
1436 : default: break;
1437 : case 'h': // 2 strings to match.
1438 0 : if (memcmp(Mnemonic.data()+7, "i_", 2) != 0)
1439 : break;
1440 : switch (Mnemonic[9]) {
1441 : default: break;
1442 : case 'i': // 1 string to match.
1443 0 : if (memcmp(Mnemonic.data()+10, "32_i24_e32", 10) != 0)
1444 : break;
1445 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_mul_hi_i32_i24_e32"
1446 0 : Mnemonic = "v_mul_hi_i32_i24";
1447 : return;
1448 : case 'u': // 1 string to match.
1449 0 : if (memcmp(Mnemonic.data()+10, "32_u24_e32", 10) != 0)
1450 : break;
1451 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_mul_hi_u32_u24_e32"
1452 0 : Mnemonic = "v_mul_hi_u32_u24";
1453 : return;
1454 : }
1455 : break;
1456 : case 'l': // 1 string to match.
1457 0 : if (memcmp(Mnemonic.data()+7, "egacy_f32_e32", 13) != 0)
1458 : break;
1459 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_mul_legacy_f32_e32"
1460 0 : Mnemonic = "v_mul_legacy_f32";
1461 : return;
1462 : }
1463 : break;
1464 : }
1465 : break;
1466 0 : case 'r': // 2 strings to match.
1467 : switch (Mnemonic[3]) {
1468 : default: break;
1469 : case 'c': // 1 string to match.
1470 0 : if (memcmp(Mnemonic.data()+4, "p_legacy_f32_e32", 16) != 0)
1471 : break;
1472 0 : Mnemonic = "v_rcp_legacy_f32"; // "v_rcp_legacy_f32_e32"
1473 0 : return;
1474 : case 's': // 1 string to match.
1475 0 : if (memcmp(Mnemonic.data()+4, "q_legacy_f32_e32", 16) != 0)
1476 : break;
1477 0 : Mnemonic = "v_rsq_legacy_f32"; // "v_rsq_legacy_f32_e32"
1478 0 : return;
1479 : }
1480 : break;
1481 : }
1482 : break;
1483 : case 21: // 2 strings to match.
1484 1237 : if (memcmp(Mnemonic.data()+0, "v_cvt_", 6) != 0)
1485 : break;
1486 : switch (Mnemonic[6]) {
1487 : default: break;
1488 : case 'f': // 1 string to match.
1489 0 : if (memcmp(Mnemonic.data()+7, "lr_i32_f32_e32", 14) != 0)
1490 : break;
1491 0 : Mnemonic = "v_cvt_flr_i32_f32"; // "v_cvt_flr_i32_f32_e32"
1492 0 : return;
1493 : case 'r': // 1 string to match.
1494 0 : if (memcmp(Mnemonic.data()+7, "pi_i32_f32_e32", 14) != 0)
1495 : break;
1496 0 : Mnemonic = "v_cvt_rpi_i32_f32"; // "v_cvt_rpi_i32_f32_e32"
1497 0 : return;
1498 : }
1499 : break;
1500 : case 22: // 4 strings to match.
1501 994 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
1502 : break;
1503 : switch (Mnemonic[2]) {
1504 : default: break;
1505 : case 'c': // 2 strings to match.
1506 0 : if (memcmp(Mnemonic.data()+3, "vt_norm_", 8) != 0)
1507 : break;
1508 : switch (Mnemonic[11]) {
1509 : default: break;
1510 : case 'i': // 1 string to match.
1511 0 : if (memcmp(Mnemonic.data()+12, "16_f16_e32", 10) != 0)
1512 : break;
1513 0 : Mnemonic = "v_cvt_norm_i16_f16"; // "v_cvt_norm_i16_f16_e32"
1514 0 : return;
1515 : case 'u': // 1 string to match.
1516 0 : if (memcmp(Mnemonic.data()+12, "16_f16_e32", 10) != 0)
1517 : break;
1518 0 : Mnemonic = "v_cvt_norm_u16_f16"; // "v_cvt_norm_u16_f16_e32"
1519 0 : return;
1520 : }
1521 : break;
1522 : case 'm': // 2 strings to match.
1523 0 : if (memcmp(Mnemonic.data()+3, "bcnt_", 5) != 0)
1524 : break;
1525 : switch (Mnemonic[8]) {
1526 : default: break;
1527 : case 'h': // 1 string to match.
1528 0 : if (memcmp(Mnemonic.data()+9, "i_u32_b32_e32", 13) != 0)
1529 : break;
1530 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_mbcnt_hi_u32_b32_e32"
1531 0 : Mnemonic = "v_mbcnt_hi_u32_b32";
1532 : return;
1533 : case 'l': // 1 string to match.
1534 0 : if (memcmp(Mnemonic.data()+9, "o_u32_b32_e32", 13) != 0)
1535 : break;
1536 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_mbcnt_lo_u32_b32_e32"
1537 0 : Mnemonic = "v_mbcnt_lo_u32_b32";
1538 : return;
1539 : }
1540 : break;
1541 : }
1542 : break;
1543 : case 23: // 4 strings to match.
1544 301 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
1545 : break;
1546 : switch (Mnemonic[2]) {
1547 : default: break;
1548 : case 'c': // 1 string to match.
1549 0 : if (memcmp(Mnemonic.data()+3, "vt_pkrtz_f16_f32_e32", 20) != 0)
1550 : break;
1551 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_cvt_pkrtz_f16_f32_e32"
1552 0 : Mnemonic = "v_cvt_pkrtz_f16_f32";
1553 : return;
1554 : case 'f': // 3 strings to match.
1555 0 : if (memcmp(Mnemonic.data()+3, "rexp_exp_i", 10) != 0)
1556 : break;
1557 : switch (Mnemonic[13]) {
1558 : default: break;
1559 : case '1': // 1 string to match.
1560 0 : if (memcmp(Mnemonic.data()+14, "6_f16_e32", 9) != 0)
1561 : break;
1562 0 : Mnemonic = "v_frexp_exp_i16_f16"; // "v_frexp_exp_i16_f16_e32"
1563 0 : return;
1564 : case '3': // 2 strings to match.
1565 0 : if (memcmp(Mnemonic.data()+14, "2_f", 3) != 0)
1566 : break;
1567 : switch (Mnemonic[17]) {
1568 : default: break;
1569 : case '3': // 1 string to match.
1570 0 : if (memcmp(Mnemonic.data()+18, "2_e32", 5) != 0)
1571 : break;
1572 0 : Mnemonic = "v_frexp_exp_i32_f32"; // "v_frexp_exp_i32_f32_e32"
1573 0 : return;
1574 : case '6': // 1 string to match.
1575 0 : if (memcmp(Mnemonic.data()+18, "4_e32", 5) != 0)
1576 : break;
1577 0 : Mnemonic = "v_frexp_exp_i32_f64"; // "v_frexp_exp_i32_f64_e32"
1578 0 : return;
1579 : }
1580 : break;
1581 : }
1582 : break;
1583 : }
1584 : break;
1585 : case 24: // 3 strings to match.
1586 409 : if (memcmp(Mnemonic.data()+0, "v_cvt_pk", 8) != 0)
1587 : break;
1588 : switch (Mnemonic[8]) {
1589 : default: break;
1590 : case 'a': // 1 string to match.
1591 0 : if (memcmp(Mnemonic.data()+9, "ccum_u8_f32_e32", 15) != 0)
1592 : break;
1593 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_cvt_pkaccum_u8_f32_e32"
1594 0 : Mnemonic = "v_cvt_pkaccum_u8_f32";
1595 : return;
1596 : case 'n': // 2 strings to match.
1597 0 : if (memcmp(Mnemonic.data()+9, "orm_", 4) != 0)
1598 : break;
1599 : switch (Mnemonic[13]) {
1600 : default: break;
1601 : case 'i': // 1 string to match.
1602 0 : if (memcmp(Mnemonic.data()+14, "16_f32_e32", 10) != 0)
1603 : break;
1604 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_cvt_pknorm_i16_f32_e32"
1605 0 : Mnemonic = "v_cvt_pknorm_i16_f32";
1606 : return;
1607 : case 'u': // 1 string to match.
1608 0 : if (memcmp(Mnemonic.data()+14, "16_f32_e32", 10) != 0)
1609 : break;
1610 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_cvt_pknorm_u16_f32_e32"
1611 0 : Mnemonic = "v_cvt_pknorm_u16_f32";
1612 : return;
1613 : }
1614 : break;
1615 : }
1616 : break;
1617 : case 30: // 1 string to match.
1618 0 : if (memcmp(Mnemonic.data()+0, "v_screen_partition_4se_b32_e32", 30) != 0)
1619 : break;
1620 0 : Mnemonic = "v_screen_partition_4se_b32"; // "v_screen_partition_4se_b32_e32"
1621 0 : return;
1622 : }
1623 : break;
1624 : case 1:
1625 : switch (Mnemonic.size()) {
1626 : default: break;
1627 : case 9: // 1 string to match.
1628 10282 : if (memcmp(Mnemonic.data()+0, "v_nop_e64", 9) != 0)
1629 : break;
1630 0 : Mnemonic = "v_nop"; // "v_nop_e64"
1631 0 : return;
1632 : case 12: // 2 strings to match.
1633 14357 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
1634 : break;
1635 : switch (Mnemonic[2]) {
1636 : default: break;
1637 : case 'o': // 1 string to match.
1638 0 : if (memcmp(Mnemonic.data()+3, "r_b32_e64", 9) != 0)
1639 : break;
1640 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_or_b32_e64"
1641 0 : Mnemonic = "v_or_b32";
1642 : return;
1643 : case 's': // 1 string to match.
1644 708 : if (memcmp(Mnemonic.data()+3, "ad_u8_e64", 9) != 0)
1645 : break;
1646 0 : Mnemonic = "v_sad_u8"; // "v_sad_u8_e64"
1647 0 : return;
1648 : }
1649 : break;
1650 : case 13: // 68 strings to match.
1651 16254 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
1652 : break;
1653 : switch (Mnemonic[2]) {
1654 : default: break;
1655 393 : case 'a': // 8 strings to match.
1656 : switch (Mnemonic[3]) {
1657 : default: break;
1658 : case 'd': // 7 strings to match.
1659 42 : if (memcmp(Mnemonic.data()+4, "d_", 2) != 0)
1660 : break;
1661 : switch (Mnemonic[6]) {
1662 : default: break;
1663 0 : case 'f': // 3 strings to match.
1664 : switch (Mnemonic[7]) {
1665 : default: break;
1666 : case '1': // 1 string to match.
1667 0 : if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1668 : break;
1669 0 : Mnemonic = "v_add_f16"; // "v_add_f16_e64"
1670 0 : return;
1671 : case '3': // 1 string to match.
1672 0 : if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1673 : break;
1674 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_add_f32_e64"
1675 0 : Mnemonic = "v_add_f32";
1676 : return;
1677 : case '6': // 1 string to match.
1678 0 : if (memcmp(Mnemonic.data()+8, "4_e64", 5) != 0)
1679 : break;
1680 0 : Mnemonic = "v_add_f64"; // "v_add_f64_e64"
1681 0 : return;
1682 : }
1683 : break;
1684 0 : case 'i': // 2 strings to match.
1685 : switch (Mnemonic[7]) {
1686 : default: break;
1687 : case '1': // 1 string to match.
1688 0 : if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1689 : break;
1690 0 : Mnemonic = "v_add_i16"; // "v_add_i16_e64"
1691 0 : return;
1692 : case '3': // 1 string to match.
1693 0 : if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1694 : break;
1695 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_add_i32_e64"
1696 0 : Mnemonic = "v_add_i32";
1697 : return;
1698 : }
1699 : break;
1700 0 : case 'u': // 2 strings to match.
1701 : switch (Mnemonic[7]) {
1702 : default: break;
1703 : case '1': // 1 string to match.
1704 0 : if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1705 : break;
1706 0 : Mnemonic = "v_add_u16"; // "v_add_u16_e64"
1707 0 : return;
1708 : case '3': // 1 string to match.
1709 0 : if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1710 : break;
1711 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_add_u32_e64"
1712 0 : Mnemonic = "v_add_u32";
1713 : return;
1714 : }
1715 : break;
1716 : }
1717 : break;
1718 : case 'n': // 1 string to match.
1719 0 : if (memcmp(Mnemonic.data()+4, "d_b32_e64", 9) != 0)
1720 : break;
1721 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_and_b32_e64"
1722 0 : Mnemonic = "v_and_b32";
1723 : return;
1724 : }
1725 : break;
1726 0 : case 'b': // 4 strings to match.
1727 0 : if (Mnemonic[3] != 'f')
1728 : break;
1729 : switch (Mnemonic[4]) {
1730 : default: break;
1731 0 : case 'e': // 2 strings to match.
1732 0 : if (Mnemonic[5] != '_')
1733 : break;
1734 : switch (Mnemonic[6]) {
1735 : default: break;
1736 : case 'i': // 1 string to match.
1737 0 : if (memcmp(Mnemonic.data()+7, "32_e64", 6) != 0)
1738 : break;
1739 0 : Mnemonic = "v_bfe_i32"; // "v_bfe_i32_e64"
1740 0 : return;
1741 : case 'u': // 1 string to match.
1742 0 : if (memcmp(Mnemonic.data()+7, "32_e64", 6) != 0)
1743 : break;
1744 0 : Mnemonic = "v_bfe_u32"; // "v_bfe_u32_e64"
1745 0 : return;
1746 : }
1747 : break;
1748 : case 'i': // 1 string to match.
1749 0 : if (memcmp(Mnemonic.data()+5, "_b32_e64", 8) != 0)
1750 : break;
1751 0 : Mnemonic = "v_bfi_b32"; // "v_bfi_b32_e64"
1752 0 : return;
1753 : case 'm': // 1 string to match.
1754 0 : if (memcmp(Mnemonic.data()+5, "_b32_e64", 8) != 0)
1755 : break;
1756 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_bfm_b32_e64"
1757 0 : Mnemonic = "v_bfm_b32";
1758 : return;
1759 : }
1760 : break;
1761 12931 : case 'c': // 3 strings to match.
1762 : switch (Mnemonic[3]) {
1763 : default: break;
1764 : case 'l': // 1 string to match.
1765 0 : if (memcmp(Mnemonic.data()+4, "rexcp_e64", 9) != 0)
1766 : break;
1767 0 : Mnemonic = "v_clrexcp"; // "v_clrexcp_e64"
1768 0 : return;
1769 : case 'o': // 2 strings to match.
1770 0 : if (memcmp(Mnemonic.data()+4, "s_f", 3) != 0)
1771 : break;
1772 : switch (Mnemonic[7]) {
1773 : default: break;
1774 : case '1': // 1 string to match.
1775 0 : if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1776 : break;
1777 0 : Mnemonic = "v_cos_f16"; // "v_cos_f16_e64"
1778 0 : return;
1779 : case '3': // 1 string to match.
1780 0 : if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1781 : break;
1782 0 : Mnemonic = "v_cos_f32"; // "v_cos_f32_e64"
1783 0 : return;
1784 : }
1785 : break;
1786 : }
1787 : break;
1788 : case 'e': // 2 strings to match.
1789 0 : if (memcmp(Mnemonic.data()+3, "xp_f", 4) != 0)
1790 : break;
1791 : switch (Mnemonic[7]) {
1792 : default: break;
1793 : case '1': // 1 string to match.
1794 0 : if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1795 : break;
1796 0 : Mnemonic = "v_exp_f16"; // "v_exp_f16_e64"
1797 0 : return;
1798 : case '3': // 1 string to match.
1799 0 : if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1800 : break;
1801 0 : Mnemonic = "v_exp_f32"; // "v_exp_f32_e64"
1802 0 : return;
1803 : }
1804 : break;
1805 : case 'f': // 3 strings to match.
1806 51 : if (memcmp(Mnemonic.data()+3, "ma_f", 4) != 0)
1807 : break;
1808 : switch (Mnemonic[7]) {
1809 : default: break;
1810 : case '1': // 1 string to match.
1811 0 : if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1812 : break;
1813 0 : Mnemonic = "v_fma_f16"; // "v_fma_f16_e64"
1814 0 : return;
1815 : case '3': // 1 string to match.
1816 0 : if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1817 : break;
1818 0 : Mnemonic = "v_fma_f32"; // "v_fma_f32_e64"
1819 0 : return;
1820 : case '6': // 1 string to match.
1821 0 : if (memcmp(Mnemonic.data()+8, "4_e64", 5) != 0)
1822 : break;
1823 0 : Mnemonic = "v_fma_f64"; // "v_fma_f64_e64"
1824 0 : return;
1825 : }
1826 : break;
1827 795 : case 'l': // 3 strings to match.
1828 : switch (Mnemonic[3]) {
1829 : default: break;
1830 : case 'e': // 1 string to match.
1831 0 : if (memcmp(Mnemonic.data()+4, "rp_u8_e64", 9) != 0)
1832 : break;
1833 0 : Mnemonic = "v_lerp_u8"; // "v_lerp_u8_e64"
1834 0 : return;
1835 : case 'o': // 2 strings to match.
1836 0 : if (memcmp(Mnemonic.data()+4, "g_f", 3) != 0)
1837 : break;
1838 : switch (Mnemonic[7]) {
1839 : default: break;
1840 : case '1': // 1 string to match.
1841 0 : if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1842 : break;
1843 0 : Mnemonic = "v_log_f16"; // "v_log_f16_e64"
1844 0 : return;
1845 : case '3': // 1 string to match.
1846 0 : if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1847 : break;
1848 0 : Mnemonic = "v_log_f32"; // "v_log_f32_e64"
1849 0 : return;
1850 : }
1851 : break;
1852 : }
1853 : break;
1854 1740 : case 'm': // 25 strings to match.
1855 : switch (Mnemonic[3]) {
1856 : default: break;
1857 1258 : case 'a': // 13 strings to match.
1858 : switch (Mnemonic[4]) {
1859 : default: break;
1860 : case 'c': // 2 strings to match.
1861 0 : if (memcmp(Mnemonic.data()+5, "_f", 2) != 0)
1862 : break;
1863 : switch (Mnemonic[7]) {
1864 : default: break;
1865 : case '1': // 1 string to match.
1866 0 : if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1867 : break;
1868 0 : Mnemonic = "v_mac_f16"; // "v_mac_f16_e64"
1869 0 : return;
1870 : case '3': // 1 string to match.
1871 0 : if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1872 : break;
1873 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_mac_f32_e64"
1874 0 : Mnemonic = "v_mac_f32";
1875 : return;
1876 : }
1877 : break;
1878 1258 : case 'd': // 4 strings to match.
1879 1258 : if (Mnemonic[5] != '_')
1880 : break;
1881 : switch (Mnemonic[6]) {
1882 : default: break;
1883 0 : case 'f': // 2 strings to match.
1884 : switch (Mnemonic[7]) {
1885 : default: break;
1886 : case '1': // 1 string to match.
1887 0 : if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1888 : break;
1889 0 : Mnemonic = "v_mad_f16"; // "v_mad_f16_e64"
1890 0 : return;
1891 : case '3': // 1 string to match.
1892 0 : if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1893 : break;
1894 0 : Mnemonic = "v_mad_f32"; // "v_mad_f32_e64"
1895 0 : return;
1896 : }
1897 : break;
1898 : case 'i': // 1 string to match.
1899 543 : if (memcmp(Mnemonic.data()+7, "16_e64", 6) != 0)
1900 : break;
1901 0 : Mnemonic = "v_mad_i16"; // "v_mad_i16_e64"
1902 0 : return;
1903 : case 'u': // 1 string to match.
1904 547 : if (memcmp(Mnemonic.data()+7, "16_e64", 6) != 0)
1905 : break;
1906 0 : Mnemonic = "v_mad_u16"; // "v_mad_u16_e64"
1907 0 : return;
1908 : }
1909 : break;
1910 0 : case 'x': // 7 strings to match.
1911 0 : if (Mnemonic[5] != '_')
1912 : break;
1913 : switch (Mnemonic[6]) {
1914 : default: break;
1915 0 : case 'f': // 3 strings to match.
1916 : switch (Mnemonic[7]) {
1917 : default: break;
1918 : case '1': // 1 string to match.
1919 0 : if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1920 : break;
1921 0 : Mnemonic = "v_max_f16"; // "v_max_f16_e64"
1922 0 : return;
1923 : case '3': // 1 string to match.
1924 0 : if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1925 : break;
1926 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_max_f32_e64"
1927 0 : Mnemonic = "v_max_f32";
1928 : return;
1929 : case '6': // 1 string to match.
1930 0 : if (memcmp(Mnemonic.data()+8, "4_e64", 5) != 0)
1931 : break;
1932 0 : Mnemonic = "v_max_f64"; // "v_max_f64_e64"
1933 0 : return;
1934 : }
1935 : break;
1936 0 : case 'i': // 2 strings to match.
1937 : switch (Mnemonic[7]) {
1938 : default: break;
1939 : case '1': // 1 string to match.
1940 0 : if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1941 : break;
1942 0 : Mnemonic = "v_max_i16"; // "v_max_i16_e64"
1943 0 : return;
1944 : case '3': // 1 string to match.
1945 0 : if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1946 : break;
1947 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_max_i32_e64"
1948 0 : Mnemonic = "v_max_i32";
1949 : return;
1950 : }
1951 : break;
1952 0 : case 'u': // 2 strings to match.
1953 : switch (Mnemonic[7]) {
1954 : default: break;
1955 : case '1': // 1 string to match.
1956 0 : if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1957 : break;
1958 0 : Mnemonic = "v_max_u16"; // "v_max_u16_e64"
1959 0 : return;
1960 : case '3': // 1 string to match.
1961 0 : if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1962 : break;
1963 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_max_u32_e64"
1964 0 : Mnemonic = "v_max_u32";
1965 : return;
1966 : }
1967 : break;
1968 : }
1969 : break;
1970 : }
1971 : break;
1972 : case 'i': // 7 strings to match.
1973 0 : if (memcmp(Mnemonic.data()+4, "n_", 2) != 0)
1974 : break;
1975 : switch (Mnemonic[6]) {
1976 : default: break;
1977 0 : case 'f': // 3 strings to match.
1978 : switch (Mnemonic[7]) {
1979 : default: break;
1980 : case '1': // 1 string to match.
1981 0 : if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1982 : break;
1983 0 : Mnemonic = "v_min_f16"; // "v_min_f16_e64"
1984 0 : return;
1985 : case '3': // 1 string to match.
1986 0 : if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1987 : break;
1988 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_min_f32_e64"
1989 0 : Mnemonic = "v_min_f32";
1990 : return;
1991 : case '6': // 1 string to match.
1992 0 : if (memcmp(Mnemonic.data()+8, "4_e64", 5) != 0)
1993 : break;
1994 0 : Mnemonic = "v_min_f64"; // "v_min_f64_e64"
1995 0 : return;
1996 : }
1997 : break;
1998 0 : case 'i': // 2 strings to match.
1999 : switch (Mnemonic[7]) {
2000 : default: break;
2001 : case '1': // 1 string to match.
2002 0 : if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
2003 : break;
2004 0 : Mnemonic = "v_min_i16"; // "v_min_i16_e64"
2005 0 : return;
2006 : case '3': // 1 string to match.
2007 0 : if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
2008 : break;
2009 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_min_i32_e64"
2010 0 : Mnemonic = "v_min_i32";
2011 : return;
2012 : }
2013 : break;
2014 0 : case 'u': // 2 strings to match.
2015 : switch (Mnemonic[7]) {
2016 : default: break;
2017 : case '1': // 1 string to match.
2018 0 : if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
2019 : break;
2020 0 : Mnemonic = "v_min_u16"; // "v_min_u16_e64"
2021 0 : return;
2022 : case '3': // 1 string to match.
2023 0 : if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
2024 : break;
2025 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_min_u32_e64"
2026 0 : Mnemonic = "v_min_u32";
2027 : return;
2028 : }
2029 : break;
2030 : }
2031 : break;
2032 : case 'o': // 1 string to match.
2033 102 : if (memcmp(Mnemonic.data()+4, "v_b32_e64", 9) != 0)
2034 : break;
2035 0 : Mnemonic = "v_mov_b32"; // "v_mov_b32_e64"
2036 0 : return;
2037 : case 's': // 1 string to match.
2038 0 : if (memcmp(Mnemonic.data()+4, "ad_u8_e64", 9) != 0)
2039 : break;
2040 0 : Mnemonic = "v_msad_u8"; // "v_msad_u8_e64"
2041 0 : return;
2042 : case 'u': // 3 strings to match.
2043 380 : if (memcmp(Mnemonic.data()+4, "l_f", 3) != 0)
2044 : break;
2045 : switch (Mnemonic[7]) {
2046 : default: break;
2047 : case '1': // 1 string to match.
2048 0 : if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
2049 : break;
2050 0 : Mnemonic = "v_mul_f16"; // "v_mul_f16_e64"
2051 0 : return;
2052 : case '3': // 1 string to match.
2053 0 : if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
2054 : break;
2055 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_mul_f32_e64"
2056 0 : Mnemonic = "v_mul_f32";
2057 : return;
2058 : case '6': // 1 string to match.
2059 0 : if (memcmp(Mnemonic.data()+8, "4_e64", 5) != 0)
2060 : break;
2061 0 : Mnemonic = "v_mul_f64"; // "v_mul_f64_e64"
2062 0 : return;
2063 : }
2064 : break;
2065 : }
2066 : break;
2067 : case 'n': // 1 string to match.
2068 0 : if (memcmp(Mnemonic.data()+3, "ot_b32_e64", 10) != 0)
2069 : break;
2070 0 : Mnemonic = "v_not_b32"; // "v_not_b32_e64"
2071 0 : return;
2072 : case 'o': // 1 string to match.
2073 0 : if (memcmp(Mnemonic.data()+3, "r3_b32_e64", 10) != 0)
2074 : break;
2075 0 : Mnemonic = "v_or3_b32"; // "v_or3_b32_e64"
2076 0 : return;
2077 0 : case 'r': // 6 strings to match.
2078 : switch (Mnemonic[3]) {
2079 : default: break;
2080 : case 'c': // 3 strings to match.
2081 0 : if (memcmp(Mnemonic.data()+4, "p_f", 3) != 0)
2082 : break;
2083 : switch (Mnemonic[7]) {
2084 : default: break;
2085 : case '1': // 1 string to match.
2086 0 : if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
2087 : break;
2088 0 : Mnemonic = "v_rcp_f16"; // "v_rcp_f16_e64"
2089 0 : return;
2090 : case '3': // 1 string to match.
2091 0 : if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
2092 : break;
2093 0 : Mnemonic = "v_rcp_f32"; // "v_rcp_f32_e64"
2094 0 : return;
2095 : case '6': // 1 string to match.
2096 0 : if (memcmp(Mnemonic.data()+8, "4_e64", 5) != 0)
2097 : break;
2098 0 : Mnemonic = "v_rcp_f64"; // "v_rcp_f64_e64"
2099 0 : return;
2100 : }
2101 : break;
2102 : case 's': // 3 strings to match.
2103 0 : if (memcmp(Mnemonic.data()+4, "q_f", 3) != 0)
2104 : break;
2105 : switch (Mnemonic[7]) {
2106 : default: break;
2107 : case '1': // 1 string to match.
2108 0 : if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
2109 : break;
2110 0 : Mnemonic = "v_rsq_f16"; // "v_rsq_f16_e64"
2111 0 : return;
2112 : case '3': // 1 string to match.
2113 0 : if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
2114 : break;
2115 0 : Mnemonic = "v_rsq_f32"; // "v_rsq_f32_e64"
2116 0 : return;
2117 : case '6': // 1 string to match.
2118 0 : if (memcmp(Mnemonic.data()+8, "4_e64", 5) != 0)
2119 : break;
2120 0 : Mnemonic = "v_rsq_f64"; // "v_rsq_f64_e64"
2121 0 : return;
2122 : }
2123 : break;
2124 : }
2125 : break;
2126 104 : case 's': // 10 strings to match.
2127 : switch (Mnemonic[3]) {
2128 : default: break;
2129 : case 'a': // 2 strings to match.
2130 0 : if (memcmp(Mnemonic.data()+4, "d_u", 3) != 0)
2131 : break;
2132 : switch (Mnemonic[7]) {
2133 : default: break;
2134 : case '1': // 1 string to match.
2135 0 : if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
2136 : break;
2137 0 : Mnemonic = "v_sad_u16"; // "v_sad_u16_e64"
2138 0 : return;
2139 : case '3': // 1 string to match.
2140 0 : if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
2141 : break;
2142 0 : Mnemonic = "v_sad_u32"; // "v_sad_u32_e64"
2143 0 : return;
2144 : }
2145 : break;
2146 : case 'i': // 2 strings to match.
2147 0 : if (memcmp(Mnemonic.data()+4, "n_f", 3) != 0)
2148 : break;
2149 : switch (Mnemonic[7]) {
2150 : default: break;
2151 : case '1': // 1 string to match.
2152 0 : if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
2153 : break;
2154 0 : Mnemonic = "v_sin_f16"; // "v_sin_f16_e64"
2155 0 : return;
2156 : case '3': // 1 string to match.
2157 0 : if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
2158 : break;
2159 0 : Mnemonic = "v_sin_f32"; // "v_sin_f32_e64"
2160 0 : return;
2161 : }
2162 : break;
2163 : case 'u': // 6 strings to match.
2164 104 : if (memcmp(Mnemonic.data()+4, "b_", 2) != 0)
2165 : break;
2166 : switch (Mnemonic[6]) {
2167 : default: break;
2168 0 : case 'f': // 2 strings to match.
2169 : switch (Mnemonic[7]) {
2170 : default: break;
2171 : case '1': // 1 string to match.
2172 0 : if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
2173 : break;
2174 0 : Mnemonic = "v_sub_f16"; // "v_sub_f16_e64"
2175 0 : return;
2176 : case '3': // 1 string to match.
2177 0 : if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
2178 : break;
2179 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_sub_f32_e64"
2180 0 : Mnemonic = "v_sub_f32";
2181 : return;
2182 : }
2183 : break;
2184 0 : case 'i': // 2 strings to match.
2185 : switch (Mnemonic[7]) {
2186 : default: break;
2187 : case '1': // 1 string to match.
2188 0 : if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
2189 : break;
2190 0 : Mnemonic = "v_sub_i16"; // "v_sub_i16_e64"
2191 0 : return;
2192 : case '3': // 1 string to match.
2193 0 : if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
2194 : break;
2195 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_sub_i32_e64"
2196 0 : Mnemonic = "v_sub_i32";
2197 : return;
2198 : }
2199 : break;
2200 0 : case 'u': // 2 strings to match.
2201 : switch (Mnemonic[7]) {
2202 : default: break;
2203 : case '1': // 1 string to match.
2204 0 : if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
2205 : break;
2206 0 : Mnemonic = "v_sub_u16"; // "v_sub_u16_e64"
2207 0 : return;
2208 : case '3': // 1 string to match.
2209 0 : if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
2210 : break;
2211 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_sub_u32_e64"
2212 0 : Mnemonic = "v_sub_u32";
2213 : return;
2214 : }
2215 : break;
2216 : }
2217 : break;
2218 : }
2219 : break;
2220 0 : case 'x': // 2 strings to match.
2221 : switch (Mnemonic[3]) {
2222 : default: break;
2223 : case 'a': // 1 string to match.
2224 0 : if (memcmp(Mnemonic.data()+4, "d_u32_e64", 9) != 0)
2225 : break;
2226 0 : Mnemonic = "v_xad_u32"; // "v_xad_u32_e64"
2227 0 : return;
2228 : case 'o': // 1 string to match.
2229 0 : if (memcmp(Mnemonic.data()+4, "r_b32_e64", 9) != 0)
2230 : break;
2231 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_xor_b32_e64"
2232 0 : Mnemonic = "v_xor_b32";
2233 : return;
2234 : }
2235 : break;
2236 : }
2237 : break;
2238 : case 14: // 39 strings to match.
2239 5597 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
2240 : break;
2241 : switch (Mnemonic[2]) {
2242 : default: break;
2243 274 : case 'a': // 4 strings to match.
2244 : switch (Mnemonic[3]) {
2245 : default: break;
2246 92 : case 'd': // 2 strings to match.
2247 92 : if (Mnemonic[4] != 'd')
2248 : break;
2249 : switch (Mnemonic[5]) {
2250 : default: break;
2251 : case '3': // 1 string to match.
2252 0 : if (memcmp(Mnemonic.data()+6, "_u32_e64", 8) != 0)
2253 : break;
2254 0 : Mnemonic = "v_add3_u32"; // "v_add3_u32_e64"
2255 0 : return;
2256 : case 'c': // 1 string to match.
2257 0 : if (memcmp(Mnemonic.data()+6, "_u32_e64", 8) != 0)
2258 : break;
2259 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_addc_u32_e64"
2260 0 : Mnemonic = "v_addc_u32";
2261 : return;
2262 : }
2263 : break;
2264 : case 's': // 2 strings to match.
2265 0 : if (memcmp(Mnemonic.data()+4, "hr_i", 4) != 0)
2266 : break;
2267 : switch (Mnemonic[8]) {
2268 : default: break;
2269 : case '3': // 1 string to match.
2270 0 : if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2271 : break;
2272 0 : if ((Features & Feature_isSICI) == Feature_isSICI) // "v_ashr_i32_e64"
2273 0 : Mnemonic = "v_ashr_i32";
2274 : return;
2275 : case '6': // 1 string to match.
2276 0 : if (memcmp(Mnemonic.data()+9, "4_e64", 5) != 0)
2277 : break;
2278 0 : if ((Features & Feature_isSICI) == Feature_isSICI) // "v_ashr_i64_e64"
2279 0 : Mnemonic = "v_ashr_i64";
2280 : return;
2281 : }
2282 : break;
2283 : }
2284 : break;
2285 : case 'c': // 3 strings to match.
2286 4266 : if (memcmp(Mnemonic.data()+3, "eil_f", 5) != 0)
2287 : break;
2288 : switch (Mnemonic[8]) {
2289 : default: break;
2290 : case '1': // 1 string to match.
2291 0 : if (memcmp(Mnemonic.data()+9, "6_e64", 5) != 0)
2292 : break;
2293 0 : Mnemonic = "v_ceil_f16"; // "v_ceil_f16_e64"
2294 0 : return;
2295 : case '3': // 1 string to match.
2296 0 : if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2297 : break;
2298 0 : Mnemonic = "v_ceil_f32"; // "v_ceil_f32_e64"
2299 0 : return;
2300 : case '6': // 1 string to match.
2301 0 : if (memcmp(Mnemonic.data()+9, "4_e64", 5) != 0)
2302 : break;
2303 0 : Mnemonic = "v_ceil_f64"; // "v_ceil_f64_e64"
2304 0 : return;
2305 : }
2306 : break;
2307 0 : case 'f': // 4 strings to match.
2308 : switch (Mnemonic[3]) {
2309 : default: break;
2310 0 : case 'f': // 3 strings to match.
2311 0 : if (Mnemonic[4] != 'b')
2312 : break;
2313 : switch (Mnemonic[5]) {
2314 : default: break;
2315 0 : case 'h': // 2 strings to match.
2316 0 : if (Mnemonic[6] != '_')
2317 : break;
2318 : switch (Mnemonic[7]) {
2319 : default: break;
2320 : case 'i': // 1 string to match.
2321 0 : if (memcmp(Mnemonic.data()+8, "32_e64", 6) != 0)
2322 : break;
2323 0 : Mnemonic = "v_ffbh_i32"; // "v_ffbh_i32_e64"
2324 0 : return;
2325 : case 'u': // 1 string to match.
2326 0 : if (memcmp(Mnemonic.data()+8, "32_e64", 6) != 0)
2327 : break;
2328 0 : Mnemonic = "v_ffbh_u32"; // "v_ffbh_u32_e64"
2329 0 : return;
2330 : }
2331 : break;
2332 : case 'l': // 1 string to match.
2333 0 : if (memcmp(Mnemonic.data()+6, "_b32_e64", 8) != 0)
2334 : break;
2335 0 : Mnemonic = "v_ffbl_b32"; // "v_ffbl_b32_e64"
2336 0 : return;
2337 : }
2338 : break;
2339 : case 'm': // 1 string to match.
2340 0 : if (memcmp(Mnemonic.data()+4, "ac_f32_e64", 10) != 0)
2341 : break;
2342 0 : Mnemonic = "v_fmac_f32"; // "v_fmac_f32_e64"
2343 0 : return;
2344 : }
2345 : break;
2346 : case 'l': // 4 strings to match.
2347 92 : if (memcmp(Mnemonic.data()+3, "sh", 2) != 0)
2348 : break;
2349 : switch (Mnemonic[5]) {
2350 : default: break;
2351 : case 'l': // 2 strings to match.
2352 92 : if (memcmp(Mnemonic.data()+6, "_b", 2) != 0)
2353 : break;
2354 : switch (Mnemonic[8]) {
2355 : default: break;
2356 : case '3': // 1 string to match.
2357 0 : if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2358 : break;
2359 0 : if ((Features & Feature_isSICI) == Feature_isSICI) // "v_lshl_b32_e64"
2360 0 : Mnemonic = "v_lshl_b32";
2361 : return;
2362 : case '6': // 1 string to match.
2363 0 : if (memcmp(Mnemonic.data()+9, "4_e64", 5) != 0)
2364 : break;
2365 0 : if ((Features & Feature_isSICI) == Feature_isSICI) // "v_lshl_b64_e64"
2366 0 : Mnemonic = "v_lshl_b64";
2367 : return;
2368 : }
2369 : break;
2370 : case 'r': // 2 strings to match.
2371 0 : if (memcmp(Mnemonic.data()+6, "_b", 2) != 0)
2372 : break;
2373 : switch (Mnemonic[8]) {
2374 : default: break;
2375 : case '3': // 1 string to match.
2376 0 : if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2377 : break;
2378 0 : if ((Features & Feature_isSICI) == Feature_isSICI) // "v_lshr_b32_e64"
2379 0 : Mnemonic = "v_lshr_b32";
2380 : return;
2381 : case '6': // 1 string to match.
2382 0 : if (memcmp(Mnemonic.data()+9, "4_e64", 5) != 0)
2383 : break;
2384 0 : if ((Features & Feature_isSICI) == Feature_isSICI) // "v_lshr_b64_e64"
2385 0 : Mnemonic = "v_lshr_b64";
2386 : return;
2387 : }
2388 : break;
2389 : }
2390 : break;
2391 133 : case 'm': // 18 strings to match.
2392 : switch (Mnemonic[3]) {
2393 : default: break;
2394 : case 'a': // 6 strings to match.
2395 0 : if (memcmp(Mnemonic.data()+4, "x3_", 3) != 0)
2396 : break;
2397 : switch (Mnemonic[7]) {
2398 : default: break;
2399 0 : case 'f': // 2 strings to match.
2400 : switch (Mnemonic[8]) {
2401 : default: break;
2402 : case '1': // 1 string to match.
2403 0 : if (memcmp(Mnemonic.data()+9, "6_e64", 5) != 0)
2404 : break;
2405 0 : Mnemonic = "v_max3_f16"; // "v_max3_f16_e64"
2406 0 : return;
2407 : case '3': // 1 string to match.
2408 0 : if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2409 : break;
2410 0 : Mnemonic = "v_max3_f32"; // "v_max3_f32_e64"
2411 0 : return;
2412 : }
2413 : break;
2414 0 : case 'i': // 2 strings to match.
2415 : switch (Mnemonic[8]) {
2416 : default: break;
2417 : case '1': // 1 string to match.
2418 0 : if (memcmp(Mnemonic.data()+9, "6_e64", 5) != 0)
2419 : break;
2420 0 : Mnemonic = "v_max3_i16"; // "v_max3_i16_e64"
2421 0 : return;
2422 : case '3': // 1 string to match.
2423 0 : if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2424 : break;
2425 0 : Mnemonic = "v_max3_i32"; // "v_max3_i32_e64"
2426 0 : return;
2427 : }
2428 : break;
2429 0 : case 'u': // 2 strings to match.
2430 : switch (Mnemonic[8]) {
2431 : default: break;
2432 : case '1': // 1 string to match.
2433 0 : if (memcmp(Mnemonic.data()+9, "6_e64", 5) != 0)
2434 : break;
2435 0 : Mnemonic = "v_max3_u16"; // "v_max3_u16_e64"
2436 0 : return;
2437 : case '3': // 1 string to match.
2438 0 : if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2439 : break;
2440 0 : Mnemonic = "v_max3_u32"; // "v_max3_u32_e64"
2441 0 : return;
2442 : }
2443 : break;
2444 : }
2445 : break;
2446 : case 'e': // 6 strings to match.
2447 0 : if (memcmp(Mnemonic.data()+4, "d3_", 3) != 0)
2448 : break;
2449 : switch (Mnemonic[7]) {
2450 : default: break;
2451 0 : case 'f': // 2 strings to match.
2452 : switch (Mnemonic[8]) {
2453 : default: break;
2454 : case '1': // 1 string to match.
2455 0 : if (memcmp(Mnemonic.data()+9, "6_e64", 5) != 0)
2456 : break;
2457 0 : Mnemonic = "v_med3_f16"; // "v_med3_f16_e64"
2458 0 : return;
2459 : case '3': // 1 string to match.
2460 0 : if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2461 : break;
2462 0 : Mnemonic = "v_med3_f32"; // "v_med3_f32_e64"
2463 0 : return;
2464 : }
2465 : break;
2466 0 : case 'i': // 2 strings to match.
2467 : switch (Mnemonic[8]) {
2468 : default: break;
2469 : case '1': // 1 string to match.
2470 0 : if (memcmp(Mnemonic.data()+9, "6_e64", 5) != 0)
2471 : break;
2472 0 : Mnemonic = "v_med3_i16"; // "v_med3_i16_e64"
2473 0 : return;
2474 : case '3': // 1 string to match.
2475 0 : if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2476 : break;
2477 0 : Mnemonic = "v_med3_i32"; // "v_med3_i32_e64"
2478 0 : return;
2479 : }
2480 : break;
2481 0 : case 'u': // 2 strings to match.
2482 : switch (Mnemonic[8]) {
2483 : default: break;
2484 : case '1': // 1 string to match.
2485 0 : if (memcmp(Mnemonic.data()+9, "6_e64", 5) != 0)
2486 : break;
2487 0 : Mnemonic = "v_med3_u16"; // "v_med3_u16_e64"
2488 0 : return;
2489 : case '3': // 1 string to match.
2490 0 : if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2491 : break;
2492 0 : Mnemonic = "v_med3_u32"; // "v_med3_u32_e64"
2493 0 : return;
2494 : }
2495 : break;
2496 : }
2497 : break;
2498 : case 'i': // 6 strings to match.
2499 0 : if (memcmp(Mnemonic.data()+4, "n3_", 3) != 0)
2500 : break;
2501 : switch (Mnemonic[7]) {
2502 : default: break;
2503 0 : case 'f': // 2 strings to match.
2504 : switch (Mnemonic[8]) {
2505 : default: break;
2506 : case '1': // 1 string to match.
2507 0 : if (memcmp(Mnemonic.data()+9, "6_e64", 5) != 0)
2508 : break;
2509 0 : Mnemonic = "v_min3_f16"; // "v_min3_f16_e64"
2510 0 : return;
2511 : case '3': // 1 string to match.
2512 0 : if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2513 : break;
2514 0 : Mnemonic = "v_min3_f32"; // "v_min3_f32_e64"
2515 0 : return;
2516 : }
2517 : break;
2518 0 : case 'i': // 2 strings to match.
2519 : switch (Mnemonic[8]) {
2520 : default: break;
2521 : case '1': // 1 string to match.
2522 0 : if (memcmp(Mnemonic.data()+9, "6_e64", 5) != 0)
2523 : break;
2524 0 : Mnemonic = "v_min3_i16"; // "v_min3_i16_e64"
2525 0 : return;
2526 : case '3': // 1 string to match.
2527 0 : if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2528 : break;
2529 0 : Mnemonic = "v_min3_i32"; // "v_min3_i32_e64"
2530 0 : return;
2531 : }
2532 : break;
2533 0 : case 'u': // 2 strings to match.
2534 : switch (Mnemonic[8]) {
2535 : default: break;
2536 : case '1': // 1 string to match.
2537 0 : if (memcmp(Mnemonic.data()+9, "6_e64", 5) != 0)
2538 : break;
2539 0 : Mnemonic = "v_min3_u16"; // "v_min3_u16_e64"
2540 0 : return;
2541 : case '3': // 1 string to match.
2542 0 : if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2543 : break;
2544 0 : Mnemonic = "v_min3_u32"; // "v_min3_u32_e64"
2545 0 : return;
2546 : }
2547 : break;
2548 : }
2549 : break;
2550 : }
2551 : break;
2552 : case 'p': // 1 string to match.
2553 89 : if (memcmp(Mnemonic.data()+3, "erm_b32_e64", 11) != 0)
2554 : break;
2555 0 : Mnemonic = "v_perm_b32"; // "v_perm_b32_e64"
2556 0 : return;
2557 0 : case 's': // 4 strings to match.
2558 : switch (Mnemonic[3]) {
2559 : default: break;
2560 : case 'q': // 3 strings to match.
2561 0 : if (memcmp(Mnemonic.data()+4, "rt_f", 4) != 0)
2562 : break;
2563 : switch (Mnemonic[8]) {
2564 : default: break;
2565 : case '1': // 1 string to match.
2566 0 : if (memcmp(Mnemonic.data()+9, "6_e64", 5) != 0)
2567 : break;
2568 0 : Mnemonic = "v_sqrt_f16"; // "v_sqrt_f16_e64"
2569 0 : return;
2570 : case '3': // 1 string to match.
2571 0 : if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2572 : break;
2573 0 : Mnemonic = "v_sqrt_f32"; // "v_sqrt_f32_e64"
2574 0 : return;
2575 : case '6': // 1 string to match.
2576 0 : if (memcmp(Mnemonic.data()+9, "4_e64", 5) != 0)
2577 : break;
2578 0 : Mnemonic = "v_sqrt_f64"; // "v_sqrt_f64_e64"
2579 0 : return;
2580 : }
2581 : break;
2582 : case 'u': // 1 string to match.
2583 0 : if (memcmp(Mnemonic.data()+4, "bb_u32_e64", 10) != 0)
2584 : break;
2585 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_subb_u32_e64"
2586 0 : Mnemonic = "v_subb_u32";
2587 : return;
2588 : }
2589 : break;
2590 : case 'x': // 1 string to match.
2591 0 : if (memcmp(Mnemonic.data()+3, "nor_b32_e64", 11) != 0)
2592 : break;
2593 0 : Mnemonic = "v_xnor_b32"; // "v_xnor_b32_e64"
2594 0 : return;
2595 : }
2596 : break;
2597 : case 15: // 38 strings to match.
2598 3771 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
2599 : break;
2600 : switch (Mnemonic[2]) {
2601 : default: break;
2602 : case 'b': // 1 string to match.
2603 0 : if (memcmp(Mnemonic.data()+3, "frev_b32_e64", 12) != 0)
2604 : break;
2605 0 : Mnemonic = "v_bfrev_b32"; // "v_bfrev_b32_e64"
2606 0 : return;
2607 : case 'c': // 21 strings to match.
2608 1271 : if (memcmp(Mnemonic.data()+3, "mp_", 3) != 0)
2609 : break;
2610 : switch (Mnemonic[6]) {
2611 : default: break;
2612 0 : case 'f': // 9 strings to match.
2613 0 : if (Mnemonic[7] != '_')
2614 : break;
2615 : switch (Mnemonic[8]) {
2616 : default: break;
2617 0 : case 'f': // 3 strings to match.
2618 : switch (Mnemonic[9]) {
2619 : default: break;
2620 : case '1': // 1 string to match.
2621 0 : if (memcmp(Mnemonic.data()+10, "6_e64", 5) != 0)
2622 : break;
2623 0 : Mnemonic = "v_cmp_f_f16"; // "v_cmp_f_f16_e64"
2624 0 : return;
2625 : case '3': // 1 string to match.
2626 0 : if (memcmp(Mnemonic.data()+10, "2_e64", 5) != 0)
2627 : break;
2628 0 : Mnemonic = "v_cmp_f_f32"; // "v_cmp_f_f32_e64"
2629 0 : return;
2630 : case '6': // 1 string to match.
2631 0 : if (memcmp(Mnemonic.data()+10, "4_e64", 5) != 0)
2632 : break;
2633 0 : Mnemonic = "v_cmp_f_f64"; // "v_cmp_f_f64_e64"
2634 0 : return;
2635 : }
2636 : break;
2637 0 : case 'i': // 3 strings to match.
2638 : switch (Mnemonic[9]) {
2639 : default: break;
2640 : case '1': // 1 string to match.
2641 0 : if (memcmp(Mnemonic.data()+10, "6_e64", 5) != 0)
2642 : break;
2643 0 : Mnemonic = "v_cmp_f_i16"; // "v_cmp_f_i16_e64"
2644 0 : return;
2645 : case '3': // 1 string to match.
2646 0 : if (memcmp(Mnemonic.data()+10, "2_e64", 5) != 0)
2647 : break;
2648 0 : Mnemonic = "v_cmp_f_i32"; // "v_cmp_f_i32_e64"
2649 0 : return;
2650 : case '6': // 1 string to match.
2651 0 : if (memcmp(Mnemonic.data()+10, "4_e64", 5) != 0)
2652 : break;
2653 0 : Mnemonic = "v_cmp_f_i64"; // "v_cmp_f_i64_e64"
2654 0 : return;
2655 : }
2656 : break;
2657 0 : case 'u': // 3 strings to match.
2658 : switch (Mnemonic[9]) {
2659 : default: break;
2660 : case '1': // 1 string to match.
2661 0 : if (memcmp(Mnemonic.data()+10, "6_e64", 5) != 0)
2662 : break;
2663 0 : Mnemonic = "v_cmp_f_u16"; // "v_cmp_f_u16_e64"
2664 0 : return;
2665 : case '3': // 1 string to match.
2666 0 : if (memcmp(Mnemonic.data()+10, "2_e64", 5) != 0)
2667 : break;
2668 0 : Mnemonic = "v_cmp_f_u32"; // "v_cmp_f_u32_e64"
2669 0 : return;
2670 : case '6': // 1 string to match.
2671 0 : if (memcmp(Mnemonic.data()+10, "4_e64", 5) != 0)
2672 : break;
2673 0 : Mnemonic = "v_cmp_f_u64"; // "v_cmp_f_u64_e64"
2674 0 : return;
2675 : }
2676 : break;
2677 : }
2678 : break;
2679 : case 'o': // 3 strings to match.
2680 0 : if (memcmp(Mnemonic.data()+7, "_f", 2) != 0)
2681 : break;
2682 : switch (Mnemonic[9]) {
2683 : default: break;
2684 : case '1': // 1 string to match.
2685 0 : if (memcmp(Mnemonic.data()+10, "6_e64", 5) != 0)
2686 : break;
2687 0 : Mnemonic = "v_cmp_o_f16"; // "v_cmp_o_f16_e64"
2688 0 : return;
2689 : case '3': // 1 string to match.
2690 0 : if (memcmp(Mnemonic.data()+10, "2_e64", 5) != 0)
2691 : break;
2692 0 : Mnemonic = "v_cmp_o_f32"; // "v_cmp_o_f32_e64"
2693 0 : return;
2694 : case '6': // 1 string to match.
2695 0 : if (memcmp(Mnemonic.data()+10, "4_e64", 5) != 0)
2696 : break;
2697 0 : Mnemonic = "v_cmp_o_f64"; // "v_cmp_o_f64_e64"
2698 0 : return;
2699 : }
2700 : break;
2701 0 : case 't': // 6 strings to match.
2702 0 : if (Mnemonic[7] != '_')
2703 : break;
2704 : switch (Mnemonic[8]) {
2705 : default: break;
2706 0 : case 'i': // 3 strings to match.
2707 : switch (Mnemonic[9]) {
2708 : default: break;
2709 : case '1': // 1 string to match.
2710 0 : if (memcmp(Mnemonic.data()+10, "6_e64", 5) != 0)
2711 : break;
2712 0 : Mnemonic = "v_cmp_t_i16"; // "v_cmp_t_i16_e64"
2713 0 : return;
2714 : case '3': // 1 string to match.
2715 0 : if (memcmp(Mnemonic.data()+10, "2_e64", 5) != 0)
2716 : break;
2717 0 : Mnemonic = "v_cmp_t_i32"; // "v_cmp_t_i32_e64"
2718 0 : return;
2719 : case '6': // 1 string to match.
2720 0 : if (memcmp(Mnemonic.data()+10, "4_e64", 5) != 0)
2721 : break;
2722 0 : Mnemonic = "v_cmp_t_i64"; // "v_cmp_t_i64_e64"
2723 0 : return;
2724 : }
2725 : break;
2726 0 : case 'u': // 3 strings to match.
2727 : switch (Mnemonic[9]) {
2728 : default: break;
2729 : case '1': // 1 string to match.
2730 0 : if (memcmp(Mnemonic.data()+10, "6_e64", 5) != 0)
2731 : break;
2732 0 : Mnemonic = "v_cmp_t_u16"; // "v_cmp_t_u16_e64"
2733 0 : return;
2734 : case '3': // 1 string to match.
2735 0 : if (memcmp(Mnemonic.data()+10, "2_e64", 5) != 0)
2736 : break;
2737 0 : Mnemonic = "v_cmp_t_u32"; // "v_cmp_t_u32_e64"
2738 0 : return;
2739 : case '6': // 1 string to match.
2740 0 : if (memcmp(Mnemonic.data()+10, "4_e64", 5) != 0)
2741 : break;
2742 0 : Mnemonic = "v_cmp_t_u64"; // "v_cmp_t_u64_e64"
2743 0 : return;
2744 : }
2745 : break;
2746 : }
2747 : break;
2748 : case 'u': // 3 strings to match.
2749 0 : if (memcmp(Mnemonic.data()+7, "_f", 2) != 0)
2750 : break;
2751 : switch (Mnemonic[9]) {
2752 : default: break;
2753 : case '1': // 1 string to match.
2754 0 : if (memcmp(Mnemonic.data()+10, "6_e64", 5) != 0)
2755 : break;
2756 0 : Mnemonic = "v_cmp_u_f16"; // "v_cmp_u_f16_e64"
2757 0 : return;
2758 : case '3': // 1 string to match.
2759 0 : if (memcmp(Mnemonic.data()+10, "2_e64", 5) != 0)
2760 : break;
2761 0 : Mnemonic = "v_cmp_u_f32"; // "v_cmp_u_f32_e64"
2762 0 : return;
2763 : case '6': // 1 string to match.
2764 0 : if (memcmp(Mnemonic.data()+10, "4_e64", 5) != 0)
2765 : break;
2766 0 : Mnemonic = "v_cmp_u_f64"; // "v_cmp_u_f64_e64"
2767 0 : return;
2768 : }
2769 : break;
2770 : }
2771 : break;
2772 22 : case 'f': // 6 strings to match.
2773 : switch (Mnemonic[3]) {
2774 : default: break;
2775 : case 'l': // 3 strings to match.
2776 0 : if (memcmp(Mnemonic.data()+4, "oor_f", 5) != 0)
2777 : break;
2778 : switch (Mnemonic[9]) {
2779 : default: break;
2780 : case '1': // 1 string to match.
2781 0 : if (memcmp(Mnemonic.data()+10, "6_e64", 5) != 0)
2782 : break;
2783 0 : Mnemonic = "v_floor_f16"; // "v_floor_f16_e64"
2784 0 : return;
2785 : case '3': // 1 string to match.
2786 0 : if (memcmp(Mnemonic.data()+10, "2_e64", 5) != 0)
2787 : break;
2788 0 : Mnemonic = "v_floor_f32"; // "v_floor_f32_e64"
2789 0 : return;
2790 : case '6': // 1 string to match.
2791 0 : if (memcmp(Mnemonic.data()+10, "4_e64", 5) != 0)
2792 : break;
2793 0 : Mnemonic = "v_floor_f64"; // "v_floor_f64_e64"
2794 0 : return;
2795 : }
2796 : break;
2797 : case 'r': // 3 strings to match.
2798 0 : if (memcmp(Mnemonic.data()+4, "act_f", 5) != 0)
2799 : break;
2800 : switch (Mnemonic[9]) {
2801 : default: break;
2802 : case '1': // 1 string to match.
2803 0 : if (memcmp(Mnemonic.data()+10, "6_e64", 5) != 0)
2804 : break;
2805 0 : Mnemonic = "v_fract_f16"; // "v_fract_f16_e64"
2806 0 : return;
2807 : case '3': // 1 string to match.
2808 0 : if (memcmp(Mnemonic.data()+10, "2_e64", 5) != 0)
2809 : break;
2810 0 : Mnemonic = "v_fract_f32"; // "v_fract_f32_e64"
2811 0 : return;
2812 : case '6': // 1 string to match.
2813 0 : if (memcmp(Mnemonic.data()+10, "4_e64", 5) != 0)
2814 : break;
2815 0 : Mnemonic = "v_fract_f64"; // "v_fract_f64_e64"
2816 0 : return;
2817 : }
2818 : break;
2819 : }
2820 : break;
2821 : case 'l': // 3 strings to match.
2822 29 : if (memcmp(Mnemonic.data()+3, "dexp_f", 6) != 0)
2823 : break;
2824 : switch (Mnemonic[9]) {
2825 : default: break;
2826 : case '1': // 1 string to match.
2827 0 : if (memcmp(Mnemonic.data()+10, "6_e64", 5) != 0)
2828 : break;
2829 0 : Mnemonic = "v_ldexp_f16"; // "v_ldexp_f16_e64"
2830 0 : return;
2831 : case '3': // 1 string to match.
2832 0 : if (memcmp(Mnemonic.data()+10, "2_e64", 5) != 0)
2833 : break;
2834 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_ldexp_f32_e64"
2835 0 : Mnemonic = "v_ldexp_f32";
2836 : return;
2837 : case '6': // 1 string to match.
2838 0 : if (memcmp(Mnemonic.data()+10, "4_e64", 5) != 0)
2839 : break;
2840 0 : Mnemonic = "v_ldexp_f64"; // "v_ldexp_f64_e64"
2841 0 : return;
2842 : }
2843 : break;
2844 : case 'r': // 3 strings to match.
2845 213 : if (memcmp(Mnemonic.data()+3, "ndne_f", 6) != 0)
2846 : break;
2847 : switch (Mnemonic[9]) {
2848 : default: break;
2849 : case '1': // 1 string to match.
2850 0 : if (memcmp(Mnemonic.data()+10, "6_e64", 5) != 0)
2851 : break;
2852 0 : Mnemonic = "v_rndne_f16"; // "v_rndne_f16_e64"
2853 0 : return;
2854 : case '3': // 1 string to match.
2855 0 : if (memcmp(Mnemonic.data()+10, "2_e64", 5) != 0)
2856 : break;
2857 0 : Mnemonic = "v_rndne_f32"; // "v_rndne_f32_e64"
2858 0 : return;
2859 : case '6': // 1 string to match.
2860 0 : if (memcmp(Mnemonic.data()+10, "4_e64", 5) != 0)
2861 : break;
2862 0 : Mnemonic = "v_rndne_f64"; // "v_rndne_f64_e64"
2863 0 : return;
2864 : }
2865 : break;
2866 : case 's': // 1 string to match.
2867 87 : if (memcmp(Mnemonic.data()+3, "ad_hi_u8_e64", 12) != 0)
2868 : break;
2869 0 : Mnemonic = "v_sad_hi_u8"; // "v_sad_hi_u8_e64"
2870 0 : return;
2871 : case 't': // 3 strings to match.
2872 0 : if (memcmp(Mnemonic.data()+3, "runc_f", 6) != 0)
2873 : break;
2874 : switch (Mnemonic[9]) {
2875 : default: break;
2876 : case '1': // 1 string to match.
2877 0 : if (memcmp(Mnemonic.data()+10, "6_e64", 5) != 0)
2878 : break;
2879 0 : Mnemonic = "v_trunc_f16"; // "v_trunc_f16_e64"
2880 0 : return;
2881 : case '3': // 1 string to match.
2882 0 : if (memcmp(Mnemonic.data()+10, "2_e64", 5) != 0)
2883 : break;
2884 0 : Mnemonic = "v_trunc_f32"; // "v_trunc_f32_e64"
2885 0 : return;
2886 : case '6': // 1 string to match.
2887 0 : if (memcmp(Mnemonic.data()+10, "4_e64", 5) != 0)
2888 : break;
2889 0 : Mnemonic = "v_trunc_f64"; // "v_trunc_f64_e64"
2890 0 : return;
2891 : }
2892 : break;
2893 : }
2894 : break;
2895 : case 16: // 112 strings to match.
2896 3859 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
2897 : break;
2898 : switch (Mnemonic[2]) {
2899 : default: break;
2900 : case 'a': // 1 string to match.
2901 0 : if (memcmp(Mnemonic.data()+3, "nd_or_b32_e64", 13) != 0)
2902 : break;
2903 0 : Mnemonic = "v_and_or_b32"; // "v_and_or_b32_e64"
2904 0 : return;
2905 1266 : case 'c': // 85 strings to match.
2906 : switch (Mnemonic[3]) {
2907 : default: break;
2908 457 : case 'm': // 81 strings to match.
2909 457 : if (Mnemonic[4] != 'p')
2910 : break;
2911 : switch (Mnemonic[5]) {
2912 : default: break;
2913 0 : case '_': // 54 strings to match.
2914 : switch (Mnemonic[6]) {
2915 : default: break;
2916 : case 'e': // 9 strings to match.
2917 0 : if (memcmp(Mnemonic.data()+7, "q_", 2) != 0)
2918 : break;
2919 : switch (Mnemonic[9]) {
2920 : default: break;
2921 0 : case 'f': // 3 strings to match.
2922 : switch (Mnemonic[10]) {
2923 : default: break;
2924 : case '1': // 1 string to match.
2925 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
2926 : break;
2927 0 : Mnemonic = "v_cmp_eq_f16"; // "v_cmp_eq_f16_e64"
2928 0 : return;
2929 : case '3': // 1 string to match.
2930 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
2931 : break;
2932 0 : Mnemonic = "v_cmp_eq_f32"; // "v_cmp_eq_f32_e64"
2933 0 : return;
2934 : case '6': // 1 string to match.
2935 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
2936 : break;
2937 0 : Mnemonic = "v_cmp_eq_f64"; // "v_cmp_eq_f64_e64"
2938 0 : return;
2939 : }
2940 : break;
2941 0 : case 'i': // 3 strings to match.
2942 : switch (Mnemonic[10]) {
2943 : default: break;
2944 : case '1': // 1 string to match.
2945 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
2946 : break;
2947 0 : Mnemonic = "v_cmp_eq_i16"; // "v_cmp_eq_i16_e64"
2948 0 : return;
2949 : case '3': // 1 string to match.
2950 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
2951 : break;
2952 0 : Mnemonic = "v_cmp_eq_i32"; // "v_cmp_eq_i32_e64"
2953 0 : return;
2954 : case '6': // 1 string to match.
2955 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
2956 : break;
2957 0 : Mnemonic = "v_cmp_eq_i64"; // "v_cmp_eq_i64_e64"
2958 0 : return;
2959 : }
2960 : break;
2961 0 : case 'u': // 3 strings to match.
2962 : switch (Mnemonic[10]) {
2963 : default: break;
2964 : case '1': // 1 string to match.
2965 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
2966 : break;
2967 0 : Mnemonic = "v_cmp_eq_u16"; // "v_cmp_eq_u16_e64"
2968 0 : return;
2969 : case '3': // 1 string to match.
2970 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
2971 : break;
2972 0 : Mnemonic = "v_cmp_eq_u32"; // "v_cmp_eq_u32_e64"
2973 0 : return;
2974 : case '6': // 1 string to match.
2975 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
2976 : break;
2977 0 : Mnemonic = "v_cmp_eq_u64"; // "v_cmp_eq_u64_e64"
2978 0 : return;
2979 : }
2980 : break;
2981 : }
2982 : break;
2983 0 : case 'g': // 18 strings to match.
2984 : switch (Mnemonic[7]) {
2985 : default: break;
2986 0 : case 'e': // 9 strings to match.
2987 0 : if (Mnemonic[8] != '_')
2988 : break;
2989 : switch (Mnemonic[9]) {
2990 : default: break;
2991 0 : case 'f': // 3 strings to match.
2992 : switch (Mnemonic[10]) {
2993 : default: break;
2994 : case '1': // 1 string to match.
2995 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
2996 : break;
2997 0 : Mnemonic = "v_cmp_ge_f16"; // "v_cmp_ge_f16_e64"
2998 0 : return;
2999 : case '3': // 1 string to match.
3000 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3001 : break;
3002 0 : Mnemonic = "v_cmp_ge_f32"; // "v_cmp_ge_f32_e64"
3003 0 : return;
3004 : case '6': // 1 string to match.
3005 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3006 : break;
3007 0 : Mnemonic = "v_cmp_ge_f64"; // "v_cmp_ge_f64_e64"
3008 0 : return;
3009 : }
3010 : break;
3011 0 : case 'i': // 3 strings to match.
3012 : switch (Mnemonic[10]) {
3013 : default: break;
3014 : case '1': // 1 string to match.
3015 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3016 : break;
3017 0 : Mnemonic = "v_cmp_ge_i16"; // "v_cmp_ge_i16_e64"
3018 0 : return;
3019 : case '3': // 1 string to match.
3020 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3021 : break;
3022 0 : Mnemonic = "v_cmp_ge_i32"; // "v_cmp_ge_i32_e64"
3023 0 : return;
3024 : case '6': // 1 string to match.
3025 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3026 : break;
3027 0 : Mnemonic = "v_cmp_ge_i64"; // "v_cmp_ge_i64_e64"
3028 0 : return;
3029 : }
3030 : break;
3031 0 : case 'u': // 3 strings to match.
3032 : switch (Mnemonic[10]) {
3033 : default: break;
3034 : case '1': // 1 string to match.
3035 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3036 : break;
3037 0 : Mnemonic = "v_cmp_ge_u16"; // "v_cmp_ge_u16_e64"
3038 0 : return;
3039 : case '3': // 1 string to match.
3040 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3041 : break;
3042 0 : Mnemonic = "v_cmp_ge_u32"; // "v_cmp_ge_u32_e64"
3043 0 : return;
3044 : case '6': // 1 string to match.
3045 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3046 : break;
3047 0 : Mnemonic = "v_cmp_ge_u64"; // "v_cmp_ge_u64_e64"
3048 0 : return;
3049 : }
3050 : break;
3051 : }
3052 : break;
3053 0 : case 't': // 9 strings to match.
3054 0 : if (Mnemonic[8] != '_')
3055 : break;
3056 : switch (Mnemonic[9]) {
3057 : default: break;
3058 0 : case 'f': // 3 strings to match.
3059 : switch (Mnemonic[10]) {
3060 : default: break;
3061 : case '1': // 1 string to match.
3062 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3063 : break;
3064 0 : Mnemonic = "v_cmp_gt_f16"; // "v_cmp_gt_f16_e64"
3065 0 : return;
3066 : case '3': // 1 string to match.
3067 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3068 : break;
3069 0 : Mnemonic = "v_cmp_gt_f32"; // "v_cmp_gt_f32_e64"
3070 0 : return;
3071 : case '6': // 1 string to match.
3072 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3073 : break;
3074 0 : Mnemonic = "v_cmp_gt_f64"; // "v_cmp_gt_f64_e64"
3075 0 : return;
3076 : }
3077 : break;
3078 0 : case 'i': // 3 strings to match.
3079 : switch (Mnemonic[10]) {
3080 : default: break;
3081 : case '1': // 1 string to match.
3082 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3083 : break;
3084 0 : Mnemonic = "v_cmp_gt_i16"; // "v_cmp_gt_i16_e64"
3085 0 : return;
3086 : case '3': // 1 string to match.
3087 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3088 : break;
3089 0 : Mnemonic = "v_cmp_gt_i32"; // "v_cmp_gt_i32_e64"
3090 0 : return;
3091 : case '6': // 1 string to match.
3092 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3093 : break;
3094 0 : Mnemonic = "v_cmp_gt_i64"; // "v_cmp_gt_i64_e64"
3095 0 : return;
3096 : }
3097 : break;
3098 0 : case 'u': // 3 strings to match.
3099 : switch (Mnemonic[10]) {
3100 : default: break;
3101 : case '1': // 1 string to match.
3102 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3103 : break;
3104 0 : Mnemonic = "v_cmp_gt_u16"; // "v_cmp_gt_u16_e64"
3105 0 : return;
3106 : case '3': // 1 string to match.
3107 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3108 : break;
3109 0 : Mnemonic = "v_cmp_gt_u32"; // "v_cmp_gt_u32_e64"
3110 0 : return;
3111 : case '6': // 1 string to match.
3112 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3113 : break;
3114 0 : Mnemonic = "v_cmp_gt_u64"; // "v_cmp_gt_u64_e64"
3115 0 : return;
3116 : }
3117 : break;
3118 : }
3119 : break;
3120 : }
3121 : break;
3122 0 : case 'l': // 21 strings to match.
3123 : switch (Mnemonic[7]) {
3124 : default: break;
3125 0 : case 'e': // 9 strings to match.
3126 0 : if (Mnemonic[8] != '_')
3127 : break;
3128 : switch (Mnemonic[9]) {
3129 : default: break;
3130 0 : case 'f': // 3 strings to match.
3131 : switch (Mnemonic[10]) {
3132 : default: break;
3133 : case '1': // 1 string to match.
3134 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3135 : break;
3136 0 : Mnemonic = "v_cmp_le_f16"; // "v_cmp_le_f16_e64"
3137 0 : return;
3138 : case '3': // 1 string to match.
3139 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3140 : break;
3141 0 : Mnemonic = "v_cmp_le_f32"; // "v_cmp_le_f32_e64"
3142 0 : return;
3143 : case '6': // 1 string to match.
3144 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3145 : break;
3146 0 : Mnemonic = "v_cmp_le_f64"; // "v_cmp_le_f64_e64"
3147 0 : return;
3148 : }
3149 : break;
3150 0 : case 'i': // 3 strings to match.
3151 : switch (Mnemonic[10]) {
3152 : default: break;
3153 : case '1': // 1 string to match.
3154 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3155 : break;
3156 0 : Mnemonic = "v_cmp_le_i16"; // "v_cmp_le_i16_e64"
3157 0 : return;
3158 : case '3': // 1 string to match.
3159 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3160 : break;
3161 0 : Mnemonic = "v_cmp_le_i32"; // "v_cmp_le_i32_e64"
3162 0 : return;
3163 : case '6': // 1 string to match.
3164 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3165 : break;
3166 0 : Mnemonic = "v_cmp_le_i64"; // "v_cmp_le_i64_e64"
3167 0 : return;
3168 : }
3169 : break;
3170 0 : case 'u': // 3 strings to match.
3171 : switch (Mnemonic[10]) {
3172 : default: break;
3173 : case '1': // 1 string to match.
3174 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3175 : break;
3176 0 : Mnemonic = "v_cmp_le_u16"; // "v_cmp_le_u16_e64"
3177 0 : return;
3178 : case '3': // 1 string to match.
3179 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3180 : break;
3181 0 : Mnemonic = "v_cmp_le_u32"; // "v_cmp_le_u32_e64"
3182 0 : return;
3183 : case '6': // 1 string to match.
3184 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3185 : break;
3186 0 : Mnemonic = "v_cmp_le_u64"; // "v_cmp_le_u64_e64"
3187 0 : return;
3188 : }
3189 : break;
3190 : }
3191 : break;
3192 : case 'g': // 3 strings to match.
3193 0 : if (memcmp(Mnemonic.data()+8, "_f", 2) != 0)
3194 : break;
3195 : switch (Mnemonic[10]) {
3196 : default: break;
3197 : case '1': // 1 string to match.
3198 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3199 : break;
3200 0 : Mnemonic = "v_cmp_lg_f16"; // "v_cmp_lg_f16_e64"
3201 0 : return;
3202 : case '3': // 1 string to match.
3203 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3204 : break;
3205 0 : Mnemonic = "v_cmp_lg_f32"; // "v_cmp_lg_f32_e64"
3206 0 : return;
3207 : case '6': // 1 string to match.
3208 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3209 : break;
3210 0 : Mnemonic = "v_cmp_lg_f64"; // "v_cmp_lg_f64_e64"
3211 0 : return;
3212 : }
3213 : break;
3214 0 : case 't': // 9 strings to match.
3215 0 : if (Mnemonic[8] != '_')
3216 : break;
3217 : switch (Mnemonic[9]) {
3218 : default: break;
3219 0 : case 'f': // 3 strings to match.
3220 : switch (Mnemonic[10]) {
3221 : default: break;
3222 : case '1': // 1 string to match.
3223 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3224 : break;
3225 0 : Mnemonic = "v_cmp_lt_f16"; // "v_cmp_lt_f16_e64"
3226 0 : return;
3227 : case '3': // 1 string to match.
3228 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3229 : break;
3230 0 : Mnemonic = "v_cmp_lt_f32"; // "v_cmp_lt_f32_e64"
3231 0 : return;
3232 : case '6': // 1 string to match.
3233 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3234 : break;
3235 0 : Mnemonic = "v_cmp_lt_f64"; // "v_cmp_lt_f64_e64"
3236 0 : return;
3237 : }
3238 : break;
3239 0 : case 'i': // 3 strings to match.
3240 : switch (Mnemonic[10]) {
3241 : default: break;
3242 : case '1': // 1 string to match.
3243 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3244 : break;
3245 0 : Mnemonic = "v_cmp_lt_i16"; // "v_cmp_lt_i16_e64"
3246 0 : return;
3247 : case '3': // 1 string to match.
3248 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3249 : break;
3250 0 : Mnemonic = "v_cmp_lt_i32"; // "v_cmp_lt_i32_e64"
3251 0 : return;
3252 : case '6': // 1 string to match.
3253 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3254 : break;
3255 0 : Mnemonic = "v_cmp_lt_i64"; // "v_cmp_lt_i64_e64"
3256 0 : return;
3257 : }
3258 : break;
3259 0 : case 'u': // 3 strings to match.
3260 : switch (Mnemonic[10]) {
3261 : default: break;
3262 : case '1': // 1 string to match.
3263 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3264 : break;
3265 0 : Mnemonic = "v_cmp_lt_u16"; // "v_cmp_lt_u16_e64"
3266 0 : return;
3267 : case '3': // 1 string to match.
3268 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3269 : break;
3270 0 : Mnemonic = "v_cmp_lt_u32"; // "v_cmp_lt_u32_e64"
3271 0 : return;
3272 : case '6': // 1 string to match.
3273 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3274 : break;
3275 0 : Mnemonic = "v_cmp_lt_u64"; // "v_cmp_lt_u64_e64"
3276 0 : return;
3277 : }
3278 : break;
3279 : }
3280 : break;
3281 : }
3282 : break;
3283 : case 'n': // 6 strings to match.
3284 0 : if (memcmp(Mnemonic.data()+7, "e_", 2) != 0)
3285 : break;
3286 : switch (Mnemonic[9]) {
3287 : default: break;
3288 0 : case 'i': // 3 strings to match.
3289 : switch (Mnemonic[10]) {
3290 : default: break;
3291 : case '1': // 1 string to match.
3292 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3293 : break;
3294 0 : Mnemonic = "v_cmp_ne_i16"; // "v_cmp_ne_i16_e64"
3295 0 : return;
3296 : case '3': // 1 string to match.
3297 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3298 : break;
3299 0 : Mnemonic = "v_cmp_ne_i32"; // "v_cmp_ne_i32_e64"
3300 0 : return;
3301 : case '6': // 1 string to match.
3302 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3303 : break;
3304 0 : Mnemonic = "v_cmp_ne_i64"; // "v_cmp_ne_i64_e64"
3305 0 : return;
3306 : }
3307 : break;
3308 0 : case 'u': // 3 strings to match.
3309 : switch (Mnemonic[10]) {
3310 : default: break;
3311 : case '1': // 1 string to match.
3312 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3313 : break;
3314 0 : Mnemonic = "v_cmp_ne_u16"; // "v_cmp_ne_u16_e64"
3315 0 : return;
3316 : case '3': // 1 string to match.
3317 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3318 : break;
3319 0 : Mnemonic = "v_cmp_ne_u32"; // "v_cmp_ne_u32_e64"
3320 0 : return;
3321 : case '6': // 1 string to match.
3322 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3323 : break;
3324 0 : Mnemonic = "v_cmp_ne_u64"; // "v_cmp_ne_u64_e64"
3325 0 : return;
3326 : }
3327 : break;
3328 : }
3329 : break;
3330 : }
3331 : break;
3332 0 : case 's': // 6 strings to match.
3333 0 : if (Mnemonic[6] != '_')
3334 : break;
3335 : switch (Mnemonic[7]) {
3336 : default: break;
3337 : case 'f': // 2 strings to match.
3338 0 : if (memcmp(Mnemonic.data()+8, "_f", 2) != 0)
3339 : break;
3340 : switch (Mnemonic[10]) {
3341 : default: break;
3342 : case '3': // 1 string to match.
3343 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3344 : break;
3345 0 : Mnemonic = "v_cmps_f_f32"; // "v_cmps_f_f32_e64"
3346 0 : return;
3347 : case '6': // 1 string to match.
3348 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3349 : break;
3350 0 : Mnemonic = "v_cmps_f_f64"; // "v_cmps_f_f64_e64"
3351 0 : return;
3352 : }
3353 : break;
3354 : case 'o': // 2 strings to match.
3355 0 : if (memcmp(Mnemonic.data()+8, "_f", 2) != 0)
3356 : break;
3357 : switch (Mnemonic[10]) {
3358 : default: break;
3359 : case '3': // 1 string to match.
3360 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3361 : break;
3362 0 : Mnemonic = "v_cmps_o_f32"; // "v_cmps_o_f32_e64"
3363 0 : return;
3364 : case '6': // 1 string to match.
3365 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3366 : break;
3367 0 : Mnemonic = "v_cmps_o_f64"; // "v_cmps_o_f64_e64"
3368 0 : return;
3369 : }
3370 : break;
3371 : case 'u': // 2 strings to match.
3372 0 : if (memcmp(Mnemonic.data()+8, "_f", 2) != 0)
3373 : break;
3374 : switch (Mnemonic[10]) {
3375 : default: break;
3376 : case '3': // 1 string to match.
3377 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3378 : break;
3379 0 : Mnemonic = "v_cmps_u_f32"; // "v_cmps_u_f32_e64"
3380 0 : return;
3381 : case '6': // 1 string to match.
3382 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3383 : break;
3384 0 : Mnemonic = "v_cmps_u_f64"; // "v_cmps_u_f64_e64"
3385 0 : return;
3386 : }
3387 : break;
3388 : }
3389 : break;
3390 457 : case 'x': // 21 strings to match.
3391 457 : if (Mnemonic[6] != '_')
3392 : break;
3393 : switch (Mnemonic[7]) {
3394 : default: break;
3395 0 : case 'f': // 9 strings to match.
3396 0 : if (Mnemonic[8] != '_')
3397 : break;
3398 : switch (Mnemonic[9]) {
3399 : default: break;
3400 0 : case 'f': // 3 strings to match.
3401 : switch (Mnemonic[10]) {
3402 : default: break;
3403 : case '1': // 1 string to match.
3404 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3405 : break;
3406 0 : Mnemonic = "v_cmpx_f_f16"; // "v_cmpx_f_f16_e64"
3407 0 : return;
3408 : case '3': // 1 string to match.
3409 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3410 : break;
3411 0 : Mnemonic = "v_cmpx_f_f32"; // "v_cmpx_f_f32_e64"
3412 0 : return;
3413 : case '6': // 1 string to match.
3414 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3415 : break;
3416 0 : Mnemonic = "v_cmpx_f_f64"; // "v_cmpx_f_f64_e64"
3417 0 : return;
3418 : }
3419 : break;
3420 0 : case 'i': // 3 strings to match.
3421 : switch (Mnemonic[10]) {
3422 : default: break;
3423 : case '1': // 1 string to match.
3424 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3425 : break;
3426 0 : Mnemonic = "v_cmpx_f_i16"; // "v_cmpx_f_i16_e64"
3427 0 : return;
3428 : case '3': // 1 string to match.
3429 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3430 : break;
3431 0 : Mnemonic = "v_cmpx_f_i32"; // "v_cmpx_f_i32_e64"
3432 0 : return;
3433 : case '6': // 1 string to match.
3434 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3435 : break;
3436 0 : Mnemonic = "v_cmpx_f_i64"; // "v_cmpx_f_i64_e64"
3437 0 : return;
3438 : }
3439 : break;
3440 0 : case 'u': // 3 strings to match.
3441 : switch (Mnemonic[10]) {
3442 : default: break;
3443 : case '1': // 1 string to match.
3444 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3445 : break;
3446 0 : Mnemonic = "v_cmpx_f_u16"; // "v_cmpx_f_u16_e64"
3447 0 : return;
3448 : case '3': // 1 string to match.
3449 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3450 : break;
3451 0 : Mnemonic = "v_cmpx_f_u32"; // "v_cmpx_f_u32_e64"
3452 0 : return;
3453 : case '6': // 1 string to match.
3454 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3455 : break;
3456 0 : Mnemonic = "v_cmpx_f_u64"; // "v_cmpx_f_u64_e64"
3457 0 : return;
3458 : }
3459 : break;
3460 : }
3461 : break;
3462 : case 'o': // 3 strings to match.
3463 0 : if (memcmp(Mnemonic.data()+8, "_f", 2) != 0)
3464 : break;
3465 : switch (Mnemonic[10]) {
3466 : default: break;
3467 : case '1': // 1 string to match.
3468 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3469 : break;
3470 0 : Mnemonic = "v_cmpx_o_f16"; // "v_cmpx_o_f16_e64"
3471 0 : return;
3472 : case '3': // 1 string to match.
3473 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3474 : break;
3475 0 : Mnemonic = "v_cmpx_o_f32"; // "v_cmpx_o_f32_e64"
3476 0 : return;
3477 : case '6': // 1 string to match.
3478 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3479 : break;
3480 0 : Mnemonic = "v_cmpx_o_f64"; // "v_cmpx_o_f64_e64"
3481 0 : return;
3482 : }
3483 : break;
3484 0 : case 't': // 6 strings to match.
3485 0 : if (Mnemonic[8] != '_')
3486 : break;
3487 : switch (Mnemonic[9]) {
3488 : default: break;
3489 0 : case 'i': // 3 strings to match.
3490 : switch (Mnemonic[10]) {
3491 : default: break;
3492 : case '1': // 1 string to match.
3493 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3494 : break;
3495 0 : Mnemonic = "v_cmpx_t_i16"; // "v_cmpx_t_i16_e64"
3496 0 : return;
3497 : case '3': // 1 string to match.
3498 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3499 : break;
3500 0 : Mnemonic = "v_cmpx_t_i32"; // "v_cmpx_t_i32_e64"
3501 0 : return;
3502 : case '6': // 1 string to match.
3503 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3504 : break;
3505 0 : Mnemonic = "v_cmpx_t_i64"; // "v_cmpx_t_i64_e64"
3506 0 : return;
3507 : }
3508 : break;
3509 0 : case 'u': // 3 strings to match.
3510 : switch (Mnemonic[10]) {
3511 : default: break;
3512 : case '1': // 1 string to match.
3513 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3514 : break;
3515 0 : Mnemonic = "v_cmpx_t_u16"; // "v_cmpx_t_u16_e64"
3516 0 : return;
3517 : case '3': // 1 string to match.
3518 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3519 : break;
3520 0 : Mnemonic = "v_cmpx_t_u32"; // "v_cmpx_t_u32_e64"
3521 0 : return;
3522 : case '6': // 1 string to match.
3523 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3524 : break;
3525 0 : Mnemonic = "v_cmpx_t_u64"; // "v_cmpx_t_u64_e64"
3526 0 : return;
3527 : }
3528 : break;
3529 : }
3530 : break;
3531 : case 'u': // 3 strings to match.
3532 0 : if (memcmp(Mnemonic.data()+8, "_f", 2) != 0)
3533 : break;
3534 : switch (Mnemonic[10]) {
3535 : default: break;
3536 : case '1': // 1 string to match.
3537 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3538 : break;
3539 0 : Mnemonic = "v_cmpx_u_f16"; // "v_cmpx_u_f16_e64"
3540 0 : return;
3541 : case '3': // 1 string to match.
3542 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3543 : break;
3544 0 : Mnemonic = "v_cmpx_u_f32"; // "v_cmpx_u_f32_e64"
3545 0 : return;
3546 : case '6': // 1 string to match.
3547 0 : if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3548 : break;
3549 0 : Mnemonic = "v_cmpx_u_f64"; // "v_cmpx_u_f64_e64"
3550 0 : return;
3551 : }
3552 : break;
3553 : }
3554 : break;
3555 : }
3556 : break;
3557 : case 'u': // 4 strings to match.
3558 0 : if (memcmp(Mnemonic.data()+4, "be", 2) != 0)
3559 : break;
3560 : switch (Mnemonic[6]) {
3561 : default: break;
3562 : case 'i': // 1 string to match.
3563 0 : if (memcmp(Mnemonic.data()+7, "d_f32_e64", 9) != 0)
3564 : break;
3565 0 : Mnemonic = "v_cubeid_f32"; // "v_cubeid_f32_e64"
3566 0 : return;
3567 : case 'm': // 1 string to match.
3568 0 : if (memcmp(Mnemonic.data()+7, "a_f32_e64", 9) != 0)
3569 : break;
3570 0 : Mnemonic = "v_cubema_f32"; // "v_cubema_f32_e64"
3571 0 : return;
3572 : case 's': // 1 string to match.
3573 0 : if (memcmp(Mnemonic.data()+7, "c_f32_e64", 9) != 0)
3574 : break;
3575 0 : Mnemonic = "v_cubesc_f32"; // "v_cubesc_f32_e64"
3576 0 : return;
3577 : case 't': // 1 string to match.
3578 0 : if (memcmp(Mnemonic.data()+7, "c_f32_e64", 9) != 0)
3579 : break;
3580 0 : Mnemonic = "v_cubetc_f32"; // "v_cubetc_f32_e64"
3581 0 : return;
3582 : }
3583 : break;
3584 : }
3585 : break;
3586 : case 'm': // 6 strings to match.
3587 1169 : if (memcmp(Mnemonic.data()+3, "ul", 2) != 0)
3588 : break;
3589 : switch (Mnemonic[5]) {
3590 : default: break;
3591 482 : case '_': // 5 strings to match.
3592 : switch (Mnemonic[6]) {
3593 : default: break;
3594 : case 'h': // 2 strings to match.
3595 296 : if (memcmp(Mnemonic.data()+7, "i_", 2) != 0)
3596 : break;
3597 : switch (Mnemonic[9]) {
3598 : default: break;
3599 : case 'i': // 1 string to match.
3600 148 : if (memcmp(Mnemonic.data()+10, "32_e64", 6) != 0)
3601 : break;
3602 0 : Mnemonic = "v_mul_hi_i32"; // "v_mul_hi_i32_e64"
3603 0 : return;
3604 : case 'u': // 1 string to match.
3605 148 : if (memcmp(Mnemonic.data()+10, "32_e64", 6) != 0)
3606 : break;
3607 0 : Mnemonic = "v_mul_hi_u32"; // "v_mul_hi_u32_e64"
3608 0 : return;
3609 : }
3610 : break;
3611 : case 'l': // 3 strings to match.
3612 186 : if (memcmp(Mnemonic.data()+7, "o_", 2) != 0)
3613 : break;
3614 : switch (Mnemonic[9]) {
3615 : default: break;
3616 : case 'i': // 1 string to match.
3617 0 : if (memcmp(Mnemonic.data()+10, "32_e64", 6) != 0)
3618 : break;
3619 0 : Mnemonic = "v_mul_lo_i32"; // "v_mul_lo_i32_e64"
3620 0 : return;
3621 0 : case 'u': // 2 strings to match.
3622 : switch (Mnemonic[10]) {
3623 : default: break;
3624 : case '1': // 1 string to match.
3625 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3626 : break;
3627 0 : Mnemonic = "v_mul_lo_u16"; // "v_mul_lo_u16_e64"
3628 0 : return;
3629 : case '3': // 1 string to match.
3630 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3631 : break;
3632 0 : Mnemonic = "v_mul_lo_u32"; // "v_mul_lo_u32_e64"
3633 0 : return;
3634 : }
3635 : break;
3636 : }
3637 : break;
3638 : }
3639 : break;
3640 : case 'l': // 1 string to match.
3641 0 : if (memcmp(Mnemonic.data()+6, "it_f32_e64", 10) != 0)
3642 : break;
3643 0 : if ((Features & Feature_isSICI) == Feature_isSICI) // "v_mullit_f32_e64"
3644 0 : Mnemonic = "v_mullit_f32";
3645 : return;
3646 : }
3647 : break;
3648 : case 'p': // 15 strings to match.
3649 183 : if (memcmp(Mnemonic.data()+3, "k_", 2) != 0)
3650 : break;
3651 : switch (Mnemonic[5]) {
3652 : default: break;
3653 : case 'a': // 3 strings to match.
3654 61 : if (memcmp(Mnemonic.data()+6, "dd_", 3) != 0)
3655 : break;
3656 : switch (Mnemonic[9]) {
3657 : default: break;
3658 : case 'f': // 1 string to match.
3659 0 : if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3660 : break;
3661 0 : Mnemonic = "v_pk_add_f16"; // "v_pk_add_f16_e64"
3662 0 : return;
3663 : case 'i': // 1 string to match.
3664 0 : if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3665 : break;
3666 0 : Mnemonic = "v_pk_add_i16"; // "v_pk_add_i16_e64"
3667 0 : return;
3668 : case 'u': // 1 string to match.
3669 0 : if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3670 : break;
3671 0 : Mnemonic = "v_pk_add_u16"; // "v_pk_add_u16_e64"
3672 0 : return;
3673 : }
3674 : break;
3675 : case 'f': // 1 string to match.
3676 0 : if (memcmp(Mnemonic.data()+6, "ma_f16_e64", 10) != 0)
3677 : break;
3678 0 : Mnemonic = "v_pk_fma_f16"; // "v_pk_fma_f16_e64"
3679 0 : return;
3680 0 : case 'm': // 9 strings to match.
3681 : switch (Mnemonic[6]) {
3682 : default: break;
3683 0 : case 'a': // 5 strings to match.
3684 : switch (Mnemonic[7]) {
3685 : default: break;
3686 0 : case 'd': // 2 strings to match.
3687 0 : if (Mnemonic[8] != '_')
3688 : break;
3689 : switch (Mnemonic[9]) {
3690 : default: break;
3691 : case 'i': // 1 string to match.
3692 0 : if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3693 : break;
3694 0 : Mnemonic = "v_pk_mad_i16"; // "v_pk_mad_i16_e64"
3695 0 : return;
3696 : case 'u': // 1 string to match.
3697 0 : if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3698 : break;
3699 0 : Mnemonic = "v_pk_mad_u16"; // "v_pk_mad_u16_e64"
3700 0 : return;
3701 : }
3702 : break;
3703 0 : case 'x': // 3 strings to match.
3704 0 : if (Mnemonic[8] != '_')
3705 : break;
3706 : switch (Mnemonic[9]) {
3707 : default: break;
3708 : case 'f': // 1 string to match.
3709 0 : if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3710 : break;
3711 0 : Mnemonic = "v_pk_max_f16"; // "v_pk_max_f16_e64"
3712 0 : return;
3713 : case 'i': // 1 string to match.
3714 0 : if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3715 : break;
3716 0 : Mnemonic = "v_pk_max_i16"; // "v_pk_max_i16_e64"
3717 0 : return;
3718 : case 'u': // 1 string to match.
3719 0 : if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3720 : break;
3721 0 : Mnemonic = "v_pk_max_u16"; // "v_pk_max_u16_e64"
3722 0 : return;
3723 : }
3724 : break;
3725 : }
3726 : break;
3727 : case 'i': // 3 strings to match.
3728 0 : if (memcmp(Mnemonic.data()+7, "n_", 2) != 0)
3729 : break;
3730 : switch (Mnemonic[9]) {
3731 : default: break;
3732 : case 'f': // 1 string to match.
3733 0 : if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3734 : break;
3735 0 : Mnemonic = "v_pk_min_f16"; // "v_pk_min_f16_e64"
3736 0 : return;
3737 : case 'i': // 1 string to match.
3738 0 : if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3739 : break;
3740 0 : Mnemonic = "v_pk_min_i16"; // "v_pk_min_i16_e64"
3741 0 : return;
3742 : case 'u': // 1 string to match.
3743 0 : if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3744 : break;
3745 0 : Mnemonic = "v_pk_min_u16"; // "v_pk_min_u16_e64"
3746 0 : return;
3747 : }
3748 : break;
3749 : case 'u': // 1 string to match.
3750 0 : if (memcmp(Mnemonic.data()+7, "l_f16_e64", 9) != 0)
3751 : break;
3752 0 : Mnemonic = "v_pk_mul_f16"; // "v_pk_mul_f16_e64"
3753 0 : return;
3754 : }
3755 : break;
3756 : case 's': // 2 strings to match.
3757 0 : if (memcmp(Mnemonic.data()+6, "ub_", 3) != 0)
3758 : break;
3759 : switch (Mnemonic[9]) {
3760 : default: break;
3761 : case 'i': // 1 string to match.
3762 0 : if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3763 : break;
3764 0 : Mnemonic = "v_pk_sub_i16"; // "v_pk_sub_i16_e64"
3765 0 : return;
3766 : case 'u': // 1 string to match.
3767 0 : if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3768 : break;
3769 0 : Mnemonic = "v_pk_sub_u16"; // "v_pk_sub_u16_e64"
3770 0 : return;
3771 : }
3772 : break;
3773 : }
3774 : break;
3775 : case 's': // 5 strings to match.
3776 42 : if (memcmp(Mnemonic.data()+3, "ubrev_", 6) != 0)
3777 : break;
3778 : switch (Mnemonic[9]) {
3779 : default: break;
3780 0 : case 'f': // 2 strings to match.
3781 : switch (Mnemonic[10]) {
3782 : default: break;
3783 : case '1': // 1 string to match.
3784 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3785 : break;
3786 0 : Mnemonic = "v_subrev_f16"; // "v_subrev_f16_e64"
3787 0 : return;
3788 : case '3': // 1 string to match.
3789 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3790 : break;
3791 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_subrev_f32_e64"
3792 0 : Mnemonic = "v_subrev_f32";
3793 : return;
3794 : }
3795 : break;
3796 : case 'i': // 1 string to match.
3797 0 : if (memcmp(Mnemonic.data()+10, "32_e64", 6) != 0)
3798 : break;
3799 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_subrev_i32_e64"
3800 0 : Mnemonic = "v_subrev_i32";
3801 : return;
3802 0 : case 'u': // 2 strings to match.
3803 : switch (Mnemonic[10]) {
3804 : default: break;
3805 : case '1': // 1 string to match.
3806 0 : if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3807 : break;
3808 0 : Mnemonic = "v_subrev_u16"; // "v_subrev_u16_e64"
3809 0 : return;
3810 : case '3': // 1 string to match.
3811 0 : if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3812 : break;
3813 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_subrev_u32_e64"
3814 0 : Mnemonic = "v_subrev_u32";
3815 : return;
3816 : }
3817 : break;
3818 : }
3819 : break;
3820 : }
3821 : break;
3822 : case 17: // 138 strings to match.
3823 686 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
3824 : break;
3825 : switch (Mnemonic[2]) {
3826 : default: break;
3827 : case 'a': // 3 strings to match.
3828 0 : if (memcmp(Mnemonic.data()+3, "shrrev_i", 8) != 0)
3829 : break;
3830 : switch (Mnemonic[11]) {
3831 : default: break;
3832 : case '1': // 1 string to match.
3833 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
3834 : break;
3835 0 : Mnemonic = "v_ashrrev_i16"; // "v_ashrrev_i16_e64"
3836 0 : return;
3837 : case '3': // 1 string to match.
3838 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
3839 : break;
3840 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_ashrrev_i32_e64"
3841 0 : Mnemonic = "v_ashrrev_i32";
3842 : return;
3843 : case '6': // 1 string to match.
3844 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
3845 : break;
3846 0 : Mnemonic = "v_ashrrev_i64"; // "v_ashrrev_i64_e64"
3847 0 : return;
3848 : }
3849 : break;
3850 186 : case 'c': // 110 strings to match.
3851 : switch (Mnemonic[3]) {
3852 : default: break;
3853 0 : case 'm': // 93 strings to match.
3854 0 : if (Mnemonic[4] != 'p')
3855 : break;
3856 : switch (Mnemonic[5]) {
3857 : default: break;
3858 0 : case '_': // 21 strings to match.
3859 : switch (Mnemonic[6]) {
3860 : default: break;
3861 0 : case 'n': // 18 strings to match.
3862 : switch (Mnemonic[7]) {
3863 : default: break;
3864 : case 'e': // 3 strings to match.
3865 0 : if (memcmp(Mnemonic.data()+8, "q_f", 3) != 0)
3866 : break;
3867 : switch (Mnemonic[11]) {
3868 : default: break;
3869 : case '1': // 1 string to match.
3870 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
3871 : break;
3872 0 : Mnemonic = "v_cmp_neq_f16"; // "v_cmp_neq_f16_e64"
3873 0 : return;
3874 : case '3': // 1 string to match.
3875 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
3876 : break;
3877 0 : Mnemonic = "v_cmp_neq_f32"; // "v_cmp_neq_f32_e64"
3878 0 : return;
3879 : case '6': // 1 string to match.
3880 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
3881 : break;
3882 0 : Mnemonic = "v_cmp_neq_f64"; // "v_cmp_neq_f64_e64"
3883 0 : return;
3884 : }
3885 : break;
3886 0 : case 'g': // 6 strings to match.
3887 : switch (Mnemonic[8]) {
3888 : default: break;
3889 : case 'e': // 3 strings to match.
3890 0 : if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
3891 : break;
3892 : switch (Mnemonic[11]) {
3893 : default: break;
3894 : case '1': // 1 string to match.
3895 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
3896 : break;
3897 0 : Mnemonic = "v_cmp_nge_f16"; // "v_cmp_nge_f16_e64"
3898 0 : return;
3899 : case '3': // 1 string to match.
3900 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
3901 : break;
3902 0 : Mnemonic = "v_cmp_nge_f32"; // "v_cmp_nge_f32_e64"
3903 0 : return;
3904 : case '6': // 1 string to match.
3905 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
3906 : break;
3907 0 : Mnemonic = "v_cmp_nge_f64"; // "v_cmp_nge_f64_e64"
3908 0 : return;
3909 : }
3910 : break;
3911 : case 't': // 3 strings to match.
3912 0 : if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
3913 : break;
3914 : switch (Mnemonic[11]) {
3915 : default: break;
3916 : case '1': // 1 string to match.
3917 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
3918 : break;
3919 0 : Mnemonic = "v_cmp_ngt_f16"; // "v_cmp_ngt_f16_e64"
3920 0 : return;
3921 : case '3': // 1 string to match.
3922 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
3923 : break;
3924 0 : Mnemonic = "v_cmp_ngt_f32"; // "v_cmp_ngt_f32_e64"
3925 0 : return;
3926 : case '6': // 1 string to match.
3927 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
3928 : break;
3929 0 : Mnemonic = "v_cmp_ngt_f64"; // "v_cmp_ngt_f64_e64"
3930 0 : return;
3931 : }
3932 : break;
3933 : }
3934 : break;
3935 0 : case 'l': // 9 strings to match.
3936 : switch (Mnemonic[8]) {
3937 : default: break;
3938 : case 'e': // 3 strings to match.
3939 0 : if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
3940 : break;
3941 : switch (Mnemonic[11]) {
3942 : default: break;
3943 : case '1': // 1 string to match.
3944 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
3945 : break;
3946 0 : Mnemonic = "v_cmp_nle_f16"; // "v_cmp_nle_f16_e64"
3947 0 : return;
3948 : case '3': // 1 string to match.
3949 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
3950 : break;
3951 0 : Mnemonic = "v_cmp_nle_f32"; // "v_cmp_nle_f32_e64"
3952 0 : return;
3953 : case '6': // 1 string to match.
3954 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
3955 : break;
3956 0 : Mnemonic = "v_cmp_nle_f64"; // "v_cmp_nle_f64_e64"
3957 0 : return;
3958 : }
3959 : break;
3960 : case 'g': // 3 strings to match.
3961 0 : if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
3962 : break;
3963 : switch (Mnemonic[11]) {
3964 : default: break;
3965 : case '1': // 1 string to match.
3966 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
3967 : break;
3968 0 : Mnemonic = "v_cmp_nlg_f16"; // "v_cmp_nlg_f16_e64"
3969 0 : return;
3970 : case '3': // 1 string to match.
3971 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
3972 : break;
3973 0 : Mnemonic = "v_cmp_nlg_f32"; // "v_cmp_nlg_f32_e64"
3974 0 : return;
3975 : case '6': // 1 string to match.
3976 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
3977 : break;
3978 0 : Mnemonic = "v_cmp_nlg_f64"; // "v_cmp_nlg_f64_e64"
3979 0 : return;
3980 : }
3981 : break;
3982 : case 't': // 3 strings to match.
3983 0 : if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
3984 : break;
3985 : switch (Mnemonic[11]) {
3986 : default: break;
3987 : case '1': // 1 string to match.
3988 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
3989 : break;
3990 0 : Mnemonic = "v_cmp_nlt_f16"; // "v_cmp_nlt_f16_e64"
3991 0 : return;
3992 : case '3': // 1 string to match.
3993 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
3994 : break;
3995 0 : Mnemonic = "v_cmp_nlt_f32"; // "v_cmp_nlt_f32_e64"
3996 0 : return;
3997 : case '6': // 1 string to match.
3998 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
3999 : break;
4000 0 : Mnemonic = "v_cmp_nlt_f64"; // "v_cmp_nlt_f64_e64"
4001 0 : return;
4002 : }
4003 : break;
4004 : }
4005 : break;
4006 : }
4007 : break;
4008 : case 't': // 3 strings to match.
4009 0 : if (memcmp(Mnemonic.data()+7, "ru_f", 4) != 0)
4010 : break;
4011 : switch (Mnemonic[11]) {
4012 : default: break;
4013 : case '1': // 1 string to match.
4014 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4015 : break;
4016 0 : Mnemonic = "v_cmp_tru_f16"; // "v_cmp_tru_f16_e64"
4017 0 : return;
4018 : case '3': // 1 string to match.
4019 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4020 : break;
4021 0 : Mnemonic = "v_cmp_tru_f32"; // "v_cmp_tru_f32_e64"
4022 0 : return;
4023 : case '6': // 1 string to match.
4024 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4025 : break;
4026 0 : Mnemonic = "v_cmp_tru_f64"; // "v_cmp_tru_f64_e64"
4027 0 : return;
4028 : }
4029 : break;
4030 : }
4031 : break;
4032 0 : case 's': // 18 strings to match.
4033 : switch (Mnemonic[6]) {
4034 : default: break;
4035 0 : case '_': // 12 strings to match.
4036 : switch (Mnemonic[7]) {
4037 : default: break;
4038 : case 'e': // 2 strings to match.
4039 0 : if (memcmp(Mnemonic.data()+8, "q_f", 3) != 0)
4040 : break;
4041 : switch (Mnemonic[11]) {
4042 : default: break;
4043 : case '3': // 1 string to match.
4044 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4045 : break;
4046 0 : Mnemonic = "v_cmps_eq_f32"; // "v_cmps_eq_f32_e64"
4047 0 : return;
4048 : case '6': // 1 string to match.
4049 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4050 : break;
4051 0 : Mnemonic = "v_cmps_eq_f64"; // "v_cmps_eq_f64_e64"
4052 0 : return;
4053 : }
4054 : break;
4055 0 : case 'g': // 4 strings to match.
4056 : switch (Mnemonic[8]) {
4057 : default: break;
4058 : case 'e': // 2 strings to match.
4059 0 : if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
4060 : break;
4061 : switch (Mnemonic[11]) {
4062 : default: break;
4063 : case '3': // 1 string to match.
4064 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4065 : break;
4066 0 : Mnemonic = "v_cmps_ge_f32"; // "v_cmps_ge_f32_e64"
4067 0 : return;
4068 : case '6': // 1 string to match.
4069 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4070 : break;
4071 0 : Mnemonic = "v_cmps_ge_f64"; // "v_cmps_ge_f64_e64"
4072 0 : return;
4073 : }
4074 : break;
4075 : case 't': // 2 strings to match.
4076 0 : if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
4077 : break;
4078 : switch (Mnemonic[11]) {
4079 : default: break;
4080 : case '3': // 1 string to match.
4081 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4082 : break;
4083 0 : Mnemonic = "v_cmps_gt_f32"; // "v_cmps_gt_f32_e64"
4084 0 : return;
4085 : case '6': // 1 string to match.
4086 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4087 : break;
4088 0 : Mnemonic = "v_cmps_gt_f64"; // "v_cmps_gt_f64_e64"
4089 0 : return;
4090 : }
4091 : break;
4092 : }
4093 : break;
4094 0 : case 'l': // 6 strings to match.
4095 : switch (Mnemonic[8]) {
4096 : default: break;
4097 : case 'e': // 2 strings to match.
4098 0 : if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
4099 : break;
4100 : switch (Mnemonic[11]) {
4101 : default: break;
4102 : case '3': // 1 string to match.
4103 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4104 : break;
4105 0 : Mnemonic = "v_cmps_le_f32"; // "v_cmps_le_f32_e64"
4106 0 : return;
4107 : case '6': // 1 string to match.
4108 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4109 : break;
4110 0 : Mnemonic = "v_cmps_le_f64"; // "v_cmps_le_f64_e64"
4111 0 : return;
4112 : }
4113 : break;
4114 : case 'g': // 2 strings to match.
4115 0 : if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
4116 : break;
4117 : switch (Mnemonic[11]) {
4118 : default: break;
4119 : case '3': // 1 string to match.
4120 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4121 : break;
4122 0 : Mnemonic = "v_cmps_lg_f32"; // "v_cmps_lg_f32_e64"
4123 0 : return;
4124 : case '6': // 1 string to match.
4125 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4126 : break;
4127 0 : Mnemonic = "v_cmps_lg_f64"; // "v_cmps_lg_f64_e64"
4128 0 : return;
4129 : }
4130 : break;
4131 : case 't': // 2 strings to match.
4132 0 : if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
4133 : break;
4134 : switch (Mnemonic[11]) {
4135 : default: break;
4136 : case '3': // 1 string to match.
4137 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4138 : break;
4139 0 : Mnemonic = "v_cmps_lt_f32"; // "v_cmps_lt_f32_e64"
4140 0 : return;
4141 : case '6': // 1 string to match.
4142 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4143 : break;
4144 0 : Mnemonic = "v_cmps_lt_f64"; // "v_cmps_lt_f64_e64"
4145 0 : return;
4146 : }
4147 : break;
4148 : }
4149 : break;
4150 : }
4151 : break;
4152 0 : case 'x': // 6 strings to match.
4153 0 : if (Mnemonic[7] != '_')
4154 : break;
4155 : switch (Mnemonic[8]) {
4156 : default: break;
4157 : case 'f': // 2 strings to match.
4158 0 : if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
4159 : break;
4160 : switch (Mnemonic[11]) {
4161 : default: break;
4162 : case '3': // 1 string to match.
4163 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4164 : break;
4165 0 : Mnemonic = "v_cmpsx_f_f32"; // "v_cmpsx_f_f32_e64"
4166 0 : return;
4167 : case '6': // 1 string to match.
4168 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4169 : break;
4170 0 : Mnemonic = "v_cmpsx_f_f64"; // "v_cmpsx_f_f64_e64"
4171 0 : return;
4172 : }
4173 : break;
4174 : case 'o': // 2 strings to match.
4175 0 : if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
4176 : break;
4177 : switch (Mnemonic[11]) {
4178 : default: break;
4179 : case '3': // 1 string to match.
4180 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4181 : break;
4182 0 : Mnemonic = "v_cmpsx_o_f32"; // "v_cmpsx_o_f32_e64"
4183 0 : return;
4184 : case '6': // 1 string to match.
4185 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4186 : break;
4187 0 : Mnemonic = "v_cmpsx_o_f64"; // "v_cmpsx_o_f64_e64"
4188 0 : return;
4189 : }
4190 : break;
4191 : case 'u': // 2 strings to match.
4192 0 : if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
4193 : break;
4194 : switch (Mnemonic[11]) {
4195 : default: break;
4196 : case '3': // 1 string to match.
4197 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4198 : break;
4199 0 : Mnemonic = "v_cmpsx_u_f32"; // "v_cmpsx_u_f32_e64"
4200 0 : return;
4201 : case '6': // 1 string to match.
4202 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4203 : break;
4204 0 : Mnemonic = "v_cmpsx_u_f64"; // "v_cmpsx_u_f64_e64"
4205 0 : return;
4206 : }
4207 : break;
4208 : }
4209 : break;
4210 : }
4211 : break;
4212 0 : case 'x': // 54 strings to match.
4213 0 : if (Mnemonic[6] != '_')
4214 : break;
4215 : switch (Mnemonic[7]) {
4216 : default: break;
4217 : case 'e': // 9 strings to match.
4218 0 : if (memcmp(Mnemonic.data()+8, "q_", 2) != 0)
4219 : break;
4220 : switch (Mnemonic[10]) {
4221 : default: break;
4222 0 : case 'f': // 3 strings to match.
4223 : switch (Mnemonic[11]) {
4224 : default: break;
4225 : case '1': // 1 string to match.
4226 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4227 : break;
4228 0 : Mnemonic = "v_cmpx_eq_f16"; // "v_cmpx_eq_f16_e64"
4229 0 : return;
4230 : case '3': // 1 string to match.
4231 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4232 : break;
4233 0 : Mnemonic = "v_cmpx_eq_f32"; // "v_cmpx_eq_f32_e64"
4234 0 : return;
4235 : case '6': // 1 string to match.
4236 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4237 : break;
4238 0 : Mnemonic = "v_cmpx_eq_f64"; // "v_cmpx_eq_f64_e64"
4239 0 : return;
4240 : }
4241 : break;
4242 0 : case 'i': // 3 strings to match.
4243 : switch (Mnemonic[11]) {
4244 : default: break;
4245 : case '1': // 1 string to match.
4246 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4247 : break;
4248 0 : Mnemonic = "v_cmpx_eq_i16"; // "v_cmpx_eq_i16_e64"
4249 0 : return;
4250 : case '3': // 1 string to match.
4251 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4252 : break;
4253 0 : Mnemonic = "v_cmpx_eq_i32"; // "v_cmpx_eq_i32_e64"
4254 0 : return;
4255 : case '6': // 1 string to match.
4256 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4257 : break;
4258 0 : Mnemonic = "v_cmpx_eq_i64"; // "v_cmpx_eq_i64_e64"
4259 0 : return;
4260 : }
4261 : break;
4262 0 : case 'u': // 3 strings to match.
4263 : switch (Mnemonic[11]) {
4264 : default: break;
4265 : case '1': // 1 string to match.
4266 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4267 : break;
4268 0 : Mnemonic = "v_cmpx_eq_u16"; // "v_cmpx_eq_u16_e64"
4269 0 : return;
4270 : case '3': // 1 string to match.
4271 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4272 : break;
4273 0 : Mnemonic = "v_cmpx_eq_u32"; // "v_cmpx_eq_u32_e64"
4274 0 : return;
4275 : case '6': // 1 string to match.
4276 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4277 : break;
4278 0 : Mnemonic = "v_cmpx_eq_u64"; // "v_cmpx_eq_u64_e64"
4279 0 : return;
4280 : }
4281 : break;
4282 : }
4283 : break;
4284 0 : case 'g': // 18 strings to match.
4285 : switch (Mnemonic[8]) {
4286 : default: break;
4287 0 : case 'e': // 9 strings to match.
4288 0 : if (Mnemonic[9] != '_')
4289 : break;
4290 : switch (Mnemonic[10]) {
4291 : default: break;
4292 0 : case 'f': // 3 strings to match.
4293 : switch (Mnemonic[11]) {
4294 : default: break;
4295 : case '1': // 1 string to match.
4296 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4297 : break;
4298 0 : Mnemonic = "v_cmpx_ge_f16"; // "v_cmpx_ge_f16_e64"
4299 0 : return;
4300 : case '3': // 1 string to match.
4301 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4302 : break;
4303 0 : Mnemonic = "v_cmpx_ge_f32"; // "v_cmpx_ge_f32_e64"
4304 0 : return;
4305 : case '6': // 1 string to match.
4306 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4307 : break;
4308 0 : Mnemonic = "v_cmpx_ge_f64"; // "v_cmpx_ge_f64_e64"
4309 0 : return;
4310 : }
4311 : break;
4312 0 : case 'i': // 3 strings to match.
4313 : switch (Mnemonic[11]) {
4314 : default: break;
4315 : case '1': // 1 string to match.
4316 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4317 : break;
4318 0 : Mnemonic = "v_cmpx_ge_i16"; // "v_cmpx_ge_i16_e64"
4319 0 : return;
4320 : case '3': // 1 string to match.
4321 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4322 : break;
4323 0 : Mnemonic = "v_cmpx_ge_i32"; // "v_cmpx_ge_i32_e64"
4324 0 : return;
4325 : case '6': // 1 string to match.
4326 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4327 : break;
4328 0 : Mnemonic = "v_cmpx_ge_i64"; // "v_cmpx_ge_i64_e64"
4329 0 : return;
4330 : }
4331 : break;
4332 0 : case 'u': // 3 strings to match.
4333 : switch (Mnemonic[11]) {
4334 : default: break;
4335 : case '1': // 1 string to match.
4336 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4337 : break;
4338 0 : Mnemonic = "v_cmpx_ge_u16"; // "v_cmpx_ge_u16_e64"
4339 0 : return;
4340 : case '3': // 1 string to match.
4341 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4342 : break;
4343 0 : Mnemonic = "v_cmpx_ge_u32"; // "v_cmpx_ge_u32_e64"
4344 0 : return;
4345 : case '6': // 1 string to match.
4346 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4347 : break;
4348 0 : Mnemonic = "v_cmpx_ge_u64"; // "v_cmpx_ge_u64_e64"
4349 0 : return;
4350 : }
4351 : break;
4352 : }
4353 : break;
4354 0 : case 't': // 9 strings to match.
4355 0 : if (Mnemonic[9] != '_')
4356 : break;
4357 : switch (Mnemonic[10]) {
4358 : default: break;
4359 0 : case 'f': // 3 strings to match.
4360 : switch (Mnemonic[11]) {
4361 : default: break;
4362 : case '1': // 1 string to match.
4363 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4364 : break;
4365 0 : Mnemonic = "v_cmpx_gt_f16"; // "v_cmpx_gt_f16_e64"
4366 0 : return;
4367 : case '3': // 1 string to match.
4368 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4369 : break;
4370 0 : Mnemonic = "v_cmpx_gt_f32"; // "v_cmpx_gt_f32_e64"
4371 0 : return;
4372 : case '6': // 1 string to match.
4373 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4374 : break;
4375 0 : Mnemonic = "v_cmpx_gt_f64"; // "v_cmpx_gt_f64_e64"
4376 0 : return;
4377 : }
4378 : break;
4379 0 : case 'i': // 3 strings to match.
4380 : switch (Mnemonic[11]) {
4381 : default: break;
4382 : case '1': // 1 string to match.
4383 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4384 : break;
4385 0 : Mnemonic = "v_cmpx_gt_i16"; // "v_cmpx_gt_i16_e64"
4386 0 : return;
4387 : case '3': // 1 string to match.
4388 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4389 : break;
4390 0 : Mnemonic = "v_cmpx_gt_i32"; // "v_cmpx_gt_i32_e64"
4391 0 : return;
4392 : case '6': // 1 string to match.
4393 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4394 : break;
4395 0 : Mnemonic = "v_cmpx_gt_i64"; // "v_cmpx_gt_i64_e64"
4396 0 : return;
4397 : }
4398 : break;
4399 0 : case 'u': // 3 strings to match.
4400 : switch (Mnemonic[11]) {
4401 : default: break;
4402 : case '1': // 1 string to match.
4403 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4404 : break;
4405 0 : Mnemonic = "v_cmpx_gt_u16"; // "v_cmpx_gt_u16_e64"
4406 0 : return;
4407 : case '3': // 1 string to match.
4408 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4409 : break;
4410 0 : Mnemonic = "v_cmpx_gt_u32"; // "v_cmpx_gt_u32_e64"
4411 0 : return;
4412 : case '6': // 1 string to match.
4413 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4414 : break;
4415 0 : Mnemonic = "v_cmpx_gt_u64"; // "v_cmpx_gt_u64_e64"
4416 0 : return;
4417 : }
4418 : break;
4419 : }
4420 : break;
4421 : }
4422 : break;
4423 0 : case 'l': // 21 strings to match.
4424 : switch (Mnemonic[8]) {
4425 : default: break;
4426 0 : case 'e': // 9 strings to match.
4427 0 : if (Mnemonic[9] != '_')
4428 : break;
4429 : switch (Mnemonic[10]) {
4430 : default: break;
4431 0 : case 'f': // 3 strings to match.
4432 : switch (Mnemonic[11]) {
4433 : default: break;
4434 : case '1': // 1 string to match.
4435 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4436 : break;
4437 0 : Mnemonic = "v_cmpx_le_f16"; // "v_cmpx_le_f16_e64"
4438 0 : return;
4439 : case '3': // 1 string to match.
4440 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4441 : break;
4442 0 : Mnemonic = "v_cmpx_le_f32"; // "v_cmpx_le_f32_e64"
4443 0 : return;
4444 : case '6': // 1 string to match.
4445 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4446 : break;
4447 0 : Mnemonic = "v_cmpx_le_f64"; // "v_cmpx_le_f64_e64"
4448 0 : return;
4449 : }
4450 : break;
4451 0 : case 'i': // 3 strings to match.
4452 : switch (Mnemonic[11]) {
4453 : default: break;
4454 : case '1': // 1 string to match.
4455 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4456 : break;
4457 0 : Mnemonic = "v_cmpx_le_i16"; // "v_cmpx_le_i16_e64"
4458 0 : return;
4459 : case '3': // 1 string to match.
4460 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4461 : break;
4462 0 : Mnemonic = "v_cmpx_le_i32"; // "v_cmpx_le_i32_e64"
4463 0 : return;
4464 : case '6': // 1 string to match.
4465 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4466 : break;
4467 0 : Mnemonic = "v_cmpx_le_i64"; // "v_cmpx_le_i64_e64"
4468 0 : return;
4469 : }
4470 : break;
4471 0 : case 'u': // 3 strings to match.
4472 : switch (Mnemonic[11]) {
4473 : default: break;
4474 : case '1': // 1 string to match.
4475 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4476 : break;
4477 0 : Mnemonic = "v_cmpx_le_u16"; // "v_cmpx_le_u16_e64"
4478 0 : return;
4479 : case '3': // 1 string to match.
4480 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4481 : break;
4482 0 : Mnemonic = "v_cmpx_le_u32"; // "v_cmpx_le_u32_e64"
4483 0 : return;
4484 : case '6': // 1 string to match.
4485 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4486 : break;
4487 0 : Mnemonic = "v_cmpx_le_u64"; // "v_cmpx_le_u64_e64"
4488 0 : return;
4489 : }
4490 : break;
4491 : }
4492 : break;
4493 : case 'g': // 3 strings to match.
4494 0 : if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
4495 : break;
4496 : switch (Mnemonic[11]) {
4497 : default: break;
4498 : case '1': // 1 string to match.
4499 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4500 : break;
4501 0 : Mnemonic = "v_cmpx_lg_f16"; // "v_cmpx_lg_f16_e64"
4502 0 : return;
4503 : case '3': // 1 string to match.
4504 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4505 : break;
4506 0 : Mnemonic = "v_cmpx_lg_f32"; // "v_cmpx_lg_f32_e64"
4507 0 : return;
4508 : case '6': // 1 string to match.
4509 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4510 : break;
4511 0 : Mnemonic = "v_cmpx_lg_f64"; // "v_cmpx_lg_f64_e64"
4512 0 : return;
4513 : }
4514 : break;
4515 0 : case 't': // 9 strings to match.
4516 0 : if (Mnemonic[9] != '_')
4517 : break;
4518 : switch (Mnemonic[10]) {
4519 : default: break;
4520 0 : case 'f': // 3 strings to match.
4521 : switch (Mnemonic[11]) {
4522 : default: break;
4523 : case '1': // 1 string to match.
4524 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4525 : break;
4526 0 : Mnemonic = "v_cmpx_lt_f16"; // "v_cmpx_lt_f16_e64"
4527 0 : return;
4528 : case '3': // 1 string to match.
4529 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4530 : break;
4531 0 : Mnemonic = "v_cmpx_lt_f32"; // "v_cmpx_lt_f32_e64"
4532 0 : return;
4533 : case '6': // 1 string to match.
4534 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4535 : break;
4536 0 : Mnemonic = "v_cmpx_lt_f64"; // "v_cmpx_lt_f64_e64"
4537 0 : return;
4538 : }
4539 : break;
4540 0 : case 'i': // 3 strings to match.
4541 : switch (Mnemonic[11]) {
4542 : default: break;
4543 : case '1': // 1 string to match.
4544 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4545 : break;
4546 0 : Mnemonic = "v_cmpx_lt_i16"; // "v_cmpx_lt_i16_e64"
4547 0 : return;
4548 : case '3': // 1 string to match.
4549 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4550 : break;
4551 0 : Mnemonic = "v_cmpx_lt_i32"; // "v_cmpx_lt_i32_e64"
4552 0 : return;
4553 : case '6': // 1 string to match.
4554 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4555 : break;
4556 0 : Mnemonic = "v_cmpx_lt_i64"; // "v_cmpx_lt_i64_e64"
4557 0 : return;
4558 : }
4559 : break;
4560 0 : case 'u': // 3 strings to match.
4561 : switch (Mnemonic[11]) {
4562 : default: break;
4563 : case '1': // 1 string to match.
4564 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4565 : break;
4566 0 : Mnemonic = "v_cmpx_lt_u16"; // "v_cmpx_lt_u16_e64"
4567 0 : return;
4568 : case '3': // 1 string to match.
4569 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4570 : break;
4571 0 : Mnemonic = "v_cmpx_lt_u32"; // "v_cmpx_lt_u32_e64"
4572 0 : return;
4573 : case '6': // 1 string to match.
4574 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4575 : break;
4576 0 : Mnemonic = "v_cmpx_lt_u64"; // "v_cmpx_lt_u64_e64"
4577 0 : return;
4578 : }
4579 : break;
4580 : }
4581 : break;
4582 : }
4583 : break;
4584 : case 'n': // 6 strings to match.
4585 0 : if (memcmp(Mnemonic.data()+8, "e_", 2) != 0)
4586 : break;
4587 : switch (Mnemonic[10]) {
4588 : default: break;
4589 0 : case 'i': // 3 strings to match.
4590 : switch (Mnemonic[11]) {
4591 : default: break;
4592 : case '1': // 1 string to match.
4593 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4594 : break;
4595 0 : Mnemonic = "v_cmpx_ne_i16"; // "v_cmpx_ne_i16_e64"
4596 0 : return;
4597 : case '3': // 1 string to match.
4598 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4599 : break;
4600 0 : Mnemonic = "v_cmpx_ne_i32"; // "v_cmpx_ne_i32_e64"
4601 0 : return;
4602 : case '6': // 1 string to match.
4603 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4604 : break;
4605 0 : Mnemonic = "v_cmpx_ne_i64"; // "v_cmpx_ne_i64_e64"
4606 0 : return;
4607 : }
4608 : break;
4609 0 : case 'u': // 3 strings to match.
4610 : switch (Mnemonic[11]) {
4611 : default: break;
4612 : case '1': // 1 string to match.
4613 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4614 : break;
4615 0 : Mnemonic = "v_cmpx_ne_u16"; // "v_cmpx_ne_u16_e64"
4616 0 : return;
4617 : case '3': // 1 string to match.
4618 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4619 : break;
4620 0 : Mnemonic = "v_cmpx_ne_u32"; // "v_cmpx_ne_u32_e64"
4621 0 : return;
4622 : case '6': // 1 string to match.
4623 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4624 : break;
4625 0 : Mnemonic = "v_cmpx_ne_u64"; // "v_cmpx_ne_u64_e64"
4626 0 : return;
4627 : }
4628 : break;
4629 : }
4630 : break;
4631 : }
4632 : break;
4633 : }
4634 : break;
4635 : case 'n': // 1 string to match.
4636 0 : if (memcmp(Mnemonic.data()+4, "dmask_b32_e64", 13) != 0)
4637 : break;
4638 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_cndmask_b32_e64"
4639 0 : Mnemonic = "v_cndmask_b32";
4640 : return;
4641 : case 'v': // 16 strings to match.
4642 186 : if (memcmp(Mnemonic.data()+4, "t_", 2) != 0)
4643 : break;
4644 : switch (Mnemonic[6]) {
4645 : default: break;
4646 93 : case 'f': // 10 strings to match.
4647 : switch (Mnemonic[7]) {
4648 : default: break;
4649 : case '1': // 3 strings to match.
4650 0 : if (memcmp(Mnemonic.data()+8, "6_", 2) != 0)
4651 : break;
4652 : switch (Mnemonic[10]) {
4653 : default: break;
4654 : case 'f': // 1 string to match.
4655 0 : if (memcmp(Mnemonic.data()+11, "32_e64", 6) != 0)
4656 : break;
4657 0 : Mnemonic = "v_cvt_f16_f32"; // "v_cvt_f16_f32_e64"
4658 0 : return;
4659 : case 'i': // 1 string to match.
4660 0 : if (memcmp(Mnemonic.data()+11, "16_e64", 6) != 0)
4661 : break;
4662 0 : Mnemonic = "v_cvt_f16_i16"; // "v_cvt_f16_i16_e64"
4663 0 : return;
4664 : case 'u': // 1 string to match.
4665 0 : if (memcmp(Mnemonic.data()+11, "16_e64", 6) != 0)
4666 : break;
4667 0 : Mnemonic = "v_cvt_f16_u16"; // "v_cvt_f16_u16_e64"
4668 0 : return;
4669 : }
4670 : break;
4671 : case '3': // 4 strings to match.
4672 0 : if (memcmp(Mnemonic.data()+8, "2_", 2) != 0)
4673 : break;
4674 : switch (Mnemonic[10]) {
4675 : default: break;
4676 0 : case 'f': // 2 strings to match.
4677 : switch (Mnemonic[11]) {
4678 : default: break;
4679 : case '1': // 1 string to match.
4680 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4681 : break;
4682 0 : Mnemonic = "v_cvt_f32_f16"; // "v_cvt_f32_f16_e64"
4683 0 : return;
4684 : case '6': // 1 string to match.
4685 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4686 : break;
4687 0 : Mnemonic = "v_cvt_f32_f64"; // "v_cvt_f32_f64_e64"
4688 0 : return;
4689 : }
4690 : break;
4691 : case 'i': // 1 string to match.
4692 0 : if (memcmp(Mnemonic.data()+11, "32_e64", 6) != 0)
4693 : break;
4694 0 : Mnemonic = "v_cvt_f32_i32"; // "v_cvt_f32_i32_e64"
4695 0 : return;
4696 : case 'u': // 1 string to match.
4697 0 : if (memcmp(Mnemonic.data()+11, "32_e64", 6) != 0)
4698 : break;
4699 0 : Mnemonic = "v_cvt_f32_u32"; // "v_cvt_f32_u32_e64"
4700 0 : return;
4701 : }
4702 : break;
4703 : case '6': // 3 strings to match.
4704 0 : if (memcmp(Mnemonic.data()+8, "4_", 2) != 0)
4705 : break;
4706 : switch (Mnemonic[10]) {
4707 : default: break;
4708 : case 'f': // 1 string to match.
4709 0 : if (memcmp(Mnemonic.data()+11, "32_e64", 6) != 0)
4710 : break;
4711 0 : Mnemonic = "v_cvt_f64_f32"; // "v_cvt_f64_f32_e64"
4712 0 : return;
4713 : case 'i': // 1 string to match.
4714 0 : if (memcmp(Mnemonic.data()+11, "32_e64", 6) != 0)
4715 : break;
4716 0 : Mnemonic = "v_cvt_f64_i32"; // "v_cvt_f64_i32_e64"
4717 0 : return;
4718 : case 'u': // 1 string to match.
4719 0 : if (memcmp(Mnemonic.data()+11, "32_e64", 6) != 0)
4720 : break;
4721 0 : Mnemonic = "v_cvt_f64_u32"; // "v_cvt_f64_u32_e64"
4722 0 : return;
4723 : }
4724 : break;
4725 : }
4726 : break;
4727 0 : case 'i': // 3 strings to match.
4728 : switch (Mnemonic[7]) {
4729 : default: break;
4730 : case '1': // 1 string to match.
4731 0 : if (memcmp(Mnemonic.data()+8, "6_f16_e64", 9) != 0)
4732 : break;
4733 0 : Mnemonic = "v_cvt_i16_f16"; // "v_cvt_i16_f16_e64"
4734 0 : return;
4735 : case '3': // 2 strings to match.
4736 0 : if (memcmp(Mnemonic.data()+8, "2_f", 3) != 0)
4737 : break;
4738 : switch (Mnemonic[11]) {
4739 : default: break;
4740 : case '3': // 1 string to match.
4741 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4742 : break;
4743 0 : Mnemonic = "v_cvt_i32_f32"; // "v_cvt_i32_f32_e64"
4744 0 : return;
4745 : case '6': // 1 string to match.
4746 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4747 : break;
4748 0 : Mnemonic = "v_cvt_i32_f64"; // "v_cvt_i32_f64_e64"
4749 0 : return;
4750 : }
4751 : break;
4752 : }
4753 : break;
4754 0 : case 'u': // 3 strings to match.
4755 : switch (Mnemonic[7]) {
4756 : default: break;
4757 : case '1': // 1 string to match.
4758 0 : if (memcmp(Mnemonic.data()+8, "6_f16_e64", 9) != 0)
4759 : break;
4760 0 : Mnemonic = "v_cvt_u16_f16"; // "v_cvt_u16_f16_e64"
4761 0 : return;
4762 : case '3': // 2 strings to match.
4763 0 : if (memcmp(Mnemonic.data()+8, "2_f", 3) != 0)
4764 : break;
4765 : switch (Mnemonic[11]) {
4766 : default: break;
4767 : case '3': // 1 string to match.
4768 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4769 : break;
4770 0 : Mnemonic = "v_cvt_u32_f32"; // "v_cvt_u32_f32_e64"
4771 0 : return;
4772 : case '6': // 1 string to match.
4773 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4774 : break;
4775 0 : Mnemonic = "v_cvt_u32_f64"; // "v_cvt_u32_f64_e64"
4776 0 : return;
4777 : }
4778 : break;
4779 : }
4780 : break;
4781 : }
4782 : break;
4783 : }
4784 : break;
4785 : case 'd': // 4 strings to match.
4786 0 : if (memcmp(Mnemonic.data()+3, "ot", 2) != 0)
4787 : break;
4788 : switch (Mnemonic[5]) {
4789 : default: break;
4790 0 : case '4': // 2 strings to match.
4791 0 : if (Mnemonic[6] != '_')
4792 : break;
4793 : switch (Mnemonic[7]) {
4794 : default: break;
4795 : case 'i': // 1 string to match.
4796 0 : if (memcmp(Mnemonic.data()+8, "32_i8_e64", 9) != 0)
4797 : break;
4798 0 : Mnemonic = "v_dot4_i32_i8"; // "v_dot4_i32_i8_e64"
4799 0 : return;
4800 : case 'u': // 1 string to match.
4801 0 : if (memcmp(Mnemonic.data()+8, "32_u8_e64", 9) != 0)
4802 : break;
4803 0 : Mnemonic = "v_dot4_u32_u8"; // "v_dot4_u32_u8_e64"
4804 0 : return;
4805 : }
4806 : break;
4807 0 : case '8': // 2 strings to match.
4808 0 : if (Mnemonic[6] != '_')
4809 : break;
4810 : switch (Mnemonic[7]) {
4811 : default: break;
4812 : case 'i': // 1 string to match.
4813 0 : if (memcmp(Mnemonic.data()+8, "32_i4_e64", 9) != 0)
4814 : break;
4815 0 : Mnemonic = "v_dot8_i32_i4"; // "v_dot8_i32_i4_e64"
4816 0 : return;
4817 : case 'u': // 1 string to match.
4818 0 : if (memcmp(Mnemonic.data()+8, "32_u4_e64", 9) != 0)
4819 : break;
4820 0 : Mnemonic = "v_dot8_u32_u4"; // "v_dot8_u32_u4_e64"
4821 0 : return;
4822 : }
4823 : break;
4824 : }
4825 : break;
4826 : case 'f': // 1 string to match.
4827 0 : if (memcmp(Mnemonic.data()+3, "ma_mix_f32_e64", 14) != 0)
4828 : break;
4829 0 : Mnemonic = "v_fma_mix_f32"; // "v_fma_mix_f32_e64"
4830 0 : return;
4831 : case 'l': // 7 strings to match.
4832 0 : if (memcmp(Mnemonic.data()+3, "sh", 2) != 0)
4833 : break;
4834 : switch (Mnemonic[5]) {
4835 : default: break;
4836 0 : case 'l': // 4 strings to match.
4837 : switch (Mnemonic[6]) {
4838 : default: break;
4839 : case '_': // 1 string to match.
4840 0 : if (memcmp(Mnemonic.data()+7, "or_b32_e64", 10) != 0)
4841 : break;
4842 0 : Mnemonic = "v_lshl_or_b32"; // "v_lshl_or_b32_e64"
4843 0 : return;
4844 : case 'r': // 3 strings to match.
4845 0 : if (memcmp(Mnemonic.data()+7, "ev_b", 4) != 0)
4846 : break;
4847 : switch (Mnemonic[11]) {
4848 : default: break;
4849 : case '1': // 1 string to match.
4850 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4851 : break;
4852 0 : Mnemonic = "v_lshlrev_b16"; // "v_lshlrev_b16_e64"
4853 0 : return;
4854 : case '3': // 1 string to match.
4855 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4856 : break;
4857 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_lshlrev_b32_e64"
4858 0 : Mnemonic = "v_lshlrev_b32";
4859 : return;
4860 : case '6': // 1 string to match.
4861 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4862 : break;
4863 0 : Mnemonic = "v_lshlrev_b64"; // "v_lshlrev_b64_e64"
4864 0 : return;
4865 : }
4866 : break;
4867 : }
4868 : break;
4869 : case 'r': // 3 strings to match.
4870 0 : if (memcmp(Mnemonic.data()+6, "rev_b", 5) != 0)
4871 : break;
4872 : switch (Mnemonic[11]) {
4873 : default: break;
4874 : case '1': // 1 string to match.
4875 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4876 : break;
4877 0 : Mnemonic = "v_lshrrev_b16"; // "v_lshrrev_b16_e64"
4878 0 : return;
4879 : case '3': // 1 string to match.
4880 0 : if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4881 : break;
4882 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_lshrrev_b32_e64"
4883 0 : Mnemonic = "v_lshrrev_b32";
4884 : return;
4885 : case '6': // 1 string to match.
4886 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4887 : break;
4888 0 : Mnemonic = "v_lshrrev_b64"; // "v_lshrrev_b64_e64"
4889 0 : return;
4890 : }
4891 : break;
4892 : }
4893 : break;
4894 211 : case 'm': // 12 strings to match.
4895 : switch (Mnemonic[3]) {
4896 : default: break;
4897 : case 'a': // 7 strings to match.
4898 0 : if (memcmp(Mnemonic.data()+4, "d_", 2) != 0)
4899 : break;
4900 : switch (Mnemonic[6]) {
4901 : default: break;
4902 0 : case 'i': // 3 strings to match.
4903 : switch (Mnemonic[7]) {
4904 : default: break;
4905 : case '3': // 2 strings to match.
4906 0 : if (memcmp(Mnemonic.data()+8, "2_i", 3) != 0)
4907 : break;
4908 : switch (Mnemonic[11]) {
4909 : default: break;
4910 : case '1': // 1 string to match.
4911 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4912 : break;
4913 0 : Mnemonic = "v_mad_i32_i16"; // "v_mad_i32_i16_e64"
4914 0 : return;
4915 : case '2': // 1 string to match.
4916 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4917 : break;
4918 0 : Mnemonic = "v_mad_i32_i24"; // "v_mad_i32_i24_e64"
4919 0 : return;
4920 : }
4921 : break;
4922 : case '6': // 1 string to match.
4923 0 : if (memcmp(Mnemonic.data()+8, "4_i32_e64", 9) != 0)
4924 : break;
4925 0 : Mnemonic = "v_mad_i64_i32"; // "v_mad_i64_i32_e64"
4926 0 : return;
4927 : }
4928 : break;
4929 : case 'm': // 1 string to match.
4930 0 : if (memcmp(Mnemonic.data()+7, "ix_f32_e64", 10) != 0)
4931 : break;
4932 0 : Mnemonic = "v_mad_mix_f32"; // "v_mad_mix_f32_e64"
4933 0 : return;
4934 0 : case 'u': // 3 strings to match.
4935 : switch (Mnemonic[7]) {
4936 : default: break;
4937 : case '3': // 2 strings to match.
4938 0 : if (memcmp(Mnemonic.data()+8, "2_u", 3) != 0)
4939 : break;
4940 : switch (Mnemonic[11]) {
4941 : default: break;
4942 : case '1': // 1 string to match.
4943 0 : if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4944 : break;
4945 0 : Mnemonic = "v_mad_u32_u16"; // "v_mad_u32_u16_e64"
4946 0 : return;
4947 : case '2': // 1 string to match.
4948 0 : if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4949 : break;
4950 0 : Mnemonic = "v_mad_u32_u24"; // "v_mad_u32_u24_e64"
4951 0 : return;
4952 : }
4953 : break;
4954 : case '6': // 1 string to match.
4955 0 : if (memcmp(Mnemonic.data()+8, "4_u32_e64", 9) != 0)
4956 : break;
4957 0 : Mnemonic = "v_mad_u64_u32"; // "v_mad_u64_u32_e64"
4958 0 : return;
4959 : }
4960 : break;
4961 : }
4962 : break;
4963 0 : case 'o': // 3 strings to match.
4964 0 : if (Mnemonic[4] != 'v')
4965 : break;
4966 : switch (Mnemonic[5]) {
4967 : default: break;
4968 : case '_': // 1 string to match.
4969 0 : if (memcmp(Mnemonic.data()+6, "fed_b32_e64", 11) != 0)
4970 : break;
4971 0 : Mnemonic = "v_mov_fed_b32"; // "v_mov_fed_b32_e64"
4972 0 : return;
4973 : case 'r': // 2 strings to match.
4974 0 : if (memcmp(Mnemonic.data()+6, "el", 2) != 0)
4975 : break;
4976 : switch (Mnemonic[8]) {
4977 : default: break;
4978 : case 'd': // 1 string to match.
4979 0 : if (memcmp(Mnemonic.data()+9, "_b32_e64", 8) != 0)
4980 : break;
4981 0 : Mnemonic = "v_movreld_b32"; // "v_movreld_b32_e64"
4982 0 : return;
4983 : case 's': // 1 string to match.
4984 0 : if (memcmp(Mnemonic.data()+9, "_b32_e64", 8) != 0)
4985 : break;
4986 0 : Mnemonic = "v_movrels_b32"; // "v_movrels_b32_e64"
4987 0 : return;
4988 : }
4989 : break;
4990 : }
4991 : break;
4992 : case 'u': // 2 strings to match.
4993 0 : if (memcmp(Mnemonic.data()+4, "l_", 2) != 0)
4994 : break;
4995 : switch (Mnemonic[6]) {
4996 : default: break;
4997 : case 'i': // 1 string to match.
4998 0 : if (memcmp(Mnemonic.data()+7, "32_i24_e64", 10) != 0)
4999 : break;
5000 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_mul_i32_i24_e64"
5001 0 : Mnemonic = "v_mul_i32_i24";
5002 : return;
5003 : case 'u': // 1 string to match.
5004 0 : if (memcmp(Mnemonic.data()+7, "32_u24_e64", 10) != 0)
5005 : break;
5006 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_mul_u32_u24_e64"
5007 0 : Mnemonic = "v_mul_u32_u24";
5008 : return;
5009 : }
5010 : break;
5011 : }
5012 : break;
5013 : case 's': // 1 string to match.
5014 0 : if (memcmp(Mnemonic.data()+3, "ubbrev_u32_e64", 14) != 0)
5015 : break;
5016 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_subbrev_u32_e64"
5017 0 : Mnemonic = "v_subbrev_u32";
5018 : return;
5019 : }
5020 : break;
5021 : case 18: // 65 strings to match.
5022 447 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
5023 : break;
5024 : switch (Mnemonic[2]) {
5025 : default: break;
5026 0 : case 'a': // 3 strings to match.
5027 : switch (Mnemonic[3]) {
5028 : default: break;
5029 : case 'd': // 2 strings to match.
5030 0 : if (memcmp(Mnemonic.data()+4, "d_", 2) != 0)
5031 : break;
5032 : switch (Mnemonic[6]) {
5033 : default: break;
5034 : case 'i': // 1 string to match.
5035 0 : if (memcmp(Mnemonic.data()+7, "32_gfx9_e64", 11) != 0)
5036 : break;
5037 0 : Mnemonic = "v_add_i32_gfx9"; // "v_add_i32_gfx9_e64"
5038 0 : return;
5039 : case 'l': // 1 string to match.
5040 0 : if (memcmp(Mnemonic.data()+7, "shl_u32_e64", 11) != 0)
5041 : break;
5042 0 : Mnemonic = "v_add_lshl_u32"; // "v_add_lshl_u32_e64"
5043 0 : return;
5044 : }
5045 : break;
5046 : case 'l': // 1 string to match.
5047 0 : if (memcmp(Mnemonic.data()+4, "ignbit_b32_e64", 14) != 0)
5048 : break;
5049 0 : Mnemonic = "v_alignbit_b32"; // "v_alignbit_b32_e64"
5050 0 : return;
5051 : }
5052 : break;
5053 : case 'b': // 1 string to match.
5054 0 : if (memcmp(Mnemonic.data()+3, "cnt_u32_b32_e64", 15) != 0)
5055 : break;
5056 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_bcnt_u32_b32_e64"
5057 0 : Mnemonic = "v_bcnt_u32_b32";
5058 : return;
5059 : case 'c': // 47 strings to match.
5060 24 : if (memcmp(Mnemonic.data()+3, "mp", 2) != 0)
5061 : break;
5062 : switch (Mnemonic[5]) {
5063 : default: break;
5064 0 : case 's': // 26 strings to match.
5065 : switch (Mnemonic[6]) {
5066 : default: break;
5067 0 : case '_': // 14 strings to match.
5068 : switch (Mnemonic[7]) {
5069 : default: break;
5070 0 : case 'n': // 12 strings to match.
5071 : switch (Mnemonic[8]) {
5072 : default: break;
5073 : case 'e': // 2 strings to match.
5074 0 : if (memcmp(Mnemonic.data()+9, "q_f", 3) != 0)
5075 : break;
5076 : switch (Mnemonic[12]) {
5077 : default: break;
5078 : case '3': // 1 string to match.
5079 0 : if (memcmp(Mnemonic.data()+13, "2_e64", 5) != 0)
5080 : break;
5081 0 : Mnemonic = "v_cmps_neq_f32"; // "v_cmps_neq_f32_e64"
5082 0 : return;
5083 : case '6': // 1 string to match.
5084 0 : if (memcmp(Mnemonic.data()+13, "4_e64", 5) != 0)
5085 : break;
5086 0 : Mnemonic = "v_cmps_neq_f64"; // "v_cmps_neq_f64_e64"
5087 0 : return;
5088 : }
5089 : break;
5090 0 : case 'g': // 4 strings to match.
5091 : switch (Mnemonic[9]) {
5092 : default: break;
5093 : case 'e': // 2 strings to match.
5094 0 : if (memcmp(Mnemonic.data()+10, "_f", 2) != 0)
5095 : break;
5096 : switch (Mnemonic[12]) {
5097 : default: break;
5098 : case '3': // 1 string to match.
5099 0 : if (memcmp(Mnemonic.data()+13, "2_e64", 5) != 0)
5100 : break;
5101 0 : Mnemonic = "v_cmps_nge_f32"; // "v_cmps_nge_f32_e64"
5102 0 : return;
5103 : case '6': // 1 string to match.
5104 0 : if (memcmp(Mnemonic.data()+13, "4_e64", 5) != 0)
5105 : break;
5106 0 : Mnemonic = "v_cmps_nge_f64"; // "v_cmps_nge_f64_e64"
5107 0 : return;
5108 : }
5109 : break;
5110 : case 't': // 2 strings to match.
5111 0 : if (memcmp(Mnemonic.data()+10, "_f", 2) != 0)
5112 : break;
5113 : switch (Mnemonic[12]) {
5114 : default: break;
5115 : case '3': // 1 string to match.
5116 0 : if (memcmp(Mnemonic.data()+13, "2_e64", 5) != 0)
5117 : break;
5118 0 : Mnemonic = "v_cmps_ngt_f32"; // "v_cmps_ngt_f32_e64"
5119 0 : return;
5120 : case '6': // 1 string to match.
5121 0 : if (memcmp(Mnemonic.data()+13, "4_e64", 5) != 0)
5122 : break;
5123 0 : Mnemonic = "v_cmps_ngt_f64"; // "v_cmps_ngt_f64_e64"
5124 0 : return;
5125 : }
5126 : break;
5127 : }
5128 : break;
5129 0 : case 'l': // 6 strings to match.
5130 : switch (Mnemonic[9]) {
5131 : default: break;
5132 : case 'e': // 2 strings to match.
5133 0 : if (memcmp(Mnemonic.data()+10, "_f", 2) != 0)
5134 : break;
5135 : switch (Mnemonic[12]) {
5136 : default: break;
5137 : case '3': // 1 string to match.
5138 0 : if (memcmp(Mnemonic.data()+13, "2_e64", 5) != 0)
5139 : break;
5140 0 : Mnemonic = "v_cmps_nle_f32"; // "v_cmps_nle_f32_e64"
5141 0 : return;
5142 : case '6': // 1 string to match.
5143 0 : if (memcmp(Mnemonic.data()+13, "4_e64", 5) != 0)
5144 : break;
5145 0 : Mnemonic = "v_cmps_nle_f64"; // "v_cmps_nle_f64_e64"
5146 0 : return;
5147 : }
5148 : break;
5149 : case 'g': // 2 strings to match.
5150 0 : if (memcmp(Mnemonic.data()+10, "_f", 2) != 0)
5151 : break;
5152 : switch (Mnemonic[12]) {
5153 : default: break;
5154 : case '3': // 1 string to match.
5155 0 : if (memcmp(Mnemonic.data()+13, "2_e64", 5) != 0)
5156 : break;
5157 0 : Mnemonic = "v_cmps_nlg_f32"; // "v_cmps_nlg_f32_e64"
5158 0 : return;
5159 : case '6': // 1 string to match.
5160 0 : if (memcmp(Mnemonic.data()+13, "4_e64", 5) != 0)
5161 : break;
5162 0 : Mnemonic = "v_cmps_nlg_f64"; // "v_cmps_nlg_f64_e64"
5163 0 : return;
5164 : }
5165 : break;
5166 : case 't': // 2 strings to match.
5167 0 : if (memcmp(Mnemonic.data()+10, "_f", 2) != 0)
5168 : break;
5169 : switch (Mnemonic[12]) {
5170 : default: break;
5171 : case '3': // 1 string to match.
5172 0 : if (memcmp(Mnemonic.data()+13, "2_e64", 5) != 0)
5173 : break;
5174 0 : Mnemonic = "v_cmps_nlt_f32"; // "v_cmps_nlt_f32_e64"
5175 0 : return;
5176 : case '6': // 1 string to match.
5177 0 : if (memcmp(Mnemonic.data()+13, "4_e64", 5) != 0)
5178 : break;
5179 0 : Mnemonic = "v_cmps_nlt_f64"; // "v_cmps_nlt_f64_e64"
5180 0 : return;
5181 : }
5182 : break;
5183 : }
5184 : break;
5185 : }
5186 : break;
5187 : case 't': // 2 strings to match.
5188 0 : if (memcmp(Mnemonic.data()+8, "ru_f", 4) != 0)
5189 : break;
5190 : switch (Mnemonic[12]) {
5191 : default: break;
5192 : case '3': // 1 string to match.
5193 0 : if (memcmp(Mnemonic.data()+13, "2_e64", 5) != 0)
5194 : break;
5195 0 : Mnemonic = "v_cmps_tru_f32"; // "v_cmps_tru_f32_e64"
5196 0 : return;
5197 : case '6': // 1 string to match.
5198 0 : if (memcmp(Mnemonic.data()+13, "4_e64", 5) != 0)
5199 : break;
5200 0 : Mnemonic = "v_cmps_tru_f64"; // "v_cmps_tru_f64_e64"
5201 0 : return;
5202 : }
5203 : break;
5204 : }
5205 : break;
5206 0 : case 'x': // 12 strings to match.
5207 0 : if (Mnemonic[7] != '_')
5208 : break;
5209 : switch (Mnemonic[8]) {
5210 : default: break;
5211 : case 'e': // 2 strings to match.
5212 0 : if (memcmp(Mnemonic.data()+9, "q_f", 3) != 0)
5213 : break;
5214 : switch (Mnemonic[12]) {
5215 : default: break;
5216 : case '3': // 1 string to match.
5217 0 : if (memcmp(Mnemonic.data()+13, "2_e64", 5) != 0)
5218 : break;
5219 0 : Mnemonic = "v_cmpsx_eq_f32"; // "v_cmpsx_eq_f32_e64"
5220 0 : return;
5221 : case '6': // 1 string to match.
5222 0 : if (memcmp(Mnemonic.data()+13, "4_e64", 5) != 0)
5223 : break;
5224 0 : Mnemonic = "v_cmpsx_eq_f64"; // "v_cmpsx_eq_f64_e64"
5225 0 : return;
5226 : }
5227 : break;
5228 0 : case 'g': // 4 strings to match.
5229 : switch (Mnemonic[9]) {
5230 : default: break;
5231 : case 'e': // 2 strings to match.
5232 0 : if (memcmp(Mnemonic.data()+10, "_f", 2) != 0)
5233 : break;
5234 : switch (Mnemonic[12]) {
5235 : default: break;
5236 : case '3': // 1 string to match.
5237 0 : if (memcmp(Mnemonic.data()+13, "2_e64", 5) != 0)
5238 : break;
5239 0 : Mnemonic = "v_cmpsx_ge_f32"; // "v_cmpsx_ge_f32_e64"
5240 0 : return;
5241 : case '6': // 1 string to match.
5242 0 : if (memcmp(Mnemonic.data()+13, "4_e64", 5) != 0)
5243 : break;
5244 0 : Mnemonic = "v_cmpsx_ge_f64"; // "v_cmpsx_ge_f64_e64"
5245 0 : return;
5246 : }
5247 : break;
5248 : case 't': // 2 strings to match.
5249 0 : if (memcmp(Mnemonic.data()+10, "_f", 2) != 0)
5250 : break;
5251 : switch (Mnemonic[12]) {
5252 : default: break;
5253 : case '3': // 1 string to match.
5254 0 : if (memcmp(Mnemonic.data()+13, "2_e64", 5) != 0)
5255 : break;
5256 0 : Mnemonic = "v_cmpsx_gt_f32"; // "v_cmpsx_gt_f32_e64"
5257 0 : return;
5258 : case '6': // 1 string to match.
5259 0 : if (memcmp(Mnemonic.data()+13, "4_e64", 5) != 0)
5260 : break;
5261 0 : Mnemonic = "v_cmpsx_gt_f64"; // "v_cmpsx_gt_f64_e64"
5262 0 : return;
5263 : }
5264 : break;
5265 : }
5266 : break;
5267 0 : case 'l': // 6 strings to match.
5268 : switch (Mnemonic[9]) {
5269 : default: break;
5270 : case 'e': // 2 strings to match.
5271 0 : if (memcmp(Mnemonic.data()+10, "_f", 2) != 0)
5272 : break;
5273 : switch (Mnemonic[12]) {
5274 : default: break;
5275 : case '3': // 1 string to match.
5276 0 : if (memcmp(Mnemonic.data()+13, "2_e64", 5) != 0)
5277 : break;
5278 0 : Mnemonic = "v_cmpsx_le_f32"; // "v_cmpsx_le_f32_e64"
5279 0 : return;
5280 : case '6': // 1 string to match.
5281 0 : if (memcmp(Mnemonic.data()+13, "4_e64", 5) != 0)
5282 : break;
5283 0 : Mnemonic = "v_cmpsx_le_f64"; // "v_cmpsx_le_f64_e64"
5284 0 : return;
5285 : }
5286 : break;
5287 : case 'g': // 2 strings to match.
5288 0 : if (memcmp(Mnemonic.data()+10, "_f", 2) != 0)
5289 : break;
5290 : switch (Mnemonic[12]) {
5291 : default: break;
5292 : case '3': // 1 string to match.
5293 0 : if (memcmp(Mnemonic.data()+13, "2_e64", 5) != 0)
5294 : break;
5295 0 : Mnemonic = "v_cmpsx_lg_f32"; // "v_cmpsx_lg_f32_e64"
5296 0 : return;
5297 : case '6': // 1 string to match.
5298 0 : if (memcmp(Mnemonic.data()+13, "4_e64", 5) != 0)
5299 : break;
5300 0 : Mnemonic = "v_cmpsx_lg_f64"; // "v_cmpsx_lg_f64_e64"
5301 0 : return;
5302 : }
5303 : break;
5304 : case 't': // 2 strings to match.
5305 0 : if (memcmp(Mnemonic.data()+10, "_f", 2) != 0)
5306 : break;
5307 : switch (Mnemonic[12]) {
5308 : default: break;
5309 : case '3': // 1 string to match.
5310 0 : if (memcmp(Mnemonic.data()+13, "2_e64", 5) != 0)
5311 : break;
5312 0 : Mnemonic = "v_cmpsx_lt_f32"; // "v_cmpsx_lt_f32_e64"
5313 0 : return;
5314 : case '6': // 1 string to match.
5315 0 : if (memcmp(Mnemonic.data()+13, "4_e64", 5) != 0)
5316 : break;
5317 0 : Mnemonic = "v_cmpsx_lt_f64"; // "v_cmpsx_lt_f64_e64"
5318 0 : return;
5319 : }
5320 : break;
5321 : }
5322 : break;
5323 : }
5324 : break;
5325 : }
5326 : break;
5327 0 : case 'x': // 21 strings to match.
5328 0 : if (Mnemonic[6] != '_')
5329 : break;
5330 : switch (Mnemonic[7]) {
5331 : default: break;
5332 0 : case 'n': // 18 strings to match.
5333 : switch (Mnemonic[8]) {
5334 : default: break;
5335 : case 'e': // 3 strings to match.
5336 0 : if (memcmp(Mnemonic.data()+9, "q_f", 3) != 0)
5337 : break;
5338 : switch (Mnemonic[12]) {
5339 : default: break;
5340 : case '1': // 1 string to match.
5341 0 : if (memcmp(Mnemonic.data()+13, "6_e64", 5) != 0)
5342 : break;
5343 0 : Mnemonic = "v_cmpx_neq_f16"; // "v_cmpx_neq_f16_e64"
5344 0 : return;
5345 : case '3': // 1 string to match.
5346 0 : if (memcmp(Mnemonic.data()+13, "2_e64", 5) != 0)
5347 : break;
5348 0 : Mnemonic = "v_cmpx_neq_f32"; // "v_cmpx_neq_f32_e64"
5349 0 : return;
5350 : case '6': // 1 string to match.
5351 0 : if (memcmp(Mnemonic.data()+13, "4_e64", 5) != 0)
5352 : break;
5353 0 : Mnemonic = "v_cmpx_neq_f64"; // "v_cmpx_neq_f64_e64"
5354 0 : return;
5355 : }
5356 : break;
5357 0 : case 'g': // 6 strings to match.
5358 : switch (Mnemonic[9]) {
5359 : default: break;
5360 : case 'e': // 3 strings to match.
5361 0 : if (memcmp(Mnemonic.data()+10, "_f", 2) != 0)
5362 : break;
5363 : switch (Mnemonic[12]) {
5364 : default: break;
5365 : case '1': // 1 string to match.
5366 0 : if (memcmp(Mnemonic.data()+13, "6_e64", 5) != 0)
5367 : break;
5368 0 : Mnemonic = "v_cmpx_nge_f16"; // "v_cmpx_nge_f16_e64"
5369 0 : return;
5370 : case '3': // 1 string to match.
5371 0 : if (memcmp(Mnemonic.data()+13, "2_e64", 5) != 0)
5372 : break;
5373 0 : Mnemonic = "v_cmpx_nge_f32"; // "v_cmpx_nge_f32_e64"
5374 0 : return;
5375 : case '6': // 1 string to match.
5376 0 : if (memcmp(Mnemonic.data()+13, "4_e64", 5) != 0)
5377 : break;
5378 0 : Mnemonic = "v_cmpx_nge_f64"; // "v_cmpx_nge_f64_e64"
5379 0 : return;
5380 : }
5381 : break;
5382 : case 't': // 3 strings to match.
5383 0 : if (memcmp(Mnemonic.data()+10, "_f", 2) != 0)
5384 : break;
5385 : switch (Mnemonic[12]) {
5386 : default: break;
5387 : case '1': // 1 string to match.
5388 0 : if (memcmp(Mnemonic.data()+13, "6_e64", 5) != 0)
5389 : break;
5390 0 : Mnemonic = "v_cmpx_ngt_f16"; // "v_cmpx_ngt_f16_e64"
5391 0 : return;
5392 : case '3': // 1 string to match.
5393 0 : if (memcmp(Mnemonic.data()+13, "2_e64", 5) != 0)
5394 : break;
5395 0 : Mnemonic = "v_cmpx_ngt_f32"; // "v_cmpx_ngt_f32_e64"
5396 0 : return;
5397 : case '6': // 1 string to match.
5398 0 : if (memcmp(Mnemonic.data()+13, "4_e64", 5) != 0)
5399 : break;
5400 0 : Mnemonic = "v_cmpx_ngt_f64"; // "v_cmpx_ngt_f64_e64"
5401 0 : return;
5402 : }
5403 : break;
5404 : }
5405 : break;
5406 0 : case 'l': // 9 strings to match.
5407 : switch (Mnemonic[9]) {
5408 : default: break;
5409 : case 'e': // 3 strings to match.
5410 0 : if (memcmp(Mnemonic.data()+10, "_f", 2) != 0)
5411 : break;
5412 : switch (Mnemonic[12]) {
5413 : default: break;
5414 : case '1': // 1 string to match.
5415 0 : if (memcmp(Mnemonic.data()+13, "6_e64", 5) != 0)
5416 : break;
5417 0 : Mnemonic = "v_cmpx_nle_f16"; // "v_cmpx_nle_f16_e64"
5418 0 : return;
5419 : case '3': // 1 string to match.
5420 0 : if (memcmp(Mnemonic.data()+13, "2_e64", 5) != 0)
5421 : break;
5422 0 : Mnemonic = "v_cmpx_nle_f32"; // "v_cmpx_nle_f32_e64"
5423 0 : return;
5424 : case '6': // 1 string to match.
5425 0 : if (memcmp(Mnemonic.data()+13, "4_e64", 5) != 0)
5426 : break;
5427 0 : Mnemonic = "v_cmpx_nle_f64"; // "v_cmpx_nle_f64_e64"
5428 0 : return;
5429 : }
5430 : break;
5431 : case 'g': // 3 strings to match.
5432 0 : if (memcmp(Mnemonic.data()+10, "_f", 2) != 0)
5433 : break;
5434 : switch (Mnemonic[12]) {
5435 : default: break;
5436 : case '1': // 1 string to match.
5437 0 : if (memcmp(Mnemonic.data()+13, "6_e64", 5) != 0)
5438 : break;
5439 0 : Mnemonic = "v_cmpx_nlg_f16"; // "v_cmpx_nlg_f16_e64"
5440 0 : return;
5441 : case '3': // 1 string to match.
5442 0 : if (memcmp(Mnemonic.data()+13, "2_e64", 5) != 0)
5443 : break;
5444 0 : Mnemonic = "v_cmpx_nlg_f32"; // "v_cmpx_nlg_f32_e64"
5445 0 : return;
5446 : case '6': // 1 string to match.
5447 0 : if (memcmp(Mnemonic.data()+13, "4_e64", 5) != 0)
5448 : break;
5449 0 : Mnemonic = "v_cmpx_nlg_f64"; // "v_cmpx_nlg_f64_e64"
5450 0 : return;
5451 : }
5452 : break;
5453 : case 't': // 3 strings to match.
5454 0 : if (memcmp(Mnemonic.data()+10, "_f", 2) != 0)
5455 : break;
5456 : switch (Mnemonic[12]) {
5457 : default: break;
5458 : case '1': // 1 string to match.
5459 0 : if (memcmp(Mnemonic.data()+13, "6_e64", 5) != 0)
5460 : break;
5461 0 : Mnemonic = "v_cmpx_nlt_f16"; // "v_cmpx_nlt_f16_e64"
5462 0 : return;
5463 : case '3': // 1 string to match.
5464 0 : if (memcmp(Mnemonic.data()+13, "2_e64", 5) != 0)
5465 : break;
5466 0 : Mnemonic = "v_cmpx_nlt_f32"; // "v_cmpx_nlt_f32_e64"
5467 0 : return;
5468 : case '6': // 1 string to match.
5469 0 : if (memcmp(Mnemonic.data()+13, "4_e64", 5) != 0)
5470 : break;
5471 0 : Mnemonic = "v_cmpx_nlt_f64"; // "v_cmpx_nlt_f64_e64"
5472 0 : return;
5473 : }
5474 : break;
5475 : }
5476 : break;
5477 : }
5478 : break;
5479 : case 't': // 3 strings to match.
5480 0 : if (memcmp(Mnemonic.data()+8, "ru_f", 4) != 0)
5481 : break;
5482 : switch (Mnemonic[12]) {
5483 : default: break;
5484 : case '1': // 1 string to match.
5485 0 : if (memcmp(Mnemonic.data()+13, "6_e64", 5) != 0)
5486 : break;
5487 0 : Mnemonic = "v_cmpx_tru_f16"; // "v_cmpx_tru_f16_e64"
5488 0 : return;
5489 : case '3': // 1 string to match.
5490 0 : if (memcmp(Mnemonic.data()+13, "2_e64", 5) != 0)
5491 : break;
5492 0 : Mnemonic = "v_cmpx_tru_f32"; // "v_cmpx_tru_f32_e64"
5493 0 : return;
5494 : case '6': // 1 string to match.
5495 0 : if (memcmp(Mnemonic.data()+13, "4_e64", 5) != 0)
5496 : break;
5497 0 : Mnemonic = "v_cmpx_tru_f64"; // "v_cmpx_tru_f64_e64"
5498 0 : return;
5499 : }
5500 : break;
5501 : }
5502 : break;
5503 : }
5504 : break;
5505 0 : case 'd': // 5 strings to match.
5506 : switch (Mnemonic[3]) {
5507 : default: break;
5508 : case 'i': // 2 strings to match.
5509 0 : if (memcmp(Mnemonic.data()+4, "v_fmas_f", 8) != 0)
5510 : break;
5511 : switch (Mnemonic[12]) {
5512 : default: break;
5513 : case '3': // 1 string to match.
5514 0 : if (memcmp(Mnemonic.data()+13, "2_e64", 5) != 0)
5515 : break;
5516 0 : Mnemonic = "v_div_fmas_f32"; // "v_div_fmas_f32_e64"
5517 0 : return;
5518 : case '6': // 1 string to match.
5519 0 : if (memcmp(Mnemonic.data()+13, "4_e64", 5) != 0)
5520 : break;
5521 0 : Mnemonic = "v_div_fmas_f64"; // "v_div_fmas_f64_e64"
5522 0 : return;
5523 : }
5524 : break;
5525 : case 'o': // 3 strings to match.
5526 0 : if (memcmp(Mnemonic.data()+4, "t2_", 3) != 0)
5527 : break;
5528 : switch (Mnemonic[7]) {
5529 : default: break;
5530 : case 'f': // 1 string to match.
5531 0 : if (memcmp(Mnemonic.data()+8, "32_f16_e64", 10) != 0)
5532 : break;
5533 0 : Mnemonic = "v_dot2_f32_f16"; // "v_dot2_f32_f16_e64"
5534 0 : return;
5535 : case 'i': // 1 string to match.
5536 0 : if (memcmp(Mnemonic.data()+8, "32_i16_e64", 10) != 0)
5537 : break;
5538 0 : Mnemonic = "v_dot2_i32_i16"; // "v_dot2_i32_i16_e64"
5539 0 : return;
5540 : case 'u': // 1 string to match.
5541 0 : if (memcmp(Mnemonic.data()+8, "32_u16_e64", 10) != 0)
5542 : break;
5543 0 : Mnemonic = "v_dot2_u32_u16"; // "v_dot2_u32_u16_e64"
5544 0 : return;
5545 : }
5546 : break;
5547 : }
5548 : break;
5549 : case 'f': // 1 string to match.
5550 0 : if (memcmp(Mnemonic.data()+3, "ma_f16_gfx9_e64", 15) != 0)
5551 : break;
5552 0 : Mnemonic = "v_fma_f16_gfx9"; // "v_fma_f16_gfx9_e64"
5553 0 : return;
5554 : case 'l': // 1 string to match.
5555 0 : if (memcmp(Mnemonic.data()+3, "shl_add_u32_e64", 15) != 0)
5556 : break;
5557 0 : Mnemonic = "v_lshl_add_u32"; // "v_lshl_add_u32_e64"
5558 0 : return;
5559 300 : case 'm': // 5 strings to match.
5560 : switch (Mnemonic[3]) {
5561 : default: break;
5562 : case 'a': // 3 strings to match.
5563 0 : if (memcmp(Mnemonic.data()+4, "d_", 2) != 0)
5564 : break;
5565 : switch (Mnemonic[6]) {
5566 : default: break;
5567 : case 'f': // 1 string to match.
5568 0 : if (memcmp(Mnemonic.data()+7, "16_gfx9_e64", 11) != 0)
5569 : break;
5570 0 : Mnemonic = "v_mad_f16_gfx9"; // "v_mad_f16_gfx9_e64"
5571 0 : return;
5572 : case 'i': // 1 string to match.
5573 0 : if (memcmp(Mnemonic.data()+7, "16_gfx9_e64", 11) != 0)
5574 : break;
5575 0 : Mnemonic = "v_mad_i16_gfx9"; // "v_mad_i16_gfx9_e64"
5576 0 : return;
5577 : case 'u': // 1 string to match.
5578 0 : if (memcmp(Mnemonic.data()+7, "16_gfx9_e64", 11) != 0)
5579 : break;
5580 0 : Mnemonic = "v_mad_u16_gfx9"; // "v_mad_u16_gfx9_e64"
5581 0 : return;
5582 : }
5583 : break;
5584 : case 'o': // 1 string to match.
5585 0 : if (memcmp(Mnemonic.data()+4, "vrelsd_b32_e64", 14) != 0)
5586 : break;
5587 0 : Mnemonic = "v_movrelsd_b32"; // "v_movrelsd_b32_e64"
5588 0 : return;
5589 : case 'q': // 1 string to match.
5590 0 : if (memcmp(Mnemonic.data()+4, "sad_u32_u8_e64", 14) != 0)
5591 : break;
5592 0 : Mnemonic = "v_mqsad_u32_u8"; // "v_mqsad_u32_u8_e64"
5593 0 : return;
5594 : }
5595 : break;
5596 : case 'p': // 1 string to match.
5597 0 : if (memcmp(Mnemonic.data()+3, "ack_b32_f16_e64", 15) != 0)
5598 : break;
5599 0 : Mnemonic = "v_pack_b32_f16"; // "v_pack_b32_f16_e64"
5600 0 : return;
5601 : case 's': // 1 string to match.
5602 0 : if (memcmp(Mnemonic.data()+3, "ub_i32_gfx9_e64", 15) != 0)
5603 : break;
5604 0 : Mnemonic = "v_sub_i32_gfx9"; // "v_sub_i32_gfx9_e64"
5605 0 : return;
5606 : }
5607 : break;
5608 : case 19: // 39 strings to match.
5609 609 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
5610 : break;
5611 : switch (Mnemonic[2]) {
5612 : default: break;
5613 : case 'a': // 1 string to match.
5614 0 : if (memcmp(Mnemonic.data()+3, "lignbyte_b32_e64", 16) != 0)
5615 : break;
5616 0 : Mnemonic = "v_alignbyte_b32"; // "v_alignbyte_b32_e64"
5617 0 : return;
5618 166 : case 'c': // 18 strings to match.
5619 : switch (Mnemonic[3]) {
5620 : default: break;
5621 0 : case 'm': // 17 strings to match.
5622 0 : if (Mnemonic[4] != 'p')
5623 : break;
5624 : switch (Mnemonic[5]) {
5625 : default: break;
5626 : case '_': // 3 strings to match.
5627 0 : if (memcmp(Mnemonic.data()+6, "class_f", 7) != 0)
5628 : break;
5629 : switch (Mnemonic[13]) {
5630 : default: break;
5631 : case '1': // 1 string to match.
5632 0 : if (memcmp(Mnemonic.data()+14, "6_e64", 5) != 0)
5633 : break;
5634 0 : Mnemonic = "v_cmp_class_f16"; // "v_cmp_class_f16_e64"
5635 0 : return;
5636 : case '3': // 1 string to match.
5637 0 : if (memcmp(Mnemonic.data()+14, "2_e64", 5) != 0)
5638 : break;
5639 0 : Mnemonic = "v_cmp_class_f32"; // "v_cmp_class_f32_e64"
5640 0 : return;
5641 : case '6': // 1 string to match.
5642 0 : if (memcmp(Mnemonic.data()+14, "4_e64", 5) != 0)
5643 : break;
5644 0 : Mnemonic = "v_cmp_class_f64"; // "v_cmp_class_f64_e64"
5645 0 : return;
5646 : }
5647 : break;
5648 : case 's': // 14 strings to match.
5649 0 : if (memcmp(Mnemonic.data()+6, "x_", 2) != 0)
5650 : break;
5651 : switch (Mnemonic[8]) {
5652 : default: break;
5653 0 : case 'n': // 12 strings to match.
5654 : switch (Mnemonic[9]) {
5655 : default: break;
5656 : case 'e': // 2 strings to match.
5657 0 : if (memcmp(Mnemonic.data()+10, "q_f", 3) != 0)
5658 : break;
5659 : switch (Mnemonic[13]) {
5660 : default: break;
5661 : case '3': // 1 string to match.
5662 0 : if (memcmp(Mnemonic.data()+14, "2_e64", 5) != 0)
5663 : break;
5664 0 : Mnemonic = "v_cmpsx_neq_f32"; // "v_cmpsx_neq_f32_e64"
5665 0 : return;
5666 : case '6': // 1 string to match.
5667 0 : if (memcmp(Mnemonic.data()+14, "4_e64", 5) != 0)
5668 : break;
5669 0 : Mnemonic = "v_cmpsx_neq_f64"; // "v_cmpsx_neq_f64_e64"
5670 0 : return;
5671 : }
5672 : break;
5673 0 : case 'g': // 4 strings to match.
5674 : switch (Mnemonic[10]) {
5675 : default: break;
5676 : case 'e': // 2 strings to match.
5677 0 : if (memcmp(Mnemonic.data()+11, "_f", 2) != 0)
5678 : break;
5679 : switch (Mnemonic[13]) {
5680 : default: break;
5681 : case '3': // 1 string to match.
5682 0 : if (memcmp(Mnemonic.data()+14, "2_e64", 5) != 0)
5683 : break;
5684 0 : Mnemonic = "v_cmpsx_nge_f32"; // "v_cmpsx_nge_f32_e64"
5685 0 : return;
5686 : case '6': // 1 string to match.
5687 0 : if (memcmp(Mnemonic.data()+14, "4_e64", 5) != 0)
5688 : break;
5689 0 : Mnemonic = "v_cmpsx_nge_f64"; // "v_cmpsx_nge_f64_e64"
5690 0 : return;
5691 : }
5692 : break;
5693 : case 't': // 2 strings to match.
5694 0 : if (memcmp(Mnemonic.data()+11, "_f", 2) != 0)
5695 : break;
5696 : switch (Mnemonic[13]) {
5697 : default: break;
5698 : case '3': // 1 string to match.
5699 0 : if (memcmp(Mnemonic.data()+14, "2_e64", 5) != 0)
5700 : break;
5701 0 : Mnemonic = "v_cmpsx_ngt_f32"; // "v_cmpsx_ngt_f32_e64"
5702 0 : return;
5703 : case '6': // 1 string to match.
5704 0 : if (memcmp(Mnemonic.data()+14, "4_e64", 5) != 0)
5705 : break;
5706 0 : Mnemonic = "v_cmpsx_ngt_f64"; // "v_cmpsx_ngt_f64_e64"
5707 0 : return;
5708 : }
5709 : break;
5710 : }
5711 : break;
5712 0 : case 'l': // 6 strings to match.
5713 : switch (Mnemonic[10]) {
5714 : default: break;
5715 : case 'e': // 2 strings to match.
5716 0 : if (memcmp(Mnemonic.data()+11, "_f", 2) != 0)
5717 : break;
5718 : switch (Mnemonic[13]) {
5719 : default: break;
5720 : case '3': // 1 string to match.
5721 0 : if (memcmp(Mnemonic.data()+14, "2_e64", 5) != 0)
5722 : break;
5723 0 : Mnemonic = "v_cmpsx_nle_f32"; // "v_cmpsx_nle_f32_e64"
5724 0 : return;
5725 : case '6': // 1 string to match.
5726 0 : if (memcmp(Mnemonic.data()+14, "4_e64", 5) != 0)
5727 : break;
5728 0 : Mnemonic = "v_cmpsx_nle_f64"; // "v_cmpsx_nle_f64_e64"
5729 0 : return;
5730 : }
5731 : break;
5732 : case 'g': // 2 strings to match.
5733 0 : if (memcmp(Mnemonic.data()+11, "_f", 2) != 0)
5734 : break;
5735 : switch (Mnemonic[13]) {
5736 : default: break;
5737 : case '3': // 1 string to match.
5738 0 : if (memcmp(Mnemonic.data()+14, "2_e64", 5) != 0)
5739 : break;
5740 0 : Mnemonic = "v_cmpsx_nlg_f32"; // "v_cmpsx_nlg_f32_e64"
5741 0 : return;
5742 : case '6': // 1 string to match.
5743 0 : if (memcmp(Mnemonic.data()+14, "4_e64", 5) != 0)
5744 : break;
5745 0 : Mnemonic = "v_cmpsx_nlg_f64"; // "v_cmpsx_nlg_f64_e64"
5746 0 : return;
5747 : }
5748 : break;
5749 : case 't': // 2 strings to match.
5750 0 : if (memcmp(Mnemonic.data()+11, "_f", 2) != 0)
5751 : break;
5752 : switch (Mnemonic[13]) {
5753 : default: break;
5754 : case '3': // 1 string to match.
5755 0 : if (memcmp(Mnemonic.data()+14, "2_e64", 5) != 0)
5756 : break;
5757 0 : Mnemonic = "v_cmpsx_nlt_f32"; // "v_cmpsx_nlt_f32_e64"
5758 0 : return;
5759 : case '6': // 1 string to match.
5760 0 : if (memcmp(Mnemonic.data()+14, "4_e64", 5) != 0)
5761 : break;
5762 0 : Mnemonic = "v_cmpsx_nlt_f64"; // "v_cmpsx_nlt_f64_e64"
5763 0 : return;
5764 : }
5765 : break;
5766 : }
5767 : break;
5768 : }
5769 : break;
5770 : case 't': // 2 strings to match.
5771 0 : if (memcmp(Mnemonic.data()+9, "ru_f", 4) != 0)
5772 : break;
5773 : switch (Mnemonic[13]) {
5774 : default: break;
5775 : case '3': // 1 string to match.
5776 0 : if (memcmp(Mnemonic.data()+14, "2_e64", 5) != 0)
5777 : break;
5778 0 : Mnemonic = "v_cmpsx_tru_f32"; // "v_cmpsx_tru_f32_e64"
5779 0 : return;
5780 : case '6': // 1 string to match.
5781 0 : if (memcmp(Mnemonic.data()+14, "4_e64", 5) != 0)
5782 : break;
5783 0 : Mnemonic = "v_cmpsx_tru_f64"; // "v_cmpsx_tru_f64_e64"
5784 0 : return;
5785 : }
5786 : break;
5787 : }
5788 : break;
5789 : }
5790 : break;
5791 : case 'v': // 1 string to match.
5792 166 : if (memcmp(Mnemonic.data()+4, "t_pk_u8_f32_e64", 15) != 0)
5793 : break;
5794 0 : Mnemonic = "v_cvt_pk_u8_f32"; // "v_cvt_pk_u8_f32_e64"
5795 0 : return;
5796 : }
5797 : break;
5798 : case 'd': // 5 strings to match.
5799 0 : if (memcmp(Mnemonic.data()+3, "iv_", 3) != 0)
5800 : break;
5801 : switch (Mnemonic[6]) {
5802 : default: break;
5803 : case 'f': // 3 strings to match.
5804 0 : if (memcmp(Mnemonic.data()+7, "ixup_f", 6) != 0)
5805 : break;
5806 : switch (Mnemonic[13]) {
5807 : default: break;
5808 : case '1': // 1 string to match.
5809 0 : if (memcmp(Mnemonic.data()+14, "6_e64", 5) != 0)
5810 : break;
5811 0 : if ((Features & (Feature_Has16BitInsts|Feature_isVIOnly)) == (Feature_Has16BitInsts|Feature_isVIOnly)) // "v_div_fixup_f16_e64"
5812 0 : Mnemonic = "v_div_fixup_f16";
5813 : return;
5814 : case '3': // 1 string to match.
5815 0 : if (memcmp(Mnemonic.data()+14, "2_e64", 5) != 0)
5816 : break;
5817 0 : Mnemonic = "v_div_fixup_f32"; // "v_div_fixup_f32_e64"
5818 0 : return;
5819 : case '6': // 1 string to match.
5820 0 : if (memcmp(Mnemonic.data()+14, "4_e64", 5) != 0)
5821 : break;
5822 0 : Mnemonic = "v_div_fixup_f64"; // "v_div_fixup_f64_e64"
5823 0 : return;
5824 : }
5825 : break;
5826 : case 's': // 2 strings to match.
5827 0 : if (memcmp(Mnemonic.data()+7, "cale_f", 6) != 0)
5828 : break;
5829 : switch (Mnemonic[13]) {
5830 : default: break;
5831 : case '3': // 1 string to match.
5832 0 : if (memcmp(Mnemonic.data()+14, "2_e64", 5) != 0)
5833 : break;
5834 0 : Mnemonic = "v_div_scale_f32"; // "v_div_scale_f32_e64"
5835 0 : return;
5836 : case '6': // 1 string to match.
5837 0 : if (memcmp(Mnemonic.data()+14, "4_e64", 5) != 0)
5838 : break;
5839 0 : Mnemonic = "v_div_scale_f64"; // "v_div_scale_f64_e64"
5840 0 : return;
5841 : }
5842 : break;
5843 : }
5844 : break;
5845 : case 'f': // 2 strings to match.
5846 230 : if (memcmp(Mnemonic.data()+3, "ma_mix", 6) != 0)
5847 : break;
5848 : switch (Mnemonic[9]) {
5849 : default: break;
5850 : case 'h': // 1 string to match.
5851 0 : if (memcmp(Mnemonic.data()+10, "i_f16_e64", 9) != 0)
5852 : break;
5853 0 : Mnemonic = "v_fma_mixhi_f16"; // "v_fma_mixhi_f16_e64"
5854 0 : return;
5855 : case 'l': // 1 string to match.
5856 0 : if (memcmp(Mnemonic.data()+10, "o_f16_e64", 9) != 0)
5857 : break;
5858 0 : Mnemonic = "v_fma_mixlo_f16"; // "v_fma_mixlo_f16_e64"
5859 0 : return;
5860 : }
5861 : break;
5862 : case 'i': // 3 strings to match.
5863 0 : if (memcmp(Mnemonic.data()+3, "nterp_p", 7) != 0)
5864 : break;
5865 : switch (Mnemonic[10]) {
5866 : default: break;
5867 : case '1': // 1 string to match.
5868 0 : if (memcmp(Mnemonic.data()+11, "_f32_e64", 8) != 0)
5869 : break;
5870 0 : Mnemonic = "v_interp_p1_f32"; // "v_interp_p1_f32_e64"
5871 0 : return;
5872 : case '2': // 2 strings to match.
5873 0 : if (memcmp(Mnemonic.data()+11, "_f", 2) != 0)
5874 : break;
5875 : switch (Mnemonic[13]) {
5876 : default: break;
5877 : case '1': // 1 string to match.
5878 0 : if (memcmp(Mnemonic.data()+14, "6_e64", 5) != 0)
5879 : break;
5880 0 : Mnemonic = "v_interp_p2_f16"; // "v_interp_p2_f16_e64"
5881 0 : return;
5882 : case '3': // 1 string to match.
5883 0 : if (memcmp(Mnemonic.data()+14, "2_e64", 5) != 0)
5884 : break;
5885 0 : Mnemonic = "v_interp_p2_f32"; // "v_interp_p2_f32_e64"
5886 0 : return;
5887 : }
5888 : break;
5889 : }
5890 : break;
5891 : case 'l': // 1 string to match.
5892 0 : if (memcmp(Mnemonic.data()+3, "og_clamp_f32_e64", 16) != 0)
5893 : break;
5894 0 : Mnemonic = "v_log_clamp_f32"; // "v_log_clamp_f32_e64"
5895 0 : return;
5896 : case 'm': // 2 strings to match.
5897 0 : if (memcmp(Mnemonic.data()+3, "ad_mix", 6) != 0)
5898 : break;
5899 : switch (Mnemonic[9]) {
5900 : default: break;
5901 : case 'h': // 1 string to match.
5902 0 : if (memcmp(Mnemonic.data()+10, "i_f16_e64", 9) != 0)
5903 : break;
5904 0 : Mnemonic = "v_mad_mixhi_f16"; // "v_mad_mixhi_f16_e64"
5905 0 : return;
5906 : case 'l': // 1 string to match.
5907 0 : if (memcmp(Mnemonic.data()+10, "o_f16_e64", 9) != 0)
5908 : break;
5909 0 : Mnemonic = "v_mad_mixlo_f16"; // "v_mad_mixlo_f16_e64"
5910 0 : return;
5911 : }
5912 : break;
5913 : case 'p': // 1 string to match.
5914 0 : if (memcmp(Mnemonic.data()+3, "k_mul_lo_u16_e64", 16) != 0)
5915 : break;
5916 0 : Mnemonic = "v_pk_mul_lo_u16"; // "v_pk_mul_lo_u16_e64"
5917 0 : return;
5918 0 : case 'r': // 5 strings to match.
5919 : switch (Mnemonic[3]) {
5920 : default: break;
5921 : case 'c': // 3 strings to match.
5922 0 : if (memcmp(Mnemonic.data()+4, "p_", 2) != 0)
5923 : break;
5924 : switch (Mnemonic[6]) {
5925 : default: break;
5926 : case 'c': // 2 strings to match.
5927 0 : if (memcmp(Mnemonic.data()+7, "lamp_f", 6) != 0)
5928 : break;
5929 : switch (Mnemonic[13]) {
5930 : default: break;
5931 : case '3': // 1 string to match.
5932 0 : if (memcmp(Mnemonic.data()+14, "2_e64", 5) != 0)
5933 : break;
5934 0 : Mnemonic = "v_rcp_clamp_f32"; // "v_rcp_clamp_f32_e64"
5935 0 : return;
5936 : case '6': // 1 string to match.
5937 0 : if (memcmp(Mnemonic.data()+14, "4_e64", 5) != 0)
5938 : break;
5939 0 : Mnemonic = "v_rcp_clamp_f64"; // "v_rcp_clamp_f64_e64"
5940 0 : return;
5941 : }
5942 : break;
5943 : case 'i': // 1 string to match.
5944 0 : if (memcmp(Mnemonic.data()+7, "flag_f32_e64", 12) != 0)
5945 : break;
5946 0 : Mnemonic = "v_rcp_iflag_f32"; // "v_rcp_iflag_f32_e64"
5947 0 : return;
5948 : }
5949 : break;
5950 : case 's': // 2 strings to match.
5951 0 : if (memcmp(Mnemonic.data()+4, "q_clamp_f", 9) != 0)
5952 : break;
5953 : switch (Mnemonic[13]) {
5954 : default: break;
5955 : case '3': // 1 string to match.
5956 0 : if (memcmp(Mnemonic.data()+14, "2_e64", 5) != 0)
5957 : break;
5958 0 : Mnemonic = "v_rsq_clamp_f32"; // "v_rsq_clamp_f32_e64"
5959 0 : return;
5960 : case '6': // 1 string to match.
5961 0 : if (memcmp(Mnemonic.data()+14, "4_e64", 5) != 0)
5962 : break;
5963 0 : Mnemonic = "v_rsq_clamp_f64"; // "v_rsq_clamp_f64_e64"
5964 0 : return;
5965 : }
5966 : break;
5967 : }
5968 : break;
5969 : case 's': // 1 string to match.
5970 0 : if (memcmp(Mnemonic.data()+3, "at_pk_u8_i16_e64", 16) != 0)
5971 : break;
5972 0 : Mnemonic = "v_sat_pk_u8_i16"; // "v_sat_pk_u8_i16_e64"
5973 0 : return;
5974 : }
5975 : break;
5976 : case 20: // 30 strings to match.
5977 791 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
5978 : break;
5979 : switch (Mnemonic[2]) {
5980 : default: break;
5981 673 : case 'c': // 10 strings to match.
5982 : switch (Mnemonic[3]) {
5983 : default: break;
5984 : case 'm': // 3 strings to match.
5985 0 : if (memcmp(Mnemonic.data()+4, "px_class_f", 10) != 0)
5986 : break;
5987 : switch (Mnemonic[14]) {
5988 : default: break;
5989 : case '1': // 1 string to match.
5990 0 : if (memcmp(Mnemonic.data()+15, "6_e64", 5) != 0)
5991 : break;
5992 0 : Mnemonic = "v_cmpx_class_f16"; // "v_cmpx_class_f16_e64"
5993 0 : return;
5994 : case '3': // 1 string to match.
5995 0 : if (memcmp(Mnemonic.data()+15, "2_e64", 5) != 0)
5996 : break;
5997 0 : Mnemonic = "v_cmpx_class_f32"; // "v_cmpx_class_f32_e64"
5998 0 : return;
5999 : case '6': // 1 string to match.
6000 0 : if (memcmp(Mnemonic.data()+15, "4_e64", 5) != 0)
6001 : break;
6002 0 : Mnemonic = "v_cmpx_class_f64"; // "v_cmpx_class_f64_e64"
6003 0 : return;
6004 : }
6005 : break;
6006 : case 'v': // 7 strings to match.
6007 673 : if (memcmp(Mnemonic.data()+4, "t_", 2) != 0)
6008 : break;
6009 : switch (Mnemonic[6]) {
6010 : default: break;
6011 : case 'f': // 4 strings to match.
6012 0 : if (memcmp(Mnemonic.data()+7, "32_ubyte", 8) != 0)
6013 : break;
6014 : switch (Mnemonic[15]) {
6015 : default: break;
6016 : case '0': // 1 string to match.
6017 0 : if (memcmp(Mnemonic.data()+16, "_e64", 4) != 0)
6018 : break;
6019 0 : Mnemonic = "v_cvt_f32_ubyte0"; // "v_cvt_f32_ubyte0_e64"
6020 0 : return;
6021 : case '1': // 1 string to match.
6022 0 : if (memcmp(Mnemonic.data()+16, "_e64", 4) != 0)
6023 : break;
6024 0 : Mnemonic = "v_cvt_f32_ubyte1"; // "v_cvt_f32_ubyte1_e64"
6025 0 : return;
6026 : case '2': // 1 string to match.
6027 0 : if (memcmp(Mnemonic.data()+16, "_e64", 4) != 0)
6028 : break;
6029 0 : Mnemonic = "v_cvt_f32_ubyte2"; // "v_cvt_f32_ubyte2_e64"
6030 0 : return;
6031 : case '3': // 1 string to match.
6032 0 : if (memcmp(Mnemonic.data()+16, "_e64", 4) != 0)
6033 : break;
6034 0 : Mnemonic = "v_cvt_f32_ubyte3"; // "v_cvt_f32_ubyte3_e64"
6035 0 : return;
6036 : }
6037 : break;
6038 : case 'o': // 1 string to match.
6039 0 : if (memcmp(Mnemonic.data()+7, "ff_f32_i4_e64", 13) != 0)
6040 : break;
6041 0 : Mnemonic = "v_cvt_off_f32_i4"; // "v_cvt_off_f32_i4_e64"
6042 0 : return;
6043 : case 'p': // 2 strings to match.
6044 673 : if (memcmp(Mnemonic.data()+7, "k_", 2) != 0)
6045 : break;
6046 : switch (Mnemonic[9]) {
6047 : default: break;
6048 : case 'i': // 1 string to match.
6049 0 : if (memcmp(Mnemonic.data()+10, "16_i32_e64", 10) != 0)
6050 : break;
6051 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_cvt_pk_i16_i32_e64"
6052 0 : Mnemonic = "v_cvt_pk_i16_i32";
6053 : return;
6054 : case 'u': // 1 string to match.
6055 0 : if (memcmp(Mnemonic.data()+10, "16_u32_e64", 10) != 0)
6056 : break;
6057 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_cvt_pk_u16_u32_e64"
6058 0 : Mnemonic = "v_cvt_pk_u16_u32";
6059 : return;
6060 : }
6061 : break;
6062 : }
6063 : break;
6064 : }
6065 : break;
6066 : case 'e': // 1 string to match.
6067 0 : if (memcmp(Mnemonic.data()+3, "xp_legacy_f32_e64", 17) != 0)
6068 : break;
6069 0 : Mnemonic = "v_exp_legacy_f32"; // "v_exp_legacy_f32_e64"
6070 0 : return;
6071 : case 'f': // 3 strings to match.
6072 0 : if (memcmp(Mnemonic.data()+3, "rexp_mant_f", 11) != 0)
6073 : break;
6074 : switch (Mnemonic[14]) {
6075 : default: break;
6076 : case '1': // 1 string to match.
6077 0 : if (memcmp(Mnemonic.data()+15, "6_e64", 5) != 0)
6078 : break;
6079 0 : Mnemonic = "v_frexp_mant_f16"; // "v_frexp_mant_f16_e64"
6080 0 : return;
6081 : case '3': // 1 string to match.
6082 0 : if (memcmp(Mnemonic.data()+15, "2_e64", 5) != 0)
6083 : break;
6084 0 : Mnemonic = "v_frexp_mant_f32"; // "v_frexp_mant_f32_e64"
6085 0 : return;
6086 : case '6': // 1 string to match.
6087 0 : if (memcmp(Mnemonic.data()+15, "4_e64", 5) != 0)
6088 : break;
6089 0 : Mnemonic = "v_frexp_mant_f64"; // "v_frexp_mant_f64_e64"
6090 0 : return;
6091 : }
6092 : break;
6093 : case 'i': // 1 string to match.
6094 0 : if (memcmp(Mnemonic.data()+3, "nterp_mov_f32_e64", 17) != 0)
6095 : break;
6096 0 : Mnemonic = "v_interp_mov_f32"; // "v_interp_mov_f32_e64"
6097 0 : return;
6098 : case 'l': // 1 string to match.
6099 0 : if (memcmp(Mnemonic.data()+3, "og_legacy_f32_e64", 17) != 0)
6100 : break;
6101 0 : Mnemonic = "v_log_legacy_f32"; // "v_log_legacy_f32_e64"
6102 0 : return;
6103 0 : case 'm': // 7 strings to match.
6104 : switch (Mnemonic[3]) {
6105 : default: break;
6106 0 : case 'a': // 3 strings to match.
6107 : switch (Mnemonic[4]) {
6108 : default: break;
6109 : case 'c': // 1 string to match.
6110 0 : if (memcmp(Mnemonic.data()+5, "_legacy_f32_e64", 15) != 0)
6111 : break;
6112 0 : if ((Features & Feature_isSICI) == Feature_isSICI) // "v_mac_legacy_f32_e64"
6113 0 : Mnemonic = "v_mac_legacy_f32";
6114 : return;
6115 : case 'd': // 1 string to match.
6116 0 : if (memcmp(Mnemonic.data()+5, "_legacy_f32_e64", 15) != 0)
6117 : break;
6118 0 : Mnemonic = "v_mad_legacy_f32"; // "v_mad_legacy_f32_e64"
6119 0 : return;
6120 : case 'x': // 1 string to match.
6121 0 : if (memcmp(Mnemonic.data()+5, "_legacy_f32_e64", 15) != 0)
6122 : break;
6123 0 : if ((Features & Feature_isSICI) == Feature_isSICI) // "v_max_legacy_f32_e64"
6124 0 : Mnemonic = "v_max_legacy_f32";
6125 : return;
6126 : }
6127 : break;
6128 : case 'i': // 1 string to match.
6129 0 : if (memcmp(Mnemonic.data()+4, "n_legacy_f32_e64", 16) != 0)
6130 : break;
6131 0 : if ((Features & Feature_isSICI) == Feature_isSICI) // "v_min_legacy_f32_e64"
6132 0 : Mnemonic = "v_min_legacy_f32";
6133 : return;
6134 : case 'u': // 3 strings to match.
6135 0 : if (memcmp(Mnemonic.data()+4, "l_", 2) != 0)
6136 : break;
6137 : switch (Mnemonic[6]) {
6138 : default: break;
6139 : case 'h': // 2 strings to match.
6140 0 : if (memcmp(Mnemonic.data()+7, "i_", 2) != 0)
6141 : break;
6142 : switch (Mnemonic[9]) {
6143 : default: break;
6144 : case 'i': // 1 string to match.
6145 0 : if (memcmp(Mnemonic.data()+10, "32_i24_e64", 10) != 0)
6146 : break;
6147 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_mul_hi_i32_i24_e64"
6148 0 : Mnemonic = "v_mul_hi_i32_i24";
6149 : return;
6150 : case 'u': // 1 string to match.
6151 0 : if (memcmp(Mnemonic.data()+10, "32_u24_e64", 10) != 0)
6152 : break;
6153 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_mul_hi_u32_u24_e64"
6154 0 : Mnemonic = "v_mul_hi_u32_u24";
6155 : return;
6156 : }
6157 : break;
6158 : case 'l': // 1 string to match.
6159 0 : if (memcmp(Mnemonic.data()+7, "egacy_f32_e64", 13) != 0)
6160 : break;
6161 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_mul_legacy_f32_e64"
6162 0 : Mnemonic = "v_mul_legacy_f32";
6163 : return;
6164 : }
6165 : break;
6166 : }
6167 : break;
6168 : case 'p': // 3 strings to match.
6169 0 : if (memcmp(Mnemonic.data()+3, "k_", 2) != 0)
6170 : break;
6171 : switch (Mnemonic[5]) {
6172 : default: break;
6173 : case 'a': // 1 string to match.
6174 0 : if (memcmp(Mnemonic.data()+6, "shrrev_i16_e64", 14) != 0)
6175 : break;
6176 0 : Mnemonic = "v_pk_ashrrev_i16"; // "v_pk_ashrrev_i16_e64"
6177 0 : return;
6178 : case 'l': // 2 strings to match.
6179 0 : if (memcmp(Mnemonic.data()+6, "sh", 2) != 0)
6180 : break;
6181 : switch (Mnemonic[8]) {
6182 : default: break;
6183 : case 'l': // 1 string to match.
6184 0 : if (memcmp(Mnemonic.data()+9, "rev_b16_e64", 11) != 0)
6185 : break;
6186 0 : Mnemonic = "v_pk_lshlrev_b16"; // "v_pk_lshlrev_b16_e64"
6187 0 : return;
6188 : case 'r': // 1 string to match.
6189 0 : if (memcmp(Mnemonic.data()+9, "rev_b16_e64", 11) != 0)
6190 : break;
6191 0 : Mnemonic = "v_pk_lshrrev_b16"; // "v_pk_lshrrev_b16_e64"
6192 0 : return;
6193 : }
6194 : break;
6195 : }
6196 : break;
6197 : case 'q': // 1 string to match.
6198 0 : if (memcmp(Mnemonic.data()+3, "sad_pk_u16_u8_e64", 17) != 0)
6199 : break;
6200 0 : Mnemonic = "v_qsad_pk_u16_u8"; // "v_qsad_pk_u16_u8_e64"
6201 0 : return;
6202 0 : case 'r': // 2 strings to match.
6203 : switch (Mnemonic[3]) {
6204 : default: break;
6205 : case 'c': // 1 string to match.
6206 0 : if (memcmp(Mnemonic.data()+4, "p_legacy_f32_e64", 16) != 0)
6207 : break;
6208 0 : Mnemonic = "v_rcp_legacy_f32"; // "v_rcp_legacy_f32_e64"
6209 0 : return;
6210 : case 's': // 1 string to match.
6211 0 : if (memcmp(Mnemonic.data()+4, "q_legacy_f32_e64", 16) != 0)
6212 : break;
6213 0 : Mnemonic = "v_rsq_legacy_f32"; // "v_rsq_legacy_f32_e64"
6214 0 : return;
6215 : }
6216 : break;
6217 : case 't': // 1 string to match.
6218 0 : if (memcmp(Mnemonic.data()+3, "rig_preop_f64_e64", 17) != 0)
6219 : break;
6220 0 : Mnemonic = "v_trig_preop_f64"; // "v_trig_preop_f64_e64"
6221 0 : return;
6222 : }
6223 : break;
6224 : case 21: // 5 strings to match.
6225 37 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
6226 : break;
6227 : switch (Mnemonic[2]) {
6228 : default: break;
6229 : case 'c': // 2 strings to match.
6230 0 : if (memcmp(Mnemonic.data()+3, "vt_", 3) != 0)
6231 : break;
6232 : switch (Mnemonic[6]) {
6233 : default: break;
6234 : case 'f': // 1 string to match.
6235 0 : if (memcmp(Mnemonic.data()+7, "lr_i32_f32_e64", 14) != 0)
6236 : break;
6237 0 : Mnemonic = "v_cvt_flr_i32_f32"; // "v_cvt_flr_i32_f32_e64"
6238 0 : return;
6239 : case 'r': // 1 string to match.
6240 0 : if (memcmp(Mnemonic.data()+7, "pi_i32_f32_e64", 14) != 0)
6241 : break;
6242 0 : Mnemonic = "v_cvt_rpi_i32_f32"; // "v_cvt_rpi_i32_f32_e64"
6243 0 : return;
6244 : }
6245 : break;
6246 : case 'i': // 2 strings to match.
6247 0 : if (memcmp(Mnemonic.data()+3, "nterp_p1l", 9) != 0)
6248 : break;
6249 : switch (Mnemonic[12]) {
6250 : default: break;
6251 : case 'l': // 1 string to match.
6252 0 : if (memcmp(Mnemonic.data()+13, "_f16_e64", 8) != 0)
6253 : break;
6254 0 : Mnemonic = "v_interp_p1ll_f16"; // "v_interp_p1ll_f16_e64"
6255 0 : return;
6256 : case 'v': // 1 string to match.
6257 0 : if (memcmp(Mnemonic.data()+13, "_f16_e64", 8) != 0)
6258 : break;
6259 0 : Mnemonic = "v_interp_p1lv_f16"; // "v_interp_p1lv_f16_e64"
6260 0 : return;
6261 : }
6262 : break;
6263 : case 'm': // 1 string to match.
6264 0 : if (memcmp(Mnemonic.data()+3, "qsad_pk_u16_u8_e64", 18) != 0)
6265 : break;
6266 0 : Mnemonic = "v_mqsad_pk_u16_u8"; // "v_mqsad_pk_u16_u8_e64"
6267 0 : return;
6268 : }
6269 : break;
6270 : case 22: // 4 strings to match.
6271 270 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
6272 : break;
6273 : switch (Mnemonic[2]) {
6274 : default: break;
6275 : case 'c': // 2 strings to match.
6276 0 : if (memcmp(Mnemonic.data()+3, "vt_norm_", 8) != 0)
6277 : break;
6278 : switch (Mnemonic[11]) {
6279 : default: break;
6280 : case 'i': // 1 string to match.
6281 0 : if (memcmp(Mnemonic.data()+12, "16_f16_e64", 10) != 0)
6282 : break;
6283 0 : Mnemonic = "v_cvt_norm_i16_f16"; // "v_cvt_norm_i16_f16_e64"
6284 0 : return;
6285 : case 'u': // 1 string to match.
6286 0 : if (memcmp(Mnemonic.data()+12, "16_f16_e64", 10) != 0)
6287 : break;
6288 0 : Mnemonic = "v_cvt_norm_u16_f16"; // "v_cvt_norm_u16_f16_e64"
6289 0 : return;
6290 : }
6291 : break;
6292 : case 'm': // 2 strings to match.
6293 0 : if (memcmp(Mnemonic.data()+3, "bcnt_", 5) != 0)
6294 : break;
6295 : switch (Mnemonic[8]) {
6296 : default: break;
6297 : case 'h': // 1 string to match.
6298 0 : if (memcmp(Mnemonic.data()+9, "i_u32_b32_e64", 13) != 0)
6299 : break;
6300 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_mbcnt_hi_u32_b32_e64"
6301 0 : Mnemonic = "v_mbcnt_hi_u32_b32";
6302 : return;
6303 : case 'l': // 1 string to match.
6304 0 : if (memcmp(Mnemonic.data()+9, "o_u32_b32_e64", 13) != 0)
6305 : break;
6306 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_mbcnt_lo_u32_b32_e64"
6307 0 : Mnemonic = "v_mbcnt_lo_u32_b32";
6308 : return;
6309 : }
6310 : break;
6311 : }
6312 : break;
6313 : case 23: // 4 strings to match.
6314 80 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
6315 : break;
6316 : switch (Mnemonic[2]) {
6317 : default: break;
6318 : case 'c': // 1 string to match.
6319 0 : if (memcmp(Mnemonic.data()+3, "vt_pkrtz_f16_f32_e64", 20) != 0)
6320 : break;
6321 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_cvt_pkrtz_f16_f32_e64"
6322 0 : Mnemonic = "v_cvt_pkrtz_f16_f32";
6323 : return;
6324 : case 'f': // 3 strings to match.
6325 0 : if (memcmp(Mnemonic.data()+3, "rexp_exp_i", 10) != 0)
6326 : break;
6327 : switch (Mnemonic[13]) {
6328 : default: break;
6329 : case '1': // 1 string to match.
6330 0 : if (memcmp(Mnemonic.data()+14, "6_f16_e64", 9) != 0)
6331 : break;
6332 0 : Mnemonic = "v_frexp_exp_i16_f16"; // "v_frexp_exp_i16_f16_e64"
6333 0 : return;
6334 : case '3': // 2 strings to match.
6335 0 : if (memcmp(Mnemonic.data()+14, "2_f", 3) != 0)
6336 : break;
6337 : switch (Mnemonic[17]) {
6338 : default: break;
6339 : case '3': // 1 string to match.
6340 0 : if (memcmp(Mnemonic.data()+18, "2_e64", 5) != 0)
6341 : break;
6342 0 : Mnemonic = "v_frexp_exp_i32_f32"; // "v_frexp_exp_i32_f32_e64"
6343 0 : return;
6344 : case '6': // 1 string to match.
6345 0 : if (memcmp(Mnemonic.data()+18, "4_e64", 5) != 0)
6346 : break;
6347 0 : Mnemonic = "v_frexp_exp_i32_f64"; // "v_frexp_exp_i32_f64_e64"
6348 0 : return;
6349 : }
6350 : break;
6351 : }
6352 : break;
6353 : }
6354 : break;
6355 : case 24: // 7 strings to match.
6356 15 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
6357 : break;
6358 : switch (Mnemonic[2]) {
6359 : default: break;
6360 : case 'c': // 5 strings to match.
6361 0 : if (memcmp(Mnemonic.data()+3, "vt_pk", 5) != 0)
6362 : break;
6363 : switch (Mnemonic[8]) {
6364 : default: break;
6365 : case 'a': // 1 string to match.
6366 0 : if (memcmp(Mnemonic.data()+9, "ccum_u8_f32_e64", 15) != 0)
6367 : break;
6368 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_cvt_pkaccum_u8_f32_e64"
6369 0 : Mnemonic = "v_cvt_pkaccum_u8_f32";
6370 : return;
6371 : case 'n': // 4 strings to match.
6372 0 : if (memcmp(Mnemonic.data()+9, "orm_", 4) != 0)
6373 : break;
6374 : switch (Mnemonic[13]) {
6375 : default: break;
6376 : case 'i': // 2 strings to match.
6377 0 : if (memcmp(Mnemonic.data()+14, "16_f", 4) != 0)
6378 : break;
6379 : switch (Mnemonic[18]) {
6380 : default: break;
6381 : case '1': // 1 string to match.
6382 0 : if (memcmp(Mnemonic.data()+19, "6_e64", 5) != 0)
6383 : break;
6384 0 : Mnemonic = "v_cvt_pknorm_i16_f16"; // "v_cvt_pknorm_i16_f16_e64"
6385 0 : return;
6386 : case '3': // 1 string to match.
6387 0 : if (memcmp(Mnemonic.data()+19, "2_e64", 5) != 0)
6388 : break;
6389 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_cvt_pknorm_i16_f32_e64"
6390 0 : Mnemonic = "v_cvt_pknorm_i16_f32";
6391 : return;
6392 : }
6393 : break;
6394 : case 'u': // 2 strings to match.
6395 0 : if (memcmp(Mnemonic.data()+14, "16_f", 4) != 0)
6396 : break;
6397 : switch (Mnemonic[18]) {
6398 : default: break;
6399 : case '1': // 1 string to match.
6400 0 : if (memcmp(Mnemonic.data()+19, "6_e64", 5) != 0)
6401 : break;
6402 0 : Mnemonic = "v_cvt_pknorm_u16_f16"; // "v_cvt_pknorm_u16_f16_e64"
6403 0 : return;
6404 : case '3': // 1 string to match.
6405 0 : if (memcmp(Mnemonic.data()+19, "2_e64", 5) != 0)
6406 : break;
6407 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_cvt_pknorm_u16_f32_e64"
6408 0 : Mnemonic = "v_cvt_pknorm_u16_f32";
6409 : return;
6410 : }
6411 : break;
6412 : }
6413 : break;
6414 : }
6415 : break;
6416 : case 'd': // 1 string to match.
6417 0 : if (memcmp(Mnemonic.data()+3, "iv_fixup_f16_gfx9_e64", 21) != 0)
6418 : break;
6419 0 : if ((Features & (Feature_Has16BitInsts|Feature_isGFX9)) == (Feature_Has16BitInsts|Feature_isGFX9)) // "v_div_fixup_f16_gfx9_e64"
6420 0 : Mnemonic = "v_div_fixup_f16_gfx9";
6421 : return;
6422 : case 'i': // 1 string to match.
6423 0 : if (memcmp(Mnemonic.data()+3, "nterp_p2_f16_gfx9_e64", 21) != 0)
6424 : break;
6425 0 : Mnemonic = "v_interp_p2_f16_gfx9"; // "v_interp_p2_f16_gfx9_e64"
6426 0 : return;
6427 : }
6428 : break;
6429 : case 30: // 1 string to match.
6430 0 : if (memcmp(Mnemonic.data()+0, "v_screen_partition_4se_b32_e64", 30) != 0)
6431 : break;
6432 0 : Mnemonic = "v_screen_partition_4se_b32"; // "v_screen_partition_4se_b32_e64"
6433 0 : return;
6434 : }
6435 : break;
6436 : case 2:
6437 : switch (Mnemonic.size()) {
6438 : default: break;
6439 : case 10: // 1 string to match.
6440 938 : if (memcmp(Mnemonic.data()+0, "v_nop_sdwa", 10) != 0)
6441 : break;
6442 0 : Mnemonic = "v_nop"; // "v_nop_sdwa"
6443 0 : return;
6444 : case 13: // 1 string to match.
6445 7388 : if (memcmp(Mnemonic.data()+0, "v_or_b32_sdwa", 13) != 0)
6446 : break;
6447 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_or_b32_sdwa"
6448 0 : Mnemonic = "v_or_b32";
6449 : return;
6450 : case 14: // 42 strings to match.
6451 1578 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
6452 : break;
6453 : switch (Mnemonic[2]) {
6454 : default: break;
6455 3 : case 'a': // 6 strings to match.
6456 : switch (Mnemonic[3]) {
6457 : default: break;
6458 : case 'd': // 5 strings to match.
6459 3 : if (memcmp(Mnemonic.data()+4, "d_", 2) != 0)
6460 : break;
6461 : switch (Mnemonic[6]) {
6462 : default: break;
6463 0 : case 'f': // 2 strings to match.
6464 : switch (Mnemonic[7]) {
6465 : default: break;
6466 : case '1': // 1 string to match.
6467 0 : if (memcmp(Mnemonic.data()+8, "6_sdwa", 6) != 0)
6468 : break;
6469 0 : Mnemonic = "v_add_f16"; // "v_add_f16_sdwa"
6470 0 : return;
6471 : case '3': // 1 string to match.
6472 0 : if (memcmp(Mnemonic.data()+8, "2_sdwa", 6) != 0)
6473 : break;
6474 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_add_f32_sdwa"
6475 0 : Mnemonic = "v_add_f32";
6476 : return;
6477 : }
6478 : break;
6479 : case 'i': // 1 string to match.
6480 0 : if (memcmp(Mnemonic.data()+7, "32_sdwa", 7) != 0)
6481 : break;
6482 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_add_i32_sdwa"
6483 0 : Mnemonic = "v_add_i32";
6484 : return;
6485 0 : case 'u': // 2 strings to match.
6486 : switch (Mnemonic[7]) {
6487 : default: break;
6488 : case '1': // 1 string to match.
6489 0 : if (memcmp(Mnemonic.data()+8, "6_sdwa", 6) != 0)
6490 : break;
6491 0 : Mnemonic = "v_add_u16"; // "v_add_u16_sdwa"
6492 0 : return;
6493 : case '3': // 1 string to match.
6494 0 : if (memcmp(Mnemonic.data()+8, "2_sdwa", 6) != 0)
6495 : break;
6496 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_add_u32_sdwa"
6497 0 : Mnemonic = "v_add_u32";
6498 : return;
6499 : }
6500 : break;
6501 : }
6502 : break;
6503 : case 'n': // 1 string to match.
6504 0 : if (memcmp(Mnemonic.data()+4, "d_b32_sdwa", 10) != 0)
6505 : break;
6506 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_and_b32_sdwa"
6507 0 : Mnemonic = "v_and_b32";
6508 : return;
6509 : }
6510 : break;
6511 : case 'c': // 2 strings to match.
6512 1393 : if (memcmp(Mnemonic.data()+3, "os_f", 4) != 0)
6513 : break;
6514 : switch (Mnemonic[7]) {
6515 : default: break;
6516 : case '1': // 1 string to match.
6517 0 : if (memcmp(Mnemonic.data()+8, "6_sdwa", 6) != 0)
6518 : break;
6519 0 : Mnemonic = "v_cos_f16"; // "v_cos_f16_sdwa"
6520 0 : return;
6521 : case '3': // 1 string to match.
6522 0 : if (memcmp(Mnemonic.data()+8, "2_sdwa", 6) != 0)
6523 : break;
6524 0 : Mnemonic = "v_cos_f32"; // "v_cos_f32_sdwa"
6525 0 : return;
6526 : }
6527 : break;
6528 : case 'e': // 2 strings to match.
6529 0 : if (memcmp(Mnemonic.data()+3, "xp_f", 4) != 0)
6530 : break;
6531 : switch (Mnemonic[7]) {
6532 : default: break;
6533 : case '1': // 1 string to match.
6534 0 : if (memcmp(Mnemonic.data()+8, "6_sdwa", 6) != 0)
6535 : break;
6536 0 : Mnemonic = "v_exp_f16"; // "v_exp_f16_sdwa"
6537 0 : return;
6538 : case '3': // 1 string to match.
6539 0 : if (memcmp(Mnemonic.data()+8, "2_sdwa", 6) != 0)
6540 : break;
6541 0 : Mnemonic = "v_exp_f32"; // "v_exp_f32_sdwa"
6542 0 : return;
6543 : }
6544 : break;
6545 : case 'l': // 2 strings to match.
6546 3 : if (memcmp(Mnemonic.data()+3, "og_f", 4) != 0)
6547 : break;
6548 : switch (Mnemonic[7]) {
6549 : default: break;
6550 : case '1': // 1 string to match.
6551 0 : if (memcmp(Mnemonic.data()+8, "6_sdwa", 6) != 0)
6552 : break;
6553 0 : Mnemonic = "v_log_f16"; // "v_log_f16_sdwa"
6554 0 : return;
6555 : case '3': // 1 string to match.
6556 0 : if (memcmp(Mnemonic.data()+8, "2_sdwa", 6) != 0)
6557 : break;
6558 0 : Mnemonic = "v_log_f32"; // "v_log_f32_sdwa"
6559 0 : return;
6560 : }
6561 : break;
6562 6 : case 'm': // 17 strings to match.
6563 : switch (Mnemonic[3]) {
6564 : default: break;
6565 0 : case 'a': // 8 strings to match.
6566 : switch (Mnemonic[4]) {
6567 : default: break;
6568 : case 'c': // 2 strings to match.
6569 0 : if (memcmp(Mnemonic.data()+5, "_f", 2) != 0)
6570 : break;
6571 : switch (Mnemonic[7]) {
6572 : default: break;
6573 : case '1': // 1 string to match.
6574 0 : if (memcmp(Mnemonic.data()+8, "6_sdwa", 6) != 0)
6575 : break;
6576 0 : Mnemonic = "v_mac_f16"; // "v_mac_f16_sdwa"
6577 0 : return;
6578 : case '3': // 1 string to match.
6579 0 : if (memcmp(Mnemonic.data()+8, "2_sdwa", 6) != 0)
6580 : break;
6581 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_mac_f32_sdwa"
6582 0 : Mnemonic = "v_mac_f32";
6583 : return;
6584 : }
6585 : break;
6586 0 : case 'x': // 6 strings to match.
6587 0 : if (Mnemonic[5] != '_')
6588 : break;
6589 : switch (Mnemonic[6]) {
6590 : default: break;
6591 0 : case 'f': // 2 strings to match.
6592 : switch (Mnemonic[7]) {
6593 : default: break;
6594 : case '1': // 1 string to match.
6595 0 : if (memcmp(Mnemonic.data()+8, "6_sdwa", 6) != 0)
6596 : break;
6597 0 : Mnemonic = "v_max_f16"; // "v_max_f16_sdwa"
6598 0 : return;
6599 : case '3': // 1 string to match.
6600 0 : if (memcmp(Mnemonic.data()+8, "2_sdwa", 6) != 0)
6601 : break;
6602 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_max_f32_sdwa"
6603 0 : Mnemonic = "v_max_f32";
6604 : return;
6605 : }
6606 : break;
6607 0 : case 'i': // 2 strings to match.
6608 : switch (Mnemonic[7]) {
6609 : default: break;
6610 : case '1': // 1 string to match.
6611 0 : if (memcmp(Mnemonic.data()+8, "6_sdwa", 6) != 0)
6612 : break;
6613 0 : Mnemonic = "v_max_i16"; // "v_max_i16_sdwa"
6614 0 : return;
6615 : case '3': // 1 string to match.
6616 0 : if (memcmp(Mnemonic.data()+8, "2_sdwa", 6) != 0)
6617 : break;
6618 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_max_i32_sdwa"
6619 0 : Mnemonic = "v_max_i32";
6620 : return;
6621 : }
6622 : break;
6623 0 : case 'u': // 2 strings to match.
6624 : switch (Mnemonic[7]) {
6625 : default: break;
6626 : case '1': // 1 string to match.
6627 0 : if (memcmp(Mnemonic.data()+8, "6_sdwa", 6) != 0)
6628 : break;
6629 0 : Mnemonic = "v_max_u16"; // "v_max_u16_sdwa"
6630 0 : return;
6631 : case '3': // 1 string to match.
6632 0 : if (memcmp(Mnemonic.data()+8, "2_sdwa", 6) != 0)
6633 : break;
6634 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_max_u32_sdwa"
6635 0 : Mnemonic = "v_max_u32";
6636 : return;
6637 : }
6638 : break;
6639 : }
6640 : break;
6641 : }
6642 : break;
6643 : case 'i': // 6 strings to match.
6644 0 : if (memcmp(Mnemonic.data()+4, "n_", 2) != 0)
6645 : break;
6646 : switch (Mnemonic[6]) {
6647 : default: break;
6648 0 : case 'f': // 2 strings to match.
6649 : switch (Mnemonic[7]) {
6650 : default: break;
6651 : case '1': // 1 string to match.
6652 0 : if (memcmp(Mnemonic.data()+8, "6_sdwa", 6) != 0)
6653 : break;
6654 0 : Mnemonic = "v_min_f16"; // "v_min_f16_sdwa"
6655 0 : return;
6656 : case '3': // 1 string to match.
6657 0 : if (memcmp(Mnemonic.data()+8, "2_sdwa", 6) != 0)
6658 : break;
6659 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_min_f32_sdwa"
6660 0 : Mnemonic = "v_min_f32";
6661 : return;
6662 : }
6663 : break;
6664 0 : case 'i': // 2 strings to match.
6665 : switch (Mnemonic[7]) {
6666 : default: break;
6667 : case '1': // 1 string to match.
6668 0 : if (memcmp(Mnemonic.data()+8, "6_sdwa", 6) != 0)
6669 : break;
6670 0 : Mnemonic = "v_min_i16"; // "v_min_i16_sdwa"
6671 0 : return;
6672 : case '3': // 1 string to match.
6673 0 : if (memcmp(Mnemonic.data()+8, "2_sdwa", 6) != 0)
6674 : break;
6675 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_min_i32_sdwa"
6676 0 : Mnemonic = "v_min_i32";
6677 : return;
6678 : }
6679 : break;
6680 0 : case 'u': // 2 strings to match.
6681 : switch (Mnemonic[7]) {
6682 : default: break;
6683 : case '1': // 1 string to match.
6684 0 : if (memcmp(Mnemonic.data()+8, "6_sdwa", 6) != 0)
6685 : break;
6686 0 : Mnemonic = "v_min_u16"; // "v_min_u16_sdwa"
6687 0 : return;
6688 : case '3': // 1 string to match.
6689 0 : if (memcmp(Mnemonic.data()+8, "2_sdwa", 6) != 0)
6690 : break;
6691 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_min_u32_sdwa"
6692 0 : Mnemonic = "v_min_u32";
6693 : return;
6694 : }
6695 : break;
6696 : }
6697 : break;
6698 : case 'o': // 1 string to match.
6699 0 : if (memcmp(Mnemonic.data()+4, "v_b32_sdwa", 10) != 0)
6700 : break;
6701 0 : Mnemonic = "v_mov_b32"; // "v_mov_b32_sdwa"
6702 0 : return;
6703 : case 'u': // 2 strings to match.
6704 0 : if (memcmp(Mnemonic.data()+4, "l_f", 3) != 0)
6705 : break;
6706 : switch (Mnemonic[7]) {
6707 : default: break;
6708 : case '1': // 1 string to match.
6709 0 : if (memcmp(Mnemonic.data()+8, "6_sdwa", 6) != 0)
6710 : break;
6711 0 : Mnemonic = "v_mul_f16"; // "v_mul_f16_sdwa"
6712 0 : return;
6713 : case '3': // 1 string to match.
6714 0 : if (memcmp(Mnemonic.data()+8, "2_sdwa", 6) != 0)
6715 : break;
6716 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_mul_f32_sdwa"
6717 0 : Mnemonic = "v_mul_f32";
6718 : return;
6719 : }
6720 : break;
6721 : }
6722 : break;
6723 : case 'n': // 1 string to match.
6724 0 : if (memcmp(Mnemonic.data()+3, "ot_b32_sdwa", 11) != 0)
6725 : break;
6726 0 : Mnemonic = "v_not_b32"; // "v_not_b32_sdwa"
6727 0 : return;
6728 0 : case 'r': // 4 strings to match.
6729 : switch (Mnemonic[3]) {
6730 : default: break;
6731 : case 'c': // 2 strings to match.
6732 0 : if (memcmp(Mnemonic.data()+4, "p_f", 3) != 0)
6733 : break;
6734 : switch (Mnemonic[7]) {
6735 : default: break;
6736 : case '1': // 1 string to match.
6737 0 : if (memcmp(Mnemonic.data()+8, "6_sdwa", 6) != 0)
6738 : break;
6739 0 : Mnemonic = "v_rcp_f16"; // "v_rcp_f16_sdwa"
6740 0 : return;
6741 : case '3': // 1 string to match.
6742 0 : if (memcmp(Mnemonic.data()+8, "2_sdwa", 6) != 0)
6743 : break;
6744 0 : Mnemonic = "v_rcp_f32"; // "v_rcp_f32_sdwa"
6745 0 : return;
6746 : }
6747 : break;
6748 : case 's': // 2 strings to match.
6749 0 : if (memcmp(Mnemonic.data()+4, "q_f", 3) != 0)
6750 : break;
6751 : switch (Mnemonic[7]) {
6752 : default: break;
6753 : case '1': // 1 string to match.
6754 0 : if (memcmp(Mnemonic.data()+8, "6_sdwa", 6) != 0)
6755 : break;
6756 0 : Mnemonic = "v_rsq_f16"; // "v_rsq_f16_sdwa"
6757 0 : return;
6758 : case '3': // 1 string to match.
6759 0 : if (memcmp(Mnemonic.data()+8, "2_sdwa", 6) != 0)
6760 : break;
6761 0 : Mnemonic = "v_rsq_f32"; // "v_rsq_f32_sdwa"
6762 0 : return;
6763 : }
6764 : break;
6765 : }
6766 : break;
6767 0 : case 's': // 7 strings to match.
6768 : switch (Mnemonic[3]) {
6769 : default: break;
6770 : case 'i': // 2 strings to match.
6771 0 : if (memcmp(Mnemonic.data()+4, "n_f", 3) != 0)
6772 : break;
6773 : switch (Mnemonic[7]) {
6774 : default: break;
6775 : case '1': // 1 string to match.
6776 0 : if (memcmp(Mnemonic.data()+8, "6_sdwa", 6) != 0)
6777 : break;
6778 0 : Mnemonic = "v_sin_f16"; // "v_sin_f16_sdwa"
6779 0 : return;
6780 : case '3': // 1 string to match.
6781 0 : if (memcmp(Mnemonic.data()+8, "2_sdwa", 6) != 0)
6782 : break;
6783 0 : Mnemonic = "v_sin_f32"; // "v_sin_f32_sdwa"
6784 0 : return;
6785 : }
6786 : break;
6787 : case 'u': // 5 strings to match.
6788 0 : if (memcmp(Mnemonic.data()+4, "b_", 2) != 0)
6789 : break;
6790 : switch (Mnemonic[6]) {
6791 : default: break;
6792 0 : case 'f': // 2 strings to match.
6793 : switch (Mnemonic[7]) {
6794 : default: break;
6795 : case '1': // 1 string to match.
6796 0 : if (memcmp(Mnemonic.data()+8, "6_sdwa", 6) != 0)
6797 : break;
6798 0 : Mnemonic = "v_sub_f16"; // "v_sub_f16_sdwa"
6799 0 : return;
6800 : case '3': // 1 string to match.
6801 0 : if (memcmp(Mnemonic.data()+8, "2_sdwa", 6) != 0)
6802 : break;
6803 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_sub_f32_sdwa"
6804 0 : Mnemonic = "v_sub_f32";
6805 : return;
6806 : }
6807 : break;
6808 : case 'i': // 1 string to match.
6809 0 : if (memcmp(Mnemonic.data()+7, "32_sdwa", 7) != 0)
6810 : break;
6811 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_sub_i32_sdwa"
6812 0 : Mnemonic = "v_sub_i32";
6813 : return;
6814 0 : case 'u': // 2 strings to match.
6815 : switch (Mnemonic[7]) {
6816 : default: break;
6817 : case '1': // 1 string to match.
6818 0 : if (memcmp(Mnemonic.data()+8, "6_sdwa", 6) != 0)
6819 : break;
6820 0 : Mnemonic = "v_sub_u16"; // "v_sub_u16_sdwa"
6821 0 : return;
6822 : case '3': // 1 string to match.
6823 0 : if (memcmp(Mnemonic.data()+8, "2_sdwa", 6) != 0)
6824 : break;
6825 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_sub_u32_sdwa"
6826 0 : Mnemonic = "v_sub_u32";
6827 : return;
6828 : }
6829 : break;
6830 : }
6831 : break;
6832 : }
6833 : break;
6834 : case 'x': // 1 string to match.
6835 0 : if (memcmp(Mnemonic.data()+3, "or_b32_sdwa", 11) != 0)
6836 : break;
6837 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_xor_b32_sdwa"
6838 0 : Mnemonic = "v_xor_b32";
6839 : return;
6840 : }
6841 : break;
6842 : case 15: // 14 strings to match.
6843 748 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
6844 : break;
6845 : switch (Mnemonic[2]) {
6846 : default: break;
6847 0 : case 'a': // 2 strings to match.
6848 : switch (Mnemonic[3]) {
6849 : default: break;
6850 : case 'd': // 1 string to match.
6851 0 : if (memcmp(Mnemonic.data()+4, "dc_u32_sdwa", 11) != 0)
6852 : break;
6853 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_addc_u32_sdwa"
6854 0 : Mnemonic = "v_addc_u32";
6855 : return;
6856 : case 's': // 1 string to match.
6857 0 : if (memcmp(Mnemonic.data()+4, "hr_i32_sdwa", 11) != 0)
6858 : break;
6859 0 : if ((Features & Feature_isSICI) == Feature_isSICI) // "v_ashr_i32_sdwa"
6860 0 : Mnemonic = "v_ashr_i32";
6861 : return;
6862 : }
6863 : break;
6864 : case 'c': // 2 strings to match.
6865 198 : if (memcmp(Mnemonic.data()+3, "eil_f", 5) != 0)
6866 : break;
6867 : switch (Mnemonic[8]) {
6868 : default: break;
6869 : case '1': // 1 string to match.
6870 0 : if (memcmp(Mnemonic.data()+9, "6_sdwa", 6) != 0)
6871 : break;
6872 0 : Mnemonic = "v_ceil_f16"; // "v_ceil_f16_sdwa"
6873 0 : return;
6874 : case '3': // 1 string to match.
6875 0 : if (memcmp(Mnemonic.data()+9, "2_sdwa", 6) != 0)
6876 : break;
6877 0 : Mnemonic = "v_ceil_f32"; // "v_ceil_f32_sdwa"
6878 0 : return;
6879 : }
6880 : break;
6881 6 : case 'f': // 4 strings to match.
6882 : switch (Mnemonic[3]) {
6883 : default: break;
6884 0 : case 'f': // 3 strings to match.
6885 0 : if (Mnemonic[4] != 'b')
6886 : break;
6887 : switch (Mnemonic[5]) {
6888 : default: break;
6889 0 : case 'h': // 2 strings to match.
6890 0 : if (Mnemonic[6] != '_')
6891 : break;
6892 : switch (Mnemonic[7]) {
6893 : default: break;
6894 : case 'i': // 1 string to match.
6895 0 : if (memcmp(Mnemonic.data()+8, "32_sdwa", 7) != 0)
6896 : break;
6897 0 : Mnemonic = "v_ffbh_i32"; // "v_ffbh_i32_sdwa"
6898 0 : return;
6899 : case 'u': // 1 string to match.
6900 0 : if (memcmp(Mnemonic.data()+8, "32_sdwa", 7) != 0)
6901 : break;
6902 0 : Mnemonic = "v_ffbh_u32"; // "v_ffbh_u32_sdwa"
6903 0 : return;
6904 : }
6905 : break;
6906 : case 'l': // 1 string to match.
6907 0 : if (memcmp(Mnemonic.data()+6, "_b32_sdwa", 9) != 0)
6908 : break;
6909 0 : Mnemonic = "v_ffbl_b32"; // "v_ffbl_b32_sdwa"
6910 0 : return;
6911 : }
6912 : break;
6913 : case 'm': // 1 string to match.
6914 6 : if (memcmp(Mnemonic.data()+4, "ac_f32_sdwa", 11) != 0)
6915 : break;
6916 0 : Mnemonic = "v_fmac_f32"; // "v_fmac_f32_sdwa"
6917 0 : return;
6918 : }
6919 : break;
6920 : case 'l': // 2 strings to match.
6921 4 : if (memcmp(Mnemonic.data()+3, "sh", 2) != 0)
6922 : break;
6923 : switch (Mnemonic[5]) {
6924 : default: break;
6925 : case 'l': // 1 string to match.
6926 0 : if (memcmp(Mnemonic.data()+6, "_b32_sdwa", 9) != 0)
6927 : break;
6928 0 : if ((Features & Feature_isSICI) == Feature_isSICI) // "v_lshl_b32_sdwa"
6929 0 : Mnemonic = "v_lshl_b32";
6930 : return;
6931 : case 'r': // 1 string to match.
6932 0 : if (memcmp(Mnemonic.data()+6, "_b32_sdwa", 9) != 0)
6933 : break;
6934 0 : if ((Features & Feature_isSICI) == Feature_isSICI) // "v_lshr_b32_sdwa"
6935 0 : Mnemonic = "v_lshr_b32";
6936 : return;
6937 : }
6938 : break;
6939 105 : case 's': // 3 strings to match.
6940 : switch (Mnemonic[3]) {
6941 : default: break;
6942 : case 'q': // 2 strings to match.
6943 0 : if (memcmp(Mnemonic.data()+4, "rt_f", 4) != 0)
6944 : break;
6945 : switch (Mnemonic[8]) {
6946 : default: break;
6947 : case '1': // 1 string to match.
6948 0 : if (memcmp(Mnemonic.data()+9, "6_sdwa", 6) != 0)
6949 : break;
6950 0 : Mnemonic = "v_sqrt_f16"; // "v_sqrt_f16_sdwa"
6951 0 : return;
6952 : case '3': // 1 string to match.
6953 0 : if (memcmp(Mnemonic.data()+9, "2_sdwa", 6) != 0)
6954 : break;
6955 0 : Mnemonic = "v_sqrt_f32"; // "v_sqrt_f32_sdwa"
6956 0 : return;
6957 : }
6958 : break;
6959 : case 'u': // 1 string to match.
6960 92 : if (memcmp(Mnemonic.data()+4, "bb_u32_sdwa", 11) != 0)
6961 : break;
6962 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_subb_u32_sdwa"
6963 0 : Mnemonic = "v_subb_u32";
6964 : return;
6965 : }
6966 : break;
6967 : case 'x': // 1 string to match.
6968 0 : if (memcmp(Mnemonic.data()+3, "nor_b32_sdwa", 12) != 0)
6969 : break;
6970 0 : Mnemonic = "v_xnor_b32"; // "v_xnor_b32_sdwa"
6971 0 : return;
6972 : }
6973 : break;
6974 : case 16: // 24 strings to match.
6975 1845 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
6976 : break;
6977 : switch (Mnemonic[2]) {
6978 : default: break;
6979 : case 'b': // 1 string to match.
6980 0 : if (memcmp(Mnemonic.data()+3, "frev_b32_sdwa", 13) != 0)
6981 : break;
6982 0 : Mnemonic = "v_bfrev_b32"; // "v_bfrev_b32_sdwa"
6983 0 : return;
6984 : case 'c': // 14 strings to match.
6985 747 : if (memcmp(Mnemonic.data()+3, "mp_", 3) != 0)
6986 : break;
6987 : switch (Mnemonic[6]) {
6988 : default: break;
6989 0 : case 'f': // 6 strings to match.
6990 0 : if (Mnemonic[7] != '_')
6991 : break;
6992 : switch (Mnemonic[8]) {
6993 : default: break;
6994 0 : case 'f': // 2 strings to match.
6995 : switch (Mnemonic[9]) {
6996 : default: break;
6997 : case '1': // 1 string to match.
6998 0 : if (memcmp(Mnemonic.data()+10, "6_sdwa", 6) != 0)
6999 : break;
7000 0 : Mnemonic = "v_cmp_f_f16"; // "v_cmp_f_f16_sdwa"
7001 0 : return;
7002 : case '3': // 1 string to match.
7003 0 : if (memcmp(Mnemonic.data()+10, "2_sdwa", 6) != 0)
7004 : break;
7005 0 : Mnemonic = "v_cmp_f_f32"; // "v_cmp_f_f32_sdwa"
7006 0 : return;
7007 : }
7008 : break;
7009 0 : case 'i': // 2 strings to match.
7010 : switch (Mnemonic[9]) {
7011 : default: break;
7012 : case '1': // 1 string to match.
7013 0 : if (memcmp(Mnemonic.data()+10, "6_sdwa", 6) != 0)
7014 : break;
7015 0 : Mnemonic = "v_cmp_f_i16"; // "v_cmp_f_i16_sdwa"
7016 0 : return;
7017 : case '3': // 1 string to match.
7018 0 : if (memcmp(Mnemonic.data()+10, "2_sdwa", 6) != 0)
7019 : break;
7020 0 : Mnemonic = "v_cmp_f_i32"; // "v_cmp_f_i32_sdwa"
7021 0 : return;
7022 : }
7023 : break;
7024 0 : case 'u': // 2 strings to match.
7025 : switch (Mnemonic[9]) {
7026 : default: break;
7027 : case '1': // 1 string to match.
7028 0 : if (memcmp(Mnemonic.data()+10, "6_sdwa", 6) != 0)
7029 : break;
7030 0 : Mnemonic = "v_cmp_f_u16"; // "v_cmp_f_u16_sdwa"
7031 0 : return;
7032 : case '3': // 1 string to match.
7033 0 : if (memcmp(Mnemonic.data()+10, "2_sdwa", 6) != 0)
7034 : break;
7035 0 : Mnemonic = "v_cmp_f_u32"; // "v_cmp_f_u32_sdwa"
7036 0 : return;
7037 : }
7038 : break;
7039 : }
7040 : break;
7041 : case 'o': // 2 strings to match.
7042 0 : if (memcmp(Mnemonic.data()+7, "_f", 2) != 0)
7043 : break;
7044 : switch (Mnemonic[9]) {
7045 : default: break;
7046 : case '1': // 1 string to match.
7047 0 : if (memcmp(Mnemonic.data()+10, "6_sdwa", 6) != 0)
7048 : break;
7049 0 : Mnemonic = "v_cmp_o_f16"; // "v_cmp_o_f16_sdwa"
7050 0 : return;
7051 : case '3': // 1 string to match.
7052 0 : if (memcmp(Mnemonic.data()+10, "2_sdwa", 6) != 0)
7053 : break;
7054 0 : Mnemonic = "v_cmp_o_f32"; // "v_cmp_o_f32_sdwa"
7055 0 : return;
7056 : }
7057 : break;
7058 0 : case 't': // 4 strings to match.
7059 0 : if (Mnemonic[7] != '_')
7060 : break;
7061 : switch (Mnemonic[8]) {
7062 : default: break;
7063 0 : case 'i': // 2 strings to match.
7064 : switch (Mnemonic[9]) {
7065 : default: break;
7066 : case '1': // 1 string to match.
7067 0 : if (memcmp(Mnemonic.data()+10, "6_sdwa", 6) != 0)
7068 : break;
7069 0 : Mnemonic = "v_cmp_t_i16"; // "v_cmp_t_i16_sdwa"
7070 0 : return;
7071 : case '3': // 1 string to match.
7072 0 : if (memcmp(Mnemonic.data()+10, "2_sdwa", 6) != 0)
7073 : break;
7074 0 : Mnemonic = "v_cmp_t_i32"; // "v_cmp_t_i32_sdwa"
7075 0 : return;
7076 : }
7077 : break;
7078 0 : case 'u': // 2 strings to match.
7079 : switch (Mnemonic[9]) {
7080 : default: break;
7081 : case '1': // 1 string to match.
7082 0 : if (memcmp(Mnemonic.data()+10, "6_sdwa", 6) != 0)
7083 : break;
7084 0 : Mnemonic = "v_cmp_t_u16"; // "v_cmp_t_u16_sdwa"
7085 0 : return;
7086 : case '3': // 1 string to match.
7087 0 : if (memcmp(Mnemonic.data()+10, "2_sdwa", 6) != 0)
7088 : break;
7089 0 : Mnemonic = "v_cmp_t_u32"; // "v_cmp_t_u32_sdwa"
7090 0 : return;
7091 : }
7092 : break;
7093 : }
7094 : break;
7095 : case 'u': // 2 strings to match.
7096 0 : if (memcmp(Mnemonic.data()+7, "_f", 2) != 0)
7097 : break;
7098 : switch (Mnemonic[9]) {
7099 : default: break;
7100 : case '1': // 1 string to match.
7101 0 : if (memcmp(Mnemonic.data()+10, "6_sdwa", 6) != 0)
7102 : break;
7103 0 : Mnemonic = "v_cmp_u_f16"; // "v_cmp_u_f16_sdwa"
7104 0 : return;
7105 : case '3': // 1 string to match.
7106 0 : if (memcmp(Mnemonic.data()+10, "2_sdwa", 6) != 0)
7107 : break;
7108 0 : Mnemonic = "v_cmp_u_f32"; // "v_cmp_u_f32_sdwa"
7109 0 : return;
7110 : }
7111 : break;
7112 : }
7113 : break;
7114 227 : case 'f': // 4 strings to match.
7115 : switch (Mnemonic[3]) {
7116 : default: break;
7117 : case 'l': // 2 strings to match.
7118 0 : if (memcmp(Mnemonic.data()+4, "oor_f", 5) != 0)
7119 : break;
7120 : switch (Mnemonic[9]) {
7121 : default: break;
7122 : case '1': // 1 string to match.
7123 0 : if (memcmp(Mnemonic.data()+10, "6_sdwa", 6) != 0)
7124 : break;
7125 0 : Mnemonic = "v_floor_f16"; // "v_floor_f16_sdwa"
7126 0 : return;
7127 : case '3': // 1 string to match.
7128 0 : if (memcmp(Mnemonic.data()+10, "2_sdwa", 6) != 0)
7129 : break;
7130 0 : Mnemonic = "v_floor_f32"; // "v_floor_f32_sdwa"
7131 0 : return;
7132 : }
7133 : break;
7134 : case 'r': // 2 strings to match.
7135 221 : if (memcmp(Mnemonic.data()+4, "act_f", 5) != 0)
7136 : break;
7137 : switch (Mnemonic[9]) {
7138 : default: break;
7139 : case '1': // 1 string to match.
7140 0 : if (memcmp(Mnemonic.data()+10, "6_sdwa", 6) != 0)
7141 : break;
7142 0 : Mnemonic = "v_fract_f16"; // "v_fract_f16_sdwa"
7143 0 : return;
7144 : case '3': // 1 string to match.
7145 0 : if (memcmp(Mnemonic.data()+10, "2_sdwa", 6) != 0)
7146 : break;
7147 0 : Mnemonic = "v_fract_f32"; // "v_fract_f32_sdwa"
7148 0 : return;
7149 : }
7150 : break;
7151 : }
7152 : break;
7153 : case 'l': // 1 string to match.
7154 114 : if (memcmp(Mnemonic.data()+3, "dexp_f16_sdwa", 13) != 0)
7155 : break;
7156 0 : Mnemonic = "v_ldexp_f16"; // "v_ldexp_f16_sdwa"
7157 0 : return;
7158 : case 'r': // 2 strings to match.
7159 4 : if (memcmp(Mnemonic.data()+3, "ndne_f", 6) != 0)
7160 : break;
7161 : switch (Mnemonic[9]) {
7162 : default: break;
7163 : case '1': // 1 string to match.
7164 0 : if (memcmp(Mnemonic.data()+10, "6_sdwa", 6) != 0)
7165 : break;
7166 0 : Mnemonic = "v_rndne_f16"; // "v_rndne_f16_sdwa"
7167 0 : return;
7168 : case '3': // 1 string to match.
7169 0 : if (memcmp(Mnemonic.data()+10, "2_sdwa", 6) != 0)
7170 : break;
7171 0 : Mnemonic = "v_rndne_f32"; // "v_rndne_f32_sdwa"
7172 0 : return;
7173 : }
7174 : break;
7175 : case 't': // 2 strings to match.
7176 0 : if (memcmp(Mnemonic.data()+3, "runc_f", 6) != 0)
7177 : break;
7178 : switch (Mnemonic[9]) {
7179 : default: break;
7180 : case '1': // 1 string to match.
7181 0 : if (memcmp(Mnemonic.data()+10, "6_sdwa", 6) != 0)
7182 : break;
7183 0 : Mnemonic = "v_trunc_f16"; // "v_trunc_f16_sdwa"
7184 0 : return;
7185 : case '3': // 1 string to match.
7186 0 : if (memcmp(Mnemonic.data()+10, "2_sdwa", 6) != 0)
7187 : break;
7188 0 : Mnemonic = "v_trunc_f32"; // "v_trunc_f32_sdwa"
7189 0 : return;
7190 : }
7191 : break;
7192 : }
7193 : break;
7194 : case 17: // 59 strings to match.
7195 356 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
7196 : break;
7197 : switch (Mnemonic[2]) {
7198 : default: break;
7199 : case 'c': // 53 strings to match.
7200 206 : if (memcmp(Mnemonic.data()+3, "mp", 2) != 0)
7201 : break;
7202 : switch (Mnemonic[5]) {
7203 : default: break;
7204 0 : case '_': // 36 strings to match.
7205 : switch (Mnemonic[6]) {
7206 : default: break;
7207 : case 'e': // 6 strings to match.
7208 0 : if (memcmp(Mnemonic.data()+7, "q_", 2) != 0)
7209 : break;
7210 : switch (Mnemonic[9]) {
7211 : default: break;
7212 0 : case 'f': // 2 strings to match.
7213 : switch (Mnemonic[10]) {
7214 : default: break;
7215 : case '1': // 1 string to match.
7216 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7217 : break;
7218 0 : Mnemonic = "v_cmp_eq_f16"; // "v_cmp_eq_f16_sdwa"
7219 0 : return;
7220 : case '3': // 1 string to match.
7221 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7222 : break;
7223 0 : Mnemonic = "v_cmp_eq_f32"; // "v_cmp_eq_f32_sdwa"
7224 0 : return;
7225 : }
7226 : break;
7227 0 : case 'i': // 2 strings to match.
7228 : switch (Mnemonic[10]) {
7229 : default: break;
7230 : case '1': // 1 string to match.
7231 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7232 : break;
7233 0 : Mnemonic = "v_cmp_eq_i16"; // "v_cmp_eq_i16_sdwa"
7234 0 : return;
7235 : case '3': // 1 string to match.
7236 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7237 : break;
7238 0 : Mnemonic = "v_cmp_eq_i32"; // "v_cmp_eq_i32_sdwa"
7239 0 : return;
7240 : }
7241 : break;
7242 0 : case 'u': // 2 strings to match.
7243 : switch (Mnemonic[10]) {
7244 : default: break;
7245 : case '1': // 1 string to match.
7246 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7247 : break;
7248 0 : Mnemonic = "v_cmp_eq_u16"; // "v_cmp_eq_u16_sdwa"
7249 0 : return;
7250 : case '3': // 1 string to match.
7251 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7252 : break;
7253 0 : Mnemonic = "v_cmp_eq_u32"; // "v_cmp_eq_u32_sdwa"
7254 0 : return;
7255 : }
7256 : break;
7257 : }
7258 : break;
7259 0 : case 'g': // 12 strings to match.
7260 : switch (Mnemonic[7]) {
7261 : default: break;
7262 0 : case 'e': // 6 strings to match.
7263 0 : if (Mnemonic[8] != '_')
7264 : break;
7265 : switch (Mnemonic[9]) {
7266 : default: break;
7267 0 : case 'f': // 2 strings to match.
7268 : switch (Mnemonic[10]) {
7269 : default: break;
7270 : case '1': // 1 string to match.
7271 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7272 : break;
7273 0 : Mnemonic = "v_cmp_ge_f16"; // "v_cmp_ge_f16_sdwa"
7274 0 : return;
7275 : case '3': // 1 string to match.
7276 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7277 : break;
7278 0 : Mnemonic = "v_cmp_ge_f32"; // "v_cmp_ge_f32_sdwa"
7279 0 : return;
7280 : }
7281 : break;
7282 0 : case 'i': // 2 strings to match.
7283 : switch (Mnemonic[10]) {
7284 : default: break;
7285 : case '1': // 1 string to match.
7286 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7287 : break;
7288 0 : Mnemonic = "v_cmp_ge_i16"; // "v_cmp_ge_i16_sdwa"
7289 0 : return;
7290 : case '3': // 1 string to match.
7291 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7292 : break;
7293 0 : Mnemonic = "v_cmp_ge_i32"; // "v_cmp_ge_i32_sdwa"
7294 0 : return;
7295 : }
7296 : break;
7297 0 : case 'u': // 2 strings to match.
7298 : switch (Mnemonic[10]) {
7299 : default: break;
7300 : case '1': // 1 string to match.
7301 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7302 : break;
7303 0 : Mnemonic = "v_cmp_ge_u16"; // "v_cmp_ge_u16_sdwa"
7304 0 : return;
7305 : case '3': // 1 string to match.
7306 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7307 : break;
7308 0 : Mnemonic = "v_cmp_ge_u32"; // "v_cmp_ge_u32_sdwa"
7309 0 : return;
7310 : }
7311 : break;
7312 : }
7313 : break;
7314 0 : case 't': // 6 strings to match.
7315 0 : if (Mnemonic[8] != '_')
7316 : break;
7317 : switch (Mnemonic[9]) {
7318 : default: break;
7319 0 : case 'f': // 2 strings to match.
7320 : switch (Mnemonic[10]) {
7321 : default: break;
7322 : case '1': // 1 string to match.
7323 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7324 : break;
7325 0 : Mnemonic = "v_cmp_gt_f16"; // "v_cmp_gt_f16_sdwa"
7326 0 : return;
7327 : case '3': // 1 string to match.
7328 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7329 : break;
7330 0 : Mnemonic = "v_cmp_gt_f32"; // "v_cmp_gt_f32_sdwa"
7331 0 : return;
7332 : }
7333 : break;
7334 0 : case 'i': // 2 strings to match.
7335 : switch (Mnemonic[10]) {
7336 : default: break;
7337 : case '1': // 1 string to match.
7338 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7339 : break;
7340 0 : Mnemonic = "v_cmp_gt_i16"; // "v_cmp_gt_i16_sdwa"
7341 0 : return;
7342 : case '3': // 1 string to match.
7343 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7344 : break;
7345 0 : Mnemonic = "v_cmp_gt_i32"; // "v_cmp_gt_i32_sdwa"
7346 0 : return;
7347 : }
7348 : break;
7349 0 : case 'u': // 2 strings to match.
7350 : switch (Mnemonic[10]) {
7351 : default: break;
7352 : case '1': // 1 string to match.
7353 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7354 : break;
7355 0 : Mnemonic = "v_cmp_gt_u16"; // "v_cmp_gt_u16_sdwa"
7356 0 : return;
7357 : case '3': // 1 string to match.
7358 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7359 : break;
7360 0 : Mnemonic = "v_cmp_gt_u32"; // "v_cmp_gt_u32_sdwa"
7361 0 : return;
7362 : }
7363 : break;
7364 : }
7365 : break;
7366 : }
7367 : break;
7368 0 : case 'l': // 14 strings to match.
7369 : switch (Mnemonic[7]) {
7370 : default: break;
7371 0 : case 'e': // 6 strings to match.
7372 0 : if (Mnemonic[8] != '_')
7373 : break;
7374 : switch (Mnemonic[9]) {
7375 : default: break;
7376 0 : case 'f': // 2 strings to match.
7377 : switch (Mnemonic[10]) {
7378 : default: break;
7379 : case '1': // 1 string to match.
7380 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7381 : break;
7382 0 : Mnemonic = "v_cmp_le_f16"; // "v_cmp_le_f16_sdwa"
7383 0 : return;
7384 : case '3': // 1 string to match.
7385 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7386 : break;
7387 0 : Mnemonic = "v_cmp_le_f32"; // "v_cmp_le_f32_sdwa"
7388 0 : return;
7389 : }
7390 : break;
7391 0 : case 'i': // 2 strings to match.
7392 : switch (Mnemonic[10]) {
7393 : default: break;
7394 : case '1': // 1 string to match.
7395 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7396 : break;
7397 0 : Mnemonic = "v_cmp_le_i16"; // "v_cmp_le_i16_sdwa"
7398 0 : return;
7399 : case '3': // 1 string to match.
7400 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7401 : break;
7402 0 : Mnemonic = "v_cmp_le_i32"; // "v_cmp_le_i32_sdwa"
7403 0 : return;
7404 : }
7405 : break;
7406 0 : case 'u': // 2 strings to match.
7407 : switch (Mnemonic[10]) {
7408 : default: break;
7409 : case '1': // 1 string to match.
7410 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7411 : break;
7412 0 : Mnemonic = "v_cmp_le_u16"; // "v_cmp_le_u16_sdwa"
7413 0 : return;
7414 : case '3': // 1 string to match.
7415 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7416 : break;
7417 0 : Mnemonic = "v_cmp_le_u32"; // "v_cmp_le_u32_sdwa"
7418 0 : return;
7419 : }
7420 : break;
7421 : }
7422 : break;
7423 : case 'g': // 2 strings to match.
7424 0 : if (memcmp(Mnemonic.data()+8, "_f", 2) != 0)
7425 : break;
7426 : switch (Mnemonic[10]) {
7427 : default: break;
7428 : case '1': // 1 string to match.
7429 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7430 : break;
7431 0 : Mnemonic = "v_cmp_lg_f16"; // "v_cmp_lg_f16_sdwa"
7432 0 : return;
7433 : case '3': // 1 string to match.
7434 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7435 : break;
7436 0 : Mnemonic = "v_cmp_lg_f32"; // "v_cmp_lg_f32_sdwa"
7437 0 : return;
7438 : }
7439 : break;
7440 0 : case 't': // 6 strings to match.
7441 0 : if (Mnemonic[8] != '_')
7442 : break;
7443 : switch (Mnemonic[9]) {
7444 : default: break;
7445 0 : case 'f': // 2 strings to match.
7446 : switch (Mnemonic[10]) {
7447 : default: break;
7448 : case '1': // 1 string to match.
7449 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7450 : break;
7451 0 : Mnemonic = "v_cmp_lt_f16"; // "v_cmp_lt_f16_sdwa"
7452 0 : return;
7453 : case '3': // 1 string to match.
7454 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7455 : break;
7456 0 : Mnemonic = "v_cmp_lt_f32"; // "v_cmp_lt_f32_sdwa"
7457 0 : return;
7458 : }
7459 : break;
7460 0 : case 'i': // 2 strings to match.
7461 : switch (Mnemonic[10]) {
7462 : default: break;
7463 : case '1': // 1 string to match.
7464 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7465 : break;
7466 0 : Mnemonic = "v_cmp_lt_i16"; // "v_cmp_lt_i16_sdwa"
7467 0 : return;
7468 : case '3': // 1 string to match.
7469 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7470 : break;
7471 0 : Mnemonic = "v_cmp_lt_i32"; // "v_cmp_lt_i32_sdwa"
7472 0 : return;
7473 : }
7474 : break;
7475 0 : case 'u': // 2 strings to match.
7476 : switch (Mnemonic[10]) {
7477 : default: break;
7478 : case '1': // 1 string to match.
7479 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7480 : break;
7481 0 : Mnemonic = "v_cmp_lt_u16"; // "v_cmp_lt_u16_sdwa"
7482 0 : return;
7483 : case '3': // 1 string to match.
7484 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7485 : break;
7486 0 : Mnemonic = "v_cmp_lt_u32"; // "v_cmp_lt_u32_sdwa"
7487 0 : return;
7488 : }
7489 : break;
7490 : }
7491 : break;
7492 : }
7493 : break;
7494 : case 'n': // 4 strings to match.
7495 0 : if (memcmp(Mnemonic.data()+7, "e_", 2) != 0)
7496 : break;
7497 : switch (Mnemonic[9]) {
7498 : default: break;
7499 0 : case 'i': // 2 strings to match.
7500 : switch (Mnemonic[10]) {
7501 : default: break;
7502 : case '1': // 1 string to match.
7503 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7504 : break;
7505 0 : Mnemonic = "v_cmp_ne_i16"; // "v_cmp_ne_i16_sdwa"
7506 0 : return;
7507 : case '3': // 1 string to match.
7508 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7509 : break;
7510 0 : Mnemonic = "v_cmp_ne_i32"; // "v_cmp_ne_i32_sdwa"
7511 0 : return;
7512 : }
7513 : break;
7514 0 : case 'u': // 2 strings to match.
7515 : switch (Mnemonic[10]) {
7516 : default: break;
7517 : case '1': // 1 string to match.
7518 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7519 : break;
7520 0 : Mnemonic = "v_cmp_ne_u16"; // "v_cmp_ne_u16_sdwa"
7521 0 : return;
7522 : case '3': // 1 string to match.
7523 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7524 : break;
7525 0 : Mnemonic = "v_cmp_ne_u32"; // "v_cmp_ne_u32_sdwa"
7526 0 : return;
7527 : }
7528 : break;
7529 : }
7530 : break;
7531 : }
7532 : break;
7533 0 : case 's': // 3 strings to match.
7534 0 : if (Mnemonic[6] != '_')
7535 : break;
7536 : switch (Mnemonic[7]) {
7537 : default: break;
7538 : case 'f': // 1 string to match.
7539 0 : if (memcmp(Mnemonic.data()+8, "_f32_sdwa", 9) != 0)
7540 : break;
7541 0 : Mnemonic = "v_cmps_f_f32"; // "v_cmps_f_f32_sdwa"
7542 0 : return;
7543 : case 'o': // 1 string to match.
7544 0 : if (memcmp(Mnemonic.data()+8, "_f32_sdwa", 9) != 0)
7545 : break;
7546 0 : Mnemonic = "v_cmps_o_f32"; // "v_cmps_o_f32_sdwa"
7547 0 : return;
7548 : case 'u': // 1 string to match.
7549 0 : if (memcmp(Mnemonic.data()+8, "_f32_sdwa", 9) != 0)
7550 : break;
7551 0 : Mnemonic = "v_cmps_u_f32"; // "v_cmps_u_f32_sdwa"
7552 0 : return;
7553 : }
7554 : break;
7555 0 : case 'x': // 14 strings to match.
7556 0 : if (Mnemonic[6] != '_')
7557 : break;
7558 : switch (Mnemonic[7]) {
7559 : default: break;
7560 0 : case 'f': // 6 strings to match.
7561 0 : if (Mnemonic[8] != '_')
7562 : break;
7563 : switch (Mnemonic[9]) {
7564 : default: break;
7565 0 : case 'f': // 2 strings to match.
7566 : switch (Mnemonic[10]) {
7567 : default: break;
7568 : case '1': // 1 string to match.
7569 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7570 : break;
7571 0 : Mnemonic = "v_cmpx_f_f16"; // "v_cmpx_f_f16_sdwa"
7572 0 : return;
7573 : case '3': // 1 string to match.
7574 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7575 : break;
7576 0 : Mnemonic = "v_cmpx_f_f32"; // "v_cmpx_f_f32_sdwa"
7577 0 : return;
7578 : }
7579 : break;
7580 0 : case 'i': // 2 strings to match.
7581 : switch (Mnemonic[10]) {
7582 : default: break;
7583 : case '1': // 1 string to match.
7584 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7585 : break;
7586 0 : Mnemonic = "v_cmpx_f_i16"; // "v_cmpx_f_i16_sdwa"
7587 0 : return;
7588 : case '3': // 1 string to match.
7589 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7590 : break;
7591 0 : Mnemonic = "v_cmpx_f_i32"; // "v_cmpx_f_i32_sdwa"
7592 0 : return;
7593 : }
7594 : break;
7595 0 : case 'u': // 2 strings to match.
7596 : switch (Mnemonic[10]) {
7597 : default: break;
7598 : case '1': // 1 string to match.
7599 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7600 : break;
7601 0 : Mnemonic = "v_cmpx_f_u16"; // "v_cmpx_f_u16_sdwa"
7602 0 : return;
7603 : case '3': // 1 string to match.
7604 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7605 : break;
7606 0 : Mnemonic = "v_cmpx_f_u32"; // "v_cmpx_f_u32_sdwa"
7607 0 : return;
7608 : }
7609 : break;
7610 : }
7611 : break;
7612 : case 'o': // 2 strings to match.
7613 0 : if (memcmp(Mnemonic.data()+8, "_f", 2) != 0)
7614 : break;
7615 : switch (Mnemonic[10]) {
7616 : default: break;
7617 : case '1': // 1 string to match.
7618 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7619 : break;
7620 0 : Mnemonic = "v_cmpx_o_f16"; // "v_cmpx_o_f16_sdwa"
7621 0 : return;
7622 : case '3': // 1 string to match.
7623 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7624 : break;
7625 0 : Mnemonic = "v_cmpx_o_f32"; // "v_cmpx_o_f32_sdwa"
7626 0 : return;
7627 : }
7628 : break;
7629 0 : case 't': // 4 strings to match.
7630 0 : if (Mnemonic[8] != '_')
7631 : break;
7632 : switch (Mnemonic[9]) {
7633 : default: break;
7634 0 : case 'i': // 2 strings to match.
7635 : switch (Mnemonic[10]) {
7636 : default: break;
7637 : case '1': // 1 string to match.
7638 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7639 : break;
7640 0 : Mnemonic = "v_cmpx_t_i16"; // "v_cmpx_t_i16_sdwa"
7641 0 : return;
7642 : case '3': // 1 string to match.
7643 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7644 : break;
7645 0 : Mnemonic = "v_cmpx_t_i32"; // "v_cmpx_t_i32_sdwa"
7646 0 : return;
7647 : }
7648 : break;
7649 0 : case 'u': // 2 strings to match.
7650 : switch (Mnemonic[10]) {
7651 : default: break;
7652 : case '1': // 1 string to match.
7653 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7654 : break;
7655 0 : Mnemonic = "v_cmpx_t_u16"; // "v_cmpx_t_u16_sdwa"
7656 0 : return;
7657 : case '3': // 1 string to match.
7658 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7659 : break;
7660 0 : Mnemonic = "v_cmpx_t_u32"; // "v_cmpx_t_u32_sdwa"
7661 0 : return;
7662 : }
7663 : break;
7664 : }
7665 : break;
7666 : case 'u': // 2 strings to match.
7667 0 : if (memcmp(Mnemonic.data()+8, "_f", 2) != 0)
7668 : break;
7669 : switch (Mnemonic[10]) {
7670 : default: break;
7671 : case '1': // 1 string to match.
7672 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7673 : break;
7674 0 : Mnemonic = "v_cmpx_u_f16"; // "v_cmpx_u_f16_sdwa"
7675 0 : return;
7676 : case '3': // 1 string to match.
7677 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7678 : break;
7679 0 : Mnemonic = "v_cmpx_u_f32"; // "v_cmpx_u_f32_sdwa"
7680 0 : return;
7681 : }
7682 : break;
7683 : }
7684 : break;
7685 : }
7686 : break;
7687 : case 'm': // 1 string to match.
7688 0 : if (memcmp(Mnemonic.data()+3, "ul_lo_u16_sdwa", 14) != 0)
7689 : break;
7690 0 : Mnemonic = "v_mul_lo_u16"; // "v_mul_lo_u16_sdwa"
7691 0 : return;
7692 : case 's': // 5 strings to match.
7693 0 : if (memcmp(Mnemonic.data()+3, "ubrev_", 6) != 0)
7694 : break;
7695 : switch (Mnemonic[9]) {
7696 : default: break;
7697 0 : case 'f': // 2 strings to match.
7698 : switch (Mnemonic[10]) {
7699 : default: break;
7700 : case '1': // 1 string to match.
7701 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7702 : break;
7703 0 : Mnemonic = "v_subrev_f16"; // "v_subrev_f16_sdwa"
7704 0 : return;
7705 : case '3': // 1 string to match.
7706 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7707 : break;
7708 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_subrev_f32_sdwa"
7709 0 : Mnemonic = "v_subrev_f32";
7710 : return;
7711 : }
7712 : break;
7713 : case 'i': // 1 string to match.
7714 0 : if (memcmp(Mnemonic.data()+10, "32_sdwa", 7) != 0)
7715 : break;
7716 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_subrev_i32_sdwa"
7717 0 : Mnemonic = "v_subrev_i32";
7718 : return;
7719 0 : case 'u': // 2 strings to match.
7720 : switch (Mnemonic[10]) {
7721 : default: break;
7722 : case '1': // 1 string to match.
7723 0 : if (memcmp(Mnemonic.data()+11, "6_sdwa", 6) != 0)
7724 : break;
7725 0 : Mnemonic = "v_subrev_u16"; // "v_subrev_u16_sdwa"
7726 0 : return;
7727 : case '3': // 1 string to match.
7728 0 : if (memcmp(Mnemonic.data()+11, "2_sdwa", 6) != 0)
7729 : break;
7730 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_subrev_u32_sdwa"
7731 0 : Mnemonic = "v_subrev_u32";
7732 : return;
7733 : }
7734 : break;
7735 : }
7736 : break;
7737 : }
7738 : break;
7739 : case 18: // 80 strings to match.
7740 143 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
7741 : break;
7742 : switch (Mnemonic[2]) {
7743 : default: break;
7744 : case 'a': // 2 strings to match.
7745 0 : if (memcmp(Mnemonic.data()+3, "shrrev_i", 8) != 0)
7746 : break;
7747 : switch (Mnemonic[11]) {
7748 : default: break;
7749 : case '1': // 1 string to match.
7750 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
7751 : break;
7752 0 : Mnemonic = "v_ashrrev_i16"; // "v_ashrrev_i16_sdwa"
7753 0 : return;
7754 : case '3': // 1 string to match.
7755 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
7756 : break;
7757 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_ashrrev_i32_sdwa"
7758 0 : Mnemonic = "v_ashrrev_i32";
7759 : return;
7760 : }
7761 : break;
7762 20 : case 'c': // 70 strings to match.
7763 : switch (Mnemonic[3]) {
7764 : default: break;
7765 0 : case 'm': // 59 strings to match.
7766 0 : if (Mnemonic[4] != 'p')
7767 : break;
7768 : switch (Mnemonic[5]) {
7769 : default: break;
7770 0 : case '_': // 14 strings to match.
7771 : switch (Mnemonic[6]) {
7772 : default: break;
7773 0 : case 'n': // 12 strings to match.
7774 : switch (Mnemonic[7]) {
7775 : default: break;
7776 : case 'e': // 2 strings to match.
7777 0 : if (memcmp(Mnemonic.data()+8, "q_f", 3) != 0)
7778 : break;
7779 : switch (Mnemonic[11]) {
7780 : default: break;
7781 : case '1': // 1 string to match.
7782 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
7783 : break;
7784 0 : Mnemonic = "v_cmp_neq_f16"; // "v_cmp_neq_f16_sdwa"
7785 0 : return;
7786 : case '3': // 1 string to match.
7787 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
7788 : break;
7789 0 : Mnemonic = "v_cmp_neq_f32"; // "v_cmp_neq_f32_sdwa"
7790 0 : return;
7791 : }
7792 : break;
7793 0 : case 'g': // 4 strings to match.
7794 : switch (Mnemonic[8]) {
7795 : default: break;
7796 : case 'e': // 2 strings to match.
7797 0 : if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
7798 : break;
7799 : switch (Mnemonic[11]) {
7800 : default: break;
7801 : case '1': // 1 string to match.
7802 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
7803 : break;
7804 0 : Mnemonic = "v_cmp_nge_f16"; // "v_cmp_nge_f16_sdwa"
7805 0 : return;
7806 : case '3': // 1 string to match.
7807 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
7808 : break;
7809 0 : Mnemonic = "v_cmp_nge_f32"; // "v_cmp_nge_f32_sdwa"
7810 0 : return;
7811 : }
7812 : break;
7813 : case 't': // 2 strings to match.
7814 0 : if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
7815 : break;
7816 : switch (Mnemonic[11]) {
7817 : default: break;
7818 : case '1': // 1 string to match.
7819 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
7820 : break;
7821 0 : Mnemonic = "v_cmp_ngt_f16"; // "v_cmp_ngt_f16_sdwa"
7822 0 : return;
7823 : case '3': // 1 string to match.
7824 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
7825 : break;
7826 0 : Mnemonic = "v_cmp_ngt_f32"; // "v_cmp_ngt_f32_sdwa"
7827 0 : return;
7828 : }
7829 : break;
7830 : }
7831 : break;
7832 0 : case 'l': // 6 strings to match.
7833 : switch (Mnemonic[8]) {
7834 : default: break;
7835 : case 'e': // 2 strings to match.
7836 0 : if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
7837 : break;
7838 : switch (Mnemonic[11]) {
7839 : default: break;
7840 : case '1': // 1 string to match.
7841 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
7842 : break;
7843 0 : Mnemonic = "v_cmp_nle_f16"; // "v_cmp_nle_f16_sdwa"
7844 0 : return;
7845 : case '3': // 1 string to match.
7846 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
7847 : break;
7848 0 : Mnemonic = "v_cmp_nle_f32"; // "v_cmp_nle_f32_sdwa"
7849 0 : return;
7850 : }
7851 : break;
7852 : case 'g': // 2 strings to match.
7853 0 : if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
7854 : break;
7855 : switch (Mnemonic[11]) {
7856 : default: break;
7857 : case '1': // 1 string to match.
7858 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
7859 : break;
7860 0 : Mnemonic = "v_cmp_nlg_f16"; // "v_cmp_nlg_f16_sdwa"
7861 0 : return;
7862 : case '3': // 1 string to match.
7863 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
7864 : break;
7865 0 : Mnemonic = "v_cmp_nlg_f32"; // "v_cmp_nlg_f32_sdwa"
7866 0 : return;
7867 : }
7868 : break;
7869 : case 't': // 2 strings to match.
7870 0 : if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
7871 : break;
7872 : switch (Mnemonic[11]) {
7873 : default: break;
7874 : case '1': // 1 string to match.
7875 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
7876 : break;
7877 0 : Mnemonic = "v_cmp_nlt_f16"; // "v_cmp_nlt_f16_sdwa"
7878 0 : return;
7879 : case '3': // 1 string to match.
7880 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
7881 : break;
7882 0 : Mnemonic = "v_cmp_nlt_f32"; // "v_cmp_nlt_f32_sdwa"
7883 0 : return;
7884 : }
7885 : break;
7886 : }
7887 : break;
7888 : }
7889 : break;
7890 : case 't': // 2 strings to match.
7891 0 : if (memcmp(Mnemonic.data()+7, "ru_f", 4) != 0)
7892 : break;
7893 : switch (Mnemonic[11]) {
7894 : default: break;
7895 : case '1': // 1 string to match.
7896 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
7897 : break;
7898 0 : Mnemonic = "v_cmp_tru_f16"; // "v_cmp_tru_f16_sdwa"
7899 0 : return;
7900 : case '3': // 1 string to match.
7901 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
7902 : break;
7903 0 : Mnemonic = "v_cmp_tru_f32"; // "v_cmp_tru_f32_sdwa"
7904 0 : return;
7905 : }
7906 : break;
7907 : }
7908 : break;
7909 0 : case 's': // 9 strings to match.
7910 : switch (Mnemonic[6]) {
7911 : default: break;
7912 0 : case '_': // 6 strings to match.
7913 : switch (Mnemonic[7]) {
7914 : default: break;
7915 : case 'e': // 1 string to match.
7916 0 : if (memcmp(Mnemonic.data()+8, "q_f32_sdwa", 10) != 0)
7917 : break;
7918 0 : Mnemonic = "v_cmps_eq_f32"; // "v_cmps_eq_f32_sdwa"
7919 0 : return;
7920 0 : case 'g': // 2 strings to match.
7921 : switch (Mnemonic[8]) {
7922 : default: break;
7923 : case 'e': // 1 string to match.
7924 0 : if (memcmp(Mnemonic.data()+9, "_f32_sdwa", 9) != 0)
7925 : break;
7926 0 : Mnemonic = "v_cmps_ge_f32"; // "v_cmps_ge_f32_sdwa"
7927 0 : return;
7928 : case 't': // 1 string to match.
7929 0 : if (memcmp(Mnemonic.data()+9, "_f32_sdwa", 9) != 0)
7930 : break;
7931 0 : Mnemonic = "v_cmps_gt_f32"; // "v_cmps_gt_f32_sdwa"
7932 0 : return;
7933 : }
7934 : break;
7935 0 : case 'l': // 3 strings to match.
7936 : switch (Mnemonic[8]) {
7937 : default: break;
7938 : case 'e': // 1 string to match.
7939 0 : if (memcmp(Mnemonic.data()+9, "_f32_sdwa", 9) != 0)
7940 : break;
7941 0 : Mnemonic = "v_cmps_le_f32"; // "v_cmps_le_f32_sdwa"
7942 0 : return;
7943 : case 'g': // 1 string to match.
7944 0 : if (memcmp(Mnemonic.data()+9, "_f32_sdwa", 9) != 0)
7945 : break;
7946 0 : Mnemonic = "v_cmps_lg_f32"; // "v_cmps_lg_f32_sdwa"
7947 0 : return;
7948 : case 't': // 1 string to match.
7949 0 : if (memcmp(Mnemonic.data()+9, "_f32_sdwa", 9) != 0)
7950 : break;
7951 0 : Mnemonic = "v_cmps_lt_f32"; // "v_cmps_lt_f32_sdwa"
7952 0 : return;
7953 : }
7954 : break;
7955 : }
7956 : break;
7957 0 : case 'x': // 3 strings to match.
7958 0 : if (Mnemonic[7] != '_')
7959 : break;
7960 : switch (Mnemonic[8]) {
7961 : default: break;
7962 : case 'f': // 1 string to match.
7963 0 : if (memcmp(Mnemonic.data()+9, "_f32_sdwa", 9) != 0)
7964 : break;
7965 0 : Mnemonic = "v_cmpsx_f_f32"; // "v_cmpsx_f_f32_sdwa"
7966 0 : return;
7967 : case 'o': // 1 string to match.
7968 0 : if (memcmp(Mnemonic.data()+9, "_f32_sdwa", 9) != 0)
7969 : break;
7970 0 : Mnemonic = "v_cmpsx_o_f32"; // "v_cmpsx_o_f32_sdwa"
7971 0 : return;
7972 : case 'u': // 1 string to match.
7973 0 : if (memcmp(Mnemonic.data()+9, "_f32_sdwa", 9) != 0)
7974 : break;
7975 0 : Mnemonic = "v_cmpsx_u_f32"; // "v_cmpsx_u_f32_sdwa"
7976 0 : return;
7977 : }
7978 : break;
7979 : }
7980 : break;
7981 0 : case 'x': // 36 strings to match.
7982 0 : if (Mnemonic[6] != '_')
7983 : break;
7984 : switch (Mnemonic[7]) {
7985 : default: break;
7986 : case 'e': // 6 strings to match.
7987 0 : if (memcmp(Mnemonic.data()+8, "q_", 2) != 0)
7988 : break;
7989 : switch (Mnemonic[10]) {
7990 : default: break;
7991 0 : case 'f': // 2 strings to match.
7992 : switch (Mnemonic[11]) {
7993 : default: break;
7994 : case '1': // 1 string to match.
7995 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
7996 : break;
7997 0 : Mnemonic = "v_cmpx_eq_f16"; // "v_cmpx_eq_f16_sdwa"
7998 0 : return;
7999 : case '3': // 1 string to match.
8000 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
8001 : break;
8002 0 : Mnemonic = "v_cmpx_eq_f32"; // "v_cmpx_eq_f32_sdwa"
8003 0 : return;
8004 : }
8005 : break;
8006 0 : case 'i': // 2 strings to match.
8007 : switch (Mnemonic[11]) {
8008 : default: break;
8009 : case '1': // 1 string to match.
8010 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
8011 : break;
8012 0 : Mnemonic = "v_cmpx_eq_i16"; // "v_cmpx_eq_i16_sdwa"
8013 0 : return;
8014 : case '3': // 1 string to match.
8015 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
8016 : break;
8017 0 : Mnemonic = "v_cmpx_eq_i32"; // "v_cmpx_eq_i32_sdwa"
8018 0 : return;
8019 : }
8020 : break;
8021 0 : case 'u': // 2 strings to match.
8022 : switch (Mnemonic[11]) {
8023 : default: break;
8024 : case '1': // 1 string to match.
8025 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
8026 : break;
8027 0 : Mnemonic = "v_cmpx_eq_u16"; // "v_cmpx_eq_u16_sdwa"
8028 0 : return;
8029 : case '3': // 1 string to match.
8030 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
8031 : break;
8032 0 : Mnemonic = "v_cmpx_eq_u32"; // "v_cmpx_eq_u32_sdwa"
8033 0 : return;
8034 : }
8035 : break;
8036 : }
8037 : break;
8038 0 : case 'g': // 12 strings to match.
8039 : switch (Mnemonic[8]) {
8040 : default: break;
8041 0 : case 'e': // 6 strings to match.
8042 0 : if (Mnemonic[9] != '_')
8043 : break;
8044 : switch (Mnemonic[10]) {
8045 : default: break;
8046 0 : case 'f': // 2 strings to match.
8047 : switch (Mnemonic[11]) {
8048 : default: break;
8049 : case '1': // 1 string to match.
8050 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
8051 : break;
8052 0 : Mnemonic = "v_cmpx_ge_f16"; // "v_cmpx_ge_f16_sdwa"
8053 0 : return;
8054 : case '3': // 1 string to match.
8055 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
8056 : break;
8057 0 : Mnemonic = "v_cmpx_ge_f32"; // "v_cmpx_ge_f32_sdwa"
8058 0 : return;
8059 : }
8060 : break;
8061 0 : case 'i': // 2 strings to match.
8062 : switch (Mnemonic[11]) {
8063 : default: break;
8064 : case '1': // 1 string to match.
8065 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
8066 : break;
8067 0 : Mnemonic = "v_cmpx_ge_i16"; // "v_cmpx_ge_i16_sdwa"
8068 0 : return;
8069 : case '3': // 1 string to match.
8070 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
8071 : break;
8072 0 : Mnemonic = "v_cmpx_ge_i32"; // "v_cmpx_ge_i32_sdwa"
8073 0 : return;
8074 : }
8075 : break;
8076 0 : case 'u': // 2 strings to match.
8077 : switch (Mnemonic[11]) {
8078 : default: break;
8079 : case '1': // 1 string to match.
8080 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
8081 : break;
8082 0 : Mnemonic = "v_cmpx_ge_u16"; // "v_cmpx_ge_u16_sdwa"
8083 0 : return;
8084 : case '3': // 1 string to match.
8085 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
8086 : break;
8087 0 : Mnemonic = "v_cmpx_ge_u32"; // "v_cmpx_ge_u32_sdwa"
8088 0 : return;
8089 : }
8090 : break;
8091 : }
8092 : break;
8093 0 : case 't': // 6 strings to match.
8094 0 : if (Mnemonic[9] != '_')
8095 : break;
8096 : switch (Mnemonic[10]) {
8097 : default: break;
8098 0 : case 'f': // 2 strings to match.
8099 : switch (Mnemonic[11]) {
8100 : default: break;
8101 : case '1': // 1 string to match.
8102 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
8103 : break;
8104 0 : Mnemonic = "v_cmpx_gt_f16"; // "v_cmpx_gt_f16_sdwa"
8105 0 : return;
8106 : case '3': // 1 string to match.
8107 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
8108 : break;
8109 0 : Mnemonic = "v_cmpx_gt_f32"; // "v_cmpx_gt_f32_sdwa"
8110 0 : return;
8111 : }
8112 : break;
8113 0 : case 'i': // 2 strings to match.
8114 : switch (Mnemonic[11]) {
8115 : default: break;
8116 : case '1': // 1 string to match.
8117 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
8118 : break;
8119 0 : Mnemonic = "v_cmpx_gt_i16"; // "v_cmpx_gt_i16_sdwa"
8120 0 : return;
8121 : case '3': // 1 string to match.
8122 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
8123 : break;
8124 0 : Mnemonic = "v_cmpx_gt_i32"; // "v_cmpx_gt_i32_sdwa"
8125 0 : return;
8126 : }
8127 : break;
8128 0 : case 'u': // 2 strings to match.
8129 : switch (Mnemonic[11]) {
8130 : default: break;
8131 : case '1': // 1 string to match.
8132 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
8133 : break;
8134 0 : Mnemonic = "v_cmpx_gt_u16"; // "v_cmpx_gt_u16_sdwa"
8135 0 : return;
8136 : case '3': // 1 string to match.
8137 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
8138 : break;
8139 0 : Mnemonic = "v_cmpx_gt_u32"; // "v_cmpx_gt_u32_sdwa"
8140 0 : return;
8141 : }
8142 : break;
8143 : }
8144 : break;
8145 : }
8146 : break;
8147 0 : case 'l': // 14 strings to match.
8148 : switch (Mnemonic[8]) {
8149 : default: break;
8150 0 : case 'e': // 6 strings to match.
8151 0 : if (Mnemonic[9] != '_')
8152 : break;
8153 : switch (Mnemonic[10]) {
8154 : default: break;
8155 0 : case 'f': // 2 strings to match.
8156 : switch (Mnemonic[11]) {
8157 : default: break;
8158 : case '1': // 1 string to match.
8159 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
8160 : break;
8161 0 : Mnemonic = "v_cmpx_le_f16"; // "v_cmpx_le_f16_sdwa"
8162 0 : return;
8163 : case '3': // 1 string to match.
8164 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
8165 : break;
8166 0 : Mnemonic = "v_cmpx_le_f32"; // "v_cmpx_le_f32_sdwa"
8167 0 : return;
8168 : }
8169 : break;
8170 0 : case 'i': // 2 strings to match.
8171 : switch (Mnemonic[11]) {
8172 : default: break;
8173 : case '1': // 1 string to match.
8174 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
8175 : break;
8176 0 : Mnemonic = "v_cmpx_le_i16"; // "v_cmpx_le_i16_sdwa"
8177 0 : return;
8178 : case '3': // 1 string to match.
8179 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
8180 : break;
8181 0 : Mnemonic = "v_cmpx_le_i32"; // "v_cmpx_le_i32_sdwa"
8182 0 : return;
8183 : }
8184 : break;
8185 0 : case 'u': // 2 strings to match.
8186 : switch (Mnemonic[11]) {
8187 : default: break;
8188 : case '1': // 1 string to match.
8189 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
8190 : break;
8191 0 : Mnemonic = "v_cmpx_le_u16"; // "v_cmpx_le_u16_sdwa"
8192 0 : return;
8193 : case '3': // 1 string to match.
8194 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
8195 : break;
8196 0 : Mnemonic = "v_cmpx_le_u32"; // "v_cmpx_le_u32_sdwa"
8197 0 : return;
8198 : }
8199 : break;
8200 : }
8201 : break;
8202 : case 'g': // 2 strings to match.
8203 0 : if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
8204 : break;
8205 : switch (Mnemonic[11]) {
8206 : default: break;
8207 : case '1': // 1 string to match.
8208 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
8209 : break;
8210 0 : Mnemonic = "v_cmpx_lg_f16"; // "v_cmpx_lg_f16_sdwa"
8211 0 : return;
8212 : case '3': // 1 string to match.
8213 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
8214 : break;
8215 0 : Mnemonic = "v_cmpx_lg_f32"; // "v_cmpx_lg_f32_sdwa"
8216 0 : return;
8217 : }
8218 : break;
8219 0 : case 't': // 6 strings to match.
8220 0 : if (Mnemonic[9] != '_')
8221 : break;
8222 : switch (Mnemonic[10]) {
8223 : default: break;
8224 0 : case 'f': // 2 strings to match.
8225 : switch (Mnemonic[11]) {
8226 : default: break;
8227 : case '1': // 1 string to match.
8228 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
8229 : break;
8230 0 : Mnemonic = "v_cmpx_lt_f16"; // "v_cmpx_lt_f16_sdwa"
8231 0 : return;
8232 : case '3': // 1 string to match.
8233 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
8234 : break;
8235 0 : Mnemonic = "v_cmpx_lt_f32"; // "v_cmpx_lt_f32_sdwa"
8236 0 : return;
8237 : }
8238 : break;
8239 0 : case 'i': // 2 strings to match.
8240 : switch (Mnemonic[11]) {
8241 : default: break;
8242 : case '1': // 1 string to match.
8243 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
8244 : break;
8245 0 : Mnemonic = "v_cmpx_lt_i16"; // "v_cmpx_lt_i16_sdwa"
8246 0 : return;
8247 : case '3': // 1 string to match.
8248 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
8249 : break;
8250 0 : Mnemonic = "v_cmpx_lt_i32"; // "v_cmpx_lt_i32_sdwa"
8251 0 : return;
8252 : }
8253 : break;
8254 0 : case 'u': // 2 strings to match.
8255 : switch (Mnemonic[11]) {
8256 : default: break;
8257 : case '1': // 1 string to match.
8258 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
8259 : break;
8260 0 : Mnemonic = "v_cmpx_lt_u16"; // "v_cmpx_lt_u16_sdwa"
8261 0 : return;
8262 : case '3': // 1 string to match.
8263 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
8264 : break;
8265 0 : Mnemonic = "v_cmpx_lt_u32"; // "v_cmpx_lt_u32_sdwa"
8266 0 : return;
8267 : }
8268 : break;
8269 : }
8270 : break;
8271 : }
8272 : break;
8273 : case 'n': // 4 strings to match.
8274 0 : if (memcmp(Mnemonic.data()+8, "e_", 2) != 0)
8275 : break;
8276 : switch (Mnemonic[10]) {
8277 : default: break;
8278 0 : case 'i': // 2 strings to match.
8279 : switch (Mnemonic[11]) {
8280 : default: break;
8281 : case '1': // 1 string to match.
8282 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
8283 : break;
8284 0 : Mnemonic = "v_cmpx_ne_i16"; // "v_cmpx_ne_i16_sdwa"
8285 0 : return;
8286 : case '3': // 1 string to match.
8287 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
8288 : break;
8289 0 : Mnemonic = "v_cmpx_ne_i32"; // "v_cmpx_ne_i32_sdwa"
8290 0 : return;
8291 : }
8292 : break;
8293 0 : case 'u': // 2 strings to match.
8294 : switch (Mnemonic[11]) {
8295 : default: break;
8296 : case '1': // 1 string to match.
8297 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
8298 : break;
8299 0 : Mnemonic = "v_cmpx_ne_u16"; // "v_cmpx_ne_u16_sdwa"
8300 0 : return;
8301 : case '3': // 1 string to match.
8302 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
8303 : break;
8304 0 : Mnemonic = "v_cmpx_ne_u32"; // "v_cmpx_ne_u32_sdwa"
8305 0 : return;
8306 : }
8307 : break;
8308 : }
8309 : break;
8310 : }
8311 : break;
8312 : }
8313 : break;
8314 : case 'n': // 1 string to match.
8315 0 : if (memcmp(Mnemonic.data()+4, "dmask_b32_sdwa", 14) != 0)
8316 : break;
8317 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_cndmask_b32_sdwa"
8318 0 : Mnemonic = "v_cndmask_b32";
8319 : return;
8320 : case 'v': // 10 strings to match.
8321 20 : if (memcmp(Mnemonic.data()+4, "t_", 2) != 0)
8322 : break;
8323 : switch (Mnemonic[6]) {
8324 : default: break;
8325 0 : case 'f': // 6 strings to match.
8326 : switch (Mnemonic[7]) {
8327 : default: break;
8328 : case '1': // 3 strings to match.
8329 0 : if (memcmp(Mnemonic.data()+8, "6_", 2) != 0)
8330 : break;
8331 : switch (Mnemonic[10]) {
8332 : default: break;
8333 : case 'f': // 1 string to match.
8334 0 : if (memcmp(Mnemonic.data()+11, "32_sdwa", 7) != 0)
8335 : break;
8336 0 : Mnemonic = "v_cvt_f16_f32"; // "v_cvt_f16_f32_sdwa"
8337 0 : return;
8338 : case 'i': // 1 string to match.
8339 0 : if (memcmp(Mnemonic.data()+11, "16_sdwa", 7) != 0)
8340 : break;
8341 0 : Mnemonic = "v_cvt_f16_i16"; // "v_cvt_f16_i16_sdwa"
8342 0 : return;
8343 : case 'u': // 1 string to match.
8344 0 : if (memcmp(Mnemonic.data()+11, "16_sdwa", 7) != 0)
8345 : break;
8346 0 : Mnemonic = "v_cvt_f16_u16"; // "v_cvt_f16_u16_sdwa"
8347 0 : return;
8348 : }
8349 : break;
8350 : case '3': // 3 strings to match.
8351 0 : if (memcmp(Mnemonic.data()+8, "2_", 2) != 0)
8352 : break;
8353 : switch (Mnemonic[10]) {
8354 : default: break;
8355 : case 'f': // 1 string to match.
8356 0 : if (memcmp(Mnemonic.data()+11, "16_sdwa", 7) != 0)
8357 : break;
8358 0 : Mnemonic = "v_cvt_f32_f16"; // "v_cvt_f32_f16_sdwa"
8359 0 : return;
8360 : case 'i': // 1 string to match.
8361 0 : if (memcmp(Mnemonic.data()+11, "32_sdwa", 7) != 0)
8362 : break;
8363 0 : Mnemonic = "v_cvt_f32_i32"; // "v_cvt_f32_i32_sdwa"
8364 0 : return;
8365 : case 'u': // 1 string to match.
8366 0 : if (memcmp(Mnemonic.data()+11, "32_sdwa", 7) != 0)
8367 : break;
8368 0 : Mnemonic = "v_cvt_f32_u32"; // "v_cvt_f32_u32_sdwa"
8369 0 : return;
8370 : }
8371 : break;
8372 : }
8373 : break;
8374 0 : case 'i': // 2 strings to match.
8375 : switch (Mnemonic[7]) {
8376 : default: break;
8377 : case '1': // 1 string to match.
8378 0 : if (memcmp(Mnemonic.data()+8, "6_f16_sdwa", 10) != 0)
8379 : break;
8380 0 : Mnemonic = "v_cvt_i16_f16"; // "v_cvt_i16_f16_sdwa"
8381 0 : return;
8382 : case '3': // 1 string to match.
8383 0 : if (memcmp(Mnemonic.data()+8, "2_f32_sdwa", 10) != 0)
8384 : break;
8385 0 : Mnemonic = "v_cvt_i32_f32"; // "v_cvt_i32_f32_sdwa"
8386 0 : return;
8387 : }
8388 : break;
8389 0 : case 'u': // 2 strings to match.
8390 : switch (Mnemonic[7]) {
8391 : default: break;
8392 : case '1': // 1 string to match.
8393 0 : if (memcmp(Mnemonic.data()+8, "6_f16_sdwa", 10) != 0)
8394 : break;
8395 0 : Mnemonic = "v_cvt_u16_f16"; // "v_cvt_u16_f16_sdwa"
8396 0 : return;
8397 : case '3': // 1 string to match.
8398 0 : if (memcmp(Mnemonic.data()+8, "2_f32_sdwa", 10) != 0)
8399 : break;
8400 0 : Mnemonic = "v_cvt_u32_f32"; // "v_cvt_u32_f32_sdwa"
8401 0 : return;
8402 : }
8403 : break;
8404 : }
8405 : break;
8406 : }
8407 : break;
8408 : case 'l': // 4 strings to match.
8409 0 : if (memcmp(Mnemonic.data()+3, "sh", 2) != 0)
8410 : break;
8411 : switch (Mnemonic[5]) {
8412 : default: break;
8413 : case 'l': // 2 strings to match.
8414 0 : if (memcmp(Mnemonic.data()+6, "rev_b", 5) != 0)
8415 : break;
8416 : switch (Mnemonic[11]) {
8417 : default: break;
8418 : case '1': // 1 string to match.
8419 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
8420 : break;
8421 0 : Mnemonic = "v_lshlrev_b16"; // "v_lshlrev_b16_sdwa"
8422 0 : return;
8423 : case '3': // 1 string to match.
8424 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
8425 : break;
8426 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_lshlrev_b32_sdwa"
8427 0 : Mnemonic = "v_lshlrev_b32";
8428 : return;
8429 : }
8430 : break;
8431 : case 'r': // 2 strings to match.
8432 0 : if (memcmp(Mnemonic.data()+6, "rev_b", 5) != 0)
8433 : break;
8434 : switch (Mnemonic[11]) {
8435 : default: break;
8436 : case '1': // 1 string to match.
8437 0 : if (memcmp(Mnemonic.data()+12, "6_sdwa", 6) != 0)
8438 : break;
8439 0 : Mnemonic = "v_lshrrev_b16"; // "v_lshrrev_b16_sdwa"
8440 0 : return;
8441 : case '3': // 1 string to match.
8442 0 : if (memcmp(Mnemonic.data()+12, "2_sdwa", 6) != 0)
8443 : break;
8444 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_lshrrev_b32_sdwa"
8445 0 : Mnemonic = "v_lshrrev_b32";
8446 : return;
8447 : }
8448 : break;
8449 : }
8450 : break;
8451 0 : case 'm': // 3 strings to match.
8452 : switch (Mnemonic[3]) {
8453 : default: break;
8454 : case 'o': // 1 string to match.
8455 0 : if (memcmp(Mnemonic.data()+4, "v_fed_b32_sdwa", 14) != 0)
8456 : break;
8457 0 : Mnemonic = "v_mov_fed_b32"; // "v_mov_fed_b32_sdwa"
8458 0 : return;
8459 : case 'u': // 2 strings to match.
8460 0 : if (memcmp(Mnemonic.data()+4, "l_", 2) != 0)
8461 : break;
8462 : switch (Mnemonic[6]) {
8463 : default: break;
8464 : case 'i': // 1 string to match.
8465 0 : if (memcmp(Mnemonic.data()+7, "32_i24_sdwa", 11) != 0)
8466 : break;
8467 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_mul_i32_i24_sdwa"
8468 0 : Mnemonic = "v_mul_i32_i24";
8469 : return;
8470 : case 'u': // 1 string to match.
8471 0 : if (memcmp(Mnemonic.data()+7, "32_u24_sdwa", 11) != 0)
8472 : break;
8473 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_mul_u32_u24_sdwa"
8474 0 : Mnemonic = "v_mul_u32_u24";
8475 : return;
8476 : }
8477 : break;
8478 : }
8479 : break;
8480 : case 's': // 1 string to match.
8481 0 : if (memcmp(Mnemonic.data()+3, "ubbrev_u32_sdwa", 15) != 0)
8482 : break;
8483 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_subbrev_u32_sdwa"
8484 0 : Mnemonic = "v_subbrev_u32";
8485 : return;
8486 : }
8487 : break;
8488 : case 19: // 27 strings to match.
8489 422 : if (memcmp(Mnemonic.data()+0, "v_cmp", 5) != 0)
8490 : break;
8491 : switch (Mnemonic[5]) {
8492 : default: break;
8493 0 : case 's': // 13 strings to match.
8494 : switch (Mnemonic[6]) {
8495 : default: break;
8496 0 : case '_': // 7 strings to match.
8497 : switch (Mnemonic[7]) {
8498 : default: break;
8499 0 : case 'n': // 6 strings to match.
8500 : switch (Mnemonic[8]) {
8501 : default: break;
8502 : case 'e': // 1 string to match.
8503 0 : if (memcmp(Mnemonic.data()+9, "q_f32_sdwa", 10) != 0)
8504 : break;
8505 0 : Mnemonic = "v_cmps_neq_f32"; // "v_cmps_neq_f32_sdwa"
8506 0 : return;
8507 0 : case 'g': // 2 strings to match.
8508 : switch (Mnemonic[9]) {
8509 : default: break;
8510 : case 'e': // 1 string to match.
8511 0 : if (memcmp(Mnemonic.data()+10, "_f32_sdwa", 9) != 0)
8512 : break;
8513 0 : Mnemonic = "v_cmps_nge_f32"; // "v_cmps_nge_f32_sdwa"
8514 0 : return;
8515 : case 't': // 1 string to match.
8516 0 : if (memcmp(Mnemonic.data()+10, "_f32_sdwa", 9) != 0)
8517 : break;
8518 0 : Mnemonic = "v_cmps_ngt_f32"; // "v_cmps_ngt_f32_sdwa"
8519 0 : return;
8520 : }
8521 : break;
8522 0 : case 'l': // 3 strings to match.
8523 : switch (Mnemonic[9]) {
8524 : default: break;
8525 : case 'e': // 1 string to match.
8526 0 : if (memcmp(Mnemonic.data()+10, "_f32_sdwa", 9) != 0)
8527 : break;
8528 0 : Mnemonic = "v_cmps_nle_f32"; // "v_cmps_nle_f32_sdwa"
8529 0 : return;
8530 : case 'g': // 1 string to match.
8531 0 : if (memcmp(Mnemonic.data()+10, "_f32_sdwa", 9) != 0)
8532 : break;
8533 0 : Mnemonic = "v_cmps_nlg_f32"; // "v_cmps_nlg_f32_sdwa"
8534 0 : return;
8535 : case 't': // 1 string to match.
8536 0 : if (memcmp(Mnemonic.data()+10, "_f32_sdwa", 9) != 0)
8537 : break;
8538 0 : Mnemonic = "v_cmps_nlt_f32"; // "v_cmps_nlt_f32_sdwa"
8539 0 : return;
8540 : }
8541 : break;
8542 : }
8543 : break;
8544 : case 't': // 1 string to match.
8545 0 : if (memcmp(Mnemonic.data()+8, "ru_f32_sdwa", 11) != 0)
8546 : break;
8547 0 : Mnemonic = "v_cmps_tru_f32"; // "v_cmps_tru_f32_sdwa"
8548 0 : return;
8549 : }
8550 : break;
8551 0 : case 'x': // 6 strings to match.
8552 0 : if (Mnemonic[7] != '_')
8553 : break;
8554 : switch (Mnemonic[8]) {
8555 : default: break;
8556 : case 'e': // 1 string to match.
8557 0 : if (memcmp(Mnemonic.data()+9, "q_f32_sdwa", 10) != 0)
8558 : break;
8559 0 : Mnemonic = "v_cmpsx_eq_f32"; // "v_cmpsx_eq_f32_sdwa"
8560 0 : return;
8561 0 : case 'g': // 2 strings to match.
8562 : switch (Mnemonic[9]) {
8563 : default: break;
8564 : case 'e': // 1 string to match.
8565 0 : if (memcmp(Mnemonic.data()+10, "_f32_sdwa", 9) != 0)
8566 : break;
8567 0 : Mnemonic = "v_cmpsx_ge_f32"; // "v_cmpsx_ge_f32_sdwa"
8568 0 : return;
8569 : case 't': // 1 string to match.
8570 0 : if (memcmp(Mnemonic.data()+10, "_f32_sdwa", 9) != 0)
8571 : break;
8572 0 : Mnemonic = "v_cmpsx_gt_f32"; // "v_cmpsx_gt_f32_sdwa"
8573 0 : return;
8574 : }
8575 : break;
8576 0 : case 'l': // 3 strings to match.
8577 : switch (Mnemonic[9]) {
8578 : default: break;
8579 : case 'e': // 1 string to match.
8580 0 : if (memcmp(Mnemonic.data()+10, "_f32_sdwa", 9) != 0)
8581 : break;
8582 0 : Mnemonic = "v_cmpsx_le_f32"; // "v_cmpsx_le_f32_sdwa"
8583 0 : return;
8584 : case 'g': // 1 string to match.
8585 0 : if (memcmp(Mnemonic.data()+10, "_f32_sdwa", 9) != 0)
8586 : break;
8587 0 : Mnemonic = "v_cmpsx_lg_f32"; // "v_cmpsx_lg_f32_sdwa"
8588 0 : return;
8589 : case 't': // 1 string to match.
8590 0 : if (memcmp(Mnemonic.data()+10, "_f32_sdwa", 9) != 0)
8591 : break;
8592 0 : Mnemonic = "v_cmpsx_lt_f32"; // "v_cmpsx_lt_f32_sdwa"
8593 0 : return;
8594 : }
8595 : break;
8596 : }
8597 : break;
8598 : }
8599 : break;
8600 0 : case 'x': // 14 strings to match.
8601 0 : if (Mnemonic[6] != '_')
8602 : break;
8603 : switch (Mnemonic[7]) {
8604 : default: break;
8605 0 : case 'n': // 12 strings to match.
8606 : switch (Mnemonic[8]) {
8607 : default: break;
8608 : case 'e': // 2 strings to match.
8609 0 : if (memcmp(Mnemonic.data()+9, "q_f", 3) != 0)
8610 : break;
8611 : switch (Mnemonic[12]) {
8612 : default: break;
8613 : case '1': // 1 string to match.
8614 0 : if (memcmp(Mnemonic.data()+13, "6_sdwa", 6) != 0)
8615 : break;
8616 0 : Mnemonic = "v_cmpx_neq_f16"; // "v_cmpx_neq_f16_sdwa"
8617 0 : return;
8618 : case '3': // 1 string to match.
8619 0 : if (memcmp(Mnemonic.data()+13, "2_sdwa", 6) != 0)
8620 : break;
8621 0 : Mnemonic = "v_cmpx_neq_f32"; // "v_cmpx_neq_f32_sdwa"
8622 0 : return;
8623 : }
8624 : break;
8625 0 : case 'g': // 4 strings to match.
8626 : switch (Mnemonic[9]) {
8627 : default: break;
8628 : case 'e': // 2 strings to match.
8629 0 : if (memcmp(Mnemonic.data()+10, "_f", 2) != 0)
8630 : break;
8631 : switch (Mnemonic[12]) {
8632 : default: break;
8633 : case '1': // 1 string to match.
8634 0 : if (memcmp(Mnemonic.data()+13, "6_sdwa", 6) != 0)
8635 : break;
8636 0 : Mnemonic = "v_cmpx_nge_f16"; // "v_cmpx_nge_f16_sdwa"
8637 0 : return;
8638 : case '3': // 1 string to match.
8639 0 : if (memcmp(Mnemonic.data()+13, "2_sdwa", 6) != 0)
8640 : break;
8641 0 : Mnemonic = "v_cmpx_nge_f32"; // "v_cmpx_nge_f32_sdwa"
8642 0 : return;
8643 : }
8644 : break;
8645 : case 't': // 2 strings to match.
8646 0 : if (memcmp(Mnemonic.data()+10, "_f", 2) != 0)
8647 : break;
8648 : switch (Mnemonic[12]) {
8649 : default: break;
8650 : case '1': // 1 string to match.
8651 0 : if (memcmp(Mnemonic.data()+13, "6_sdwa", 6) != 0)
8652 : break;
8653 0 : Mnemonic = "v_cmpx_ngt_f16"; // "v_cmpx_ngt_f16_sdwa"
8654 0 : return;
8655 : case '3': // 1 string to match.
8656 0 : if (memcmp(Mnemonic.data()+13, "2_sdwa", 6) != 0)
8657 : break;
8658 0 : Mnemonic = "v_cmpx_ngt_f32"; // "v_cmpx_ngt_f32_sdwa"
8659 0 : return;
8660 : }
8661 : break;
8662 : }
8663 : break;
8664 0 : case 'l': // 6 strings to match.
8665 : switch (Mnemonic[9]) {
8666 : default: break;
8667 : case 'e': // 2 strings to match.
8668 0 : if (memcmp(Mnemonic.data()+10, "_f", 2) != 0)
8669 : break;
8670 : switch (Mnemonic[12]) {
8671 : default: break;
8672 : case '1': // 1 string to match.
8673 0 : if (memcmp(Mnemonic.data()+13, "6_sdwa", 6) != 0)
8674 : break;
8675 0 : Mnemonic = "v_cmpx_nle_f16"; // "v_cmpx_nle_f16_sdwa"
8676 0 : return;
8677 : case '3': // 1 string to match.
8678 0 : if (memcmp(Mnemonic.data()+13, "2_sdwa", 6) != 0)
8679 : break;
8680 0 : Mnemonic = "v_cmpx_nle_f32"; // "v_cmpx_nle_f32_sdwa"
8681 0 : return;
8682 : }
8683 : break;
8684 : case 'g': // 2 strings to match.
8685 0 : if (memcmp(Mnemonic.data()+10, "_f", 2) != 0)
8686 : break;
8687 : switch (Mnemonic[12]) {
8688 : default: break;
8689 : case '1': // 1 string to match.
8690 0 : if (memcmp(Mnemonic.data()+13, "6_sdwa", 6) != 0)
8691 : break;
8692 0 : Mnemonic = "v_cmpx_nlg_f16"; // "v_cmpx_nlg_f16_sdwa"
8693 0 : return;
8694 : case '3': // 1 string to match.
8695 0 : if (memcmp(Mnemonic.data()+13, "2_sdwa", 6) != 0)
8696 : break;
8697 0 : Mnemonic = "v_cmpx_nlg_f32"; // "v_cmpx_nlg_f32_sdwa"
8698 0 : return;
8699 : }
8700 : break;
8701 : case 't': // 2 strings to match.
8702 0 : if (memcmp(Mnemonic.data()+10, "_f", 2) != 0)
8703 : break;
8704 : switch (Mnemonic[12]) {
8705 : default: break;
8706 : case '1': // 1 string to match.
8707 0 : if (memcmp(Mnemonic.data()+13, "6_sdwa", 6) != 0)
8708 : break;
8709 0 : Mnemonic = "v_cmpx_nlt_f16"; // "v_cmpx_nlt_f16_sdwa"
8710 0 : return;
8711 : case '3': // 1 string to match.
8712 0 : if (memcmp(Mnemonic.data()+13, "2_sdwa", 6) != 0)
8713 : break;
8714 0 : Mnemonic = "v_cmpx_nlt_f32"; // "v_cmpx_nlt_f32_sdwa"
8715 0 : return;
8716 : }
8717 : break;
8718 : }
8719 : break;
8720 : }
8721 : break;
8722 : case 't': // 2 strings to match.
8723 0 : if (memcmp(Mnemonic.data()+8, "ru_f", 4) != 0)
8724 : break;
8725 : switch (Mnemonic[12]) {
8726 : default: break;
8727 : case '1': // 1 string to match.
8728 0 : if (memcmp(Mnemonic.data()+13, "6_sdwa", 6) != 0)
8729 : break;
8730 0 : Mnemonic = "v_cmpx_tru_f16"; // "v_cmpx_tru_f16_sdwa"
8731 0 : return;
8732 : case '3': // 1 string to match.
8733 0 : if (memcmp(Mnemonic.data()+13, "2_sdwa", 6) != 0)
8734 : break;
8735 0 : Mnemonic = "v_cmpx_tru_f32"; // "v_cmpx_tru_f32_sdwa"
8736 0 : return;
8737 : }
8738 : break;
8739 : }
8740 : break;
8741 : }
8742 : break;
8743 : case 20: // 14 strings to match.
8744 133 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
8745 : break;
8746 : switch (Mnemonic[2]) {
8747 : default: break;
8748 : case 'c': // 9 strings to match.
8749 15 : if (memcmp(Mnemonic.data()+3, "mp", 2) != 0)
8750 : break;
8751 : switch (Mnemonic[5]) {
8752 : default: break;
8753 : case '_': // 2 strings to match.
8754 0 : if (memcmp(Mnemonic.data()+6, "class_f", 7) != 0)
8755 : break;
8756 : switch (Mnemonic[13]) {
8757 : default: break;
8758 : case '1': // 1 string to match.
8759 0 : if (memcmp(Mnemonic.data()+14, "6_sdwa", 6) != 0)
8760 : break;
8761 0 : Mnemonic = "v_cmp_class_f16"; // "v_cmp_class_f16_sdwa"
8762 0 : return;
8763 : case '3': // 1 string to match.
8764 0 : if (memcmp(Mnemonic.data()+14, "2_sdwa", 6) != 0)
8765 : break;
8766 0 : Mnemonic = "v_cmp_class_f32"; // "v_cmp_class_f32_sdwa"
8767 0 : return;
8768 : }
8769 : break;
8770 : case 's': // 7 strings to match.
8771 0 : if (memcmp(Mnemonic.data()+6, "x_", 2) != 0)
8772 : break;
8773 : switch (Mnemonic[8]) {
8774 : default: break;
8775 0 : case 'n': // 6 strings to match.
8776 : switch (Mnemonic[9]) {
8777 : default: break;
8778 : case 'e': // 1 string to match.
8779 0 : if (memcmp(Mnemonic.data()+10, "q_f32_sdwa", 10) != 0)
8780 : break;
8781 0 : Mnemonic = "v_cmpsx_neq_f32"; // "v_cmpsx_neq_f32_sdwa"
8782 0 : return;
8783 0 : case 'g': // 2 strings to match.
8784 : switch (Mnemonic[10]) {
8785 : default: break;
8786 : case 'e': // 1 string to match.
8787 0 : if (memcmp(Mnemonic.data()+11, "_f32_sdwa", 9) != 0)
8788 : break;
8789 0 : Mnemonic = "v_cmpsx_nge_f32"; // "v_cmpsx_nge_f32_sdwa"
8790 0 : return;
8791 : case 't': // 1 string to match.
8792 0 : if (memcmp(Mnemonic.data()+11, "_f32_sdwa", 9) != 0)
8793 : break;
8794 0 : Mnemonic = "v_cmpsx_ngt_f32"; // "v_cmpsx_ngt_f32_sdwa"
8795 0 : return;
8796 : }
8797 : break;
8798 0 : case 'l': // 3 strings to match.
8799 : switch (Mnemonic[10]) {
8800 : default: break;
8801 : case 'e': // 1 string to match.
8802 0 : if (memcmp(Mnemonic.data()+11, "_f32_sdwa", 9) != 0)
8803 : break;
8804 0 : Mnemonic = "v_cmpsx_nle_f32"; // "v_cmpsx_nle_f32_sdwa"
8805 0 : return;
8806 : case 'g': // 1 string to match.
8807 0 : if (memcmp(Mnemonic.data()+11, "_f32_sdwa", 9) != 0)
8808 : break;
8809 0 : Mnemonic = "v_cmpsx_nlg_f32"; // "v_cmpsx_nlg_f32_sdwa"
8810 0 : return;
8811 : case 't': // 1 string to match.
8812 0 : if (memcmp(Mnemonic.data()+11, "_f32_sdwa", 9) != 0)
8813 : break;
8814 0 : Mnemonic = "v_cmpsx_nlt_f32"; // "v_cmpsx_nlt_f32_sdwa"
8815 0 : return;
8816 : }
8817 : break;
8818 : }
8819 : break;
8820 : case 't': // 1 string to match.
8821 0 : if (memcmp(Mnemonic.data()+9, "ru_f32_sdwa", 11) != 0)
8822 : break;
8823 0 : Mnemonic = "v_cmpsx_tru_f32"; // "v_cmpsx_tru_f32_sdwa"
8824 0 : return;
8825 : }
8826 : break;
8827 : }
8828 : break;
8829 : case 'l': // 1 string to match.
8830 0 : if (memcmp(Mnemonic.data()+3, "og_clamp_f32_sdwa", 17) != 0)
8831 : break;
8832 0 : Mnemonic = "v_log_clamp_f32"; // "v_log_clamp_f32_sdwa"
8833 0 : return;
8834 0 : case 'r': // 3 strings to match.
8835 : switch (Mnemonic[3]) {
8836 : default: break;
8837 : case 'c': // 2 strings to match.
8838 0 : if (memcmp(Mnemonic.data()+4, "p_", 2) != 0)
8839 : break;
8840 : switch (Mnemonic[6]) {
8841 : default: break;
8842 : case 'c': // 1 string to match.
8843 0 : if (memcmp(Mnemonic.data()+7, "lamp_f32_sdwa", 13) != 0)
8844 : break;
8845 0 : Mnemonic = "v_rcp_clamp_f32"; // "v_rcp_clamp_f32_sdwa"
8846 0 : return;
8847 : case 'i': // 1 string to match.
8848 0 : if (memcmp(Mnemonic.data()+7, "flag_f32_sdwa", 13) != 0)
8849 : break;
8850 0 : Mnemonic = "v_rcp_iflag_f32"; // "v_rcp_iflag_f32_sdwa"
8851 0 : return;
8852 : }
8853 : break;
8854 : case 's': // 1 string to match.
8855 0 : if (memcmp(Mnemonic.data()+4, "q_clamp_f32_sdwa", 16) != 0)
8856 : break;
8857 0 : Mnemonic = "v_rsq_clamp_f32"; // "v_rsq_clamp_f32_sdwa"
8858 0 : return;
8859 : }
8860 : break;
8861 : case 's': // 1 string to match.
8862 0 : if (memcmp(Mnemonic.data()+3, "at_pk_u8_i16_sdwa", 17) != 0)
8863 : break;
8864 0 : Mnemonic = "v_sat_pk_u8_i16"; // "v_sat_pk_u8_i16_sdwa"
8865 0 : return;
8866 : }
8867 : break;
8868 : case 21: // 19 strings to match.
8869 37 : if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
8870 : break;
8871 : switch (Mnemonic[2]) {
8872 : default: break;
8873 0 : case 'c': // 7 strings to match.
8874 : switch (Mnemonic[3]) {
8875 : default: break;
8876 : case 'm': // 2 strings to match.
8877 0 : if (memcmp(Mnemonic.data()+4, "px_class_f", 10) != 0)
8878 : break;
8879 : switch (Mnemonic[14]) {
8880 : default: break;
8881 : case '1': // 1 string to match.
8882 0 : if (memcmp(Mnemonic.data()+15, "6_sdwa", 6) != 0)
8883 : break;
8884 0 : Mnemonic = "v_cmpx_class_f16"; // "v_cmpx_class_f16_sdwa"
8885 0 : return;
8886 : case '3': // 1 string to match.
8887 0 : if (memcmp(Mnemonic.data()+15, "2_sdwa", 6) != 0)
8888 : break;
8889 0 : Mnemonic = "v_cmpx_class_f32"; // "v_cmpx_class_f32_sdwa"
8890 0 : return;
8891 : }
8892 : break;
8893 : case 'v': // 5 strings to match.
8894 0 : if (memcmp(Mnemonic.data()+4, "t_", 2) != 0)
8895 : break;
8896 : switch (Mnemonic[6]) {
8897 : default: break;
8898 : case 'f': // 4 strings to match.
8899 0 : if (memcmp(Mnemonic.data()+7, "32_ubyte", 8) != 0)
8900 : break;
8901 : switch (Mnemonic[15]) {
8902 : default: break;
8903 : case '0': // 1 string to match.
8904 0 : if (memcmp(Mnemonic.data()+16, "_sdwa", 5) != 0)
8905 : break;
8906 0 : Mnemonic = "v_cvt_f32_ubyte0"; // "v_cvt_f32_ubyte0_sdwa"
8907 0 : return;
8908 : case '1': // 1 string to match.
8909 0 : if (memcmp(Mnemonic.data()+16, "_sdwa", 5) != 0)
8910 : break;
8911 0 : Mnemonic = "v_cvt_f32_ubyte1"; // "v_cvt_f32_ubyte1_sdwa"
8912 0 : return;
8913 : case '2': // 1 string to match.
8914 0 : if (memcmp(Mnemonic.data()+16, "_sdwa", 5) != 0)
8915 : break;
8916 0 : Mnemonic = "v_cvt_f32_ubyte2"; // "v_cvt_f32_ubyte2_sdwa"
8917 0 : return;
8918 : case '3': // 1 string to match.
8919 0 : if (memcmp(Mnemonic.data()+16, "_sdwa", 5) != 0)
8920 : break;
8921 0 : Mnemonic = "v_cvt_f32_ubyte3"; // "v_cvt_f32_ubyte3_sdwa"
8922 0 : return;
8923 : }
8924 : break;
8925 : case 'o': // 1 string to match.
8926 0 : if (memcmp(Mnemonic.data()+7, "ff_f32_i4_sdwa", 14) != 0)
8927 : break;
8928 0 : Mnemonic = "v_cvt_off_f32_i4"; // "v_cvt_off_f32_i4_sdwa"
8929 0 : return;
8930 : }
8931 : break;
8932 : }
8933 : break;
8934 : case 'e': // 1 string to match.
8935 0 : if (memcmp(Mnemonic.data()+3, "xp_legacy_f32_sdwa", 18) != 0)
8936 : break;
8937 0 : Mnemonic = "v_exp_legacy_f32"; // "v_exp_legacy_f32_sdwa"
8938 0 : return;
8939 : case 'f': // 2 strings to match.
8940 0 : if (memcmp(Mnemonic.data()+3, "rexp_mant_f", 11) != 0)
8941 : break;
8942 : switch (Mnemonic[14]) {
8943 : default: break;
8944 : case '1': // 1 string to match.
8945 0 : if (memcmp(Mnemonic.data()+15, "6_sdwa", 6) != 0)
8946 : break;
8947 0 : Mnemonic = "v_frexp_mant_f16"; // "v_frexp_mant_f16_sdwa"
8948 0 : return;
8949 : case '3': // 1 string to match.
8950 0 : if (memcmp(Mnemonic.data()+15, "2_sdwa", 6) != 0)
8951 : break;
8952 0 : Mnemonic = "v_frexp_mant_f32"; // "v_frexp_mant_f32_sdwa"
8953 0 : return;
8954 : }
8955 : break;
8956 : case 'l': // 1 string to match.
8957 0 : if (memcmp(Mnemonic.data()+3, "og_legacy_f32_sdwa", 18) != 0)
8958 : break;
8959 0 : Mnemonic = "v_log_legacy_f32"; // "v_log_legacy_f32_sdwa"
8960 0 : return;
8961 0 : case 'm': // 6 strings to match.
8962 : switch (Mnemonic[3]) {
8963 : default: break;
8964 0 : case 'a': // 2 strings to match.
8965 : switch (Mnemonic[4]) {
8966 : default: break;
8967 : case 'c': // 1 string to match.
8968 0 : if (memcmp(Mnemonic.data()+5, "_legacy_f32_sdwa", 16) != 0)
8969 : break;
8970 0 : if ((Features & Feature_isSICI) == Feature_isSICI) // "v_mac_legacy_f32_sdwa"
8971 0 : Mnemonic = "v_mac_legacy_f32";
8972 : return;
8973 : case 'x': // 1 string to match.
8974 0 : if (memcmp(Mnemonic.data()+5, "_legacy_f32_sdwa", 16) != 0)
8975 : break;
8976 0 : if ((Features & Feature_isSICI) == Feature_isSICI) // "v_max_legacy_f32_sdwa"
8977 0 : Mnemonic = "v_max_legacy_f32";
8978 : return;
8979 : }
8980 : break;
8981 : case 'i': // 1 string to match.
8982 0 : if (memcmp(Mnemonic.data()+4, "n_legacy_f32_sdwa", 17) != 0)
8983 : break;
8984 0 : if ((Features & Feature_isSICI) == Feature_isSICI) // "v_min_legacy_f32_sdwa"
8985 0 : Mnemonic = "v_min_legacy_f32";
8986 : return;
8987 : case 'u': // 3 strings to match.
8988 0 : if (memcmp(Mnemonic.data()+4, "l_", 2) != 0)
8989 : break;
8990 : switch (Mnemonic[6]) {
8991 : default: break;
8992 : case 'h': // 2 strings to match.
8993 0 : if (memcmp(Mnemonic.data()+7, "i_", 2) != 0)
8994 : break;
8995 : switch (Mnemonic[9]) {
8996 : default: break;
8997 : case 'i': // 1 string to match.
8998 0 : if (memcmp(Mnemonic.data()+10, "32_i24_sdwa", 11) != 0)
8999 : break;
9000 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_mul_hi_i32_i24_sdwa"
9001 0 : Mnemonic = "v_mul_hi_i32_i24";
9002 : return;
9003 : case 'u': // 1 string to match.
9004 0 : if (memcmp(Mnemonic.data()+10, "32_u24_sdwa", 11) != 0)
9005 : break;
9006 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_mul_hi_u32_u24_sdwa"
9007 0 : Mnemonic = "v_mul_hi_u32_u24";
9008 : return;
9009 : }
9010 : break;
9011 : case 'l': // 1 string to match.
9012 0 : if (memcmp(Mnemonic.data()+7, "egacy_f32_sdwa", 14) != 0)
9013 : break;
9014 0 : if ((Features & Feature_isGCN) == Feature_isGCN) // "v_mul_legacy_f32_sdwa"
9015 0 : Mnemonic = "v_mul_legacy_f32";
9016 : return;
9017 : }
9018 : break;
9019 : }
9020 : break;
9021 0 : case 'r': // 2 strings to match.
9022 : switch (Mnemonic[3]) {
9023 : default: break;
9024 : case 'c': // 1 string to match.
9025 0 : if (memcmp(Mnemonic.data()+4, "p_legacy_f32_sdwa", 17) != 0)
9026 : break;
9027 0 : Mnemonic = "v_rcp_legacy_f32"; // "v_rcp_legacy_f32_sdwa"
9028 0 : return;
9029 : case 's': // 1 string to match.
9030 0 : if (memcmp(Mnemonic.data()+4, "q_legacy_f32_sdwa", 17) != 0)
9031 : break;
9032 0 : Mnemonic = "v_rsq_legacy_f32"; // "v_rsq_legacy_f32_sdwa"
9033 0 : return;
9034 : }
9035 : break;
9036 : }
9037 : break;
9038 : case 22: // 2 strings to match.
9039 141 : if (memcmp(Mnemonic.data()+0, "v_cvt_", 6) != 0)
9040 : break;
9041 : switch (Mnemonic[6]) {
9042 : default: break;
9043 : case 'f': // 1 string to match.
9044 0 : if (memcmp(Mnemonic.data()+7, "lr_i32_f32_sdwa", 15) != 0)
9045 : break;
9046 0 : Mnemonic = "v_cvt_flr_i32_f32"; // "v_cvt_flr_i32_f32_sdwa"
9047 0 : return;
9048 : case 'r': // 1 string to match.
9049 0 : if (memcmp(Mnemonic.data()+7, "pi_i32_f32_sdwa", 15) != 0)
9050 : break;
9051 0 : Mnemonic = "v_cvt_rpi_i32_f32"; // "v_cvt_rpi_i32_f32_sdwa"
9052 0 : return;
9053 : }
9054 : break;
9055 : case 23: // 2 strings to match.
9056 80 : if (memcmp(Mnemonic.data()+0, "v_cvt_norm_", 11) != 0)
9057 : break;
9058 : switch (Mnemonic[11]) {
9059 : default: break;
9060 : case 'i': // 1 string to match.
9061 0 : if (memcmp(Mnemonic.data()+12, "16_f16_sdwa", 11) != 0)
9062 : break;
9063 0 : Mnemonic = "v_cvt_norm_i16_f16"; // "v_cvt_norm_i16_f16_sdwa"
9064 0 : return;
9065 : case 'u': // 1 string to match.
9066 0 : if (memcmp(Mnemonic.data()+12, "16_f16_sdwa", 11) != 0)
9067 : break;
9068 0 : Mnemonic = "v_cvt_norm_u16_f16"; // "v_cvt_norm_u16_f16_sdwa"
9069 0 : return;
9070 : }
9071 : break;
9072 : case 24: // 2 strings to match.
9073 15 : if (memcmp(Mnemonic.data()+0, "v_frexp_exp_i", 13) != 0)
9074 : break;
9075 : switch (Mnemonic[13]) {
9076 : default: break;
9077 : case '1': // 1 string to match.
9078 0 : if (memcmp(Mnemonic.data()+14, "6_f16_sdwa", 10) != 0)
9079 : break;
9080 0 : Mnemonic = "v_frexp_exp_i16_f16"; // "v_frexp_exp_i16_f16_sdwa"
9081 0 : return;
9082 : case '3': // 1 string to match.
9083 0 : if (memcmp(Mnemonic.data()+14, "2_f32_sdwa", 10) != 0)
9084 : break;
9085 0 : Mnemonic = "v_frexp_exp_i32_f32"; // "v_frexp_exp_i32_f32_sdwa"
9086 0 : return;
9087 : }
9088 : break;
9089 : case 31: // 1 string to match.
9090 0 : if (memcmp(Mnemonic.data()+0, "v_screen_partition_4se_b32_sdwa", 31) != 0)
9091 : break;
9092 0 : Mnemonic = "v_screen_partition_4se_b32"; // "v_screen_partition_4se_b32_sdwa"
9093 0 : return;
9094 : }
9095 : break;
9096 : case 3:
9097 : break;
9098 : case 4:
9099 : break;
9100 : }
9101 : }
9102 :
9103 : enum {
9104 : Tie0_1_1,
9105 : Tie1_2_2,
9106 : };
9107 :
9108 : static const uint8_t TiedAsmOperandTable[][3] = {
9109 : /* Tie0_1_1 */ { 0, 1, 1 },
9110 : /* Tie1_2_2 */ { 1, 2, 2 },
9111 : };
9112 :
9113 : namespace {
9114 : enum OperatorConversionKind {
9115 : CVT_Done,
9116 : CVT_Reg,
9117 : CVT_Tied,
9118 : CVT_cvtMubufAtomic,
9119 : CVT_cvtMubufAtomicReturn,
9120 : CVT_cvtMubufLds,
9121 : CVT_cvtMubuf,
9122 : CVT_cvtDS,
9123 : CVT_cvtDSGds,
9124 : CVT_cvtDSOffset01,
9125 : CVT_cvtExp,
9126 : CVT_95_Reg,
9127 : CVT_95_addImmOperands_95_defaultOffsetU12,
9128 : CVT_95_addImmOperands_95_defaultSLC,
9129 : CVT_95_addImmOperands_95_defaultGLC,
9130 : CVT_imm_95_0,
9131 : CVT_95_addImmOperands_95_defaultOffsetS13,
9132 : CVT_cvtMIMGAtomic,
9133 : CVT_cvtMIMG,
9134 : CVT_95_addRegOrImmOperands,
9135 : CVT_95_addImmOperands,
9136 : CVT_95_addImmOperands_95_defaultSMRDOffset20,
9137 : CVT_95_addSoppBrTargetOperands,
9138 : CVT_95_addImmOperands_95_defaultSMRDOffset8,
9139 : CVT_95_addImmOperands_95_defaultSMRDLiteralOffset,
9140 : CVT_cvtMtbuf,
9141 : CVT_95_addImmOperands_95_defaultRowMask,
9142 : CVT_95_addImmOperands_95_defaultBankMask,
9143 : CVT_95_addImmOperands_95_defaultBoundCtrl,
9144 : CVT_cvtSdwaVOP2b,
9145 : CVT_cvtVOP3,
9146 : CVT_cvtDPP,
9147 : CVT_cvtSdwaVOP2,
9148 : CVT_cvtVOP3OpSel,
9149 : CVT_cvtSdwaVOP1,
9150 : CVT_cvtSdwaVOPC,
9151 : CVT_cvtVOP3P,
9152 : CVT_cvtVOP3Interp,
9153 : CVT_95_addKImmFP16Operands,
9154 : CVT_95_addKImmFP32Operands,
9155 : CVT_NUM_CONVERTERS
9156 : };
9157 :
9158 : enum InstructionConversionKind {
9159 : ConvertCustom_cvtMubufAtomic,
9160 : ConvertCustom_cvtMubufAtomicReturn,
9161 : ConvertCustom_cvtMubufLds,
9162 : ConvertCustom_cvtMubuf,
9163 : Convert_NoOperands,
9164 : ConvertCustom_cvtDS,
9165 : ConvertCustom_cvtDSGds,
9166 : ConvertCustom_cvtDSOffset01,
9167 : ConvertCustom_cvtExp,
9168 : Convert__Reg1_0__Reg1_1__ImmOffsetU121_2__ImmSLC1_3,
9169 : Convert__Reg1_0__Reg1_1__Reg1_2__ImmOffsetU121_3__ImmSLC1_5,
9170 : Convert__Reg1_0__Reg1_1__ImmOffsetU121_2__ImmGLC1_3__ImmSLC1_4,
9171 : Convert__Reg1_0__Reg1_1__ImmOffsetU121_2__ImmGLC1_3__ImmSLC1_4__imm_95_0,
9172 : Convert__Reg1_0__Reg1_1__ImmOffsetS131_3__ImmSLC1_4,
9173 : Convert__Reg1_0__Reg1_1__Reg1_2__ImmOffsetS131_3__ImmSLC1_4,
9174 : Convert__Reg1_0__Reg1_1__Reg1_2__ImmOffsetS131_4__ImmSLC1_6,
9175 : Convert__Reg1_0__Reg1_1__Reg1_2__Reg1_3__ImmOffsetS131_4__ImmSLC1_6,
9176 : Convert__Reg1_0__Reg1_1__ImmOffsetS131_3__ImmGLC1_4__ImmSLC1_5,
9177 : Convert__Reg1_0__Reg1_1__Reg1_2__ImmOffsetS131_3__ImmGLC1_4__ImmSLC1_5,
9178 : Convert__Reg1_0__Reg1_1__ImmOffsetS131_3__ImmGLC1_4__ImmSLC1_5__imm_95_0,
9179 : Convert__Reg1_0__Reg1_1__Reg1_2__ImmOffsetS131_3__ImmGLC1_4__ImmSLC1_5__imm_95_0,
9180 : ConvertCustom_cvtMIMGAtomic,
9181 : ConvertCustom_cvtMIMG,
9182 : Convert__Reg1_0__SSrcB321_1,
9183 : Convert__Reg1_0__SSrcB321_1__SSrcB321_2,
9184 : Convert__Reg1_0__Tie0_1_1__S16Imm1_1,
9185 : Convert__Reg1_0__SSrcB641_1__SSrcB641_2,
9186 : Convert__Reg1_0__SSrcB641_1,
9187 : Convert__Reg1_0__SSrcB641_1__SSrcB321_2,
9188 : Convert__Imm1_0__Reg1_1__Reg1_2,
9189 : Convert__Imm1_0__Reg1_1__ImmSMRDOffset201_2,
9190 : Convert__Reg1_0__Reg1_1__Reg1_2,
9191 : Convert__Reg1_0__Reg1_1__ImmSMRDOffset201_2,
9192 : Convert__Reg1_0__Tie0_1_1__Reg1_1__Reg1_2,
9193 : Convert__Reg1_0__Tie0_1_1__Reg1_1__ImmSMRDOffset201_2,
9194 : Convert__SSrcB321_0__SSrcB321_1,
9195 : Convert__SSrcB641_0__SSrcB321_1,
9196 : Convert__SoppBrTarget1_0,
9197 : Convert__Reg1_0__Reg1_1__Reg1_2__ImmGLC1_3,
9198 : Convert__Reg1_0__Reg1_1__ImmSMRDOffset81_2__ImmGLC1_3,
9199 : Convert__Reg1_0__Reg1_1__ImmSMRDOffset201_2__ImmGLC1_3,
9200 : Convert__Reg1_0__Reg1_1__ImmSMRDLiteralOffset1_2__ImmGLC1_3,
9201 : Convert__Reg1_0__S16Imm1_1,
9202 : Convert__SCSrcB641_0__SCSrcB641_1,
9203 : Convert__Reg1_0,
9204 : Convert__SSrcB641_0__SSrcB641_1,
9205 : Convert__Reg1_0__U16Imm1_1,
9206 : Convert__Reg1_0__Reg1_1,
9207 : Convert__Reg1_0__ImmSMRDOffset201_1,
9208 : Convert__Imm1_0,
9209 : Convert__Reg1_0__ImmHwreg1_1,
9210 : Convert__SendMsg1_0,
9211 : Convert__SSrcB321_0,
9212 : Convert__GPRIdxMode1_0,
9213 : Convert__SSrcB321_0__GPRIdxMode1_1,
9214 : Convert__Reg1_1__ImmHwreg1_0,
9215 : Convert__Imm1_1__ImmHwreg1_0,
9216 : Convert__SWaitCnt1_0,
9217 : Convert__Reg1_0__Reg1_2__ImmOffsetS131_3__ImmGLC1_4__ImmSLC1_5,
9218 : Convert__Reg1_1__Reg1_2__ImmOffsetS131_3__ImmGLC1_4__ImmSLC1_5,
9219 : Convert__Reg1_1__Reg1_0__ImmOffsetS131_3__ImmGLC1_4__ImmSLC1_5,
9220 : ConvertCustom_cvtMtbuf,
9221 : Convert__Reg1_0__VCSrcB321_1__VCSrcB321_2__VCSrcB321_3,
9222 : Convert__Reg1_0__VSrcB321_2__Reg1_3,
9223 : Convert__Reg1_0__Reg1_1__VCSrcB321_2__VCSrcB321_3,
9224 : Convert__Reg1_0__Tie0_1_1__Reg1_2__Reg1_3__ImmDPPCtrl1_4__ImmRowMask1_5__ImmBankMask1_6__ImmBoundCtrl1_7,
9225 : ConvertCustom_cvtSdwaVOP2b,
9226 : Convert__Reg1_0__VSrcF161_1__Reg1_2,
9227 : ConvertCustom_cvtVOP3,
9228 : ConvertCustom_cvtDPP,
9229 : ConvertCustom_cvtSdwaVOP2,
9230 : Convert__Reg1_0__VSrcF321_1__Reg1_2,
9231 : ConvertCustom_cvtVOP3OpSel,
9232 : Convert__Reg1_0__VCSrcB321_1__VCSrcB321_2,
9233 : Convert__Reg1_0__VSrcB161_1__Reg1_2,
9234 : Convert__Reg1_0__VCSrcB161_1__VCSrcB161_2,
9235 : Convert__Reg1_0__Tie0_1_1__Reg1_1__Reg1_2__ImmDPPCtrl1_3__ImmRowMask1_4__ImmBankMask1_5__ImmBoundCtrl1_6,
9236 : Convert__Reg1_0__VSrcB321_1__Reg1_2,
9237 : Convert__Reg1_0__VCSrcB321_2__Reg1_3,
9238 : Convert__Reg1_0__Reg1_1__VCSrcB321_2__VCSrcB321_3__Reg1_4,
9239 : Convert__Reg1_0__Tie0_1_1__Reg1_2__Reg1_3__ImmDPPCtrl1_5__ImmRowMask1_6__ImmBankMask1_7__ImmBoundCtrl1_8,
9240 : Convert__Reg1_0__VCSrcB641_1__VCSrcB321_2,
9241 : Convert__Reg1_0__VCSrcB321_1__VCSrcB641_2,
9242 : Convert__Reg1_0__VSrcB321_1,
9243 : Convert__Reg1_0__VCSrcB321_1,
9244 : Convert__Reg1_0__Tie0_1_1__Reg1_1__ImmDPPCtrl1_2__ImmRowMask1_3__ImmBankMask1_4__ImmBoundCtrl1_5,
9245 : ConvertCustom_cvtSdwaVOP1,
9246 : Convert__Reg1_0__VSrcF161_1,
9247 : Convert__Reg1_0__VSrcF321_1,
9248 : Convert__Reg1_0__VSrcF641_1,
9249 : Convert__VSrcF161_1__Reg1_2,
9250 : ConvertCustom_cvtSdwaVOPC,
9251 : Convert__VSrcF321_1__Reg1_2,
9252 : Convert__VSrcF641_1__Reg1_2,
9253 : Convert__VSrcB161_1__Reg1_2,
9254 : Convert__VSrcB321_1__Reg1_2,
9255 : Convert__VSrcB641_1__Reg1_2,
9256 : Convert__Reg1_0__VCSrcB641_1__VCSrcB641_2,
9257 : Convert__Reg1_0__VCSrcB321_1__Reg1_2,
9258 : Convert__Reg1_0__VCSrcB321_1__VCSrcB321_2__Reg1_3,
9259 : Convert__Reg1_0__Tie0_1_1__Reg1_1__Reg1_2__ImmDPPCtrl1_4__ImmRowMask1_5__ImmBankMask1_6__ImmBoundCtrl1_7,
9260 : Convert__Reg1_0__VSrcB161_1,
9261 : Convert__Reg1_0__imm_95_0__VCSrcF321_1__imm_95_0__VCSrcF321_2__imm_95_0,
9262 : Convert__Reg1_0__imm_95_0__VCSrcF321_1__imm_95_0__VCSrcF321_2__imm_95_0__imm_95_0,
9263 : Convert__Reg1_0__Reg1_1__VCSrcF321_2__VCSrcF321_3__VCSrcF321_4,
9264 : Convert__Reg1_0__Reg1_1__VCSrcF641_2__VCSrcF641_3__VCSrcF641_4,
9265 : ConvertCustom_cvtVOP3P,
9266 : Convert__Reg1_0__VSrcF321_1__Reg1_2__Tie0_1_1,
9267 : Convert__Reg1_0__InterpSlot1_1__Attr1_2__AttrChan1_3,
9268 : ConvertCustom_cvtVOP3Interp,
9269 : Convert__Reg1_0__Reg1_1__Attr1_2__AttrChan1_3,
9270 : Convert__Reg1_0__Tie0_1_1__Reg1_1__Attr1_2__AttrChan1_3,
9271 : Convert__Reg1_0__VSrcF161_1__Reg1_2__Tie0_1_1,
9272 : Convert__Reg1_0__VCSrcF321_1__Reg1_2__KImmFP161_3,
9273 : Convert__Reg1_0__VCSrcF321_1__Reg1_2__KImmFP321_3,
9274 : Convert__Reg1_0__VCSrcF321_1__KImmFP161_2__Reg1_3,
9275 : Convert__Reg1_0__VCSrcF321_1__KImmFP321_2__Reg1_3,
9276 : Convert__ImmDPPCtrl1_0__ImmRowMask1_1__ImmBankMask1_2__ImmBoundCtrl1_3,
9277 : Convert__Reg1_0__Reg1_1__SCSrcB321_2,
9278 : Convert__Reg1_0__Reg1_1__Tie1_2_2__Tie0_1_1,
9279 : Convert__Reg1_0__SSrcB321_1__SCSrcB321_2__Tie0_1_1,
9280 : Convert__Reg1_0__SCSrcB321_1__SCSrcB321_2__Tie0_1_1,
9281 : CVT_NUM_SIGNATURES
9282 : };
9283 :
9284 : } // end anonymous namespace
9285 :
9286 : static const uint8_t ConversionTable[CVT_NUM_SIGNATURES][17] = {
9287 : // ConvertCustom_cvtMubufAtomic
9288 : { CVT_cvtMubufAtomic, 0, CVT_Done },
9289 : // ConvertCustom_cvtMubufAtomicReturn
9290 : { CVT_cvtMubufAtomicReturn, 0, CVT_Done },
9291 : // ConvertCustom_cvtMubufLds
9292 : { CVT_cvtMubufLds, 0, CVT_Done },
9293 : // ConvertCustom_cvtMubuf
9294 : { CVT_cvtMubuf, 0, CVT_Done },
9295 : // Convert_NoOperands
9296 : { CVT_Done },
9297 : // ConvertCustom_cvtDS
9298 : { CVT_cvtDS, 0, CVT_Done },
9299 : // ConvertCustom_cvtDSGds
9300 : { CVT_cvtDSGds, 0, CVT_Done },
9301 : // ConvertCustom_cvtDSOffset01
9302 : { CVT_cvtDSOffset01, 0, CVT_Done },
9303 : // ConvertCustom_cvtExp
9304 : { CVT_cvtExp, 0, CVT_Done },
9305 : // Convert__Reg1_0__Reg1_1__ImmOffsetU121_2__ImmSLC1_3
9306 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_addImmOperands_95_defaultOffsetU12, 3, CVT_95_addImmOperands_95_defaultSLC, 4, CVT_Done },
9307 : // Convert__Reg1_0__Reg1_1__Reg1_2__ImmOffsetU121_3__ImmSLC1_5
9308 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_Reg, 3, CVT_95_addImmOperands_95_defaultOffsetU12, 4, CVT_95_addImmOperands_95_defaultSLC, 6, CVT_Done },
9309 : // Convert__Reg1_0__Reg1_1__ImmOffsetU121_2__ImmGLC1_3__ImmSLC1_4
9310 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_addImmOperands_95_defaultOffsetU12, 3, CVT_95_addImmOperands_95_defaultGLC, 4, CVT_95_addImmOperands_95_defaultSLC, 5, CVT_Done },
9311 : // Convert__Reg1_0__Reg1_1__ImmOffsetU121_2__ImmGLC1_3__ImmSLC1_4__imm_95_0
9312 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_addImmOperands_95_defaultOffsetU12, 3, CVT_95_addImmOperands_95_defaultGLC, 4, CVT_95_addImmOperands_95_defaultSLC, 5, CVT_imm_95_0, 0, CVT_Done },
9313 : // Convert__Reg1_0__Reg1_1__ImmOffsetS131_3__ImmSLC1_4
9314 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_addImmOperands_95_defaultOffsetS13, 4, CVT_95_addImmOperands_95_defaultSLC, 5, CVT_Done },
9315 : // Convert__Reg1_0__Reg1_1__Reg1_2__ImmOffsetS131_3__ImmSLC1_4
9316 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_Reg, 3, CVT_95_addImmOperands_95_defaultOffsetS13, 4, CVT_95_addImmOperands_95_defaultSLC, 5, CVT_Done },
9317 : // Convert__Reg1_0__Reg1_1__Reg1_2__ImmOffsetS131_4__ImmSLC1_6
9318 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_Reg, 3, CVT_95_addImmOperands_95_defaultOffsetS13, 5, CVT_95_addImmOperands_95_defaultSLC, 7, CVT_Done },
9319 : // Convert__Reg1_0__Reg1_1__Reg1_2__Reg1_3__ImmOffsetS131_4__ImmSLC1_6
9320 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_Reg, 3, CVT_95_Reg, 4, CVT_95_addImmOperands_95_defaultOffsetS13, 5, CVT_95_addImmOperands_95_defaultSLC, 7, CVT_Done },
9321 : // Convert__Reg1_0__Reg1_1__ImmOffsetS131_3__ImmGLC1_4__ImmSLC1_5
9322 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_addImmOperands_95_defaultOffsetS13, 4, CVT_95_addImmOperands_95_defaultGLC, 5, CVT_95_addImmOperands_95_defaultSLC, 6, CVT_Done },
9323 : // Convert__Reg1_0__Reg1_1__Reg1_2__ImmOffsetS131_3__ImmGLC1_4__ImmSLC1_5
9324 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_Reg, 3, CVT_95_addImmOperands_95_defaultOffsetS13, 4, CVT_95_addImmOperands_95_defaultGLC, 5, CVT_95_addImmOperands_95_defaultSLC, 6, CVT_Done },
9325 : // Convert__Reg1_0__Reg1_1__ImmOffsetS131_3__ImmGLC1_4__ImmSLC1_5__imm_95_0
9326 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_addImmOperands_95_defaultOffsetS13, 4, CVT_95_addImmOperands_95_defaultGLC, 5, CVT_95_addImmOperands_95_defaultSLC, 6, CVT_imm_95_0, 0, CVT_Done },
9327 : // Convert__Reg1_0__Reg1_1__Reg1_2__ImmOffsetS131_3__ImmGLC1_4__ImmSLC1_5__imm_95_0
9328 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_Reg, 3, CVT_95_addImmOperands_95_defaultOffsetS13, 4, CVT_95_addImmOperands_95_defaultGLC, 5, CVT_95_addImmOperands_95_defaultSLC, 6, CVT_imm_95_0, 0, CVT_Done },
9329 : // ConvertCustom_cvtMIMGAtomic
9330 : { CVT_cvtMIMGAtomic, 0, CVT_Done },
9331 : // ConvertCustom_cvtMIMG
9332 : { CVT_cvtMIMG, 0, CVT_Done },
9333 : // Convert__Reg1_0__SSrcB321_1
9334 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_Done },
9335 : // Convert__Reg1_0__SSrcB321_1__SSrcB321_2
9336 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_95_addRegOrImmOperands, 3, CVT_Done },
9337 : // Convert__Reg1_0__Tie0_1_1__S16Imm1_1
9338 : { CVT_95_Reg, 1, CVT_Tied, Tie0_1_1, CVT_95_addImmOperands, 2, CVT_Done },
9339 : // Convert__Reg1_0__SSrcB641_1__SSrcB641_2
9340 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_95_addRegOrImmOperands, 3, CVT_Done },
9341 : // Convert__Reg1_0__SSrcB641_1
9342 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_Done },
9343 : // Convert__Reg1_0__SSrcB641_1__SSrcB321_2
9344 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_95_addRegOrImmOperands, 3, CVT_Done },
9345 : // Convert__Imm1_0__Reg1_1__Reg1_2
9346 : { CVT_95_addImmOperands, 1, CVT_95_Reg, 2, CVT_95_Reg, 3, CVT_Done },
9347 : // Convert__Imm1_0__Reg1_1__ImmSMRDOffset201_2
9348 : { CVT_95_addImmOperands, 1, CVT_95_Reg, 2, CVT_95_addImmOperands_95_defaultSMRDOffset20, 3, CVT_Done },
9349 : // Convert__Reg1_0__Reg1_1__Reg1_2
9350 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_Reg, 3, CVT_Done },
9351 : // Convert__Reg1_0__Reg1_1__ImmSMRDOffset201_2
9352 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_addImmOperands_95_defaultSMRDOffset20, 3, CVT_Done },
9353 : // Convert__Reg1_0__Tie0_1_1__Reg1_1__Reg1_2
9354 : { CVT_95_Reg, 1, CVT_Tied, Tie0_1_1, CVT_95_Reg, 2, CVT_95_Reg, 3, CVT_Done },
9355 : // Convert__Reg1_0__Tie0_1_1__Reg1_1__ImmSMRDOffset201_2
9356 : { CVT_95_Reg, 1, CVT_Tied, Tie0_1_1, CVT_95_Reg, 2, CVT_95_addImmOperands_95_defaultSMRDOffset20, 3, CVT_Done },
9357 : // Convert__SSrcB321_0__SSrcB321_1
9358 : { CVT_95_addRegOrImmOperands, 1, CVT_95_addRegOrImmOperands, 2, CVT_Done },
9359 : // Convert__SSrcB641_0__SSrcB321_1
9360 : { CVT_95_addRegOrImmOperands, 1, CVT_95_addRegOrImmOperands, 2, CVT_Done },
9361 : // Convert__SoppBrTarget1_0
9362 : { CVT_95_addSoppBrTargetOperands, 1, CVT_Done },
9363 : // Convert__Reg1_0__Reg1_1__Reg1_2__ImmGLC1_3
9364 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_Reg, 3, CVT_95_addImmOperands_95_defaultGLC, 4, CVT_Done },
9365 : // Convert__Reg1_0__Reg1_1__ImmSMRDOffset81_2__ImmGLC1_3
9366 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_addImmOperands_95_defaultSMRDOffset8, 3, CVT_95_addImmOperands_95_defaultGLC, 4, CVT_Done },
9367 : // Convert__Reg1_0__Reg1_1__ImmSMRDOffset201_2__ImmGLC1_3
9368 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_addImmOperands_95_defaultSMRDOffset20, 3, CVT_95_addImmOperands_95_defaultGLC, 4, CVT_Done },
9369 : // Convert__Reg1_0__Reg1_1__ImmSMRDLiteralOffset1_2__ImmGLC1_3
9370 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_addImmOperands_95_defaultSMRDLiteralOffset, 3, CVT_95_addImmOperands_95_defaultGLC, 4, CVT_Done },
9371 : // Convert__Reg1_0__S16Imm1_1
9372 : { CVT_95_Reg, 1, CVT_95_addImmOperands, 2, CVT_Done },
9373 : // Convert__SCSrcB641_0__SCSrcB641_1
9374 : { CVT_95_addRegOrImmOperands, 1, CVT_95_addRegOrImmOperands, 2, CVT_Done },
9375 : // Convert__Reg1_0
9376 : { CVT_95_Reg, 1, CVT_Done },
9377 : // Convert__SSrcB641_0__SSrcB641_1
9378 : { CVT_95_addRegOrImmOperands, 1, CVT_95_addRegOrImmOperands, 2, CVT_Done },
9379 : // Convert__Reg1_0__U16Imm1_1
9380 : { CVT_95_Reg, 1, CVT_95_addImmOperands, 2, CVT_Done },
9381 : // Convert__Reg1_0__Reg1_1
9382 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_Done },
9383 : // Convert__Reg1_0__ImmSMRDOffset201_1
9384 : { CVT_95_Reg, 1, CVT_95_addImmOperands_95_defaultSMRDOffset20, 2, CVT_Done },
9385 : // Convert__Imm1_0
9386 : { CVT_95_addImmOperands, 1, CVT_Done },
9387 : // Convert__Reg1_0__ImmHwreg1_1
9388 : { CVT_95_Reg, 1, CVT_95_addImmOperands, 2, CVT_Done },
9389 : // Convert__SendMsg1_0
9390 : { CVT_95_addImmOperands, 1, CVT_Done },
9391 : // Convert__SSrcB321_0
9392 : { CVT_95_addRegOrImmOperands, 1, CVT_Done },
9393 : // Convert__GPRIdxMode1_0
9394 : { CVT_95_addImmOperands, 1, CVT_Done },
9395 : // Convert__SSrcB321_0__GPRIdxMode1_1
9396 : { CVT_95_addRegOrImmOperands, 1, CVT_95_addImmOperands, 2, CVT_Done },
9397 : // Convert__Reg1_1__ImmHwreg1_0
9398 : { CVT_95_Reg, 2, CVT_95_addImmOperands, 1, CVT_Done },
9399 : // Convert__Imm1_1__ImmHwreg1_0
9400 : { CVT_95_addImmOperands, 2, CVT_95_addImmOperands, 1, CVT_Done },
9401 : // Convert__SWaitCnt1_0
9402 : { CVT_95_addImmOperands, 1, CVT_Done },
9403 : // Convert__Reg1_0__Reg1_2__ImmOffsetS131_3__ImmGLC1_4__ImmSLC1_5
9404 : { CVT_95_Reg, 1, CVT_95_Reg, 3, CVT_95_addImmOperands_95_defaultOffsetS13, 4, CVT_95_addImmOperands_95_defaultGLC, 5, CVT_95_addImmOperands_95_defaultSLC, 6, CVT_Done },
9405 : // Convert__Reg1_1__Reg1_2__ImmOffsetS131_3__ImmGLC1_4__ImmSLC1_5
9406 : { CVT_95_Reg, 2, CVT_95_Reg, 3, CVT_95_addImmOperands_95_defaultOffsetS13, 4, CVT_95_addImmOperands_95_defaultGLC, 5, CVT_95_addImmOperands_95_defaultSLC, 6, CVT_Done },
9407 : // Convert__Reg1_1__Reg1_0__ImmOffsetS131_3__ImmGLC1_4__ImmSLC1_5
9408 : { CVT_95_Reg, 2, CVT_95_Reg, 1, CVT_95_addImmOperands_95_defaultOffsetS13, 4, CVT_95_addImmOperands_95_defaultGLC, 5, CVT_95_addImmOperands_95_defaultSLC, 6, CVT_Done },
9409 : // ConvertCustom_cvtMtbuf
9410 : { CVT_cvtMtbuf, 0, CVT_Done },
9411 : // Convert__Reg1_0__VCSrcB321_1__VCSrcB321_2__VCSrcB321_3
9412 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_95_addRegOrImmOperands, 3, CVT_95_addRegOrImmOperands, 4, CVT_Done },
9413 : // Convert__Reg1_0__VSrcB321_2__Reg1_3
9414 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 3, CVT_95_Reg, 4, CVT_Done },
9415 : // Convert__Reg1_0__Reg1_1__VCSrcB321_2__VCSrcB321_3
9416 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_addRegOrImmOperands, 3, CVT_95_addRegOrImmOperands, 4, CVT_Done },
9417 : // Convert__Reg1_0__Tie0_1_1__Reg1_2__Reg1_3__ImmDPPCtrl1_4__ImmRowMask1_5__ImmBankMask1_6__ImmBoundCtrl1_7
9418 : { CVT_95_Reg, 1, CVT_Tied, Tie0_1_1, CVT_95_Reg, 3, CVT_95_Reg, 4, CVT_95_addImmOperands, 5, CVT_95_addImmOperands_95_defaultRowMask, 6, CVT_95_addImmOperands_95_defaultBankMask, 7, CVT_95_addImmOperands_95_defaultBoundCtrl, 8, CVT_Done },
9419 : // ConvertCustom_cvtSdwaVOP2b
9420 : { CVT_cvtSdwaVOP2b, 0, CVT_Done },
9421 : // Convert__Reg1_0__VSrcF161_1__Reg1_2
9422 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_95_Reg, 3, CVT_Done },
9423 : // ConvertCustom_cvtVOP3
9424 : { CVT_cvtVOP3, 0, CVT_Done },
9425 : // ConvertCustom_cvtDPP
9426 : { CVT_cvtDPP, 0, CVT_Done },
9427 : // ConvertCustom_cvtSdwaVOP2
9428 : { CVT_cvtSdwaVOP2, 0, CVT_Done },
9429 : // Convert__Reg1_0__VSrcF321_1__Reg1_2
9430 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_95_Reg, 3, CVT_Done },
9431 : // ConvertCustom_cvtVOP3OpSel
9432 : { CVT_cvtVOP3OpSel, 0, CVT_Done },
9433 : // Convert__Reg1_0__VCSrcB321_1__VCSrcB321_2
9434 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_95_addRegOrImmOperands, 3, CVT_Done },
9435 : // Convert__Reg1_0__VSrcB161_1__Reg1_2
9436 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_95_Reg, 3, CVT_Done },
9437 : // Convert__Reg1_0__VCSrcB161_1__VCSrcB161_2
9438 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_95_addRegOrImmOperands, 3, CVT_Done },
9439 : // Convert__Reg1_0__Tie0_1_1__Reg1_1__Reg1_2__ImmDPPCtrl1_3__ImmRowMask1_4__ImmBankMask1_5__ImmBoundCtrl1_6
9440 : { CVT_95_Reg, 1, CVT_Tied, Tie0_1_1, CVT_95_Reg, 2, CVT_95_Reg, 3, CVT_95_addImmOperands, 4, CVT_95_addImmOperands_95_defaultRowMask, 5, CVT_95_addImmOperands_95_defaultBankMask, 6, CVT_95_addImmOperands_95_defaultBoundCtrl, 7, CVT_Done },
9441 : // Convert__Reg1_0__VSrcB321_1__Reg1_2
9442 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_95_Reg, 3, CVT_Done },
9443 : // Convert__Reg1_0__VCSrcB321_2__Reg1_3
9444 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 3, CVT_95_Reg, 4, CVT_Done },
9445 : // Convert__Reg1_0__Reg1_1__VCSrcB321_2__VCSrcB321_3__Reg1_4
9446 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_addRegOrImmOperands, 3, CVT_95_addRegOrImmOperands, 4, CVT_95_Reg, 5, CVT_Done },
9447 : // Convert__Reg1_0__Tie0_1_1__Reg1_2__Reg1_3__ImmDPPCtrl1_5__ImmRowMask1_6__ImmBankMask1_7__ImmBoundCtrl1_8
9448 : { CVT_95_Reg, 1, CVT_Tied, Tie0_1_1, CVT_95_Reg, 3, CVT_95_Reg, 4, CVT_95_addImmOperands, 6, CVT_95_addImmOperands_95_defaultRowMask, 7, CVT_95_addImmOperands_95_defaultBankMask, 8, CVT_95_addImmOperands_95_defaultBoundCtrl, 9, CVT_Done },
9449 : // Convert__Reg1_0__VCSrcB641_1__VCSrcB321_2
9450 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_95_addRegOrImmOperands, 3, CVT_Done },
9451 : // Convert__Reg1_0__VCSrcB321_1__VCSrcB641_2
9452 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_95_addRegOrImmOperands, 3, CVT_Done },
9453 : // Convert__Reg1_0__VSrcB321_1
9454 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_Done },
9455 : // Convert__Reg1_0__VCSrcB321_1
9456 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_Done },
9457 : // Convert__Reg1_0__Tie0_1_1__Reg1_1__ImmDPPCtrl1_2__ImmRowMask1_3__ImmBankMask1_4__ImmBoundCtrl1_5
9458 : { CVT_95_Reg, 1, CVT_Tied, Tie0_1_1, CVT_95_Reg, 2, CVT_95_addImmOperands, 3, CVT_95_addImmOperands_95_defaultRowMask, 4, CVT_95_addImmOperands_95_defaultBankMask, 5, CVT_95_addImmOperands_95_defaultBoundCtrl, 6, CVT_Done },
9459 : // ConvertCustom_cvtSdwaVOP1
9460 : { CVT_cvtSdwaVOP1, 0, CVT_Done },
9461 : // Convert__Reg1_0__VSrcF161_1
9462 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_Done },
9463 : // Convert__Reg1_0__VSrcF321_1
9464 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_Done },
9465 : // Convert__Reg1_0__VSrcF641_1
9466 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_Done },
9467 : // Convert__VSrcF161_1__Reg1_2
9468 : { CVT_95_addRegOrImmOperands, 2, CVT_95_Reg, 3, CVT_Done },
9469 : // ConvertCustom_cvtSdwaVOPC
9470 : { CVT_cvtSdwaVOPC, 0, CVT_Done },
9471 : // Convert__VSrcF321_1__Reg1_2
9472 : { CVT_95_addRegOrImmOperands, 2, CVT_95_Reg, 3, CVT_Done },
9473 : // Convert__VSrcF641_1__Reg1_2
9474 : { CVT_95_addRegOrImmOperands, 2, CVT_95_Reg, 3, CVT_Done },
9475 : // Convert__VSrcB161_1__Reg1_2
9476 : { CVT_95_addRegOrImmOperands, 2, CVT_95_Reg, 3, CVT_Done },
9477 : // Convert__VSrcB321_1__Reg1_2
9478 : { CVT_95_addRegOrImmOperands, 2, CVT_95_Reg, 3, CVT_Done },
9479 : // Convert__VSrcB641_1__Reg1_2
9480 : { CVT_95_addRegOrImmOperands, 2, CVT_95_Reg, 3, CVT_Done },
9481 : // Convert__Reg1_0__VCSrcB641_1__VCSrcB641_2
9482 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_95_addRegOrImmOperands, 3, CVT_Done },
9483 : // Convert__Reg1_0__VCSrcB321_1__Reg1_2
9484 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_95_Reg, 3, CVT_Done },
9485 : // Convert__Reg1_0__VCSrcB321_1__VCSrcB321_2__Reg1_3
9486 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_95_addRegOrImmOperands, 3, CVT_95_Reg, 4, CVT_Done },
9487 : // Convert__Reg1_0__Tie0_1_1__Reg1_1__Reg1_2__ImmDPPCtrl1_4__ImmRowMask1_5__ImmBankMask1_6__ImmBoundCtrl1_7
9488 : { CVT_95_Reg, 1, CVT_Tied, Tie0_1_1, CVT_95_Reg, 2, CVT_95_Reg, 3, CVT_95_addImmOperands, 5, CVT_95_addImmOperands_95_defaultRowMask, 6, CVT_95_addImmOperands_95_defaultBankMask, 7, CVT_95_addImmOperands_95_defaultBoundCtrl, 8, CVT_Done },
9489 : // Convert__Reg1_0__VSrcB161_1
9490 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_Done },
9491 : // Convert__Reg1_0__imm_95_0__VCSrcF321_1__imm_95_0__VCSrcF321_2__imm_95_0
9492 : { CVT_95_Reg, 1, CVT_imm_95_0, 0, CVT_95_addRegOrImmOperands, 2, CVT_imm_95_0, 0, CVT_95_addRegOrImmOperands, 3, CVT_imm_95_0, 0, CVT_Done },
9493 : // Convert__Reg1_0__imm_95_0__VCSrcF321_1__imm_95_0__VCSrcF321_2__imm_95_0__imm_95_0
9494 : { CVT_95_Reg, 1, CVT_imm_95_0, 0, CVT_95_addRegOrImmOperands, 2, CVT_imm_95_0, 0, CVT_95_addRegOrImmOperands, 3, CVT_imm_95_0, 0, CVT_imm_95_0, 0, CVT_Done },
9495 : // Convert__Reg1_0__Reg1_1__VCSrcF321_2__VCSrcF321_3__VCSrcF321_4
9496 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_addRegOrImmOperands, 3, CVT_95_addRegOrImmOperands, 4, CVT_95_addRegOrImmOperands, 5, CVT_Done },
9497 : // Convert__Reg1_0__Reg1_1__VCSrcF641_2__VCSrcF641_3__VCSrcF641_4
9498 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_addRegOrImmOperands, 3, CVT_95_addRegOrImmOperands, 4, CVT_95_addRegOrImmOperands, 5, CVT_Done },
9499 : // ConvertCustom_cvtVOP3P
9500 : { CVT_cvtVOP3P, 0, CVT_Done },
9501 : // Convert__Reg1_0__VSrcF321_1__Reg1_2__Tie0_1_1
9502 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_95_Reg, 3, CVT_Tied, Tie0_1_1, CVT_Done },
9503 : // Convert__Reg1_0__InterpSlot1_1__Attr1_2__AttrChan1_3
9504 : { CVT_95_Reg, 1, CVT_95_addImmOperands, 2, CVT_95_addImmOperands, 3, CVT_95_addImmOperands, 4, CVT_Done },
9505 : // ConvertCustom_cvtVOP3Interp
9506 : { CVT_cvtVOP3Interp, 0, CVT_Done },
9507 : // Convert__Reg1_0__Reg1_1__Attr1_2__AttrChan1_3
9508 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_addImmOperands, 3, CVT_95_addImmOperands, 4, CVT_Done },
9509 : // Convert__Reg1_0__Tie0_1_1__Reg1_1__Attr1_2__AttrChan1_3
9510 : { CVT_95_Reg, 1, CVT_Tied, Tie0_1_1, CVT_95_Reg, 2, CVT_95_addImmOperands, 3, CVT_95_addImmOperands, 4, CVT_Done },
9511 : // Convert__Reg1_0__VSrcF161_1__Reg1_2__Tie0_1_1
9512 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_95_Reg, 3, CVT_Tied, Tie0_1_1, CVT_Done },
9513 : // Convert__Reg1_0__VCSrcF321_1__Reg1_2__KImmFP161_3
9514 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_95_Reg, 3, CVT_95_addKImmFP16Operands, 4, CVT_Done },
9515 : // Convert__Reg1_0__VCSrcF321_1__Reg1_2__KImmFP321_3
9516 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_95_Reg, 3, CVT_95_addKImmFP32Operands, 4, CVT_Done },
9517 : // Convert__Reg1_0__VCSrcF321_1__KImmFP161_2__Reg1_3
9518 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_95_addKImmFP16Operands, 3, CVT_95_Reg, 4, CVT_Done },
9519 : // Convert__Reg1_0__VCSrcF321_1__KImmFP321_2__Reg1_3
9520 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_95_addKImmFP32Operands, 3, CVT_95_Reg, 4, CVT_Done },
9521 : // Convert__ImmDPPCtrl1_0__ImmRowMask1_1__ImmBankMask1_2__ImmBoundCtrl1_3
9522 : { CVT_95_addImmOperands, 1, CVT_95_addImmOperands_95_defaultRowMask, 2, CVT_95_addImmOperands_95_defaultBankMask, 3, CVT_95_addImmOperands_95_defaultBoundCtrl, 4, CVT_Done },
9523 : // Convert__Reg1_0__Reg1_1__SCSrcB321_2
9524 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_addRegOrImmOperands, 3, CVT_Done },
9525 : // Convert__Reg1_0__Reg1_1__Tie1_2_2__Tie0_1_1
9526 : { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_Tied, Tie1_2_2, CVT_Tied, Tie0_1_1, CVT_Done },
9527 : // Convert__Reg1_0__SSrcB321_1__SCSrcB321_2__Tie0_1_1
9528 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_95_addRegOrImmOperands, 3, CVT_Tied, Tie0_1_1, CVT_Done },
9529 : // Convert__Reg1_0__SCSrcB321_1__SCSrcB321_2__Tie0_1_1
9530 : { CVT_95_Reg, 1, CVT_95_addRegOrImmOperands, 2, CVT_95_addRegOrImmOperands, 3, CVT_Tied, Tie0_1_1, CVT_Done },
9531 : };
9532 :
9533 160392 : void AMDGPUAsmParser::
9534 : convertToMCInst(unsigned Kind, MCInst &Inst, unsigned Opcode,
9535 : const OperandVector &Operands,
9536 : const SmallBitVector &OptionalOperandsMask) {
9537 : assert(Kind < CVT_NUM_SIGNATURES && "Invalid signature!");
9538 160392 : const uint8_t *Converter = ConversionTable[Kind];
9539 160392 : unsigned DefaultsOffset[14] = { 0 };
9540 : assert(OptionalOperandsMask.size() == 13);
9541 2245488 : for (unsigned i = 0, NumDefaults = 0; i < 13; ++i) {
9542 2085096 : DefaultsOffset[i + 1] = NumDefaults;
9543 2671651 : NumDefaults += (OptionalOperandsMask[i] ? 1 : 0);
9544 : }
9545 : unsigned OpIdx;
9546 : Inst.setOpcode(Opcode);
9547 476323 : for (const uint8_t *p = Converter; *p; p+= 2) {
< |