Coverage Report

Created: 2019-03-22 08:08

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/clang-build/lib/Target/AMDGPU/AMDGPUGenAsmMatcher.inc
Line
Count
Source (jump to first uncovered line)
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
  FeatureBitset 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
                                FeatureBitset &MissingFeatures,
24
                                bool matchingInlineAsm,
25
                                unsigned VariantID = 0);
26
  unsigned MatchInstructionImpl(const OperandVector &Operands,
27
                                MCInst &Inst,
28
                                uint64_t &ErrorInfo,
29
                                bool matchingInlineAsm,
30
218k
                                unsigned VariantID = 0) {
31
218k
    FeatureBitset MissingFeatures;
32
218k
    return MatchInstructionImpl(Operands, Inst, ErrorInfo, MissingFeatures,
33
218k
                                matchingInlineAsm, VariantID);
34
218k
  }
35
36
  OperandMatchResultTy MatchOperandParserImpl(
37
    OperandVector &Operands,
38
    StringRef Mnemonic,
39
    bool ParseForAllFeatures = false);
40
  OperandMatchResultTy tryCustomParseOperand(
41
    OperandVector &Operands,
42
    unsigned MCK);
43
44
#endif // GET_ASSEMBLER_HEADER_INFO
45
46
47
#ifdef GET_OPERAND_DIAGNOSTIC_TYPES
48
#undef GET_OPERAND_DIAGNOSTIC_TYPES
49
50
#endif // GET_OPERAND_DIAGNOSTIC_TYPES
51
52
53
#ifdef GET_REGISTER_MATCHER
54
#undef GET_REGISTER_MATCHER
55
56
// Bits for subtarget features that participate in instruction matching.
57
enum SubtargetFeatureBits : uint8_t {
58
  Feature_isSICIBit = 29,
59
  Feature_isVIBit = 30,
60
  Feature_isGFX9Bit = 27,
61
  Feature_isCIVIBit = 26,
62
  Feature_HasFlatAddressSpaceBit = 10,
63
  Feature_HasFlatGlobalInstsBit = 11,
64
  Feature_HasFlatScratchInstsBit = 12,
65
  Feature_HasD16LoadStoreBit = 4,
66
  Feature_HasUnpackedD16VMemBit = 22,
67
  Feature_HasPackedD16VMemBit = 17,
68
  Feature_D16PreservesUnusedBitsBit = 0,
69
  Feature_HasDSAddTidBit = 7,
70
  Feature_HasAddNoCarryInstsBit = 3,
71
  Feature_Has16BitInstsBit = 2,
72
  Feature_HasVOP3PInstsBit = 24,
73
  Feature_HasSDWABit = 19,
74
  Feature_HasSDWA9Bit = 20,
75
  Feature_HasDPPBit = 6,
76
  Feature_HasR128A16Bit = 18,
77
  Feature_HasIntClampBit = 14,
78
  Feature_HasMadMixInstsBit = 15,
79
  Feature_HasScalarAtomicsBit = 21,
80
  Feature_HasVGPRIndexModeBit = 23,
81
  Feature_HasMovrelBit = 16,
82
  Feature_HasFmaMixInstsBit = 13,
83
  Feature_HasDLInstsBit = 5,
84
  Feature_HasDot1InstsBit = 8,
85
  Feature_HasDot2InstsBit = 9,
86
  Feature_isCIOnlyBit = 25,
87
  Feature_isVIOnlyBit = 31,
88
  Feature_DisableInstBit = 1,
89
  Feature_isSIBit = 28,
90
};
91
92
#endif // GET_REGISTER_MATCHER
93
94
95
#ifdef GET_SUBTARGET_FEATURE_NAME
96
#undef GET_SUBTARGET_FEATURE_NAME
97
98
// User-level names for subtarget features that participate in
99
// instruction matching.
100
static const char *getSubtargetFeatureName(uint64_t Val) {
101
  switch(Val) {
102
  case Feature_isSICIBit: return "";
103
  case Feature_isVIBit: return "";
104
  case Feature_isGFX9Bit: return "";
105
  case Feature_isCIVIBit: return "";
106
  case Feature_HasFlatAddressSpaceBit: return "";
107
  case Feature_HasFlatGlobalInstsBit: return "";
108
  case Feature_HasFlatScratchInstsBit: return "";
109
  case Feature_HasD16LoadStoreBit: return "";
110
  case Feature_HasUnpackedD16VMemBit: return "";
111
  case Feature_HasPackedD16VMemBit: return "";
112
  case Feature_D16PreservesUnusedBitsBit: return "";
113
  case Feature_HasDSAddTidBit: return "";
114
  case Feature_HasAddNoCarryInstsBit: return "";
115
  case Feature_Has16BitInstsBit: return "";
116
  case Feature_HasVOP3PInstsBit: return "";
117
  case Feature_HasSDWABit: return "";
118
  case Feature_HasSDWA9Bit: return "";
119
  case Feature_HasDPPBit: return "";
120
  case Feature_HasR128A16Bit: return "";
121
  case Feature_HasIntClampBit: return "";
122
  case Feature_HasMadMixInstsBit: return "";
123
  case Feature_HasScalarAtomicsBit: return "";
124
  case Feature_HasVGPRIndexModeBit: return "";
125
  case Feature_HasMovrelBit: return "";
126
  case Feature_HasFmaMixInstsBit: return "";
127
  case Feature_HasDLInstsBit: return "";
128
  case Feature_HasDot1InstsBit: return "";
129
  case Feature_HasDot2InstsBit: return "";
130
  case Feature_isCIOnlyBit: return "";
131
  case Feature_isVIOnlyBit: return "";
132
  case Feature_DisableInstBit: return "";
133
  case Feature_isSIBit: return "";
134
  default: return "(unknown)";
135
  }
136
}
137
138
#endif // GET_SUBTARGET_FEATURE_NAME
139
140
141
#ifdef GET_MATCHER_IMPLEMENTATION
142
#undef GET_MATCHER_IMPLEMENTATION
143
144
218k
static void applyMnemonicAliases(StringRef &Mnemonic, const FeatureBitset &Features, unsigned VariantID) {
145
218k
  switch (VariantID) {
146
218k
    case 0:
147
87.3k
      switch (Mnemonic.size()) {
148
87.3k
      
default: break1.77k
;
149
87.3k
      case 9:  // 1 string to match.
150
14.8k
        if (memcmp(Mnemonic.data()+0, "v_nop_e32", 9) != 0)
151
14.8k
          break;
152
0
        Mnemonic = "v_nop";  // "v_nop_e32"
153
0
        return;
154
9.10k
      case 10:   // 1 string to match.
155
9.10k
        if (memcmp(Mnemonic.data()+0, "v_swap_b32", 10) != 0)
156
9.08k
          break;
157
29
        Mnemonic = "v_swap_b32";   // "v_swap_b32"
158
29
        return;
159
5.13k
      case 11:   // 2 strings to match.
160
5.13k
        if (memcmp(Mnemonic.data()+0, "v_mad", 5) != 0)
161
4.95k
          break;
162
180
        switch (Mnemonic[5]) {
163
180
        
default: break0
;
164
180
        case 'a':  // 1 string to match.
165
96
          if (memcmp(Mnemonic.data()+6, "k_f16", 5) != 0)
166
60
            break;
167
36
          Mnemonic = "v_madak_f16";  // "v_madak_f16"
168
36
          return;
169
84
        case 'm':  // 1 string to match.
170
84
          if (memcmp(Mnemonic.data()+6, "k_f16", 5) != 0)
171
44
            break;
172
40
          Mnemonic = "v_madmk_f16";  // "v_madmk_f16"
173
40
          return;
174
104
        }
175
104
        break;
176
11.8k
      case 12:   // 1 string to match.
177
11.8k
        if (memcmp(Mnemonic.data()+0, "v_or_b32_e32", 12) != 0)
178
11.8k
          break;
179
0
        Mnemonic = "v_or_b32";   // "v_or_b32_e32"
180
0
        return;
181
14.0k
      case 13:   // 46 strings to match.
182
14.0k
        if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
183
3.91k
          break;
184
10.1k
        switch (Mnemonic[2]) {
185
10.1k
        
default: break167
;
186
10.1k
        case 'a':  // 6 strings to match.
187
313
          switch (Mnemonic[3]) {
188
313
          
default: break288
;
189
313
          case 'd':  // 5 strings to match.
190
25
            if (memcmp(Mnemonic.data()+4, "d_", 2) != 0)
191
25
              break;
192
0
            switch (Mnemonic[6]) {
193
0
            default: break;
194
0
            case 'f':  // 2 strings to match.
195
0
              switch (Mnemonic[7]) {
196
0
              default: break;
197
0
              case '1':  // 1 string to match.
198
0
                if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
199
0
                  break;
200
0
                Mnemonic = "v_add_f16";  // "v_add_f16_e32"
201
0
                return;
202
0
              case '3':  // 1 string to match.
203
0
                if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
204
0
                  break;
205
0
                Mnemonic = "v_add_f32";  // "v_add_f32_e32"
206
0
                return;
207
0
              }
208
0
              break;
209
0
            case 'i':  // 1 string to match.
210
0
              if (memcmp(Mnemonic.data()+7, "32_e32", 6) != 0)
211
0
                break;
212
0
              Mnemonic = "v_add_i32";  // "v_add_i32_e32"
213
0
              return;
214
0
            case 'u':  // 2 strings to match.
215
0
              switch (Mnemonic[7]) {
216
0
              default: break;
217
0
              case '1':  // 1 string to match.
218
0
                if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
219
0
                  break;
220
0
                Mnemonic = "v_add_u16";  // "v_add_u16_e32"
221
0
                return;
222
0
              case '3':  // 1 string to match.
223
0
                if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
224
0
                  break;
225
0
                Mnemonic = "v_add_u32";  // "v_add_u32_e32"
226
0
                return;
227
0
              }
228
0
              break;
229
0
            }
230
0
            break;
231
0
          case 'n':  // 1 string to match.
232
0
            if (memcmp(Mnemonic.data()+4, "d_b32_e32", 9) != 0)
233
0
              break;
234
0
            Mnemonic = "v_and_b32";  // "v_and_b32_e32"
235
0
            return;
236
313
          }
237
313
          break;
238
313
        case 'b':  // 1 string to match.
239
0
          if (memcmp(Mnemonic.data()+3, "fm_b32_e32", 10) != 0)
240
0
            break;
241
0
          Mnemonic = "v_bfm_b32";  // "v_bfm_b32_e32"
242
0
          return;
243
7.16k
        case 'c':  // 3 strings to match.
244
7.16k
          switch (Mnemonic[3]) {
245
7.16k
          default: break;
246
7.16k
          case 'l':  // 1 string to match.
247
0
            if (memcmp(Mnemonic.data()+4, "rexcp_e32", 9) != 0)
248
0
              break;
249
0
            Mnemonic = "v_clrexcp";  // "v_clrexcp_e32"
250
0
            return;
251
0
          case 'o':  // 2 strings to match.
252
0
            if (memcmp(Mnemonic.data()+4, "s_f", 3) != 0)
253
0
              break;
254
0
            switch (Mnemonic[7]) {
255
0
            default: break;
256
0
            case '1':  // 1 string to match.
257
0
              if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
258
0
                break;
259
0
              Mnemonic = "v_cos_f16";  // "v_cos_f16_e32"
260
0
              return;
261
0
            case '3':  // 1 string to match.
262
0
              if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
263
0
                break;
264
0
              Mnemonic = "v_cos_f32";  // "v_cos_f32_e32"
265
0
              return;
266
0
            }
267
0
            break;
268
7.16k
          }
269
7.16k
          break;
270
7.16k
        case 'e':  // 2 strings to match.
271
0
          if (memcmp(Mnemonic.data()+3, "xp_f", 4) != 0)
272
0
            break;
273
0
          switch (Mnemonic[7]) {
274
0
          default: break;
275
0
          case '1':  // 1 string to match.
276
0
            if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
277
0
              break;
278
0
            Mnemonic = "v_exp_f16";  // "v_exp_f16_e32"
279
0
            return;
280
0
          case '3':  // 1 string to match.
281
0
            if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
282
0
              break;
283
0
            Mnemonic = "v_exp_f32";  // "v_exp_f32_e32"
284
0
            return;
285
0
          }
286
0
          break;
287
671
        case 'l':  // 2 strings to match.
288
671
          if (memcmp(Mnemonic.data()+3, "og_f", 4) != 0)
289
671
            break;
290
0
          switch (Mnemonic[7]) {
291
0
          default: break;
292
0
          case '1':  // 1 string to match.
293
0
            if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
294
0
              break;
295
0
            Mnemonic = "v_log_f16";  // "v_log_f16_e32"
296
0
            return;
297
0
          case '3':  // 1 string to match.
298
0
            if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
299
0
              break;
300
0
            Mnemonic = "v_log_f32";  // "v_log_f32_e32"
301
0
            return;
302
0
          }
303
0
          break;
304
1.74k
        case 'm':  // 17 strings to match.
305
1.74k
          switch (Mnemonic[3]) {
306
1.74k
          
default: break0
;
307
1.74k
          case 'a':  // 8 strings to match.
308
1.26k
            switch (Mnemonic[4]) {
309
1.26k
            default: break;
310
1.26k
            case 'c':  // 2 strings to match.
311
0
              if (memcmp(Mnemonic.data()+5, "_f", 2) != 0)
312
0
                break;
313
0
              switch (Mnemonic[7]) {
314
0
              default: break;
315
0
              case '1':  // 1 string to match.
316
0
                if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
317
0
                  break;
318
0
                Mnemonic = "v_mac_f16";  // "v_mac_f16_e32"
319
0
                return;
320
0
              case '3':  // 1 string to match.
321
0
                if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
322
0
                  break;
323
0
                Mnemonic = "v_mac_f32";  // "v_mac_f32_e32"
324
0
                return;
325
0
              }
326
0
              break;
327
0
            case 'x':  // 6 strings to match.
328
0
              if (Mnemonic[5] != '_')
329
0
                break;
330
0
              switch (Mnemonic[6]) {
331
0
              default: break;
332
0
              case 'f':  // 2 strings to match.
333
0
                switch (Mnemonic[7]) {
334
0
                default: break;
335
0
                case '1':  // 1 string to match.
336
0
                  if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
337
0
                    break;
338
0
                  Mnemonic = "v_max_f16";  // "v_max_f16_e32"
339
0
                  return;
340
0
                case '3':  // 1 string to match.
341
0
                  if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
342
0
                    break;
343
0
                  Mnemonic = "v_max_f32";  // "v_max_f32_e32"
344
0
                  return;
345
0
                }
346
0
                break;
347
0
              case 'i':  // 2 strings to match.
348
0
                switch (Mnemonic[7]) {
349
0
                default: break;
350
0
                case '1':  // 1 string to match.
351
0
                  if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
352
0
                    break;
353
0
                  Mnemonic = "v_max_i16";  // "v_max_i16_e32"
354
0
                  return;
355
0
                case '3':  // 1 string to match.
356
0
                  if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
357
0
                    break;
358
0
                  Mnemonic = "v_max_i32";  // "v_max_i32_e32"
359
0
                  return;
360
0
                }
361
0
                break;
362
0
              case 'u':  // 2 strings to match.
363
0
                switch (Mnemonic[7]) {
364
0
                default: break;
365
0
                case '1':  // 1 string to match.
366
0
                  if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
367
0
                    break;
368
0
                  Mnemonic = "v_max_u16";  // "v_max_u16_e32"
369
0
                  return;
370
0
                case '3':  // 1 string to match.
371
0
                  if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
372
0
                    break;
373
0
                  Mnemonic = "v_max_u32";  // "v_max_u32_e32"
374
0
                  return;
375
0
                }
376
0
                break;
377
0
              }
378
0
              break;
379
1.26k
            }
380
1.26k
            break;
381
1.26k
          case 'i':  // 6 strings to match.
382
0
            if (memcmp(Mnemonic.data()+4, "n_", 2) != 0)
383
0
              break;
384
0
            switch (Mnemonic[6]) {
385
0
            default: break;
386
0
            case 'f':  // 2 strings to match.
387
0
              switch (Mnemonic[7]) {
388
0
              default: break;
389
0
              case '1':  // 1 string to match.
390
0
                if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
391
0
                  break;
392
0
                Mnemonic = "v_min_f16";  // "v_min_f16_e32"
393
0
                return;
394
0
              case '3':  // 1 string to match.
395
0
                if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
396
0
                  break;
397
0
                Mnemonic = "v_min_f32";  // "v_min_f32_e32"
398
0
                return;
399
0
              }
400
0
              break;
401
0
            case 'i':  // 2 strings to match.
402
0
              switch (Mnemonic[7]) {
403
0
              default: break;
404
0
              case '1':  // 1 string to match.
405
0
                if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
406
0
                  break;
407
0
                Mnemonic = "v_min_i16";  // "v_min_i16_e32"
408
0
                return;
409
0
              case '3':  // 1 string to match.
410
0
                if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
411
0
                  break;
412
0
                Mnemonic = "v_min_i32";  // "v_min_i32_e32"
413
0
                return;
414
0
              }
415
0
              break;
416
0
            case 'u':  // 2 strings to match.
417
0
              switch (Mnemonic[7]) {
418
0
              default: break;
419
0
              case '1':  // 1 string to match.
420
0
                if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
421
0
                  break;
422
0
                Mnemonic = "v_min_u16";  // "v_min_u16_e32"
423
0
                return;
424
0
              case '3':  // 1 string to match.
425
0
                if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
426
0
                  break;
427
0
                Mnemonic = "v_min_u32";  // "v_min_u32_e32"
428
0
                return;
429
0
              }
430
0
              break;
431
0
            }
432
0
            break;
433
165
          case 'o':  // 1 string to match.
434
165
            if (memcmp(Mnemonic.data()+4, "v_b32_e32", 9) != 0)
435
165
              break;
436
0
            Mnemonic = "v_mov_b32";  // "v_mov_b32_e32"
437
0
            return;
438
313
          case 'u':  // 2 strings to match.
439
313
            if (memcmp(Mnemonic.data()+4, "l_f", 3) != 0)
440
313
              break;
441
0
            switch (Mnemonic[7]) {
442
0
            default: break;
443
0
            case '1':  // 1 string to match.
444
0
              if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
445
0
                break;
446
0
              Mnemonic = "v_mul_f16";  // "v_mul_f16_e32"
447
0
              return;
448
0
            case '3':  // 1 string to match.
449
0
              if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
450
0
                break;
451
0
              Mnemonic = "v_mul_f32";  // "v_mul_f32_e32"
452
0
              return;
453
0
            }
454
0
            break;
455
1.74k
          }
456
1.74k
          break;
457
1.74k
        case 'n':  // 1 string to match.
458
0
          if (memcmp(Mnemonic.data()+3, "ot_b32_e32", 10) != 0)
459
0
            break;
460
0
          Mnemonic = "v_not_b32";  // "v_not_b32_e32"
461
0
          return;
462
0
        case 'r':  // 6 strings to match.
463
0
          switch (Mnemonic[3]) {
464
0
          default: break;
465
0
          case 'c':  // 3 strings to match.
466
0
            if (memcmp(Mnemonic.data()+4, "p_f", 3) != 0)
467
0
              break;
468
0
            switch (Mnemonic[7]) {
469
0
            default: break;
470
0
            case '1':  // 1 string to match.
471
0
              if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
472
0
                break;
473
0
              Mnemonic = "v_rcp_f16";  // "v_rcp_f16_e32"
474
0
              return;
475
0
            case '3':  // 1 string to match.
476
0
              if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
477
0
                break;
478
0
              Mnemonic = "v_rcp_f32";  // "v_rcp_f32_e32"
479
0
              return;
480
0
            case '6':  // 1 string to match.
481
0
              if (memcmp(Mnemonic.data()+8, "4_e32", 5) != 0)
482
0
                break;
483
0
              Mnemonic = "v_rcp_f64";  // "v_rcp_f64_e32"
484
0
              return;
485
0
            }
486
0
            break;
487
0
          case 's':  // 3 strings to match.
488
0
            if (memcmp(Mnemonic.data()+4, "q_f", 3) != 0)
489
0
              break;
490
0
            switch (Mnemonic[7]) {
491
0
            default: break;
492
0
            case '1':  // 1 string to match.
493
0
              if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
494
0
                break;
495
0
              Mnemonic = "v_rsq_f16";  // "v_rsq_f16_e32"
496
0
              return;
497
0
            case '3':  // 1 string to match.
498
0
              if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
499
0
                break;
500
0
              Mnemonic = "v_rsq_f32";  // "v_rsq_f32_e32"
501
0
              return;
502
0
            case '6':  // 1 string to match.
503
0
              if (memcmp(Mnemonic.data()+8, "4_e32", 5) != 0)
504
0
                break;
505
0
              Mnemonic = "v_rsq_f64";  // "v_rsq_f64_e32"
506
0
              return;
507
0
            }
508
0
            break;
509
0
          }
510
0
          break;
511
63
        case 's':  // 7 strings to match.
512
63
          switch (Mnemonic[3]) {
513
63
          
default: break0
;
514
63
          case 'i':  // 2 strings to match.
515
0
            if (memcmp(Mnemonic.data()+4, "n_f", 3) != 0)
516
0
              break;
517
0
            switch (Mnemonic[7]) {
518
0
            default: break;
519
0
            case '1':  // 1 string to match.
520
0
              if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
521
0
                break;
522
0
              Mnemonic = "v_sin_f16";  // "v_sin_f16_e32"
523
0
              return;
524
0
            case '3':  // 1 string to match.
525
0
              if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
526
0
                break;
527
0
              Mnemonic = "v_sin_f32";  // "v_sin_f32_e32"
528
0
              return;
529
0
            }
530
0
            break;
531
63
          case 'u':  // 5 strings to match.
532
63
            if (memcmp(Mnemonic.data()+4, "b_", 2) != 0)
533
63
              break;
534
0
            switch (Mnemonic[6]) {
535
0
            default: break;
536
0
            case 'f':  // 2 strings to match.
537
0
              switch (Mnemonic[7]) {
538
0
              default: break;
539
0
              case '1':  // 1 string to match.
540
0
                if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
541
0
                  break;
542
0
                Mnemonic = "v_sub_f16";  // "v_sub_f16_e32"
543
0
                return;
544
0
              case '3':  // 1 string to match.
545
0
                if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
546
0
                  break;
547
0
                Mnemonic = "v_sub_f32";  // "v_sub_f32_e32"
548
0
                return;
549
0
              }
550
0
              break;
551
0
            case 'i':  // 1 string to match.
552
0
              if (memcmp(Mnemonic.data()+7, "32_e32", 6) != 0)
553
0
                break;
554
0
              Mnemonic = "v_sub_i32";  // "v_sub_i32_e32"
555
0
              return;
556
0
            case 'u':  // 2 strings to match.
557
0
              switch (Mnemonic[7]) {
558
0
              default: break;
559
0
              case '1':  // 1 string to match.
560
0
                if (memcmp(Mnemonic.data()+8, "6_e32", 5) != 0)
561
0
                  break;
562
0
                Mnemonic = "v_sub_u16";  // "v_sub_u16_e32"
563
0
                return;
564
0
              case '3':  // 1 string to match.
565
0
                if (memcmp(Mnemonic.data()+8, "2_e32", 5) != 0)
566
0
                  break;
567
0
                Mnemonic = "v_sub_u32";  // "v_sub_u32_e32"
568
0
                return;
569
0
              }
570
0
              break;
571
0
            }
572
0
            break;
573
63
          }
574
63
          break;
575
63
        case 'x':  // 1 string to match.
576
0
          if (memcmp(Mnemonic.data()+3, "or_b32_e32", 10) != 0)
577
0
            break;
578
0
          Mnemonic = "v_xor_b32";  // "v_xor_b32_e32"
579
0
          return;
580
10.1k
        }
581
10.1k
        break;
582
10.1k
      case 14:   // 16 strings to match.
583
6.14k
        if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
584
2.75k
          break;
585
3.38k
        switch (Mnemonic[2]) {
586
3.38k
        
default: break1.01k
;
587
3.38k
        case 'a':  // 2 strings to match.
588
275
          switch (Mnemonic[3]) {
589
275
          
default: break182
;
590
275
          case 'd':  // 1 string to match.
591
93
            if (memcmp(Mnemonic.data()+4, "dc_u32_e32", 10) != 0)
592
93
              break;
593
0
            Mnemonic = "v_addc_u32";   // "v_addc_u32_e32"
594
0
            return;
595
0
          case 's':  // 1 string to match.
596
0
            if (memcmp(Mnemonic.data()+4, "hr_i32_e32", 10) != 0)
597
0
              break;
598
0
            if (Features.test(Feature_isSICIBit))  // "v_ashr_i32_e32"
599
0
              Mnemonic = "v_ashr_i32";
600
0
            return;
601
275
          }
602
275
          break;
603
2.00k
        case 'c':  // 3 strings to match.
604
2.00k
          if (memcmp(Mnemonic.data()+3, "eil_f", 5) != 0)
605
2.00k
            break;
606
0
          switch (Mnemonic[8]) {
607
0
          default: break;
608
0
          case '1':  // 1 string to match.
609
0
            if (memcmp(Mnemonic.data()+9, "6_e32", 5) != 0)
610
0
              break;
611
0
            Mnemonic = "v_ceil_f16";   // "v_ceil_f16_e32"
612
0
            return;
613
0
          case '3':  // 1 string to match.
614
0
            if (memcmp(Mnemonic.data()+9, "2_e32", 5) != 0)
615
0
              break;
616
0
            Mnemonic = "v_ceil_f32";   // "v_ceil_f32_e32"
617
0
            return;
618
0
          case '6':  // 1 string to match.
619
0
            if (memcmp(Mnemonic.data()+9, "4_e32", 5) != 0)
620
0
              break;
621
0
            Mnemonic = "v_ceil_f64";   // "v_ceil_f64_e32"
622
0
            return;
623
0
          }
624
0
          break;
625
0
        case 'f':  // 4 strings to match.
626
0
          switch (Mnemonic[3]) {
627
0
          default: break;
628
0
          case 'f':  // 3 strings to match.
629
0
            if (Mnemonic[4] != 'b')
630
0
              break;
631
0
            switch (Mnemonic[5]) {
632
0
            default: break;
633
0
            case 'h':  // 2 strings to match.
634
0
              if (Mnemonic[6] != '_')
635
0
                break;
636
0
              switch (Mnemonic[7]) {
637
0
              default: break;
638
0
              case 'i':  // 1 string to match.
639
0
                if (memcmp(Mnemonic.data()+8, "32_e32", 6) != 0)
640
0
                  break;
641
0
                Mnemonic = "v_ffbh_i32";   // "v_ffbh_i32_e32"
642
0
                return;
643
0
              case 'u':  // 1 string to match.
644
0
                if (memcmp(Mnemonic.data()+8, "32_e32", 6) != 0)
645
0
                  break;
646
0
                Mnemonic = "v_ffbh_u32";   // "v_ffbh_u32_e32"
647
0
                return;
648
0
              }
649
0
              break;
650
0
            case 'l':  // 1 string to match.
651
0
              if (memcmp(Mnemonic.data()+6, "_b32_e32", 8) != 0)
652
0
                break;
653
0
              Mnemonic = "v_ffbl_b32";   // "v_ffbl_b32_e32"
654
0
              return;
655
0
            }
656
0
            break;
657
0
          case 'm':  // 1 string to match.
658
0
            if (memcmp(Mnemonic.data()+4, "ac_f32_e32", 10) != 0)
659
0
              break;
660
0
            Mnemonic = "v_fmac_f32";   // "v_fmac_f32_e32"
661
0
            return;
662
0
          }
663
0
          break;
664
93
        case 'l':  // 2 strings to match.
665
93
          if (memcmp(Mnemonic.data()+3, "sh", 2) != 0)
666
0
            break;
667
93
          switch (Mnemonic[5]) {
668
93
          
default: break0
;
669
93
          case 'l':  // 1 string to match.
670
93
            if (memcmp(Mnemonic.data()+6, "_b32_e32", 8) != 0)
671
93
              break;
672
0
            if (Features.test(Feature_isSICIBit))  // "v_lshl_b32_e32"
673
0
              Mnemonic = "v_lshl_b32";
674
0
            return;
675
0
          case 'r':  // 1 string to match.
676
0
            if (memcmp(Mnemonic.data()+6, "_b32_e32", 8) != 0)
677
0
              break;
678
0
            if (Features.test(Feature_isSICIBit))  // "v_lshr_b32_e32"
679
0
              Mnemonic = "v_lshr_b32";
680
0
            return;
681
93
          }
682
93
          break;
683
93
        case 's':  // 4 strings to match.
684
0
          switch (Mnemonic[3]) {
685
0
          default: break;
686
0
          case 'q':  // 3 strings to match.
687
0
            if (memcmp(Mnemonic.data()+4, "rt_f", 4) != 0)
688
0
              break;
689
0
            switch (Mnemonic[8]) {
690
0
            default: break;
691
0
            case '1':  // 1 string to match.
692
0
              if (memcmp(Mnemonic.data()+9, "6_e32", 5) != 0)
693
0
                break;
694
0
              Mnemonic = "v_sqrt_f16";   // "v_sqrt_f16_e32"
695
0
              return;
696
0
            case '3':  // 1 string to match.
697
0
              if (memcmp(Mnemonic.data()+9, "2_e32", 5) != 0)
698
0
                break;
699
0
              Mnemonic = "v_sqrt_f32";   // "v_sqrt_f32_e32"
700
0
              return;
701
0
            case '6':  // 1 string to match.
702
0
              if (memcmp(Mnemonic.data()+9, "4_e32", 5) != 0)
703
0
                break;
704
0
              Mnemonic = "v_sqrt_f64";   // "v_sqrt_f64_e32"
705
0
              return;
706
0
            }
707
0
            break;
708
0
          case 'u':  // 1 string to match.
709
0
            if (memcmp(Mnemonic.data()+4, "bb_u32_e32", 10) != 0)
710
0
              break;
711
0
            Mnemonic = "v_subb_u32";   // "v_subb_u32_e32"
712
0
            return;
713
0
          }
714
0
          break;
715
0
        case 'x':  // 1 string to match.
716
0
          if (memcmp(Mnemonic.data()+3, "nor_b32_e32", 11) != 0)
717
0
            break;
718
0
          Mnemonic = "v_xnor_b32";   // "v_xnor_b32_e32"
719
0
          return;
720
3.38k
        }
721
3.38k
        break;
722
5.91k
      case 15:   // 17 strings to match.
723
5.91k
        if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
724
2.90k
          break;
725
3.00k
        switch (Mnemonic[2]) {
726
3.00k
        
default: break2.45k
;
727
3.00k
        case 'b':  // 1 string to match.
728
0
          if (memcmp(Mnemonic.data()+3, "frev_b32_e32", 12) != 0)
729
0
            break;
730
0
          Mnemonic = "v_bfrev_b32";  // "v_bfrev_b32_e32"
731
0
          return;
732
22
        case 'f':  // 6 strings to match.
733
22
          switch (Mnemonic[3]) {
734
22
          default: break;
735
22
          case 'l':  // 3 strings to match.
736
0
            if (memcmp(Mnemonic.data()+4, "oor_f", 5) != 0)
737
0
              break;
738
0
            switch (Mnemonic[9]) {
739
0
            default: break;
740
0
            case '1':  // 1 string to match.
741
0
              if (memcmp(Mnemonic.data()+10, "6_e32", 5) != 0)
742
0
                break;
743
0
              Mnemonic = "v_floor_f16";  // "v_floor_f16_e32"
744
0
              return;
745
0
            case '3':  // 1 string to match.
746
0
              if (memcmp(Mnemonic.data()+10, "2_e32", 5) != 0)
747
0
                break;
748
0
              Mnemonic = "v_floor_f32";  // "v_floor_f32_e32"
749
0
              return;
750
0
            case '6':  // 1 string to match.
751
0
              if (memcmp(Mnemonic.data()+10, "4_e32", 5) != 0)
752
0
                break;
753
0
              Mnemonic = "v_floor_f64";  // "v_floor_f64_e32"
754
0
              return;
755
0
            }
756
0
            break;
757
0
          case 'r':  // 3 strings to match.
758
0
            if (memcmp(Mnemonic.data()+4, "act_f", 5) != 0)
759
0
              break;
760
0
            switch (Mnemonic[9]) {
761
0
            default: break;
762
0
            case '1':  // 1 string to match.
763
0
              if (memcmp(Mnemonic.data()+10, "6_e32", 5) != 0)
764
0
                break;
765
0
              Mnemonic = "v_fract_f16";  // "v_fract_f16_e32"
766
0
              return;
767
0
            case '3':  // 1 string to match.
768
0
              if (memcmp(Mnemonic.data()+10, "2_e32", 5) != 0)
769
0
                break;
770
0
              Mnemonic = "v_fract_f32";  // "v_fract_f32_e32"
771
0
              return;
772
0
            case '6':  // 1 string to match.
773
0
              if (memcmp(Mnemonic.data()+10, "4_e32", 5) != 0)
774
0
                break;
775
0
              Mnemonic = "v_fract_f64";  // "v_fract_f64_e32"
776
0
              return;
777
0
            }
778
0
            break;
779
22
          }
780
22
          break;
781
41
        case 'l':  // 2 strings to match.
782
41
          if (memcmp(Mnemonic.data()+3, "dexp_f", 6) != 0)
783
41
            break;
784
0
          switch (Mnemonic[9]) {
785
0
          default: break;
786
0
          case '1':  // 1 string to match.
787
0
            if (memcmp(Mnemonic.data()+10, "6_e32", 5) != 0)
788
0
              break;
789
0
            Mnemonic = "v_ldexp_f16";  // "v_ldexp_f16_e32"
790
0
            return;
791
0
          case '3':  // 1 string to match.
792
0
            if (memcmp(Mnemonic.data()+10, "2_e32", 5) != 0)
793
0
              break;
794
0
            Mnemonic = "v_ldexp_f32";  // "v_ldexp_f32_e32"
795
0
            return;
796
0
          }
797
0
          break;
798
272
        case 'm':  // 2 strings to match.
799
272
          if (memcmp(Mnemonic.data()+3, "ad", 2) != 0)
800
0
            break;
801
272
          switch (Mnemonic[5]) {
802
272
          default: break;
803
272
          case 'a':  // 1 string to match.
804
0
            if (memcmp(Mnemonic.data()+6, "k_f32_e32", 9) != 0)
805
0
              break;
806
0
            Mnemonic = "v_madak_f32";  // "v_madak_f32_e32"
807
0
            return;
808
0
          case 'm':  // 1 string to match.
809
0
            if (memcmp(Mnemonic.data()+6, "k_f32_e32", 9) != 0)
810
0
              break;
811
0
            Mnemonic = "v_madmk_f32";  // "v_madmk_f32_e32"
812
0
            return;
813
272
          }
814
272
          break;
815
272
        case 'r':  // 3 strings to match.
816
215
          if (memcmp(Mnemonic.data()+3, "ndne_f", 6) != 0)
817
215
            break;
818
0
          switch (Mnemonic[9]) {
819
0
          default: break;
820
0
          case '1':  // 1 string to match.
821
0
            if (memcmp(Mnemonic.data()+10, "6_e32", 5) != 0)
822
0
              break;
823
0
            Mnemonic = "v_rndne_f16";  // "v_rndne_f16_e32"
824
0
            return;
825
0
          case '3':  // 1 string to match.
826
0
            if (memcmp(Mnemonic.data()+10, "2_e32", 5) != 0)
827
0
              break;
828
0
            Mnemonic = "v_rndne_f32";  // "v_rndne_f32_e32"
829
0
            return;
830
0
          case '6':  // 1 string to match.
831
0
            if (memcmp(Mnemonic.data()+10, "4_e32", 5) != 0)
832
0
              break;
833
0
            Mnemonic = "v_rndne_f64";  // "v_rndne_f64_e32"
834
0
            return;
835
0
          }
836
0
          break;
837
0
        case 't':  // 3 strings to match.
838
0
          if (memcmp(Mnemonic.data()+3, "runc_f", 6) != 0)
839
0
            break;
840
0
          switch (Mnemonic[9]) {
841
0
          default: break;
842
0
          case '1':  // 1 string to match.
843
0
            if (memcmp(Mnemonic.data()+10, "6_e32", 5) != 0)
844
0
              break;
845
0
            Mnemonic = "v_trunc_f16";  // "v_trunc_f16_e32"
846
0
            return;
847
0
          case '3':  // 1 string to match.
848
0
            if (memcmp(Mnemonic.data()+10, "2_e32", 5) != 0)
849
0
              break;
850
0
            Mnemonic = "v_trunc_f32";  // "v_trunc_f32_e32"
851
0
            return;
852
0
          case '6':  // 1 string to match.
853
0
            if (memcmp(Mnemonic.data()+10, "4_e32", 5) != 0)
854
0
              break;
855
0
            Mnemonic = "v_trunc_f64";  // "v_trunc_f64_e32"
856
0
            return;
857
0
          }
858
0
          break;
859
3.00k
        }
860
3.00k
        break;
861
5.08k
      case 16:   // 6 strings to match.
862
5.08k
        if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
863
1.87k
          break;
864
3.20k
        switch (Mnemonic[2]) {
865
3.20k
        
default: break2.23k
;
866
3.20k
        case 'm':  // 1 string to match.
867
948
          if (memcmp(Mnemonic.data()+3, "ul_lo_u16_e32", 13) != 0)
868
948
            break;
869
0
          Mnemonic = "v_mul_lo_u16";   // "v_mul_lo_u16_e32"
870
0
          return;
871
24
        case 's':  // 5 strings to match.
872
24
          if (memcmp(Mnemonic.data()+3, "ubrev_", 6) != 0)
873
24
            break;
874
0
          switch (Mnemonic[9]) {
875
0
          default: break;
876
0
          case 'f':  // 2 strings to match.
877
0
            switch (Mnemonic[10]) {
878
0
            default: break;
879
0
            case '1':  // 1 string to match.
880
0
              if (memcmp(Mnemonic.data()+11, "6_e32", 5) != 0)
881
0
                break;
882
0
              Mnemonic = "v_subrev_f16";   // "v_subrev_f16_e32"
883
0
              return;
884
0
            case '3':  // 1 string to match.
885
0
              if (memcmp(Mnemonic.data()+11, "2_e32", 5) != 0)
886
0
                break;
887
0
              Mnemonic = "v_subrev_f32";   // "v_subrev_f32_e32"
888
0
              return;
889
0
            }
890
0
            break;
891
0
          case 'i':  // 1 string to match.
892
0
            if (memcmp(Mnemonic.data()+10, "32_e32", 6) != 0)
893
0
              break;
894
0
            Mnemonic = "v_subrev_i32";   // "v_subrev_i32_e32"
895
0
            return;
896
0
          case 'u':  // 2 strings to match.
897
0
            switch (Mnemonic[10]) {
898
0
            default: break;
899
0
            case '1':  // 1 string to match.
900
0
              if (memcmp(Mnemonic.data()+11, "6_e32", 5) != 0)
901
0
                break;
902
0
              Mnemonic = "v_subrev_u16";   // "v_subrev_u16_e32"
903
0
              return;
904
0
            case '3':  // 1 string to match.
905
0
              if (memcmp(Mnemonic.data()+11, "2_e32", 5) != 0)
906
0
                break;
907
0
              Mnemonic = "v_subrev_u32";   // "v_subrev_u32_e32"
908
0
              return;
909
0
            }
910
0
            break;
911
0
          }
912
0
          break;
913
3.20k
        }
914
3.20k
        break;
915
3.79k
      case 17:   // 29 strings to match.
916
3.79k
        if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
917
3.18k
          break;
918
612
        switch (Mnemonic[2]) {
919
612
        
default: break191
;
920
612
        case 'a':  // 2 strings to match.
921
0
          if (memcmp(Mnemonic.data()+3, "shrrev_i", 8) != 0)
922
0
            break;
923
0
          switch (Mnemonic[11]) {
924
0
          default: break;
925
0
          case '1':  // 1 string to match.
926
0
            if (memcmp(Mnemonic.data()+12, "6_e32", 5) != 0)
927
0
              break;
928
0
            Mnemonic = "v_ashrrev_i16";  // "v_ashrrev_i16_e32"
929
0
            return;
930
0
          case '3':  // 1 string to match.
931
0
            if (memcmp(Mnemonic.data()+12, "2_e32", 5) != 0)
932
0
              break;
933
0
            Mnemonic = "v_ashrrev_i32";  // "v_ashrrev_i32_e32"
934
0
            return;
935
0
          }
936
0
          break;
937
210
        case 'c':  // 17 strings to match.
938
210
          switch (Mnemonic[3]) {
939
210
          
default: break0
;
940
210
          case 'n':  // 1 string to match.
941
0
            if (memcmp(Mnemonic.data()+4, "dmask_b32_e32", 13) != 0)
942
0
              break;
943
0
            Mnemonic = "v_cndmask_b32";  // "v_cndmask_b32_e32"
944
0
            return;
945
210
          case 'v':  // 16 strings to match.
946
210
            if (memcmp(Mnemonic.data()+4, "t_", 2) != 0)
947
0
              break;
948
210
            switch (Mnemonic[6]) {
949
210
            
default: break101
;
950
210
            case 'f':  // 10 strings to match.
951
109
              switch (Mnemonic[7]) {
952
109
              default: break;
953
109
              case '1':  // 3 strings to match.
954
0
                if (memcmp(Mnemonic.data()+8, "6_", 2) != 0)
955
0
                  break;
956
0
                switch (Mnemonic[10]) {
957
0
                default: break;
958
0
                case 'f':  // 1 string to match.
959
0
                  if (memcmp(Mnemonic.data()+11, "32_e32", 6) != 0)
960
0
                    break;
961
0
                  Mnemonic = "v_cvt_f16_f32";  // "v_cvt_f16_f32_e32"
962
0
                  return;
963
0
                case 'i':  // 1 string to match.
964
0
                  if (memcmp(Mnemonic.data()+11, "16_e32", 6) != 0)
965
0
                    break;
966
0
                  Mnemonic = "v_cvt_f16_i16";  // "v_cvt_f16_i16_e32"
967
0
                  return;
968
0
                case 'u':  // 1 string to match.
969
0
                  if (memcmp(Mnemonic.data()+11, "16_e32", 6) != 0)
970
0
                    break;
971
0
                  Mnemonic = "v_cvt_f16_u16";  // "v_cvt_f16_u16_e32"
972
0
                  return;
973
0
                }
974
0
                break;
975
0
              case '3':  // 4 strings to match.
976
0
                if (memcmp(Mnemonic.data()+8, "2_", 2) != 0)
977
0
                  break;
978
0
                switch (Mnemonic[10]) {
979
0
                default: break;
980
0
                case 'f':  // 2 strings to match.
981
0
                  switch (Mnemonic[11]) {
982
0
                  default: break;
983
0
                  case '1':  // 1 string to match.
984
0
                    if (memcmp(Mnemonic.data()+12, "6_e32", 5) != 0)
985
0
                      break;
986
0
                    Mnemonic = "v_cvt_f32_f16";  // "v_cvt_f32_f16_e32"
987
0
                    return;
988
0
                  case '6':  // 1 string to match.
989
0
                    if (memcmp(Mnemonic.data()+12, "4_e32", 5) != 0)
990
0
                      break;
991
0
                    Mnemonic = "v_cvt_f32_f64";  // "v_cvt_f32_f64_e32"
992
0
                    return;
993
0
                  }
994
0
                  break;
995
0
                case 'i':  // 1 string to match.
996
0
                  if (memcmp(Mnemonic.data()+11, "32_e32", 6) != 0)
997
0
                    break;
998
0
                  Mnemonic = "v_cvt_f32_i32";  // "v_cvt_f32_i32_e32"
999
0
                  return;
1000
0
                case 'u':  // 1 string to match.
1001
0
                  if (memcmp(Mnemonic.data()+11, "32_e32", 6) != 0)
1002
0
                    break;
1003
0
                  Mnemonic = "v_cvt_f32_u32";  // "v_cvt_f32_u32_e32"
1004
0
                  return;
1005
0
                }
1006
0
                break;
1007
0
              case '6':  // 3 strings to match.
1008
0
                if (memcmp(Mnemonic.data()+8, "4_", 2) != 0)
1009
0
                  break;
1010
0
                switch (Mnemonic[10]) {
1011
0
                default: break;
1012
0
                case 'f':  // 1 string to match.
1013
0
                  if (memcmp(Mnemonic.data()+11, "32_e32", 6) != 0)
1014
0
                    break;
1015
0
                  Mnemonic = "v_cvt_f64_f32";  // "v_cvt_f64_f32_e32"
1016
0
                  return;
1017
0
                case 'i':  // 1 string to match.
1018
0
                  if (memcmp(Mnemonic.data()+11, "32_e32", 6) != 0)
1019
0
                    break;
1020
0
                  Mnemonic = "v_cvt_f64_i32";  // "v_cvt_f64_i32_e32"
1021
0
                  return;
1022
0
                case 'u':  // 1 string to match.
1023
0
                  if (memcmp(Mnemonic.data()+11, "32_e32", 6) != 0)
1024
0
                    break;
1025
0
                  Mnemonic = "v_cvt_f64_u32";  // "v_cvt_f64_u32_e32"
1026
0
                  return;
1027
0
                }
1028
0
                break;
1029
109
              }
1030
109
              break;
1031
109
            case 'i':  // 3 strings to match.
1032
0
              switch (Mnemonic[7]) {
1033
0
              default: break;
1034
0
              case '1':  // 1 string to match.
1035
0
                if (memcmp(Mnemonic.data()+8, "6_f16_e32", 9) != 0)
1036
0
                  break;
1037
0
                Mnemonic = "v_cvt_i16_f16";  // "v_cvt_i16_f16_e32"
1038
0
                return;
1039
0
              case '3':  // 2 strings to match.
1040
0
                if (memcmp(Mnemonic.data()+8, "2_f", 3) != 0)
1041
0
                  break;
1042
0
                switch (Mnemonic[11]) {
1043
0
                default: break;
1044
0
                case '3':  // 1 string to match.
1045
0
                  if (memcmp(Mnemonic.data()+12, "2_e32", 5) != 0)
1046
0
                    break;
1047
0
                  Mnemonic = "v_cvt_i32_f32";  // "v_cvt_i32_f32_e32"
1048
0
                  return;
1049
0
                case '6':  // 1 string to match.
1050
0
                  if (memcmp(Mnemonic.data()+12, "4_e32", 5) != 0)
1051
0
                    break;
1052
0
                  Mnemonic = "v_cvt_i32_f64";  // "v_cvt_i32_f64_e32"
1053
0
                  return;
1054
0
                }
1055
0
                break;
1056
0
              }
1057
0
              break;
1058
0
            case 'u':  // 3 strings to match.
1059
0
              switch (Mnemonic[7]) {
1060
0
              default: break;
1061
0
              case '1':  // 1 string to match.
1062
0
                if (memcmp(Mnemonic.data()+8, "6_f16_e32", 9) != 0)
1063
0
                  break;
1064
0
                Mnemonic = "v_cvt_u16_f16";  // "v_cvt_u16_f16_e32"
1065
0
                return;
1066
0
              case '3':  // 2 strings to match.
1067
0
                if (memcmp(Mnemonic.data()+8, "2_f", 3) != 0)
1068
0
                  break;
1069
0
                switch (Mnemonic[11]) {
1070
0
                default: break;
1071
0
                case '3':  // 1 string to match.
1072
0
                  if (memcmp(Mnemonic.data()+12, "2_e32", 5) != 0)
1073
0
                    break;
1074
0
                  Mnemonic = "v_cvt_u32_f32";  // "v_cvt_u32_f32_e32"
1075
0
                  return;
1076
0
                case '6':  // 1 string to match.
1077
0
                  if (memcmp(Mnemonic.data()+12, "4_e32", 5) != 0)
1078
0
                    break;
1079
0
                  Mnemonic = "v_cvt_u32_f64";  // "v_cvt_u32_f64_e32"
1080
0
                  return;
1081
0
                }
1082
0
                break;
1083
0
              }
1084
0
              break;
1085
210
            }
1086
210
            break;
1087
210
          }
1088
210
          break;
1089
210
        case 'l':  // 4 strings to match.
1090
0
          if (memcmp(Mnemonic.data()+3, "sh", 2) != 0)
1091
0
            break;
1092
0
          switch (Mnemonic[5]) {
1093
0
          default: break;
1094
0
          case 'l':  // 2 strings to match.
1095
0
            if (memcmp(Mnemonic.data()+6, "rev_b", 5) != 0)
1096
0
              break;
1097
0
            switch (Mnemonic[11]) {
1098
0
            default: break;
1099
0
            case '1':  // 1 string to match.
1100
0
              if (memcmp(Mnemonic.data()+12, "6_e32", 5) != 0)
1101
0
                break;
1102
0
              Mnemonic = "v_lshlrev_b16";  // "v_lshlrev_b16_e32"
1103
0
              return;
1104
0
            case '3':  // 1 string to match.
1105
0
              if (memcmp(Mnemonic.data()+12, "2_e32", 5) != 0)
1106
0
                break;
1107
0
              Mnemonic = "v_lshlrev_b32";  // "v_lshlrev_b32_e32"
1108
0
              return;
1109
0
            }
1110
0
            break;
1111
0
          case 'r':  // 2 strings to match.
1112
0
            if (memcmp(Mnemonic.data()+6, "rev_b", 5) != 0)
1113
0
              break;
1114
0
            switch (Mnemonic[11]) {
1115
0
            default: break;
1116
0
            case '1':  // 1 string to match.
1117
0
              if (memcmp(Mnemonic.data()+12, "6_e32", 5) != 0)
1118
0
                break;
1119
0
              Mnemonic = "v_lshrrev_b16";  // "v_lshrrev_b16_e32"
1120
0
              return;
1121
0
            case '3':  // 1 string to match.
1122
0
              if (memcmp(Mnemonic.data()+12, "2_e32", 5) != 0)
1123
0
                break;
1124
0
              Mnemonic = "v_lshrrev_b32";  // "v_lshrrev_b32_e32"
1125
0
              return;
1126
0
            }
1127
0
            break;
1128
0
          }
1129
0
          break;
1130
211
        case 'm':  // 5 strings to match.
1131
211
          switch (Mnemonic[3]) {
1132
211
          default: break;
1133
211
          case 'o':  // 3 strings to match.
1134
0
            if (Mnemonic[4] != 'v')
1135
0
              break;
1136
0
            switch (Mnemonic[5]) {
1137
0
            default: break;
1138
0
            case '_':  // 1 string to match.
1139
0
              if (memcmp(Mnemonic.data()+6, "fed_b32_e32", 11) != 0)
1140
0
                break;
1141
0
              Mnemonic = "v_mov_fed_b32";  // "v_mov_fed_b32_e32"
1142
0
              return;
1143
0
            case 'r':  // 2 strings to match.
1144
0
              if (memcmp(Mnemonic.data()+6, "el", 2) != 0)
1145
0
                break;
1146
0
              switch (Mnemonic[8]) {
1147
0
              default: break;
1148
0
              case 'd':  // 1 string to match.
1149
0
                if (memcmp(Mnemonic.data()+9, "_b32_e32", 8) != 0)
1150
0
                  break;
1151
0
                Mnemonic = "v_movreld_b32";  // "v_movreld_b32_e32"
1152
0
                return;
1153
0
              case 's':  // 1 string to match.
1154
0
                if (memcmp(Mnemonic.data()+9, "_b32_e32", 8) != 0)
1155
0
                  break;
1156
0
                Mnemonic = "v_movrels_b32";  // "v_movrels_b32_e32"
1157
0
                return;
1158
0
              }
1159
0
              break;
1160
0
            }
1161
0
            break;
1162
0
          case 'u':  // 2 strings to match.
1163
0
            if (memcmp(Mnemonic.data()+4, "l_", 2) != 0)
1164
0
              break;
1165
0
            switch (Mnemonic[6]) {
1166
0
            default: break;
1167
0
            case 'i':  // 1 string to match.
1168
0
              if (memcmp(Mnemonic.data()+7, "32_i24_e32", 10) != 0)
1169
0
                break;
1170
0
              Mnemonic = "v_mul_i32_i24";  // "v_mul_i32_i24_e32"
1171
0
              return;
1172
0
            case 'u':  // 1 string to match.
1173
0
              if (memcmp(Mnemonic.data()+7, "32_u24_e32", 10) != 0)
1174
0
                break;
1175
0
              Mnemonic = "v_mul_u32_u24";  // "v_mul_u32_u24_e32"
1176
0
              return;
1177
0
            }
1178
0
            break;
1179
211
          }
1180
211
          break;
1181
211
        case 's':  // 1 string to match.
1182
0
          if (memcmp(Mnemonic.data()+3, "ubbrev_u32_e32", 14) != 0)
1183
0
            break;
1184
0
          Mnemonic = "v_subbrev_u32";  // "v_subbrev_u32_e32"
1185
0
          return;
1186
612
        }
1187
612
        break;
1188
2.58k
      case 18:   // 3 strings to match.
1189
2.58k
        if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
1190
2.30k
          break;
1191
280
        switch (Mnemonic[2]) {
1192
280
        
default: break16
;
1193
280
        case 'b':  // 1 string to match.
1194
0
          if (memcmp(Mnemonic.data()+3, "cnt_u32_b32_e32", 15) != 0)
1195
0
            break;
1196
0
          Mnemonic = "v_bcnt_u32_b32";   // "v_bcnt_u32_b32_e32"
1197
0
          return;
1198
264
        case 'm':  // 1 string to match.
1199
264
          if (memcmp(Mnemonic.data()+3, "ovrelsd_b32_e32", 15) != 0)
1200
264
            break;
1201
0
          Mnemonic = "v_movrelsd_b32";   // "v_movrelsd_b32_e32"
1202
0
          return;
1203
0
        case 'r':  // 1 string to match.
1204
0
          if (memcmp(Mnemonic.data()+3, "eadlane_b32_e32", 15) != 0)
1205
0
            break;
1206
0
          Mnemonic = "v_readlane_b32";   // "v_readlane_b32_e32"
1207
0
          return;
1208
280
        }
1209
280
        break;
1210
2.10k
      case 19:   // 8 strings to match.
1211
2.10k
        if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
1212
1.63k
          break;
1213
470
        switch (Mnemonic[2]) {
1214
470
        
default: break424
;
1215
470
        case 'l':  // 1 string to match.
1216
0
          if (memcmp(Mnemonic.data()+3, "og_clamp_f32_e32", 16) != 0)
1217
0
            break;
1218
0
          Mnemonic = "v_log_clamp_f32";  // "v_log_clamp_f32_e32"
1219
0
          return;
1220
46
        case 'r':  // 5 strings to match.
1221
46
          switch (Mnemonic[3]) {
1222
46
          default: break;
1223
46
          case 'c':  // 3 strings to match.
1224
0
            if (memcmp(Mnemonic.data()+4, "p_", 2) != 0)
1225
0
              break;
1226
0
            switch (Mnemonic[6]) {
1227
0
            default: break;
1228
0
            case 'c':  // 2 strings to match.
1229
0
              if (memcmp(Mnemonic.data()+7, "lamp_f", 6) != 0)
1230
0
                break;
1231
0
              switch (Mnemonic[13]) {
1232
0
              default: break;
1233
0
              case '3':  // 1 string to match.
1234
0
                if (memcmp(Mnemonic.data()+14, "2_e32", 5) != 0)
1235
0
                  break;
1236
0
                Mnemonic = "v_rcp_clamp_f32";  // "v_rcp_clamp_f32_e32"
1237
0
                return;
1238
0
              case '6':  // 1 string to match.
1239
0
                if (memcmp(Mnemonic.data()+14, "4_e32", 5) != 0)
1240
0
                  break;
1241
0
                Mnemonic = "v_rcp_clamp_f64";  // "v_rcp_clamp_f64_e32"
1242
0
                return;
1243
0
              }
1244
0
              break;
1245
0
            case 'i':  // 1 string to match.
1246
0
              if (memcmp(Mnemonic.data()+7, "flag_f32_e32", 12) != 0)
1247
0
                break;
1248
0
              Mnemonic = "v_rcp_iflag_f32";  // "v_rcp_iflag_f32_e32"
1249
0
              return;
1250
0
            }
1251
0
            break;
1252
0
          case 's':  // 2 strings to match.
1253
0
            if (memcmp(Mnemonic.data()+4, "q_clamp_f", 9) != 0)
1254
0
              break;
1255
0
            switch (Mnemonic[13]) {
1256
0
            default: break;
1257
0
            case '3':  // 1 string to match.
1258
0
              if (memcmp(Mnemonic.data()+14, "2_e32", 5) != 0)
1259
0
                break;
1260
0
              Mnemonic = "v_rsq_clamp_f32";  // "v_rsq_clamp_f32_e32"
1261
0
              return;
1262
0
            case '6':  // 1 string to match.
1263
0
              if (memcmp(Mnemonic.data()+14, "4_e32", 5) != 0)
1264
0
                break;
1265
0
              Mnemonic = "v_rsq_clamp_f64";  // "v_rsq_clamp_f64_e32"
1266
0
              return;
1267
0
            }
1268
0
            break;
1269
46
          }
1270
46
          break;
1271
46
        case 's':  // 1 string to match.
1272
0
          if (memcmp(Mnemonic.data()+3, "at_pk_u8_i16_e32", 16) != 0)
1273
0
            break;
1274
0
          Mnemonic = "v_sat_pk_u8_i16";  // "v_sat_pk_u8_i16_e32"
1275
0
          return;
1276
0
        case 'w':  // 1 string to match.
1277
0
          if (memcmp(Mnemonic.data()+3, "ritelane_b32_e32", 16) != 0)
1278
0
            break;
1279
0
          Mnemonic = "v_writelane_b32";  // "v_writelane_b32_e32"
1280
0
          return;
1281
470
        }
1282
470
        break;
1283
2.02k
      case 20:   // 20 strings to match.
1284
2.02k
        if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
1285
1.38k
          break;
1286
641
        switch (Mnemonic[2]) {
1287
641
        
default: break0
;
1288
641
        case 'c':  // 7 strings to match.
1289
641
          if (memcmp(Mnemonic.data()+3, "vt_", 3) != 0)
1290
0
            break;
1291
641
          switch (Mnemonic[6]) {
1292
641
          
default: break0
;
1293
641
          case 'f':  // 4 strings to match.
1294
0
            if (memcmp(Mnemonic.data()+7, "32_ubyte", 8) != 0)
1295
0
              break;
1296
0
            switch (Mnemonic[15]) {
1297
0
            default: break;
1298
0
            case '0':  // 1 string to match.
1299
0
              if (memcmp(Mnemonic.data()+16, "_e32", 4) != 0)
1300
0
                break;
1301
0
              Mnemonic = "v_cvt_f32_ubyte0";   // "v_cvt_f32_ubyte0_e32"
1302
0
              return;
1303
0
            case '1':  // 1 string to match.
1304
0
              if (memcmp(Mnemonic.data()+16, "_e32", 4) != 0)
1305
0
                break;
1306
0
              Mnemonic = "v_cvt_f32_ubyte1";   // "v_cvt_f32_ubyte1_e32"
1307
0
              return;
1308
0
            case '2':  // 1 string to match.
1309
0
              if (memcmp(Mnemonic.data()+16, "_e32", 4) != 0)
1310
0
                break;
1311
0
              Mnemonic = "v_cvt_f32_ubyte2";   // "v_cvt_f32_ubyte2_e32"
1312
0
              return;
1313
0
            case '3':  // 1 string to match.
1314
0
              if (memcmp(Mnemonic.data()+16, "_e32", 4) != 0)
1315
0
                break;
1316
0
              Mnemonic = "v_cvt_f32_ubyte3";   // "v_cvt_f32_ubyte3_e32"
1317
0
              return;
1318
0
            }
1319
0
            break;
1320
0
          case 'o':  // 1 string to match.
1321
0
            if (memcmp(Mnemonic.data()+7, "ff_f32_i4_e32", 13) != 0)
1322
0
              break;
1323
0
            Mnemonic = "v_cvt_off_f32_i4";   // "v_cvt_off_f32_i4_e32"
1324
0
            return;
1325
641
          case 'p':  // 2 strings to match.
1326
641
            if (memcmp(Mnemonic.data()+7, "k_", 2) != 0)
1327
641
              break;
1328
0
            switch (Mnemonic[9]) {
1329
0
            default: break;
1330
0
            case 'i':  // 1 string to match.
1331
0
              if (memcmp(Mnemonic.data()+10, "16_i32_e32", 10) != 0)
1332
0
                break;
1333
0
              Mnemonic = "v_cvt_pk_i16_i32";   // "v_cvt_pk_i16_i32_e32"
1334
0
              return;
1335
0
            case 'u':  // 1 string to match.
1336
0
              if (memcmp(Mnemonic.data()+10, "16_u32_e32", 10) != 0)
1337
0
                break;
1338
0
              Mnemonic = "v_cvt_pk_u16_u32";   // "v_cvt_pk_u16_u32_e32"
1339
0
              return;
1340
0
            }
1341
0
            break;
1342
641
          }
1343
641
          break;
1344
641
        case 'e':  // 1 string to match.
1345
0
          if (memcmp(Mnemonic.data()+3, "xp_legacy_f32_e32", 17) != 0)
1346
0
            break;
1347
0
          Mnemonic = "v_exp_legacy_f32";   // "v_exp_legacy_f32_e32"
1348
0
          return;
1349
0
        case 'f':  // 3 strings to match.
1350
0
          if (memcmp(Mnemonic.data()+3, "rexp_mant_f", 11) != 0)
1351
0
            break;
1352
0
          switch (Mnemonic[14]) {
1353
0
          default: break;
1354
0
          case '1':  // 1 string to match.
1355
0
            if (memcmp(Mnemonic.data()+15, "6_e32", 5) != 0)
1356
0
              break;
1357
0
            Mnemonic = "v_frexp_mant_f16";   // "v_frexp_mant_f16_e32"
1358
0
            return;
1359
0
          case '3':  // 1 string to match.
1360
0
            if (memcmp(Mnemonic.data()+15, "2_e32", 5) != 0)
1361
0
              break;
1362
0
            Mnemonic = "v_frexp_mant_f32";   // "v_frexp_mant_f32_e32"
1363
0
            return;
1364
0
          case '6':  // 1 string to match.
1365
0
            if (memcmp(Mnemonic.data()+15, "4_e32", 5) != 0)
1366
0
              break;
1367
0
            Mnemonic = "v_frexp_mant_f64";   // "v_frexp_mant_f64_e32"
1368
0
            return;
1369
0
          }
1370
0
          break;
1371
0
        case 'l':  // 1 string to match.
1372
0
          if (memcmp(Mnemonic.data()+3, "og_legacy_f32_e32", 17) != 0)
1373
0
            break;
1374
0
          Mnemonic = "v_log_legacy_f32";   // "v_log_legacy_f32_e32"
1375
0
          return;
1376
0
        case 'm':  // 6 strings to match.
1377
0
          switch (Mnemonic[3]) {
1378
0
          default: break;
1379
0
          case 'a':  // 2 strings to match.
1380
0
            switch (Mnemonic[4]) {
1381
0
            default: break;
1382
0
            case 'c':  // 1 string to match.
1383
0
              if (memcmp(Mnemonic.data()+5, "_legacy_f32_e32", 15) != 0)
1384
0
                break;
1385
0
              if (Features.test(Feature_isSICIBit))  // "v_mac_legacy_f32_e32"
1386
0
                Mnemonic = "v_mac_legacy_f32";
1387
0
              return;
1388
0
            case 'x':  // 1 string to match.
1389
0
              if (memcmp(Mnemonic.data()+5, "_legacy_f32_e32", 15) != 0)
1390
0
                break;
1391
0
              if (Features.test(Feature_isSICIBit))  // "v_max_legacy_f32_e32"
1392
0
                Mnemonic = "v_max_legacy_f32";
1393
0
              return;
1394
0
            }
1395
0
            break;
1396
0
          case 'i':  // 1 string to match.
1397
0
            if (memcmp(Mnemonic.data()+4, "n_legacy_f32_e32", 16) != 0)
1398
0
              break;
1399
0
            if (Features.test(Feature_isSICIBit))  // "v_min_legacy_f32_e32"
1400
0
              Mnemonic = "v_min_legacy_f32";
1401
0
            return;
1402
0
          case 'u':  // 3 strings to match.
1403
0
            if (memcmp(Mnemonic.data()+4, "l_", 2) != 0)
1404
0
              break;
1405
0
            switch (Mnemonic[6]) {
1406
0
            default: break;
1407
0
            case 'h':  // 2 strings to match.
1408
0
              if (memcmp(Mnemonic.data()+7, "i_", 2) != 0)
1409
0
                break;
1410
0
              switch (Mnemonic[9]) {
1411
0
              default: break;
1412
0
              case 'i':  // 1 string to match.
1413
0
                if (memcmp(Mnemonic.data()+10, "32_i24_e32", 10) != 0)
1414
0
                  break;
1415
0
                Mnemonic = "v_mul_hi_i32_i24";   // "v_mul_hi_i32_i24_e32"
1416
0
                return;
1417
0
              case 'u':  // 1 string to match.
1418
0
                if (memcmp(Mnemonic.data()+10, "32_u24_e32", 10) != 0)
1419
0
                  break;
1420
0
                Mnemonic = "v_mul_hi_u32_u24";   // "v_mul_hi_u32_u24_e32"
1421
0
                return;
1422
0
              }
1423
0
              break;
1424
0
            case 'l':  // 1 string to match.
1425
0
              if (memcmp(Mnemonic.data()+7, "egacy_f32_e32", 13) != 0)
1426
0
                break;
1427
0
              Mnemonic = "v_mul_legacy_f32";   // "v_mul_legacy_f32_e32"
1428
0
              return;
1429
0
            }
1430
0
            break;
1431
0
          }
1432
0
          break;
1433
0
        case 'r':  // 2 strings to match.
1434
0
          switch (Mnemonic[3]) {
1435
0
          default: break;
1436
0
          case 'c':  // 1 string to match.
1437
0
            if (memcmp(Mnemonic.data()+4, "p_legacy_f32_e32", 16) != 0)
1438
0
              break;
1439
0
            Mnemonic = "v_rcp_legacy_f32";   // "v_rcp_legacy_f32_e32"
1440
0
            return;
1441
0
          case 's':  // 1 string to match.
1442
0
            if (memcmp(Mnemonic.data()+4, "q_legacy_f32_e32", 16) != 0)
1443
0
              break;
1444
0
            Mnemonic = "v_rsq_legacy_f32";   // "v_rsq_legacy_f32_e32"
1445
0
            return;
1446
0
          }
1447
0
          break;
1448
641
        }
1449
641
        break;
1450
1.23k
      case 21:   // 2 strings to match.
1451
1.23k
        if (memcmp(Mnemonic.data()+0, "v_cvt_", 6) != 0)
1452
1.23k
          break;
1453
0
        switch (Mnemonic[6]) {
1454
0
        default: break;
1455
0
        case 'f':  // 1 string to match.
1456
0
          if (memcmp(Mnemonic.data()+7, "lr_i32_f32_e32", 14) != 0)
1457
0
            break;
1458
0
          Mnemonic = "v_cvt_flr_i32_f32";  // "v_cvt_flr_i32_f32_e32"
1459
0
          return;
1460
0
        case 'r':  // 1 string to match.
1461
0
          if (memcmp(Mnemonic.data()+7, "pi_i32_f32_e32", 14) != 0)
1462
0
            break;
1463
0
          Mnemonic = "v_cvt_rpi_i32_f32";  // "v_cvt_rpi_i32_f32_e32"
1464
0
          return;
1465
0
        }
1466
0
        break;
1467
1.00k
      case 22:   // 4 strings to match.
1468
1.00k
        if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
1469
842
          break;
1470
163
        switch (Mnemonic[2]) {
1471
163
        default: break;
1472
163
        case 'c':  // 2 strings to match.
1473
0
          if (memcmp(Mnemonic.data()+3, "vt_norm_", 8) != 0)
1474
0
            break;
1475
0
          switch (Mnemonic[11]) {
1476
0
          default: break;
1477
0
          case 'i':  // 1 string to match.
1478
0
            if (memcmp(Mnemonic.data()+12, "16_f16_e32", 10) != 0)
1479
0
              break;
1480
0
            Mnemonic = "v_cvt_norm_i16_f16";   // "v_cvt_norm_i16_f16_e32"
1481
0
            return;
1482
0
          case 'u':  // 1 string to match.
1483
0
            if (memcmp(Mnemonic.data()+12, "16_f16_e32", 10) != 0)
1484
0
              break;
1485
0
            Mnemonic = "v_cvt_norm_u16_f16";   // "v_cvt_norm_u16_f16_e32"
1486
0
            return;
1487
0
          }
1488
0
          break;
1489
0
        case 'm':  // 2 strings to match.
1490
0
          if (memcmp(Mnemonic.data()+3, "bcnt_", 5) != 0)
1491
0
            break;
1492
0
          switch (Mnemonic[8]) {
1493
0
          default: break;
1494
0
          case 'h':  // 1 string to match.
1495
0
            if (memcmp(Mnemonic.data()+9, "i_u32_b32_e32", 13) != 0)
1496
0
              break;
1497
0
            Mnemonic = "v_mbcnt_hi_u32_b32";   // "v_mbcnt_hi_u32_b32_e32"
1498
0
            return;
1499
0
          case 'l':  // 1 string to match.
1500
0
            if (memcmp(Mnemonic.data()+9, "o_u32_b32_e32", 13) != 0)
1501
0
              break;
1502
0
            Mnemonic = "v_mbcnt_lo_u32_b32";   // "v_mbcnt_lo_u32_b32_e32"
1503
0
            return;
1504
0
          }
1505
0
          break;
1506
163
        }
1507
163
        break;
1508
301
      case 23:   // 4 strings to match.
1509
301
        if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
1510
301
          break;
1511
0
        switch (Mnemonic[2]) {
1512
0
        default: break;
1513
0
        case 'c':  // 1 string to match.
1514
0
          if (memcmp(Mnemonic.data()+3, "vt_pkrtz_f16_f32_e32", 20) != 0)
1515
0
            break;
1516
0
          Mnemonic = "v_cvt_pkrtz_f16_f32";  // "v_cvt_pkrtz_f16_f32_e32"
1517
0
          return;
1518
0
        case 'f':  // 3 strings to match.
1519
0
          if (memcmp(Mnemonic.data()+3, "rexp_exp_i", 10) != 0)
1520
0
            break;
1521
0
          switch (Mnemonic[13]) {
1522
0
          default: break;
1523
0
          case '1':  // 1 string to match.
1524
0
            if (memcmp(Mnemonic.data()+14, "6_f16_e32", 9) != 0)
1525
0
              break;
1526
0
            Mnemonic = "v_frexp_exp_i16_f16";  // "v_frexp_exp_i16_f16_e32"
1527
0
            return;
1528
0
          case '3':  // 2 strings to match.
1529
0
            if (memcmp(Mnemonic.data()+14, "2_f", 3) != 0)
1530
0
              break;
1531
0
            switch (Mnemonic[17]) {
1532
0
            default: break;
1533
0
            case '3':  // 1 string to match.
1534
0
              if (memcmp(Mnemonic.data()+18, "2_e32", 5) != 0)
1535
0
                break;
1536
0
              Mnemonic = "v_frexp_exp_i32_f32";  // "v_frexp_exp_i32_f32_e32"
1537
0
              return;
1538
0
            case '6':  // 1 string to match.
1539
0
              if (memcmp(Mnemonic.data()+18, "4_e32", 5) != 0)
1540
0
                break;
1541
0
              Mnemonic = "v_frexp_exp_i32_f64";  // "v_frexp_exp_i32_f64_e32"
1542
0
              return;
1543
0
            }
1544
0
            break;
1545
0
          }
1546
0
          break;
1547
0
        }
1548
0
        break;
1549
409
      case 24:   // 3 strings to match.
1550
409
        if (memcmp(Mnemonic.data()+0, "v_cvt_pk", 8) != 0)
1551
409
          break;
1552
0
        switch (Mnemonic[8]) {
1553
0
        default: break;
1554
0
        case 'a':  // 1 string to match.
1555
0
          if (memcmp(Mnemonic.data()+9, "ccum_u8_f32_e32", 15) != 0)
1556
0
            break;
1557
0
          Mnemonic = "v_cvt_pkaccum_u8_f32";   // "v_cvt_pkaccum_u8_f32_e32"
1558
0
          return;
1559
0
        case 'n':  // 2 strings to match.
1560
0
          if (memcmp(Mnemonic.data()+9, "orm_", 4) != 0)
1561
0
            break;
1562
0
          switch (Mnemonic[13]) {
1563
0
          default: break;
1564
0
          case 'i':  // 1 string to match.
1565
0
            if (memcmp(Mnemonic.data()+14, "16_f32_e32", 10) != 0)
1566
0
              break;
1567
0
            Mnemonic = "v_cvt_pknorm_i16_f32";   // "v_cvt_pknorm_i16_f32_e32"
1568
0
            return;
1569
0
          case 'u':  // 1 string to match.
1570
0
            if (memcmp(Mnemonic.data()+14, "16_f32_e32", 10) != 0)
1571
0
              break;
1572
0
            Mnemonic = "v_cvt_pknorm_u16_f32";   // "v_cvt_pknorm_u16_f32_e32"
1573
0
            return;
1574
0
          }
1575
0
          break;
1576
0
        }
1577
0
        break;
1578
0
      case 30:   // 1 string to match.
1579
0
        if (memcmp(Mnemonic.data()+0, "v_screen_partition_4se_b32_e32", 30) != 0)
1580
0
          break;
1581
0
        Mnemonic = "v_screen_partition_4se_b32";   // "v_screen_partition_4se_b32_e32"
1582
0
        return;
1583
87.2k
      }
1584
87.2k
    break;
1585
87.2k
    case 1:
1586
67.6k
      switch (Mnemonic.size()) {
1587
67.6k
      
default: break10.1k
;
1588
67.6k
      case 9:  // 1 string to match.
1589
10.5k
        if (memcmp(Mnemonic.data()+0, "v_nop_e64", 9) != 0)
1590
10.5k
          break;
1591
0
        Mnemonic = "v_nop";  // "v_nop_e64"
1592
0
        return;
1593
14.3k
      case 12:   // 2 strings to match.
1594
14.3k
        if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
1595
151
          break;
1596
14.2k
        switch (Mnemonic[2]) {
1597
14.2k
        
default: break13.5k
;
1598
14.2k
        case 'o':  // 1 string to match.
1599
0
          if (memcmp(Mnemonic.data()+3, "r_b32_e64", 9) != 0)
1600
0
            break;
1601
0
          Mnemonic = "v_or_b32";   // "v_or_b32_e64"
1602
0
          return;
1603
724
        case 's':  // 1 string to match.
1604
724
          if (memcmp(Mnemonic.data()+3, "ad_u8_e64", 9) != 0)
1605
724
            break;
1606
0
          Mnemonic = "v_sad_u8";   // "v_sad_u8_e64"
1607
0
          return;
1608
14.2k
        }
1609
14.2k
        break;
1610
16.3k
      case 13:   // 68 strings to match.
1611
16.3k
        if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
1612
128
          break;
1613
16.1k
        switch (Mnemonic[2]) {
1614
16.1k
        
default: break116
;
1615
16.1k
        case 'a':  // 8 strings to match.
1616
398
          switch (Mnemonic[3]) {
1617
398
          
default: break351
;
1618
398
          case 'd':  // 7 strings to match.
1619
47
            if (memcmp(Mnemonic.data()+4, "d_", 2) != 0)
1620
47
              break;
1621
0
            switch (Mnemonic[6]) {
1622
0
            default: break;
1623
0
            case 'f':  // 3 strings to match.
1624
0
              switch (Mnemonic[7]) {
1625
0
              default: break;
1626
0
              case '1':  // 1 string to match.
1627
0
                if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1628
0
                  break;
1629
0
                Mnemonic = "v_add_f16";  // "v_add_f16_e64"
1630
0
                return;
1631
0
              case '3':  // 1 string to match.
1632
0
                if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1633
0
                  break;
1634
0
                Mnemonic = "v_add_f32";  // "v_add_f32_e64"
1635
0
                return;
1636
0
              case '6':  // 1 string to match.
1637
0
                if (memcmp(Mnemonic.data()+8, "4_e64", 5) != 0)
1638
0
                  break;
1639
0
                Mnemonic = "v_add_f64";  // "v_add_f64_e64"
1640
0
                return;
1641
0
              }
1642
0
              break;
1643
0
            case 'i':  // 2 strings to match.
1644
0
              switch (Mnemonic[7]) {
1645
0
              default: break;
1646
0
              case '1':  // 1 string to match.
1647
0
                if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1648
0
                  break;
1649
0
                Mnemonic = "v_add_i16";  // "v_add_i16_e64"
1650
0
                return;
1651
0
              case '3':  // 1 string to match.
1652
0
                if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1653
0
                  break;
1654
0
                Mnemonic = "v_add_i32";  // "v_add_i32_e64"
1655
0
                return;
1656
0
              }
1657
0
              break;
1658
0
            case 'u':  // 2 strings to match.
1659
0
              switch (Mnemonic[7]) {
1660
0
              default: break;
1661
0
              case '1':  // 1 string to match.
1662
0
                if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1663
0
                  break;
1664
0
                Mnemonic = "v_add_u16";  // "v_add_u16_e64"
1665
0
                return;
1666
0
              case '3':  // 1 string to match.
1667
0
                if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1668
0
                  break;
1669
0
                Mnemonic = "v_add_u32";  // "v_add_u32_e64"
1670
0
                return;
1671
0
              }
1672
0
              break;
1673
0
            }
1674
0
            break;
1675
0
          case 'n':  // 1 string to match.
1676
0
            if (memcmp(Mnemonic.data()+4, "d_b32_e64", 9) != 0)
1677
0
              break;
1678
0
            Mnemonic = "v_and_b32";  // "v_and_b32_e64"
1679
0
            return;
1680
398
          }
1681
398
          break;
1682
398
        case 'b':  // 4 strings to match.
1683
0
          if (Mnemonic[3] != 'f')
1684
0
            break;
1685
0
          switch (Mnemonic[4]) {
1686
0
          default: break;
1687
0
          case 'e':  // 2 strings to match.
1688
0
            if (Mnemonic[5] != '_')
1689
0
              break;
1690
0
            switch (Mnemonic[6]) {
1691
0
            default: break;
1692
0
            case 'i':  // 1 string to match.
1693
0
              if (memcmp(Mnemonic.data()+7, "32_e64", 6) != 0)
1694
0
                break;
1695
0
              Mnemonic = "v_bfe_i32";  // "v_bfe_i32_e64"
1696
0
              return;
1697
0
            case 'u':  // 1 string to match.
1698
0
              if (memcmp(Mnemonic.data()+7, "32_e64", 6) != 0)
1699
0
                break;
1700
0
              Mnemonic = "v_bfe_u32";  // "v_bfe_u32_e64"
1701
0
              return;
1702
0
            }
1703
0
            break;
1704
0
          case 'i':  // 1 string to match.
1705
0
            if (memcmp(Mnemonic.data()+5, "_b32_e64", 8) != 0)
1706
0
              break;
1707
0
            Mnemonic = "v_bfi_b32";  // "v_bfi_b32_e64"
1708
0
            return;
1709
0
          case 'm':  // 1 string to match.
1710
0
            if (memcmp(Mnemonic.data()+5, "_b32_e64", 8) != 0)
1711
0
              break;
1712
0
            Mnemonic = "v_bfm_b32";  // "v_bfm_b32_e64"
1713
0
            return;
1714
0
          }
1715
0
          break;
1716
12.9k
        case 'c':  // 3 strings to match.
1717
12.9k
          switch (Mnemonic[3]) {
1718
12.9k
          default: break;
1719
12.9k
          case 'l':  // 1 string to match.
1720
0
            if (memcmp(Mnemonic.data()+4, "rexcp_e64", 9) != 0)
1721
0
              break;
1722
0
            Mnemonic = "v_clrexcp";  // "v_clrexcp_e64"
1723
0
            return;
1724
0
          case 'o':  // 2 strings to match.
1725
0
            if (memcmp(Mnemonic.data()+4, "s_f", 3) != 0)
1726
0
              break;
1727
0
            switch (Mnemonic[7]) {
1728
0
            default: break;
1729
0
            case '1':  // 1 string to match.
1730
0
              if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1731
0
                break;
1732
0
              Mnemonic = "v_cos_f16";  // "v_cos_f16_e64"
1733
0
              return;
1734
0
            case '3':  // 1 string to match.
1735
0
              if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1736
0
                break;
1737
0
              Mnemonic = "v_cos_f32";  // "v_cos_f32_e64"
1738
0
              return;
1739
0
            }
1740
0
            break;
1741
12.9k
          }
1742
12.9k
          break;
1743
12.9k
        case 'e':  // 2 strings to match.
1744
0
          if (memcmp(Mnemonic.data()+3, "xp_f", 4) != 0)
1745
0
            break;
1746
0
          switch (Mnemonic[7]) {
1747
0
          default: break;
1748
0
          case '1':  // 1 string to match.
1749
0
            if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1750
0
              break;
1751
0
            Mnemonic = "v_exp_f16";  // "v_exp_f16_e64"
1752
0
            return;
1753
0
          case '3':  // 1 string to match.
1754
0
            if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1755
0
              break;
1756
0
            Mnemonic = "v_exp_f32";  // "v_exp_f32_e64"
1757
0
            return;
1758
0
          }
1759
0
          break;
1760
51
        case 'f':  // 3 strings to match.
1761
51
          if (memcmp(Mnemonic.data()+3, "ma_f", 4) != 0)
1762
51
            break;
1763
0
          switch (Mnemonic[7]) {
1764
0
          default: break;
1765
0
          case '1':  // 1 string to match.
1766
0
            if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1767
0
              break;
1768
0
            if (Features.test(Feature_Has16BitInstsBit) && Features.test(Feature_isVIOnlyBit))  // "v_fma_f16_e64"
1769
0
              Mnemonic = "v_fma_f16";
1770
0
            return;
1771
0
          case '3':  // 1 string to match.
1772
0
            if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1773
0
              break;
1774
0
            Mnemonic = "v_fma_f32";  // "v_fma_f32_e64"
1775
0
            return;
1776
0
          case '6':  // 1 string to match.
1777
0
            if (memcmp(Mnemonic.data()+8, "4_e64", 5) != 0)
1778
0
              break;
1779
0
            Mnemonic = "v_fma_f64";  // "v_fma_f64_e64"
1780
0
            return;
1781
0
          }
1782
0
          break;
1783
796
        case 'l':  // 3 strings to match.
1784
796
          switch (Mnemonic[3]) {
1785
796
          default: break;
1786
796
          case 'e':  // 1 string to match.
1787
0
            if (memcmp(Mnemonic.data()+4, "rp_u8_e64", 9) != 0)
1788
0
              break;
1789
0
            Mnemonic = "v_lerp_u8";  // "v_lerp_u8_e64"
1790
0
            return;
1791
0
          case 'o':  // 2 strings to match.
1792
0
            if (memcmp(Mnemonic.data()+4, "g_f", 3) != 0)
1793
0
              break;
1794
0
            switch (Mnemonic[7]) {
1795
0
            default: break;
1796
0
            case '1':  // 1 string to match.
1797
0
              if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1798
0
                break;
1799
0
              Mnemonic = "v_log_f16";  // "v_log_f16_e64"
1800
0
              return;
1801
0
            case '3':  // 1 string to match.
1802
0
              if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1803
0
                break;
1804
0
              Mnemonic = "v_log_f32";  // "v_log_f32_e64"
1805
0
              return;
1806
0
            }
1807
0
            break;
1808
796
          }
1809
796
          break;
1810
1.74k
        case 'm':  // 25 strings to match.
1811
1.74k
          switch (Mnemonic[3]) {
1812
1.74k
          
default: break0
;
1813
1.74k
          case 'a':  // 13 strings to match.
1814
1.26k
            switch (Mnemonic[4]) {
1815
1.26k
            
default: break0
;
1816
1.26k
            case 'c':  // 2 strings to match.
1817
0
              if (memcmp(Mnemonic.data()+5, "_f", 2) != 0)
1818
0
                break;
1819
0
              switch (Mnemonic[7]) {
1820
0
              default: break;
1821
0
              case '1':  // 1 string to match.
1822
0
                if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1823
0
                  break;
1824
0
                Mnemonic = "v_mac_f16";  // "v_mac_f16_e64"
1825
0
                return;
1826
0
              case '3':  // 1 string to match.
1827
0
                if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1828
0
                  break;
1829
0
                Mnemonic = "v_mac_f32";  // "v_mac_f32_e64"
1830
0
                return;
1831
0
              }
1832
0
              break;
1833
1.26k
            case 'd':  // 4 strings to match.
1834
1.26k
              if (Mnemonic[5] != '_')
1835
0
                break;
1836
1.26k
              switch (Mnemonic[6]) {
1837
1.26k
              
default: break168
;
1838
1.26k
              case 'f':  // 2 strings to match.
1839
0
                switch (Mnemonic[7]) {
1840
0
                default: break;
1841
0
                case '1':  // 1 string to match.
1842
0
                  if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1843
0
                    break;
1844
0
                  Mnemonic = "v_mad_f16";  // "v_mad_f16_e64"
1845
0
                  return;
1846
0
                case '3':  // 1 string to match.
1847
0
                  if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1848
0
                    break;
1849
0
                  Mnemonic = "v_mad_f32";  // "v_mad_f32_e64"
1850
0
                  return;
1851
0
                }
1852
0
                break;
1853
545
              case 'i':  // 1 string to match.
1854
545
                if (memcmp(Mnemonic.data()+7, "16_e64", 6) != 0)
1855
545
                  break;
1856
0
                Mnemonic = "v_mad_i16";  // "v_mad_i16_e64"
1857
0
                return;
1858
553
              case 'u':  // 1 string to match.
1859
553
                if (memcmp(Mnemonic.data()+7, "16_e64", 6) != 0)
1860
553
                  break;
1861
0
                Mnemonic = "v_mad_u16";  // "v_mad_u16_e64"
1862
0
                return;
1863
1.26k
              }
1864
1.26k
              break;
1865
1.26k
            case 'x':  // 7 strings to match.
1866
0
              if (Mnemonic[5] != '_')
1867
0
                break;
1868
0
              switch (Mnemonic[6]) {
1869
0
              default: break;
1870
0
              case 'f':  // 3 strings to match.
1871
0
                switch (Mnemonic[7]) {
1872
0
                default: break;
1873
0
                case '1':  // 1 string to match.
1874
0
                  if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1875
0
                    break;
1876
0
                  Mnemonic = "v_max_f16";  // "v_max_f16_e64"
1877
0
                  return;
1878
0
                case '3':  // 1 string to match.
1879
0
                  if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1880
0
                    break;
1881
0
                  Mnemonic = "v_max_f32";  // "v_max_f32_e64"
1882
0
                  return;
1883
0
                case '6':  // 1 string to match.
1884
0
                  if (memcmp(Mnemonic.data()+8, "4_e64", 5) != 0)
1885
0
                    break;
1886
0
                  Mnemonic = "v_max_f64";  // "v_max_f64_e64"
1887
0
                  return;
1888
0
                }
1889
0
                break;
1890
0
              case 'i':  // 2 strings to match.
1891
0
                switch (Mnemonic[7]) {
1892
0
                default: break;
1893
0
                case '1':  // 1 string to match.
1894
0
                  if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1895
0
                    break;
1896
0
                  Mnemonic = "v_max_i16";  // "v_max_i16_e64"
1897
0
                  return;
1898
0
                case '3':  // 1 string to match.
1899
0
                  if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1900
0
                    break;
1901
0
                  Mnemonic = "v_max_i32";  // "v_max_i32_e64"
1902
0
                  return;
1903
0
                }
1904
0
                break;
1905
0
              case 'u':  // 2 strings to match.
1906
0
                switch (Mnemonic[7]) {
1907
0
                default: break;
1908
0
                case '1':  // 1 string to match.
1909
0
                  if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1910
0
                    break;
1911
0
                  Mnemonic = "v_max_u16";  // "v_max_u16_e64"
1912
0
                  return;
1913
0
                case '3':  // 1 string to match.
1914
0
                  if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1915
0
                    break;
1916
0
                  Mnemonic = "v_max_u32";  // "v_max_u32_e64"
1917
0
                  return;
1918
0
                }
1919
0
                break;
1920
0
              }
1921
0
              break;
1922
1.26k
            }
1923
1.26k
            break;
1924
1.26k
          case 'i':  // 7 strings to match.
1925
0
            if (memcmp(Mnemonic.data()+4, "n_", 2) != 0)
1926
0
              break;
1927
0
            switch (Mnemonic[6]) {
1928
0
            default: break;
1929
0
            case 'f':  // 3 strings to match.
1930
0
              switch (Mnemonic[7]) {
1931
0
              default: break;
1932
0
              case '1':  // 1 string to match.
1933
0
                if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1934
0
                  break;
1935
0
                Mnemonic = "v_min_f16";  // "v_min_f16_e64"
1936
0
                return;
1937
0
              case '3':  // 1 string to match.
1938
0
                if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1939
0
                  break;
1940
0
                Mnemonic = "v_min_f32";  // "v_min_f32_e64"
1941
0
                return;
1942
0
              case '6':  // 1 string to match.
1943
0
                if (memcmp(Mnemonic.data()+8, "4_e64", 5) != 0)
1944
0
                  break;
1945
0
                Mnemonic = "v_min_f64";  // "v_min_f64_e64"
1946
0
                return;
1947
0
              }
1948
0
              break;
1949
0
            case 'i':  // 2 strings to match.
1950
0
              switch (Mnemonic[7]) {
1951
0
              default: break;
1952
0
              case '1':  // 1 string to match.
1953
0
                if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1954
0
                  break;
1955
0
                Mnemonic = "v_min_i16";  // "v_min_i16_e64"
1956
0
                return;
1957
0
              case '3':  // 1 string to match.
1958
0
                if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1959
0
                  break;
1960
0
                Mnemonic = "v_min_i32";  // "v_min_i32_e64"
1961
0
                return;
1962
0
              }
1963
0
              break;
1964
0
            case 'u':  // 2 strings to match.
1965
0
              switch (Mnemonic[7]) {
1966
0
              default: break;
1967
0
              case '1':  // 1 string to match.
1968
0
                if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1969
0
                  break;
1970
0
                Mnemonic = "v_min_u16";  // "v_min_u16_e64"
1971
0
                return;
1972
0
              case '3':  // 1 string to match.
1973
0
                if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
1974
0
                  break;
1975
0
                Mnemonic = "v_min_u32";  // "v_min_u32_e64"
1976
0
                return;
1977
0
              }
1978
0
              break;
1979
0
            }
1980
0
            break;
1981
103
          case 'o':  // 1 string to match.
1982
103
            if (memcmp(Mnemonic.data()+4, "v_b32_e64", 9) != 0)
1983
103
              break;
1984
0
            Mnemonic = "v_mov_b32";  // "v_mov_b32_e64"
1985
0
            return;
1986
0
          case 's':  // 1 string to match.
1987
0
            if (memcmp(Mnemonic.data()+4, "ad_u8_e64", 9) != 0)
1988
0
              break;
1989
0
            Mnemonic = "v_msad_u8";  // "v_msad_u8_e64"
1990
0
            return;
1991
380
          case 'u':  // 3 strings to match.
1992
380
            if (memcmp(Mnemonic.data()+4, "l_f", 3) != 0)
1993
380
              break;
1994
0
            switch (Mnemonic[7]) {
1995
0
            default: break;
1996
0
            case '1':  // 1 string to match.
1997
0
              if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
1998
0
                break;
1999
0
              Mnemonic = "v_mul_f16";  // "v_mul_f16_e64"
2000
0
              return;
2001
0
            case '3':  // 1 string to match.
2002
0
              if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
2003
0
                break;
2004
0
              Mnemonic = "v_mul_f32";  // "v_mul_f32_e64"
2005
0
              return;
2006
0
            case '6':  // 1 string to match.
2007
0
              if (memcmp(Mnemonic.data()+8, "4_e64", 5) != 0)
2008
0
                break;
2009
0
              Mnemonic = "v_mul_f64";  // "v_mul_f64_e64"
2010
0
              return;
2011
0
            }
2012
0
            break;
2013
1.74k
          }
2014
1.74k
          break;
2015
1.74k
        case 'n':  // 1 string to match.
2016
0
          if (memcmp(Mnemonic.data()+3, "ot_b32_e64", 10) != 0)
2017
0
            break;
2018
0
          Mnemonic = "v_not_b32";  // "v_not_b32_e64"
2019
0
          return;
2020
0
        case 'o':  // 1 string to match.
2021
0
          if (memcmp(Mnemonic.data()+3, "r3_b32_e64", 10) != 0)
2022
0
            break;
2023
0
          Mnemonic = "v_or3_b32";  // "v_or3_b32_e64"
2024
0
          return;
2025
0
        case 'r':  // 6 strings to match.
2026
0
          switch (Mnemonic[3]) {
2027
0
          default: break;
2028
0
          case 'c':  // 3 strings to match.
2029
0
            if (memcmp(Mnemonic.data()+4, "p_f", 3) != 0)
2030
0
              break;
2031
0
            switch (Mnemonic[7]) {
2032
0
            default: break;
2033
0
            case '1':  // 1 string to match.
2034
0
              if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
2035
0
                break;
2036
0
              Mnemonic = "v_rcp_f16";  // "v_rcp_f16_e64"
2037
0
              return;
2038
0
            case '3':  // 1 string to match.
2039
0
              if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
2040
0
                break;
2041
0
              Mnemonic = "v_rcp_f32";  // "v_rcp_f32_e64"
2042
0
              return;
2043
0
            case '6':  // 1 string to match.
2044
0
              if (memcmp(Mnemonic.data()+8, "4_e64", 5) != 0)
2045
0
                break;
2046
0
              Mnemonic = "v_rcp_f64";  // "v_rcp_f64_e64"
2047
0
              return;
2048
0
            }
2049
0
            break;
2050
0
          case 's':  // 3 strings to match.
2051
0
            if (memcmp(Mnemonic.data()+4, "q_f", 3) != 0)
2052
0
              break;
2053
0
            switch (Mnemonic[7]) {
2054
0
            default: break;
2055
0
            case '1':  // 1 string to match.
2056
0
              if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
2057
0
                break;
2058
0
              Mnemonic = "v_rsq_f16";  // "v_rsq_f16_e64"
2059
0
              return;
2060
0
            case '3':  // 1 string to match.
2061
0
              if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
2062
0
                break;
2063
0
              Mnemonic = "v_rsq_f32";  // "v_rsq_f32_e64"
2064
0
              return;
2065
0
            case '6':  // 1 string to match.
2066
0
              if (memcmp(Mnemonic.data()+8, "4_e64", 5) != 0)
2067
0
                break;
2068
0
              Mnemonic = "v_rsq_f64";  // "v_rsq_f64_e64"
2069
0
              return;
2070
0
            }
2071
0
            break;
2072
0
          }
2073
0
          break;
2074
115
        case 's':  // 10 strings to match.
2075
115
          switch (Mnemonic[3]) {
2076
115
          
default: break0
;
2077
115
          case 'a':  // 2 strings to match.
2078
0
            if (memcmp(Mnemonic.data()+4, "d_u", 3) != 0)
2079
0
              break;
2080
0
            switch (Mnemonic[7]) {
2081
0
            default: break;
2082
0
            case '1':  // 1 string to match.
2083
0
              if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
2084
0
                break;
2085
0
              Mnemonic = "v_sad_u16";  // "v_sad_u16_e64"
2086
0
              return;
2087
0
            case '3':  // 1 string to match.
2088
0
              if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
2089
0
                break;
2090
0
              Mnemonic = "v_sad_u32";  // "v_sad_u32_e64"
2091
0
              return;
2092
0
            }
2093
0
            break;
2094
0
          case 'i':  // 2 strings to match.
2095
0
            if (memcmp(Mnemonic.data()+4, "n_f", 3) != 0)
2096
0
              break;
2097
0
            switch (Mnemonic[7]) {
2098
0
            default: break;
2099
0
            case '1':  // 1 string to match.
2100
0
              if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
2101
0
                break;
2102
0
              Mnemonic = "v_sin_f16";  // "v_sin_f16_e64"
2103
0
              return;
2104
0
            case '3':  // 1 string to match.
2105
0
              if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
2106
0
                break;
2107
0
              Mnemonic = "v_sin_f32";  // "v_sin_f32_e64"
2108
0
              return;
2109
0
            }
2110
0
            break;
2111
115
          case 'u':  // 6 strings to match.
2112
115
            if (memcmp(Mnemonic.data()+4, "b_", 2) != 0)
2113
115
              break;
2114
0
            switch (Mnemonic[6]) {
2115
0
            default: break;
2116
0
            case 'f':  // 2 strings to match.
2117
0
              switch (Mnemonic[7]) {
2118
0
              default: break;
2119
0
              case '1':  // 1 string to match.
2120
0
                if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
2121
0
                  break;
2122
0
                Mnemonic = "v_sub_f16";  // "v_sub_f16_e64"
2123
0
                return;
2124
0
              case '3':  // 1 string to match.
2125
0
                if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
2126
0
                  break;
2127
0
                Mnemonic = "v_sub_f32";  // "v_sub_f32_e64"
2128
0
                return;
2129
0
              }
2130
0
              break;
2131
0
            case 'i':  // 2 strings to match.
2132
0
              switch (Mnemonic[7]) {
2133
0
              default: break;
2134
0
              case '1':  // 1 string to match.
2135
0
                if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
2136
0
                  break;
2137
0
                Mnemonic = "v_sub_i16";  // "v_sub_i16_e64"
2138
0
                return;
2139
0
              case '3':  // 1 string to match.
2140
0
                if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
2141
0
                  break;
2142
0
                Mnemonic = "v_sub_i32";  // "v_sub_i32_e64"
2143
0
                return;
2144
0
              }
2145
0
              break;
2146
0
            case 'u':  // 2 strings to match.
2147
0
              switch (Mnemonic[7]) {
2148
0
              default: break;
2149
0
              case '1':  // 1 string to match.
2150
0
                if (memcmp(Mnemonic.data()+8, "6_e64", 5) != 0)
2151
0
                  break;
2152
0
                Mnemonic = "v_sub_u16";  // "v_sub_u16_e64"
2153
0
                return;
2154
0
              case '3':  // 1 string to match.
2155
0
                if (memcmp(Mnemonic.data()+8, "2_e64", 5) != 0)
2156
0
                  break;
2157
0
                Mnemonic = "v_sub_u32";  // "v_sub_u32_e64"
2158
0
                return;
2159
0
              }
2160
0
              break;
2161
0
            }
2162
0
            break;
2163
115
          }
2164
115
          break;
2165
115
        case 'x':  // 2 strings to match.
2166
0
          switch (Mnemonic[3]) {
2167
0
          default: break;
2168
0
          case 'a':  // 1 string to match.
2169
0
            if (memcmp(Mnemonic.data()+4, "d_u32_e64", 9) != 0)
2170
0
              break;
2171
0
            Mnemonic = "v_xad_u32";  // "v_xad_u32_e64"
2172
0
            return;
2173
0
          case 'o':  // 1 string to match.
2174
0
            if (memcmp(Mnemonic.data()+4, "r_b32_e64", 9) != 0)
2175
0
              break;
2176
0
            Mnemonic = "v_xor_b32";  // "v_xor_b32_e64"
2177
0
            return;
2178
0
          }
2179
0
          break;
2180
16.1k
        }
2181
16.1k
        break;
2182
16.1k
      case 14:   // 39 strings to match.
2183
5.60k
        if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
2184
34
          break;
2185
5.57k
        switch (Mnemonic[2]) {
2186
5.57k
        
default: break715
;
2187
5.57k
        case 'a':  // 4 strings to match.
2188
275
          switch (Mnemonic[3]) {
2189
275
          
default: break182
;
2190
275
          case 'd':  // 2 strings to match.
2191
93
            if (Mnemonic[4] != 'd')
2192
0
              break;
2193
93
            switch (Mnemonic[5]) {
2194
93
            default: break;
2195
93
            case '3':  // 1 string to match.
2196
0
              if (memcmp(Mnemonic.data()+6, "_u32_e64", 8) != 0)
2197
0
                break;
2198
0
              Mnemonic = "v_add3_u32";   // "v_add3_u32_e64"
2199
0
              return;
2200
0
            case 'c':  // 1 string to match.
2201
0
              if (memcmp(Mnemonic.data()+6, "_u32_e64", 8) != 0)
2202
0
                break;
2203
0
              Mnemonic = "v_addc_u32";   // "v_addc_u32_e64"
2204
0
              return;
2205
93
            }
2206
93
            break;
2207
93
          case 's':  // 2 strings to match.
2208
0
            if (memcmp(Mnemonic.data()+4, "hr_i", 4) != 0)
2209
0
              break;
2210
0
            switch (Mnemonic[8]) {
2211
0
            default: break;
2212
0
            case '3':  // 1 string to match.
2213
0
              if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2214
0
                break;
2215
0
              if (Features.test(Feature_isSICIBit))  // "v_ashr_i32_e64"
2216
0
                Mnemonic = "v_ashr_i32";
2217
0
              return;
2218
0
            case '6':  // 1 string to match.
2219
0
              if (memcmp(Mnemonic.data()+9, "4_e64", 5) != 0)
2220
0
                break;
2221
0
              if (Features.test(Feature_isSICIBit))  // "v_ashr_i64_e64"
2222
0
                Mnemonic = "v_ashr_i64";
2223
0
              return;
2224
0
            }
2225
0
            break;
2226
275
          }
2227
275
          break;
2228
4.26k
        case 'c':  // 3 strings to match.
2229
4.26k
          if (memcmp(Mnemonic.data()+3, "eil_f", 5) != 0)
2230
4.26k
            break;
2231
0
          switch (Mnemonic[8]) {
2232
0
          default: break;
2233
0
          case '1':  // 1 string to match.
2234
0
            if (memcmp(Mnemonic.data()+9, "6_e64", 5) != 0)
2235
0
              break;
2236
0
            Mnemonic = "v_ceil_f16";   // "v_ceil_f16_e64"
2237
0
            return;
2238
0
          case '3':  // 1 string to match.
2239
0
            if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2240
0
              break;
2241
0
            Mnemonic = "v_ceil_f32";   // "v_ceil_f32_e64"
2242
0
            return;
2243
0
          case '6':  // 1 string to match.
2244
0
            if (memcmp(Mnemonic.data()+9, "4_e64", 5) != 0)
2245
0
              break;
2246
0
            Mnemonic = "v_ceil_f64";   // "v_ceil_f64_e64"
2247
0
            return;
2248
0
          }
2249
0
          break;
2250
0
        case 'f':  // 4 strings to match.
2251
0
          switch (Mnemonic[3]) {
2252
0
          default: break;
2253
0
          case 'f':  // 3 strings to match.
2254
0
            if (Mnemonic[4] != 'b')
2255
0
              break;
2256
0
            switch (Mnemonic[5]) {
2257
0
            default: break;
2258
0
            case 'h':  // 2 strings to match.
2259
0
              if (Mnemonic[6] != '_')
2260
0
                break;
2261
0
              switch (Mnemonic[7]) {
2262
0
              default: break;
2263
0
              case 'i':  // 1 string to match.
2264
0
                if (memcmp(Mnemonic.data()+8, "32_e64", 6) != 0)
2265
0
                  break;
2266
0
                Mnemonic = "v_ffbh_i32";   // "v_ffbh_i32_e64"
2267
0
                return;
2268
0
              case 'u':  // 1 string to match.
2269
0
                if (memcmp(Mnemonic.data()+8, "32_e64", 6) != 0)
2270
0
                  break;
2271
0
                Mnemonic = "v_ffbh_u32";   // "v_ffbh_u32_e64"
2272
0
                return;
2273
0
              }
2274
0
              break;
2275
0
            case 'l':  // 1 string to match.
2276
0
              if (memcmp(Mnemonic.data()+6, "_b32_e64", 8) != 0)
2277
0
                break;
2278
0
              Mnemonic = "v_ffbl_b32";   // "v_ffbl_b32_e64"
2279
0
              return;
2280
0
            }
2281
0
            break;
2282
0
          case 'm':  // 1 string to match.
2283
0
            if (memcmp(Mnemonic.data()+4, "ac_f32_e64", 10) != 0)
2284
0
              break;
2285
0
            Mnemonic = "v_fmac_f32";   // "v_fmac_f32_e64"
2286
0
            return;
2287
0
          }
2288
0
          break;
2289
93
        case 'l':  // 4 strings to match.
2290
93
          if (memcmp(Mnemonic.data()+3, "sh", 2) != 0)
2291
0
            break;
2292
93
          switch (Mnemonic[5]) {
2293
93
          
default: break0
;
2294
93
          case 'l':  // 2 strings to match.
2295
93
            if (memcmp(Mnemonic.data()+6, "_b", 2) != 0)
2296
93
              break;
2297
0
            switch (Mnemonic[8]) {
2298
0
            default: break;
2299
0
            case '3':  // 1 string to match.
2300
0
              if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2301
0
                break;
2302
0
              if (Features.test(Feature_isSICIBit))  // "v_lshl_b32_e64"
2303
0
                Mnemonic = "v_lshl_b32";
2304
0
              return;
2305
0
            case '6':  // 1 string to match.
2306
0
              if (memcmp(Mnemonic.data()+9, "4_e64", 5) != 0)
2307
0
                break;
2308
0
              if (Features.test(Feature_isSICIBit))  // "v_lshl_b64_e64"
2309
0
                Mnemonic = "v_lshl_b64";
2310
0
              return;
2311
0
            }
2312
0
            break;
2313
0
          case 'r':  // 2 strings to match.
2314
0
            if (memcmp(Mnemonic.data()+6, "_b", 2) != 0)
2315
0
              break;
2316
0
            switch (Mnemonic[8]) {
2317
0
            default: break;
2318
0
            case '3':  // 1 string to match.
2319
0
              if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2320
0
                break;
2321
0
              if (Features.test(Feature_isSICIBit))  // "v_lshr_b32_e64"
2322
0
                Mnemonic = "v_lshr_b32";
2323
0
              return;
2324
0
            case '6':  // 1 string to match.
2325
0
              if (memcmp(Mnemonic.data()+9, "4_e64", 5) != 0)
2326
0
                break;
2327
0
              if (Features.test(Feature_isSICIBit))  // "v_lshr_b64_e64"
2328
0
                Mnemonic = "v_lshr_b64";
2329
0
              return;
2330
0
            }
2331
0
            break;
2332
93
          }
2333
93
          break;
2334
133
        case 'm':  // 18 strings to match.
2335
133
          switch (Mnemonic[3]) {
2336
133
          default: break;
2337
133
          case 'a':  // 6 strings to match.
2338
0
            if (memcmp(Mnemonic.data()+4, "x3_", 3) != 0)
2339
0
              break;
2340
0
            switch (Mnemonic[7]) {
2341
0
            default: break;
2342
0
            case 'f':  // 2 strings to match.
2343
0
              switch (Mnemonic[8]) {
2344
0
              default: break;
2345
0
              case '1':  // 1 string to match.
2346
0
                if (memcmp(Mnemonic.data()+9, "6_e64", 5) != 0)
2347
0
                  break;
2348
0
                Mnemonic = "v_max3_f16";   // "v_max3_f16_e64"
2349
0
                return;
2350
0
              case '3':  // 1 string to match.
2351
0
                if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2352
0
                  break;
2353
0
                Mnemonic = "v_max3_f32";   // "v_max3_f32_e64"
2354
0
                return;
2355
0
              }
2356
0
              break;
2357
0
            case 'i':  // 2 strings to match.
2358
0
              switch (Mnemonic[8]) {
2359
0
              default: break;
2360
0
              case '1':  // 1 string to match.
2361
0
                if (memcmp(Mnemonic.data()+9, "6_e64", 5) != 0)
2362
0
                  break;
2363
0
                Mnemonic = "v_max3_i16";   // "v_max3_i16_e64"
2364
0
                return;
2365
0
              case '3':  // 1 string to match.
2366
0
                if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2367
0
                  break;
2368
0
                Mnemonic = "v_max3_i32";   // "v_max3_i32_e64"
2369
0
                return;
2370
0
              }
2371
0
              break;
2372
0
            case 'u':  // 2 strings to match.
2373
0
              switch (Mnemonic[8]) {
2374
0
              default: break;
2375
0
              case '1':  // 1 string to match.
2376
0
                if (memcmp(Mnemonic.data()+9, "6_e64", 5) != 0)
2377
0
                  break;
2378
0
                Mnemonic = "v_max3_u16";   // "v_max3_u16_e64"
2379
0
                return;
2380
0
              case '3':  // 1 string to match.
2381
0
                if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2382
0
                  break;
2383
0
                Mnemonic = "v_max3_u32";   // "v_max3_u32_e64"
2384
0
                return;
2385
0
              }
2386
0
              break;
2387
0
            }
2388
0
            break;
2389
0
          case 'e':  // 6 strings to match.
2390
0
            if (memcmp(Mnemonic.data()+4, "d3_", 3) != 0)
2391
0
              break;
2392
0
            switch (Mnemonic[7]) {
2393
0
            default: break;
2394
0
            case 'f':  // 2 strings to match.
2395
0
              switch (Mnemonic[8]) {
2396
0
              default: break;
2397
0
              case '1':  // 1 string to match.
2398
0
                if (memcmp(Mnemonic.data()+9, "6_e64", 5) != 0)
2399
0
                  break;
2400
0
                Mnemonic = "v_med3_f16";   // "v_med3_f16_e64"
2401
0
                return;
2402
0
              case '3':  // 1 string to match.
2403
0
                if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2404
0
                  break;
2405
0
                Mnemonic = "v_med3_f32";   // "v_med3_f32_e64"
2406
0
                return;
2407
0
              }
2408
0
              break;
2409
0
            case 'i':  // 2 strings to match.
2410
0
              switch (Mnemonic[8]) {
2411
0
              default: break;
2412
0
              case '1':  // 1 string to match.
2413
0
                if (memcmp(Mnemonic.data()+9, "6_e64", 5) != 0)
2414
0
                  break;
2415
0
                Mnemonic = "v_med3_i16";   // "v_med3_i16_e64"
2416
0
                return;
2417
0
              case '3':  // 1 string to match.
2418
0
                if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2419
0
                  break;
2420
0
                Mnemonic = "v_med3_i32";   // "v_med3_i32_e64"
2421
0
                return;
2422
0
              }
2423
0
              break;
2424
0
            case 'u':  // 2 strings to match.
2425
0
              switch (Mnemonic[8]) {
2426
0
              default: break;
2427
0
              case '1':  // 1 string to match.
2428
0
                if (memcmp(Mnemonic.data()+9, "6_e64", 5) != 0)
2429
0
                  break;
2430
0
                Mnemonic = "v_med3_u16";   // "v_med3_u16_e64"
2431
0
                return;
2432
0
              case '3':  // 1 string to match.
2433
0
                if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2434
0
                  break;
2435
0
                Mnemonic = "v_med3_u32";   // "v_med3_u32_e64"
2436
0
                return;
2437
0
              }
2438
0
              break;
2439
0
            }
2440
0
            break;
2441
0
          case 'i':  // 6 strings to match.
2442
0
            if (memcmp(Mnemonic.data()+4, "n3_", 3) != 0)
2443
0
              break;
2444
0
            switch (Mnemonic[7]) {
2445
0
            default: break;
2446
0
            case 'f':  // 2 strings to match.
2447
0
              switch (Mnemonic[8]) {
2448
0
              default: break;
2449
0
              case '1':  // 1 string to match.
2450
0
                if (memcmp(Mnemonic.data()+9, "6_e64", 5) != 0)
2451
0
                  break;
2452
0
                Mnemonic = "v_min3_f16";   // "v_min3_f16_e64"
2453
0
                return;
2454
0
              case '3':  // 1 string to match.
2455
0
                if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2456
0
                  break;
2457
0
                Mnemonic = "v_min3_f32";   // "v_min3_f32_e64"
2458
0
                return;
2459
0
              }
2460
0
              break;
2461
0
            case 'i':  // 2 strings to match.
2462
0
              switch (Mnemonic[8]) {
2463
0
              default: break;
2464
0
              case '1':  // 1 string to match.
2465
0
                if (memcmp(Mnemonic.data()+9, "6_e64", 5) != 0)
2466
0
                  break;
2467
0
                Mnemonic = "v_min3_i16";   // "v_min3_i16_e64"
2468
0
                return;
2469
0
              case '3':  // 1 string to match.
2470
0
                if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2471
0
                  break;
2472
0
                Mnemonic = "v_min3_i32";   // "v_min3_i32_e64"
2473
0
                return;
2474
0
              }
2475
0
              break;
2476
0
            case 'u':  // 2 strings to match.
2477
0
              switch (Mnemonic[8]) {
2478
0
              default: break;
2479
0
              case '1':  // 1 string to match.
2480
0
                if (memcmp(Mnemonic.data()+9, "6_e64", 5) != 0)
2481
0
                  break;
2482
0
                Mnemonic = "v_min3_u16";   // "v_min3_u16_e64"
2483
0
                return;
2484
0
              case '3':  // 1 string to match.
2485
0
                if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2486
0
                  break;
2487
0
                Mnemonic = "v_min3_u32";   // "v_min3_u32_e64"
2488
0
                return;
2489
0
              }
2490
0
              break;
2491
0
            }
2492
0
            break;
2493
133
          }
2494
133
          break;
2495
133
        case 'p':  // 1 string to match.
2496
93
          if (memcmp(Mnemonic.data()+3, "erm_b32_e64", 11) != 0)
2497
93
            break;
2498
0
          Mnemonic = "v_perm_b32";   // "v_perm_b32_e64"
2499
0
          return;
2500
0
        case 's':  // 4 strings to match.
2501
0
          switch (Mnemonic[3]) {
2502
0
          default: break;
2503
0
          case 'q':  // 3 strings to match.
2504
0
            if (memcmp(Mnemonic.data()+4, "rt_f", 4) != 0)
2505
0
              break;
2506
0
            switch (Mnemonic[8]) {
2507
0
            default: break;
2508
0
            case '1':  // 1 string to match.
2509
0
              if (memcmp(Mnemonic.data()+9, "6_e64", 5) != 0)
2510
0
                break;
2511
0
              Mnemonic = "v_sqrt_f16";   // "v_sqrt_f16_e64"
2512
0
              return;
2513
0
            case '3':  // 1 string to match.
2514
0
              if (memcmp(Mnemonic.data()+9, "2_e64", 5) != 0)
2515
0
                break;
2516
0
              Mnemonic = "v_sqrt_f32";   // "v_sqrt_f32_e64"
2517
0
              return;
2518
0
            case '6':  // 1 string to match.
2519
0
              if (memcmp(Mnemonic.data()+9, "4_e64", 5) != 0)
2520
0
                break;
2521
0
              Mnemonic = "v_sqrt_f64";   // "v_sqrt_f64_e64"
2522
0
              return;
2523
0
            }
2524
0
            break;
2525
0
          case 'u':  // 1 string to match.
2526
0
            if (memcmp(Mnemonic.data()+4, "bb_u32_e64", 10) != 0)
2527
0
              break;
2528
0
            Mnemonic = "v_subb_u32";   // "v_subb_u32_e64"
2529
0
            return;
2530
0
          }
2531
0
          break;
2532
0
        case 'x':  // 1 string to match.
2533
0
          if (memcmp(Mnemonic.data()+3, "nor_b32_e64", 11) != 0)
2534
0
            break;
2535
0
          Mnemonic = "v_xnor_b32";   // "v_xnor_b32_e64"
2536
0
          return;
2537
5.57k
        }
2538
5.57k
        break;
2539
5.57k
      case 15:   // 38 strings to match.
2540
3.79k
        if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
2541
216
          break;
2542
3.58k
        switch (Mnemonic[2]) {
2543
3.58k
        
default: break1.94k
;
2544
3.58k
        case 'b':  // 1 string to match.
2545
0
          if (memcmp(Mnemonic.data()+3, "frev_b32_e64", 12) != 0)
2546
0
            break;
2547
0
          Mnemonic = "v_bfrev_b32";  // "v_bfrev_b32_e64"
2548
0
          return;
2549
1.27k
        case 'c':  // 21 strings to match.
2550
1.27k
          if (memcmp(Mnemonic.data()+3, "mp_", 3) != 0)
2551
828
            break;
2552
443
          switch (Mnemonic[6]) {
2553
443
          default: break;
2554
443
          case 'f':  // 9 strings to match.
2555
0
            if (Mnemonic[7] != '_')
2556
0
              break;
2557
0
            switch (Mnemonic[8]) {
2558
0
            default: break;
2559
0
            case 'f':  // 3 strings to match.
2560
0
              switch (Mnemonic[9]) {
2561
0
              default: break;
2562
0
              case '1':  // 1 string to match.
2563
0
                if (memcmp(Mnemonic.data()+10, "6_e64", 5) != 0)
2564
0
                  break;
2565
0
                Mnemonic = "v_cmp_f_f16";  // "v_cmp_f_f16_e64"
2566
0
                return;
2567
0
              case '3':  // 1 string to match.
2568
0
                if (memcmp(Mnemonic.data()+10, "2_e64", 5) != 0)
2569
0
                  break;
2570
0
                Mnemonic = "v_cmp_f_f32";  // "v_cmp_f_f32_e64"
2571
0
                return;
2572
0
              case '6':  // 1 string to match.
2573
0
                if (memcmp(Mnemonic.data()+10, "4_e64", 5) != 0)
2574
0
                  break;
2575
0
                Mnemonic = "v_cmp_f_f64";  // "v_cmp_f_f64_e64"
2576
0
                return;
2577
0
              }
2578
0
              break;
2579
0
            case 'i':  // 3 strings to match.
2580
0
              switch (Mnemonic[9]) {
2581
0
              default: break;
2582
0
              case '1':  // 1 string to match.
2583
0
                if (memcmp(Mnemonic.data()+10, "6_e64", 5) != 0)
2584
0
                  break;
2585
0
                Mnemonic = "v_cmp_f_i16";  // "v_cmp_f_i16_e64"
2586
0
                return;
2587
0
              case '3':  // 1 string to match.
2588
0
                if (memcmp(Mnemonic.data()+10, "2_e64", 5) != 0)
2589
0
                  break;
2590
0
                Mnemonic = "v_cmp_f_i32";  // "v_cmp_f_i32_e64"
2591
0
                return;
2592
0
              case '6':  // 1 string to match.
2593
0
                if (memcmp(Mnemonic.data()+10, "4_e64", 5) != 0)
2594
0
                  break;
2595
0
                Mnemonic = "v_cmp_f_i64";  // "v_cmp_f_i64_e64"
2596
0
                return;
2597
0
              }
2598
0
              break;
2599
0
            case 'u':  // 3 strings to match.
2600
0
              switch (Mnemonic[9]) {
2601
0
              default: break;
2602
0
              case '1':  // 1 string to match.
2603
0
                if (memcmp(Mnemonic.data()+10, "6_e64", 5) != 0)
2604
0
                  break;
2605
0
                Mnemonic = "v_cmp_f_u16";  // "v_cmp_f_u16_e64"
2606
0
                return;
2607
0
              case '3':  // 1 string to match.
2608
0
                if (memcmp(Mnemonic.data()+10, "2_e64", 5) != 0)
2609
0
                  break;
2610
0
                Mnemonic = "v_cmp_f_u32";  // "v_cmp_f_u32_e64"
2611
0
                return;
2612
0
              case '6':  // 1 string to match.
2613
0
                if (memcmp(Mnemonic.data()+10, "4_e64", 5) != 0)
2614
0
                  break;
2615
0
                Mnemonic = "v_cmp_f_u64";  // "v_cmp_f_u64_e64"
2616
0
                return;
2617
0
              }
2618
0
              break;
2619
0
            }
2620
0
            break;
2621
0
          case 'o':  // 3 strings to match.
2622
0
            if (memcmp(Mnemonic.data()+7, "_f", 2) != 0)
2623
0
              break;
2624
0
            switch (Mnemonic[9]) {
2625
0
            default: break;
2626
0
            case '1':  // 1 string to match.
2627
0
              if (memcmp(Mnemonic.data()+10, "6_e64", 5) != 0)
2628
0
                break;
2629
0
              Mnemonic = "v_cmp_o_f16";  // "v_cmp_o_f16_e64"
2630
0
              return;
2631
0
            case '3':  // 1 string to match.
2632
0
              if (memcmp(Mnemonic.data()+10, "2_e64", 5) != 0)
2633
0
                break;
2634
0
              Mnemonic = "v_cmp_o_f32";  // "v_cmp_o_f32_e64"
2635
0
              return;
2636
0
            case '6':  // 1 string to match.
2637
0
              if (memcmp(Mnemonic.data()+10, "4_e64", 5) != 0)
2638
0
                break;
2639
0
              Mnemonic = "v_cmp_o_f64";  // "v_cmp_o_f64_e64"
2640
0
              return;
2641
0
            }
2642
0
            break;
2643
0
          case 't':  // 6 strings to match.
2644
0
            if (Mnemonic[7] != '_')
2645
0
              break;
2646
0
            switch (Mnemonic[8]) {
2647
0
            default: break;
2648
0
            case 'i':  // 3 strings to match.
2649
0
              switch (Mnemonic[9]) {
2650
0
              default: break;
2651
0
              case '1':  // 1 string to match.
2652
0
                if (memcmp(Mnemonic.data()+10, "6_e64", 5) != 0)
2653
0
                  break;
2654
0
                Mnemonic = "v_cmp_t_i16";  // "v_cmp_t_i16_e64"
2655
0
                return;
2656
0
              case '3':  // 1 string to match.
2657
0
                if (memcmp(Mnemonic.data()+10, "2_e64", 5) != 0)
2658
0
                  break;
2659
0
                Mnemonic = "v_cmp_t_i32";  // "v_cmp_t_i32_e64"
2660
0
                return;
2661
0
              case '6':  // 1 string to match.
2662
0
                if (memcmp(Mnemonic.data()+10, "4_e64", 5) != 0)
2663
0
                  break;
2664
0
                Mnemonic = "v_cmp_t_i64";  // "v_cmp_t_i64_e64"
2665
0
                return;
2666
0
              }
2667
0
              break;
2668
0
            case 'u':  // 3 strings to match.
2669
0
              switch (Mnemonic[9]) {
2670
0
              default: break;
2671
0
              case '1':  // 1 string to match.
2672
0
                if (memcmp(Mnemonic.data()+10, "6_e64", 5) != 0)
2673
0
                  break;
2674
0
                Mnemonic = "v_cmp_t_u16";  // "v_cmp_t_u16_e64"
2675
0
                return;
2676
0
              case '3':  // 1 string to match.
2677
0
                if (memcmp(Mnemonic.data()+10, "2_e64", 5) != 0)
2678
0
                  break;
2679
0
                Mnemonic = "v_cmp_t_u32";  // "v_cmp_t_u32_e64"
2680
0
                return;
2681
0
              case '6':  // 1 string to match.
2682
0
                if (memcmp(Mnemonic.data()+10, "4_e64", 5) != 0)
2683
0
                  break;
2684
0
                Mnemonic = "v_cmp_t_u64";  // "v_cmp_t_u64_e64"
2685
0
                return;
2686
0
              }
2687
0
              break;
2688
0
            }
2689
0
            break;
2690
0
          case 'u':  // 3 strings to match.
2691
0
            if (memcmp(Mnemonic.data()+7, "_f", 2) != 0)
2692
0
              break;
2693
0
            switch (Mnemonic[9]) {
2694
0
            default: break;
2695
0
            case '1':  // 1 string to match.
2696
0
              if (memcmp(Mnemonic.data()+10, "6_e64", 5) != 0)
2697
0
                break;
2698
0
              Mnemonic = "v_cmp_u_f16";  // "v_cmp_u_f16_e64"
2699
0
              return;
2700
0
            case '3':  // 1 string to match.
2701
0
              if (memcmp(Mnemonic.data()+10, "2_e64", 5) != 0)
2702
0
                break;
2703
0
              Mnemonic = "v_cmp_u_f32";  // "v_cmp_u_f32_e64"
2704
0
              return;
2705
0
            case '6':  // 1 string to match.
2706
0
              if (memcmp(Mnemonic.data()+10, "4_e64", 5) != 0)
2707
0
                break;
2708
0
              Mnemonic = "v_cmp_u_f64";  // "v_cmp_u_f64_e64"
2709
0
              return;
2710
0
            }
2711
0
            break;
2712
443
          }
2713
443
          break;
2714
443
        case 'f':  // 6 strings to match.
2715
22
          switch (Mnemonic[3]) {
2716
22
          default: break;
2717
22
          case 'l':  // 3 strings to match.
2718
0
            if (memcmp(Mnemonic.data()+4, "oor_f", 5) != 0)
2719
0
              break;
2720
0
            switch (Mnemonic[9]) {
2721
0
            default: break;
2722
0
            case '1':  // 1 string to match.
2723
0
              if (memcmp(Mnemonic.data()+10, "6_e64", 5) != 0)
2724
0
                break;
2725
0
              Mnemonic = "v_floor_f16";  // "v_floor_f16_e64"
2726
0
              return;
2727
0
            case '3':  // 1 string to match.
2728
0
              if (memcmp(Mnemonic.data()+10, "2_e64", 5) != 0)
2729
0
                break;
2730
0
              Mnemonic = "v_floor_f32";  // "v_floor_f32_e64"
2731
0
              return;
2732
0
            case '6':  // 1 string to match.
2733
0
              if (memcmp(Mnemonic.data()+10, "4_e64", 5) != 0)
2734
0
                break;
2735
0
              Mnemonic = "v_floor_f64";  // "v_floor_f64_e64"
2736
0
              return;
2737
0
            }
2738
0
            break;
2739
0
          case 'r':  // 3 strings to match.
2740
0
            if (memcmp(Mnemonic.data()+4, "act_f", 5) != 0)
2741
0
              break;
2742
0
            switch (Mnemonic[9]) {
2743
0
            default: break;
2744
0
            case '1':  // 1 string to match.
2745
0
              if (memcmp(Mnemonic.data()+10, "6_e64", 5) != 0)
2746
0
                break;
2747
0
              Mnemonic = "v_fract_f16";  // "v_fract_f16_e64"
2748
0
              return;
2749
0
            case '3':  // 1 string to match.
2750
0
              if (memcmp(Mnemonic.data()+10, "2_e64", 5) != 0)
2751
0
                break;
2752
0
              Mnemonic = "v_fract_f32";  // "v_fract_f32_e64"
2753
0
              return;
2754
0
            case '6':  // 1 string to match.
2755
0
              if (memcmp(Mnemonic.data()+10, "4_e64", 5) != 0)
2756
0
                break;
2757
0
              Mnemonic = "v_fract_f64";  // "v_fract_f64_e64"
2758
0
              return;
2759
0
            }
2760
0
            break;
2761
22
          }
2762
22
          break;
2763
31
        case 'l':  // 3 strings to match.
2764
31
          if (memcmp(Mnemonic.data()+3, "dexp_f", 6) != 0)
2765
31
            break;
2766
0
          switch (Mnemonic[9]) {
2767
0
          default: break;
2768
0
          case '1':  // 1 string to match.
2769
0
            if (memcmp(Mnemonic.data()+10, "6_e64", 5) != 0)
2770
0
              break;
2771
0
            Mnemonic = "v_ldexp_f16";  // "v_ldexp_f16_e64"
2772
0
            return;
2773
0
          case '3':  // 1 string to match.
2774
0
            if (memcmp(Mnemonic.data()+10, "2_e64", 5) != 0)
2775
0
              break;
2776
0
            Mnemonic = "v_ldexp_f32";  // "v_ldexp_f32_e64"
2777
0
            return;
2778
0
          case '6':  // 1 string to match.
2779
0
            if (memcmp(Mnemonic.data()+10, "4_e64", 5) != 0)
2780
0
              break;
2781
0
            Mnemonic = "v_ldexp_f64";  // "v_ldexp_f64_e64"
2782
0
            return;
2783
0
          }
2784
0
          break;
2785
213
        case 'r':  // 3 strings to match.
2786
213
          if (memcmp(Mnemonic.data()+3, "ndne_f", 6) != 0)
2787
213
            break;
2788
0
          switch (Mnemonic[9]) {
2789
0
          default: break;
2790
0
          case '1':  // 1 string to match.
2791
0
            if (memcmp(Mnemonic.data()+10, "6_e64", 5) != 0)
2792
0
              break;
2793
0
            Mnemonic = "v_rndne_f16";  // "v_rndne_f16_e64"
2794
0
            return;
2795
0
          case '3':  // 1 string to match.
2796
0
            if (memcmp(Mnemonic.data()+10, "2_e64", 5) != 0)
2797
0
              break;
2798
0
            Mnemonic = "v_rndne_f32";  // "v_rndne_f32_e64"
2799
0
            return;
2800
0
          case '6':  // 1 string to match.
2801
0
            if (memcmp(Mnemonic.data()+10, "4_e64", 5) != 0)
2802
0
              break;
2803
0
            Mnemonic = "v_rndne_f64";  // "v_rndne_f64_e64"
2804
0
            return;
2805
0
          }
2806
0
          break;
2807
94
        case 's':  // 1 string to match.
2808
94
          if (memcmp(Mnemonic.data()+3, "ad_hi_u8_e64", 12) != 0)
2809
94
            break;
2810
0
          Mnemonic = "v_sad_hi_u8";  // "v_sad_hi_u8_e64"
2811
0
          return;
2812
0
        case 't':  // 3 strings to match.
2813
0
          if (memcmp(Mnemonic.data()+3, "runc_f", 6) != 0)
2814
0
            break;
2815
0
          switch (Mnemonic[9]) {
2816
0
          default: break;
2817
0
          case '1':  // 1 string to match.
2818
0
            if (memcmp(Mnemonic.data()+10, "6_e64", 5) != 0)
2819
0
              break;
2820
0
            Mnemonic = "v_trunc_f16";  // "v_trunc_f16_e64"
2821
0
            return;
2822
0
          case '3':  // 1 string to match.
2823
0
            if (memcmp(Mnemonic.data()+10, "2_e64", 5) != 0)
2824
0
              break;
2825
0
            Mnemonic = "v_trunc_f32";  // "v_trunc_f32_e64"
2826
0
            return;
2827
0
          case '6':  // 1 string to match.
2828
0
            if (memcmp(Mnemonic.data()+10, "4_e64", 5) != 0)
2829
0
              break;
2830
0
            Mnemonic = "v_trunc_f64";  // "v_trunc_f64_e64"
2831
0
            return;
2832
0
          }
2833
0
          break;
2834
3.58k
        }
2835
3.58k
        break;
2836
3.88k
      case 16:   // 112 strings to match.
2837
3.88k
        if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
2838
147
          break;
2839
3.74k
        switch (Mnemonic[2]) {
2840
3.74k
        
default: break1.05k
;
2841
3.74k
        case 'a':  // 1 string to match.
2842
0
          if (memcmp(Mnemonic.data()+3, "nd_or_b32_e64", 13) != 0)
2843
0
            break;
2844
0
          Mnemonic = "v_and_or_b32";   // "v_and_or_b32_e64"
2845
0
          return;
2846
1.26k
        case 'c':  // 85 strings to match.
2847
1.26k
          switch (Mnemonic[3]) {
2848
1.26k
          
default: break809
;
2849
1.26k
          case 'm':  // 81 strings to match.
2850
457
            if (Mnemonic[4] != 'p')
2851
0
              break;
2852
457
            switch (Mnemonic[5]) {
2853
457
            
default: break0
;
2854
457
            case '_':  // 54 strings to match.
2855
0
              switch (Mnemonic[6]) {
2856
0
              default: break;
2857
0
              case 'e':  // 9 strings to match.
2858
0
                if (memcmp(Mnemonic.data()+7, "q_", 2) != 0)
2859
0
                  break;
2860
0
                switch (Mnemonic[9]) {
2861
0
                default: break;
2862
0
                case 'f':  // 3 strings to match.
2863
0
                  switch (Mnemonic[10]) {
2864
0
                  default: break;
2865
0
                  case '1':  // 1 string to match.
2866
0
                    if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
2867
0
                      break;
2868
0
                    Mnemonic = "v_cmp_eq_f16";   // "v_cmp_eq_f16_e64"
2869
0
                    return;
2870
0
                  case '3':  // 1 string to match.
2871
0
                    if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
2872
0
                      break;
2873
0
                    Mnemonic = "v_cmp_eq_f32";   // "v_cmp_eq_f32_e64"
2874
0
                    return;
2875
0
                  case '6':  // 1 string to match.
2876
0
                    if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
2877
0
                      break;
2878
0
                    Mnemonic = "v_cmp_eq_f64";   // "v_cmp_eq_f64_e64"
2879
0
                    return;
2880
0
                  }
2881
0
                  break;
2882
0
                case 'i':  // 3 strings to match.
2883
0
                  switch (Mnemonic[10]) {
2884
0
                  default: break;
2885
0
                  case '1':  // 1 string to match.
2886
0
                    if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
2887
0
                      break;
2888
0
                    Mnemonic = "v_cmp_eq_i16";   // "v_cmp_eq_i16_e64"
2889
0
                    return;
2890
0
                  case '3':  // 1 string to match.
2891
0
                    if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
2892
0
                      break;
2893
0
                    Mnemonic = "v_cmp_eq_i32";   // "v_cmp_eq_i32_e64"
2894
0
                    return;
2895
0
                  case '6':  // 1 string to match.
2896
0
                    if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
2897
0
                      break;
2898
0
                    Mnemonic = "v_cmp_eq_i64";   // "v_cmp_eq_i64_e64"
2899
0
                    return;
2900
0
                  }
2901
0
                  break;
2902
0
                case 'u':  // 3 strings to match.
2903
0
                  switch (Mnemonic[10]) {
2904
0
                  default: break;
2905
0
                  case '1':  // 1 string to match.
2906
0
                    if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
2907
0
                      break;
2908
0
                    Mnemonic = "v_cmp_eq_u16";   // "v_cmp_eq_u16_e64"
2909
0
                    return;
2910
0
                  case '3':  // 1 string to match.
2911
0
                    if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
2912
0
                      break;
2913
0
                    Mnemonic = "v_cmp_eq_u32";   // "v_cmp_eq_u32_e64"
2914
0
                    return;
2915
0
                  case '6':  // 1 string to match.
2916
0
                    if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
2917
0
                      break;
2918
0
                    Mnemonic = "v_cmp_eq_u64";   // "v_cmp_eq_u64_e64"
2919
0
                    return;
2920
0
                  }
2921
0
                  break;
2922
0
                }
2923
0
                break;
2924
0
              case 'g':  // 18 strings to match.
2925
0
                switch (Mnemonic[7]) {
2926
0
                default: break;
2927
0
                case 'e':  // 9 strings to match.
2928
0
                  if (Mnemonic[8] != '_')
2929
0
                    break;
2930
0
                  switch (Mnemonic[9]) {
2931
0
                  default: break;
2932
0
                  case 'f':  // 3 strings to match.
2933
0
                    switch (Mnemonic[10]) {
2934
0
                    default: break;
2935
0
                    case '1':  // 1 string to match.
2936
0
                      if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
2937
0
                        break;
2938
0
                      Mnemonic = "v_cmp_ge_f16";   // "v_cmp_ge_f16_e64"
2939
0
                      return;
2940
0
                    case '3':  // 1 string to match.
2941
0
                      if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
2942
0
                        break;
2943
0
                      Mnemonic = "v_cmp_ge_f32";   // "v_cmp_ge_f32_e64"
2944
0
                      return;
2945
0
                    case '6':  // 1 string to match.
2946
0
                      if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
2947
0
                        break;
2948
0
                      Mnemonic = "v_cmp_ge_f64";   // "v_cmp_ge_f64_e64"
2949
0
                      return;
2950
0
                    }
2951
0
                    break;
2952
0
                  case 'i':  // 3 strings to match.
2953
0
                    switch (Mnemonic[10]) {
2954
0
                    default: break;
2955
0
                    case '1':  // 1 string to match.
2956
0
                      if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
2957
0
                        break;
2958
0
                      Mnemonic = "v_cmp_ge_i16";   // "v_cmp_ge_i16_e64"
2959
0
                      return;
2960
0
                    case '3':  // 1 string to match.
2961
0
                      if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
2962
0
                        break;
2963
0
                      Mnemonic = "v_cmp_ge_i32";   // "v_cmp_ge_i32_e64"
2964
0
                      return;
2965
0
                    case '6':  // 1 string to match.
2966
0
                      if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
2967
0
                        break;
2968
0
                      Mnemonic = "v_cmp_ge_i64";   // "v_cmp_ge_i64_e64"
2969
0
                      return;
2970
0
                    }
2971
0
                    break;
2972
0
                  case 'u':  // 3 strings to match.
2973
0
                    switch (Mnemonic[10]) {
2974
0
                    default: break;
2975
0
                    case '1':  // 1 string to match.
2976
0
                      if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
2977
0
                        break;
2978
0
                      Mnemonic = "v_cmp_ge_u16";   // "v_cmp_ge_u16_e64"
2979
0
                      return;
2980
0
                    case '3':  // 1 string to match.
2981
0
                      if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
2982
0
                        break;
2983
0
                      Mnemonic = "v_cmp_ge_u32";   // "v_cmp_ge_u32_e64"
2984
0
                      return;
2985
0
                    case '6':  // 1 string to match.
2986
0
                      if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
2987
0
                        break;
2988
0
                      Mnemonic = "v_cmp_ge_u64";   // "v_cmp_ge_u64_e64"
2989
0
                      return;
2990
0
                    }
2991
0
                    break;
2992
0
                  }
2993
0
                  break;
2994
0
                case 't':  // 9 strings to match.
2995
0
                  if (Mnemonic[8] != '_')
2996
0
                    break;
2997
0
                  switch (Mnemonic[9]) {
2998
0
                  default: break;
2999
0
                  case 'f':  // 3 strings to match.
3000
0
                    switch (Mnemonic[10]) {
3001
0
                    default: break;
3002
0
                    case '1':  // 1 string to match.
3003
0
                      if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3004
0
                        break;
3005
0
                      Mnemonic = "v_cmp_gt_f16";   // "v_cmp_gt_f16_e64"
3006
0
                      return;
3007
0
                    case '3':  // 1 string to match.
3008
0
                      if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3009
0
                        break;
3010
0
                      Mnemonic = "v_cmp_gt_f32";   // "v_cmp_gt_f32_e64"
3011
0
                      return;
3012
0
                    case '6':  // 1 string to match.
3013
0
                      if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3014
0
                        break;
3015
0
                      Mnemonic = "v_cmp_gt_f64";   // "v_cmp_gt_f64_e64"
3016
0
                      return;
3017
0
                    }
3018
0
                    break;
3019
0
                  case 'i':  // 3 strings to match.
3020
0
                    switch (Mnemonic[10]) {
3021
0
                    default: break;
3022
0
                    case '1':  // 1 string to match.
3023
0
                      if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3024
0
                        break;
3025
0
                      Mnemonic = "v_cmp_gt_i16";   // "v_cmp_gt_i16_e64"
3026
0
                      return;
3027
0
                    case '3':  // 1 string to match.
3028
0
                      if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3029
0
                        break;
3030
0
                      Mnemonic = "v_cmp_gt_i32";   // "v_cmp_gt_i32_e64"
3031
0
                      return;
3032
0
                    case '6':  // 1 string to match.
3033
0
                      if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3034
0
                        break;
3035
0
                      Mnemonic = "v_cmp_gt_i64";   // "v_cmp_gt_i64_e64"
3036
0
                      return;
3037
0
                    }
3038
0
                    break;
3039
0
                  case 'u':  // 3 strings to match.
3040
0
                    switch (Mnemonic[10]) {
3041
0
                    default: break;
3042
0
                    case '1':  // 1 string to match.
3043
0
                      if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3044
0
                        break;
3045
0
                      Mnemonic = "v_cmp_gt_u16";   // "v_cmp_gt_u16_e64"
3046
0
                      return;
3047
0
                    case '3':  // 1 string to match.
3048
0
                      if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3049
0
                        break;
3050
0
                      Mnemonic = "v_cmp_gt_u32";   // "v_cmp_gt_u32_e64"
3051
0
                      return;
3052
0
                    case '6':  // 1 string to match.
3053
0
                      if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3054
0
                        break;
3055
0
                      Mnemonic = "v_cmp_gt_u64";   // "v_cmp_gt_u64_e64"
3056
0
                      return;
3057
0
                    }
3058
0
                    break;
3059
0
                  }
3060
0
                  break;
3061
0
                }
3062
0
                break;
3063
0
              case 'l':  // 21 strings to match.
3064
0
                switch (Mnemonic[7]) {
3065
0
                default: break;
3066
0
                case 'e':  // 9 strings to match.
3067
0
                  if (Mnemonic[8] != '_')
3068
0
                    break;
3069
0
                  switch (Mnemonic[9]) {
3070
0
                  default: break;
3071
0
                  case 'f':  // 3 strings to match.
3072
0
                    switch (Mnemonic[10]) {
3073
0
                    default: break;
3074
0
                    case '1':  // 1 string to match.
3075
0
                      if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3076
0
                        break;
3077
0
                      Mnemonic = "v_cmp_le_f16";   // "v_cmp_le_f16_e64"
3078
0
                      return;
3079
0
                    case '3':  // 1 string to match.
3080
0
                      if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3081
0
                        break;
3082
0
                      Mnemonic = "v_cmp_le_f32";   // "v_cmp_le_f32_e64"
3083
0
                      return;
3084
0
                    case '6':  // 1 string to match.
3085
0
                      if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3086
0
                        break;
3087
0
                      Mnemonic = "v_cmp_le_f64";   // "v_cmp_le_f64_e64"
3088
0
                      return;
3089
0
                    }
3090
0
                    break;
3091
0
                  case 'i':  // 3 strings to match.
3092
0
                    switch (Mnemonic[10]) {
3093
0
                    default: break;
3094
0
                    case '1':  // 1 string to match.
3095
0
                      if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3096
0
                        break;
3097
0
                      Mnemonic = "v_cmp_le_i16";   // "v_cmp_le_i16_e64"
3098
0
                      return;
3099
0
                    case '3':  // 1 string to match.
3100
0
                      if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3101
0
                        break;
3102
0
                      Mnemonic = "v_cmp_le_i32";   // "v_cmp_le_i32_e64"
3103
0
                      return;
3104
0
                    case '6':  // 1 string to match.
3105
0
                      if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3106
0
                        break;
3107
0
                      Mnemonic = "v_cmp_le_i64";   // "v_cmp_le_i64_e64"
3108
0
                      return;
3109
0
                    }
3110
0
                    break;
3111
0
                  case 'u':  // 3 strings to match.
3112
0
                    switch (Mnemonic[10]) {
3113
0
                    default: break;
3114
0
                    case '1':  // 1 string to match.
3115
0
                      if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3116
0
                        break;
3117
0
                      Mnemonic = "v_cmp_le_u16";   // "v_cmp_le_u16_e64"
3118
0
                      return;
3119
0
                    case '3':  // 1 string to match.
3120
0
                      if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3121
0
                        break;
3122
0
                      Mnemonic = "v_cmp_le_u32";   // "v_cmp_le_u32_e64"
3123
0
                      return;
3124
0
                    case '6':  // 1 string to match.
3125
0
                      if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3126
0
                        break;
3127
0
                      Mnemonic = "v_cmp_le_u64";   // "v_cmp_le_u64_e64"
3128
0
                      return;
3129
0
                    }
3130
0
                    break;
3131
0
                  }
3132
0
                  break;
3133
0
                case 'g':  // 3 strings to match.
3134
0
                  if (memcmp(Mnemonic.data()+8, "_f", 2) != 0)
3135
0
                    break;
3136
0
                  switch (Mnemonic[10]) {
3137
0
                  default: break;
3138
0
                  case '1':  // 1 string to match.
3139
0
                    if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3140
0
                      break;
3141
0
                    Mnemonic = "v_cmp_lg_f16";   // "v_cmp_lg_f16_e64"
3142
0
                    return;
3143
0
                  case '3':  // 1 string to match.
3144
0
                    if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3145
0
                      break;
3146
0
                    Mnemonic = "v_cmp_lg_f32";   // "v_cmp_lg_f32_e64"
3147
0
                    return;
3148
0
                  case '6':  // 1 string to match.
3149
0
                    if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3150
0
                      break;
3151
0
                    Mnemonic = "v_cmp_lg_f64";   // "v_cmp_lg_f64_e64"
3152
0
                    return;
3153
0
                  }
3154
0
                  break;
3155
0
                case 't':  // 9 strings to match.
3156
0
                  if (Mnemonic[8] != '_')
3157
0
                    break;
3158
0
                  switch (Mnemonic[9]) {
3159
0
                  default: break;
3160
0
                  case 'f':  // 3 strings to match.
3161
0
                    switch (Mnemonic[10]) {
3162
0
                    default: break;
3163
0
                    case '1':  // 1 string to match.
3164
0
                      if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3165
0
                        break;
3166
0
                      Mnemonic = "v_cmp_lt_f16";   // "v_cmp_lt_f16_e64"
3167
0
                      return;
3168
0
                    case '3':  // 1 string to match.
3169
0
                      if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3170
0
                        break;
3171
0
                      Mnemonic = "v_cmp_lt_f32";   // "v_cmp_lt_f32_e64"
3172
0
                      return;
3173
0
                    case '6':  // 1 string to match.
3174
0
                      if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3175
0
                        break;
3176
0
                      Mnemonic = "v_cmp_lt_f64";   // "v_cmp_lt_f64_e64"
3177
0
                      return;
3178
0
                    }
3179
0
                    break;
3180
0
                  case 'i':  // 3 strings to match.
3181
0
                    switch (Mnemonic[10]) {
3182
0
                    default: break;
3183
0
                    case '1':  // 1 string to match.
3184
0
                      if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3185
0
                        break;
3186
0
                      Mnemonic = "v_cmp_lt_i16";   // "v_cmp_lt_i16_e64"
3187
0
                      return;
3188
0
                    case '3':  // 1 string to match.
3189
0
                      if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3190
0
                        break;
3191
0
                      Mnemonic = "v_cmp_lt_i32";   // "v_cmp_lt_i32_e64"
3192
0
                      return;
3193
0
                    case '6':  // 1 string to match.
3194
0
                      if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3195
0
                        break;
3196
0
                      Mnemonic = "v_cmp_lt_i64";   // "v_cmp_lt_i64_e64"
3197
0
                      return;
3198
0
                    }
3199
0
                    break;
3200
0
                  case 'u':  // 3 strings to match.
3201
0
                    switch (Mnemonic[10]) {
3202
0
                    default: break;
3203
0
                    case '1':  // 1 string to match.
3204
0
                      if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3205
0
                        break;
3206
0
                      Mnemonic = "v_cmp_lt_u16";   // "v_cmp_lt_u16_e64"
3207
0
                      return;
3208
0
                    case '3':  // 1 string to match.
3209
0
                      if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3210
0
                        break;
3211
0
                      Mnemonic = "v_cmp_lt_u32";   // "v_cmp_lt_u32_e64"
3212
0
                      return;
3213
0
                    case '6':  // 1 string to match.
3214
0
                      if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3215
0
                        break;
3216
0
                      Mnemonic = "v_cmp_lt_u64";   // "v_cmp_lt_u64_e64"
3217
0
                      return;
3218
0
                    }
3219
0
                    break;
3220
0
                  }
3221
0
                  break;
3222
0
                }
3223
0
                break;
3224
0
              case 'n':  // 6 strings to match.
3225
0
                if (memcmp(Mnemonic.data()+7, "e_", 2) != 0)
3226
0
                  break;
3227
0
                switch (Mnemonic[9]) {
3228
0
                default: break;
3229
0
                case 'i':  // 3 strings to match.
3230
0
                  switch (Mnemonic[10]) {
3231
0
                  default: break;
3232
0
                  case '1':  // 1 string to match.
3233
0
                    if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3234
0
                      break;
3235
0
                    Mnemonic = "v_cmp_ne_i16";   // "v_cmp_ne_i16_e64"
3236
0
                    return;
3237
0
                  case '3':  // 1 string to match.
3238
0
                    if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3239
0
                      break;
3240
0
                    Mnemonic = "v_cmp_ne_i32";   // "v_cmp_ne_i32_e64"
3241
0
                    return;
3242
0
                  case '6':  // 1 string to match.
3243
0
                    if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3244
0
                      break;
3245
0
                    Mnemonic = "v_cmp_ne_i64";   // "v_cmp_ne_i64_e64"
3246
0
                    return;
3247
0
                  }
3248
0
                  break;
3249
0
                case 'u':  // 3 strings to match.
3250
0
                  switch (Mnemonic[10]) {
3251
0
                  default: break;
3252
0
                  case '1':  // 1 string to match.
3253
0
                    if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3254
0
                      break;
3255
0
                    Mnemonic = "v_cmp_ne_u16";   // "v_cmp_ne_u16_e64"
3256
0
                    return;
3257
0
                  case '3':  // 1 string to match.
3258
0
                    if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3259
0
                      break;
3260
0
                    Mnemonic = "v_cmp_ne_u32";   // "v_cmp_ne_u32_e64"
3261
0
                    return;
3262
0
                  case '6':  // 1 string to match.
3263
0
                    if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3264
0
                      break;
3265
0
                    Mnemonic = "v_cmp_ne_u64";   // "v_cmp_ne_u64_e64"
3266
0
                    return;
3267
0
                  }
3268
0
                  break;
3269
0
                }
3270
0
                break;
3271
0
              }
3272
0
              break;
3273
0
            case 's':  // 6 strings to match.
3274
0
              if (Mnemonic[6] != '_')
3275
0
                break;
3276
0
              switch (Mnemonic[7]) {
3277
0
              default: break;
3278
0
              case 'f':  // 2 strings to match.
3279
0
                if (memcmp(Mnemonic.data()+8, "_f", 2) != 0)
3280
0
                  break;
3281
0
                switch (Mnemonic[10]) {
3282
0
                default: break;
3283
0
                case '3':  // 1 string to match.
3284
0
                  if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3285
0
                    break;
3286
0
                  Mnemonic = "v_cmps_f_f32";   // "v_cmps_f_f32_e64"
3287
0
                  return;
3288
0
                case '6':  // 1 string to match.
3289
0
                  if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3290
0
                    break;
3291
0
                  Mnemonic = "v_cmps_f_f64";   // "v_cmps_f_f64_e64"
3292
0
                  return;
3293
0
                }
3294
0
                break;
3295
0
              case 'o':  // 2 strings to match.
3296
0
                if (memcmp(Mnemonic.data()+8, "_f", 2) != 0)
3297
0
                  break;
3298
0
                switch (Mnemonic[10]) {
3299
0
                default: break;
3300
0
                case '3':  // 1 string to match.
3301
0
                  if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3302
0
                    break;
3303
0
                  Mnemonic = "v_cmps_o_f32";   // "v_cmps_o_f32_e64"
3304
0
                  return;
3305
0
                case '6':  // 1 string to match.
3306
0
                  if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3307
0
                    break;
3308
0
                  Mnemonic = "v_cmps_o_f64";   // "v_cmps_o_f64_e64"
3309
0
                  return;
3310
0
                }
3311
0
                break;
3312
0
              case 'u':  // 2 strings to match.
3313
0
                if (memcmp(Mnemonic.data()+8, "_f", 2) != 0)
3314
0
                  break;
3315
0
                switch (Mnemonic[10]) {
3316
0
                default: break;
3317
0
                case '3':  // 1 string to match.
3318
0
                  if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3319
0
                    break;
3320
0
                  Mnemonic = "v_cmps_u_f32";   // "v_cmps_u_f32_e64"
3321
0
                  return;
3322
0
                case '6':  // 1 string to match.
3323
0
                  if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3324
0
                    break;
3325
0
                  Mnemonic = "v_cmps_u_f64";   // "v_cmps_u_f64_e64"
3326
0
                  return;
3327
0
                }
3328
0
                break;
3329
0
              }
3330
0
              break;
3331
457
            case 'x':  // 21 strings to match.
3332
457
              if (Mnemonic[6] != '_')
3333
0
                break;
3334
457
              switch (Mnemonic[7]) {
3335
457
              default: break;
3336
457
              case 'f':  // 9 strings to match.
3337
0
                if (Mnemonic[8] != '_')
3338
0
                  break;
3339
0
                switch (Mnemonic[9]) {
3340
0
                default: break;
3341
0
                case 'f':  // 3 strings to match.
3342
0
                  switch (Mnemonic[10]) {
3343
0
                  default: break;
3344
0
                  case '1':  // 1 string to match.
3345
0
                    if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3346
0
                      break;
3347
0
                    Mnemonic = "v_cmpx_f_f16";   // "v_cmpx_f_f16_e64"
3348
0
                    return;
3349
0
                  case '3':  // 1 string to match.
3350
0
                    if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3351
0
                      break;
3352
0
                    Mnemonic = "v_cmpx_f_f32";   // "v_cmpx_f_f32_e64"
3353
0
                    return;
3354
0
                  case '6':  // 1 string to match.
3355
0
                    if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3356
0
                      break;
3357
0
                    Mnemonic = "v_cmpx_f_f64";   // "v_cmpx_f_f64_e64"
3358
0
                    return;
3359
0
                  }
3360
0
                  break;
3361
0
                case 'i':  // 3 strings to match.
3362
0
                  switch (Mnemonic[10]) {
3363
0
                  default: break;
3364
0
                  case '1':  // 1 string to match.
3365
0
                    if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3366
0
                      break;
3367
0
                    Mnemonic = "v_cmpx_f_i16";   // "v_cmpx_f_i16_e64"
3368
0
                    return;
3369
0
                  case '3':  // 1 string to match.
3370
0
                    if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3371
0
                      break;
3372
0
                    Mnemonic = "v_cmpx_f_i32";   // "v_cmpx_f_i32_e64"
3373
0
                    return;
3374
0
                  case '6':  // 1 string to match.
3375
0
                    if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3376
0
                      break;
3377
0
                    Mnemonic = "v_cmpx_f_i64";   // "v_cmpx_f_i64_e64"
3378
0
                    return;
3379
0
                  }
3380
0
                  break;
3381
0
                case 'u':  // 3 strings to match.
3382
0
                  switch (Mnemonic[10]) {
3383
0
                  default: break;
3384
0
                  case '1':  // 1 string to match.
3385
0
                    if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3386
0
                      break;
3387
0
                    Mnemonic = "v_cmpx_f_u16";   // "v_cmpx_f_u16_e64"
3388
0
                    return;
3389
0
                  case '3':  // 1 string to match.
3390
0
                    if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3391
0
                      break;
3392
0
                    Mnemonic = "v_cmpx_f_u32";   // "v_cmpx_f_u32_e64"
3393
0
                    return;
3394
0
                  case '6':  // 1 string to match.
3395
0
                    if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3396
0
                      break;
3397
0
                    Mnemonic = "v_cmpx_f_u64";   // "v_cmpx_f_u64_e64"
3398
0
                    return;
3399
0
                  }
3400
0
                  break;
3401
0
                }
3402
0
                break;
3403
0
              case 'o':  // 3 strings to match.
3404
0
                if (memcmp(Mnemonic.data()+8, "_f", 2) != 0)
3405
0
                  break;
3406
0
                switch (Mnemonic[10]) {
3407
0
                default: break;
3408
0
                case '1':  // 1 string to match.
3409
0
                  if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3410
0
                    break;
3411
0
                  Mnemonic = "v_cmpx_o_f16";   // "v_cmpx_o_f16_e64"
3412
0
                  return;
3413
0
                case '3':  // 1 string to match.
3414
0
                  if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3415
0
                    break;
3416
0
                  Mnemonic = "v_cmpx_o_f32";   // "v_cmpx_o_f32_e64"
3417
0
                  return;
3418
0
                case '6':  // 1 string to match.
3419
0
                  if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3420
0
                    break;
3421
0
                  Mnemonic = "v_cmpx_o_f64";   // "v_cmpx_o_f64_e64"
3422
0
                  return;
3423
0
                }
3424
0
                break;
3425
0
              case 't':  // 6 strings to match.
3426
0
                if (Mnemonic[8] != '_')
3427
0
                  break;
3428
0
                switch (Mnemonic[9]) {
3429
0
                default: break;
3430
0
                case 'i':  // 3 strings to match.
3431
0
                  switch (Mnemonic[10]) {
3432
0
                  default: break;
3433
0
                  case '1':  // 1 string to match.
3434
0
                    if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3435
0
                      break;
3436
0
                    Mnemonic = "v_cmpx_t_i16";   // "v_cmpx_t_i16_e64"
3437
0
                    return;
3438
0
                  case '3':  // 1 string to match.
3439
0
                    if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3440
0
                      break;
3441
0
                    Mnemonic = "v_cmpx_t_i32";   // "v_cmpx_t_i32_e64"
3442
0
                    return;
3443
0
                  case '6':  // 1 string to match.
3444
0
                    if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3445
0
                      break;
3446
0
                    Mnemonic = "v_cmpx_t_i64";   // "v_cmpx_t_i64_e64"
3447
0
                    return;
3448
0
                  }
3449
0
                  break;
3450
0
                case 'u':  // 3 strings to match.
3451
0
                  switch (Mnemonic[10]) {
3452
0
                  default: break;
3453
0
                  case '1':  // 1 string to match.
3454
0
                    if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3455
0
                      break;
3456
0
                    Mnemonic = "v_cmpx_t_u16";   // "v_cmpx_t_u16_e64"
3457
0
                    return;
3458
0
                  case '3':  // 1 string to match.
3459
0
                    if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3460
0
                      break;
3461
0
                    Mnemonic = "v_cmpx_t_u32";   // "v_cmpx_t_u32_e64"
3462
0
                    return;
3463
0
                  case '6':  // 1 string to match.
3464
0
                    if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3465
0
                      break;
3466
0
                    Mnemonic = "v_cmpx_t_u64";   // "v_cmpx_t_u64_e64"
3467
0
                    return;
3468
0
                  }
3469
0
                  break;
3470
0
                }
3471
0
                break;
3472
0
              case 'u':  // 3 strings to match.
3473
0
                if (memcmp(Mnemonic.data()+8, "_f", 2) != 0)
3474
0
                  break;
3475
0
                switch (Mnemonic[10]) {
3476
0
                default: break;
3477
0
                case '1':  // 1 string to match.
3478
0
                  if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3479
0
                    break;
3480
0
                  Mnemonic = "v_cmpx_u_f16";   // "v_cmpx_u_f16_e64"
3481
0
                  return;
3482
0
                case '3':  // 1 string to match.
3483
0
                  if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3484
0
                    break;
3485
0
                  Mnemonic = "v_cmpx_u_f32";   // "v_cmpx_u_f32_e64"
3486
0
                  return;
3487
0
                case '6':  // 1 string to match.
3488
0
                  if (memcmp(Mnemonic.data()+11, "4_e64", 5) != 0)
3489
0
                    break;
3490
0
                  Mnemonic = "v_cmpx_u_f64";   // "v_cmpx_u_f64_e64"
3491
0
                  return;
3492
0
                }
3493
0
                break;
3494
457
              }
3495
457
              break;
3496
457
            }
3497
457
            break;
3498
457
          case 'u':  // 4 strings to match.
3499
0
            if (memcmp(Mnemonic.data()+4, "be", 2) != 0)
3500
0
              break;
3501
0
            switch (Mnemonic[6]) {
3502
0
            default: break;
3503
0
            case 'i':  // 1 string to match.
3504
0
              if (memcmp(Mnemonic.data()+7, "d_f32_e64", 9) != 0)
3505
0
                break;
3506
0
              Mnemonic = "v_cubeid_f32";   // "v_cubeid_f32_e64"
3507
0
              return;
3508
0
            case 'm':  // 1 string to match.
3509
0
              if (memcmp(Mnemonic.data()+7, "a_f32_e64", 9) != 0)
3510
0
                break;
3511
0
              Mnemonic = "v_cubema_f32";   // "v_cubema_f32_e64"
3512
0
              return;
3513
0
            case 's':  // 1 string to match.
3514
0
              if (memcmp(Mnemonic.data()+7, "c_f32_e64", 9) != 0)
3515
0
                break;
3516
0
              Mnemonic = "v_cubesc_f32";   // "v_cubesc_f32_e64"
3517
0
              return;
3518
0
            case 't':  // 1 string to match.
3519
0
              if (memcmp(Mnemonic.data()+7, "c_f32_e64", 9) != 0)
3520
0
                break;
3521
0
              Mnemonic = "v_cubetc_f32";   // "v_cubetc_f32_e64"
3522
0
              return;
3523
0
            }
3524
0
            break;
3525
1.26k
          }
3526
1.26k
          break;
3527
1.26k
        case 'm':  // 6 strings to match.
3528
1.18k
          if (memcmp(Mnemonic.data()+3, "ul", 2) != 0)
3529
701
            break;
3530
482
          switch (Mnemonic[5]) {
3531
482
          
default: break0
;
3532
482
          case '_':  // 5 strings to match.
3533
482
            switch (Mnemonic[6]) {
3534
482
            
default: break0
;
3535
482
            case 'h':  // 2 strings to match.
3536
296
              if (memcmp(Mnemonic.data()+7, "i_", 2) != 0)
3537
0
                break;
3538
296
              switch (Mnemonic[9]) {
3539
296
              
default: break0
;
3540
296
              case 'i':  // 1 string to match.
3541
148
                if (memcmp(Mnemonic.data()+10, "32_e64", 6) != 0)
3542
148
                  break;
3543
0
                Mnemonic = "v_mul_hi_i32";   // "v_mul_hi_i32_e64"
3544
0
                return;
3545
148
              case 'u':  // 1 string to match.
3546
148
                if (memcmp(Mnemonic.data()+10, "32_e64", 6) != 0)
3547
148
                  break;
3548
0
                Mnemonic = "v_mul_hi_u32";   // "v_mul_hi_u32_e64"
3549
0
                return;
3550
296
              }
3551
296
              break;
3552
296
            case 'l':  // 3 strings to match.
3553
186
              if (memcmp(Mnemonic.data()+7, "o_", 2) != 0)
3554
186
                break;
3555
0
              switch (Mnemonic[9]) {
3556
0
              default: break;
3557
0
              case 'i':  // 1 string to match.
3558
0
                if (memcmp(Mnemonic.data()+10, "32_e64", 6) != 0)
3559
0
                  break;
3560
0
                Mnemonic = "v_mul_lo_i32";   // "v_mul_lo_i32_e64"
3561
0
                return;
3562
0
              case 'u':  // 2 strings to match.
3563
0
                switch (Mnemonic[10]) {
3564
0
                default: break;
3565
0
                case '1':  // 1 string to match.
3566
0
                  if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3567
0
                    break;
3568
0
                  Mnemonic = "v_mul_lo_u16";   // "v_mul_lo_u16_e64"
3569
0
                  return;
3570
0
                case '3':  // 1 string to match.
3571
0
                  if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3572
0
                    break;
3573
0
                  Mnemonic = "v_mul_lo_u32";   // "v_mul_lo_u32_e64"
3574
0
                  return;
3575
0
                }
3576
0
                break;
3577
0
              }
3578
0
              break;
3579
482
            }
3580
482
            break;
3581
482
          case 'l':  // 1 string to match.
3582
0
            if (memcmp(Mnemonic.data()+6, "it_f32_e64", 10) != 0)
3583
0
              break;
3584
0
            if (Features.test(Feature_isSICIBit))  // "v_mullit_f32_e64"
3585
0
              Mnemonic = "v_mullit_f32";
3586
0
            return;
3587
482
          }
3588
482
          break;
3589
482
        case 'p':  // 15 strings to match.
3590
186
          if (memcmp(Mnemonic.data()+3, "k_", 2) != 0)
3591
0
            break;
3592
186
          switch (Mnemonic[5]) {
3593
186
          
default: break124
;
3594
186
          case 'a':  // 3 strings to match.
3595
62
            if (memcmp(Mnemonic.data()+6, "dd_", 3) != 0)
3596
62
              break;
3597
0
            switch (Mnemonic[9]) {
3598
0
            default: break;
3599
0
            case 'f':  // 1 string to match.
3600
0
              if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3601
0
                break;
3602
0
              Mnemonic = "v_pk_add_f16";   // "v_pk_add_f16_e64"
3603
0
              return;
3604
0
            case 'i':  // 1 string to match.
3605
0
              if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3606
0
                break;
3607
0
              Mnemonic = "v_pk_add_i16";   // "v_pk_add_i16_e64"
3608
0
              return;
3609
0
            case 'u':  // 1 string to match.
3610
0
              if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3611
0
                break;
3612
0
              Mnemonic = "v_pk_add_u16";   // "v_pk_add_u16_e64"
3613
0
              return;
3614
0
            }
3615
0
            break;
3616
0
          case 'f':  // 1 string to match.
3617
0
            if (memcmp(Mnemonic.data()+6, "ma_f16_e64", 10) != 0)
3618
0
              break;
3619
0
            Mnemonic = "v_pk_fma_f16";   // "v_pk_fma_f16_e64"
3620
0
            return;
3621
0
          case 'm':  // 9 strings to match.
3622
0
            switch (Mnemonic[6]) {
3623
0
            default: break;
3624
0
            case 'a':  // 5 strings to match.
3625
0
              switch (Mnemonic[7]) {
3626
0
              default: break;
3627
0
              case 'd':  // 2 strings to match.
3628
0
                if (Mnemonic[8] != '_')
3629
0
                  break;
3630
0
                switch (Mnemonic[9]) {
3631
0
                default: break;
3632
0
                case 'i':  // 1 string to match.
3633
0
                  if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3634
0
                    break;
3635
0
                  Mnemonic = "v_pk_mad_i16";   // "v_pk_mad_i16_e64"
3636
0
                  return;
3637
0
                case 'u':  // 1 string to match.
3638
0
                  if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3639
0
                    break;
3640
0
                  Mnemonic = "v_pk_mad_u16";   // "v_pk_mad_u16_e64"
3641
0
                  return;
3642
0
                }
3643
0
                break;
3644
0
              case 'x':  // 3 strings to match.
3645
0
                if (Mnemonic[8] != '_')
3646
0
                  break;
3647
0
                switch (Mnemonic[9]) {
3648
0
                default: break;
3649
0
                case 'f':  // 1 string to match.
3650
0
                  if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3651
0
                    break;
3652
0
                  Mnemonic = "v_pk_max_f16";   // "v_pk_max_f16_e64"
3653
0
                  return;
3654
0
                case 'i':  // 1 string to match.
3655
0
                  if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3656
0
                    break;
3657
0
                  Mnemonic = "v_pk_max_i16";   // "v_pk_max_i16_e64"
3658
0
                  return;
3659
0
                case 'u':  // 1 string to match.
3660
0
                  if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3661
0
                    break;
3662
0
                  Mnemonic = "v_pk_max_u16";   // "v_pk_max_u16_e64"
3663
0
                  return;
3664
0
                }
3665
0
                break;
3666
0
              }
3667
0
              break;
3668
0
            case 'i':  // 3 strings to match.
3669
0
              if (memcmp(Mnemonic.data()+7, "n_", 2) != 0)
3670
0
                break;
3671
0
              switch (Mnemonic[9]) {
3672
0
              default: break;
3673
0
              case 'f':  // 1 string to match.
3674
0
                if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3675
0
                  break;
3676
0
                Mnemonic = "v_pk_min_f16";   // "v_pk_min_f16_e64"
3677
0
                return;
3678
0
              case 'i':  // 1 string to match.
3679
0
                if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3680
0
                  break;
3681
0
                Mnemonic = "v_pk_min_i16";   // "v_pk_min_i16_e64"
3682
0
                return;
3683
0
              case 'u':  // 1 string to match.
3684
0
                if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3685
0
                  break;
3686
0
                Mnemonic = "v_pk_min_u16";   // "v_pk_min_u16_e64"
3687
0
                return;
3688
0
              }
3689
0
              break;
3690
0
            case 'u':  // 1 string to match.
3691
0
              if (memcmp(Mnemonic.data()+7, "l_f16_e64", 9) != 0)
3692
0
                break;
3693
0
              Mnemonic = "v_pk_mul_f16";   // "v_pk_mul_f16_e64"
3694
0
              return;
3695
0
            }
3696
0
            break;
3697
0
          case 's':  // 2 strings to match.
3698
0
            if (memcmp(Mnemonic.data()+6, "ub_", 3) != 0)
3699
0
              break;
3700
0
            switch (Mnemonic[9]) {
3701
0
            default: break;
3702
0
            case 'i':  // 1 string to match.
3703
0
              if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3704
0
                break;
3705
0
              Mnemonic = "v_pk_sub_i16";   // "v_pk_sub_i16_e64"
3706
0
              return;
3707
0
            case 'u':  // 1 string to match.
3708
0
              if (memcmp(Mnemonic.data()+10, "16_e64", 6) != 0)
3709
0
                break;
3710
0
              Mnemonic = "v_pk_sub_u16";   // "v_pk_sub_u16_e64"
3711
0
              return;
3712
0
            }
3713
0
            break;
3714
186
          }
3715
186
          break;
3716
186
        case 's':  // 5 strings to match.
3717
47
          if (memcmp(Mnemonic.data()+3, "ubrev_", 6) != 0)
3718
47
            break;
3719
0
          switch (Mnemonic[9]) {
3720
0
          default: break;
3721
0
          case 'f':  // 2 strings to match.
3722
0
            switch (Mnemonic[10]) {
3723
0
            default: break;
3724
0
            case '1':  // 1 string to match.
3725
0
              if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3726
0
                break;
3727
0
              Mnemonic = "v_subrev_f16";   // "v_subrev_f16_e64"
3728
0
              return;
3729
0
            case '3':  // 1 string to match.
3730
0
              if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3731
0
                break;
3732
0
              Mnemonic = "v_subrev_f32";   // "v_subrev_f32_e64"
3733
0
              return;
3734
0
            }
3735
0
            break;
3736
0
          case 'i':  // 1 string to match.
3737
0
            if (memcmp(Mnemonic.data()+10, "32_e64", 6) != 0)
3738
0
              break;
3739
0
            Mnemonic = "v_subrev_i32";   // "v_subrev_i32_e64"
3740
0
            return;
3741
0
          case 'u':  // 2 strings to match.
3742
0
            switch (Mnemonic[10]) {
3743
0
            default: break;
3744
0
            case '1':  // 1 string to match.
3745
0
              if (memcmp(Mnemonic.data()+11, "6_e64", 5) != 0)
3746
0
                break;
3747
0
              Mnemonic = "v_subrev_u16";   // "v_subrev_u16_e64"
3748
0
              return;
3749
0
            case '3':  // 1 string to match.
3750
0
              if (memcmp(Mnemonic.data()+11, "2_e64", 5) != 0)
3751
0
                break;
3752
0
              Mnemonic = "v_subrev_u32";   // "v_subrev_u32_e64"
3753
0
              return;
3754
0
            }
3755
0
            break;
3756
0
          }
3757
0
          break;
3758
3.74k
        }
3759
3.74k
        break;
3760
3.74k
      case 17:   // 138 strings to match.
3761
686
        if (memcmp(Mnemonic.data()+0, "v_", 2) != 0)
3762
98
          break;
3763
588
        switch (Mnemonic[2]) {
3764
588
        
default: break191
;
3765
588
        case 'a':  // 3 strings to match.
3766
0
          if (memcmp(Mnemonic.data()+3, "shrrev_i", 8) != 0)
3767
0
            break;
3768
0
          switch (Mnemonic[11]) {
3769
0
          default: break;
3770
0
          case '1':  // 1 string to match.
3771
0
            if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
3772
0
              break;
3773
0
            Mnemonic = "v_ashrrev_i16";  // "v_ashrrev_i16_e64"
3774
0
            return;
3775
0
          case '3':  // 1 string to match.
3776
0
            if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
3777
0
              break;
3778
0
            Mnemonic = "v_ashrrev_i32";  // "v_ashrrev_i32_e64"
3779
0
            return;
3780
0
          case '6':  // 1 string to match.
3781
0
            if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
3782
0
              break;
3783
0
            Mnemonic = "v_ashrrev_i64";  // "v_ashrrev_i64_e64"
3784
0
            return;
3785
0
          }
3786
0
          break;
3787
186
        case 'c':  // 110 strings to match.
3788
186
          switch (Mnemonic[3]) {
3789
186
          
default: break0
;
3790
186
          case 'm':  // 93 strings to match.
3791
0
            if (Mnemonic[4] != 'p')
3792
0
              break;
3793
0
            switch (Mnemonic[5]) {
3794
0
            default: break;
3795
0
            case '_':  // 21 strings to match.
3796
0
              switch (Mnemonic[6]) {
3797
0
              default: break;
3798
0
              case 'n':  // 18 strings to match.
3799
0
                switch (Mnemonic[7]) {
3800
0
                default: break;
3801
0
                case 'e':  // 3 strings to match.
3802
0
                  if (memcmp(Mnemonic.data()+8, "q_f", 3) != 0)
3803
0
                    break;
3804
0
                  switch (Mnemonic[11]) {
3805
0
                  default: break;
3806
0
                  case '1':  // 1 string to match.
3807
0
                    if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
3808
0
                      break;
3809
0
                    Mnemonic = "v_cmp_neq_f16";  // "v_cmp_neq_f16_e64"
3810
0
                    return;
3811
0
                  case '3':  // 1 string to match.
3812
0
                    if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
3813
0
                      break;
3814
0
                    Mnemonic = "v_cmp_neq_f32";  // "v_cmp_neq_f32_e64"
3815
0
                    return;
3816
0
                  case '6':  // 1 string to match.
3817
0
                    if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
3818
0
                      break;
3819
0
                    Mnemonic = "v_cmp_neq_f64";  // "v_cmp_neq_f64_e64"
3820
0
                    return;
3821
0
                  }
3822
0
                  break;
3823
0
                case 'g':  // 6 strings to match.
3824
0
                  switch (Mnemonic[8]) {
3825
0
                  default: break;
3826
0
                  case 'e':  // 3 strings to match.
3827
0
                    if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
3828
0
                      break;
3829
0
                    switch (Mnemonic[11]) {
3830
0
                    default: break;
3831
0
                    case '1':  // 1 string to match.
3832
0
                      if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
3833
0
                        break;
3834
0
                      Mnemonic = "v_cmp_nge_f16";  // "v_cmp_nge_f16_e64"
3835
0
                      return;
3836
0
                    case '3':  // 1 string to match.
3837
0
                      if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
3838
0
                        break;
3839
0
                      Mnemonic = "v_cmp_nge_f32";  // "v_cmp_nge_f32_e64"
3840
0
                      return;
3841
0
                    case '6':  // 1 string to match.
3842
0
                      if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
3843
0
                        break;
3844
0
                      Mnemonic = "v_cmp_nge_f64";  // "v_cmp_nge_f64_e64"
3845
0
                      return;
3846
0
                    }
3847
0
                    break;
3848
0
                  case 't':  // 3 strings to match.
3849
0
                    if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
3850
0
                      break;
3851
0
                    switch (Mnemonic[11]) {
3852
0
                    default: break;
3853
0
                    case '1':  // 1 string to match.
3854
0
                      if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
3855
0
                        break;
3856
0
                      Mnemonic = "v_cmp_ngt_f16";  // "v_cmp_ngt_f16_e64"
3857
0
                      return;
3858
0
                    case '3':  // 1 string to match.
3859
0
                      if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
3860
0
                        break;
3861
0
                      Mnemonic = "v_cmp_ngt_f32";  // "v_cmp_ngt_f32_e64"
3862
0
                      return;
3863
0
                    case '6':  // 1 string to match.
3864
0
                      if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
3865
0
                        break;
3866
0
                      Mnemonic = "v_cmp_ngt_f64";  // "v_cmp_ngt_f64_e64"
3867
0
                      return;
3868
0
                    }
3869
0
                    break;
3870
0
                  }
3871
0
                  break;
3872
0
                case 'l':  // 9 strings to match.
3873
0
                  switch (Mnemonic[8]) {
3874
0
                  default: break;
3875
0
                  case 'e':  // 3 strings to match.
3876
0
                    if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
3877
0
                      break;
3878
0
                    switch (Mnemonic[11]) {
3879
0
                    default: break;
3880
0
                    case '1':  // 1 string to match.
3881
0
                      if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
3882
0
                        break;
3883
0
                      Mnemonic = "v_cmp_nle_f16";  // "v_cmp_nle_f16_e64"
3884
0
                      return;
3885
0
                    case '3':  // 1 string to match.
3886
0
                      if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
3887
0
                        break;
3888
0
                      Mnemonic = "v_cmp_nle_f32";  // "v_cmp_nle_f32_e64"
3889
0
                      return;
3890
0
                    case '6':  // 1 string to match.
3891
0
                      if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
3892
0
                        break;
3893
0
                      Mnemonic = "v_cmp_nle_f64";  // "v_cmp_nle_f64_e64"
3894
0
                      return;
3895
0
                    }
3896
0
                    break;
3897
0
                  case 'g':  // 3 strings to match.
3898
0
                    if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
3899
0
                      break;
3900
0
                    switch (Mnemonic[11]) {
3901
0
                    default: break;
3902
0
                    case '1':  // 1 string to match.
3903
0
                      if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
3904
0
                        break;
3905
0
                      Mnemonic = "v_cmp_nlg_f16";  // "v_cmp_nlg_f16_e64"
3906
0
                      return;
3907
0
                    case '3':  // 1 string to match.
3908
0
                      if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
3909
0
                        break;
3910
0
                      Mnemonic = "v_cmp_nlg_f32";  // "v_cmp_nlg_f32_e64"
3911
0
                      return;
3912
0
                    case '6':  // 1 string to match.
3913
0
                      if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
3914
0
                        break;
3915
0
                      Mnemonic = "v_cmp_nlg_f64";  // "v_cmp_nlg_f64_e64"
3916
0
                      return;
3917
0
                    }
3918
0
                    break;
3919
0
                  case 't':  // 3 strings to match.
3920
0
                    if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
3921
0
                      break;
3922
0
                    switch (Mnemonic[11]) {
3923
0
                    default: break;
3924
0
                    case '1':  // 1 string to match.
3925
0
                      if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
3926
0
                        break;
3927
0
                      Mnemonic = "v_cmp_nlt_f16";  // "v_cmp_nlt_f16_e64"
3928
0
                      return;
3929
0
                    case '3':  // 1 string to match.
3930
0
                      if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
3931
0
                        break;
3932
0
                      Mnemonic = "v_cmp_nlt_f32";  // "v_cmp_nlt_f32_e64"
3933
0
                      return;
3934
0
                    case '6':  // 1 string to match.
3935
0
                      if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
3936
0
                        break;
3937
0
                      Mnemonic = "v_cmp_nlt_f64";  // "v_cmp_nlt_f64_e64"
3938
0
                      return;
3939
0
                    }
3940
0
                    break;
3941
0
                  }
3942
0
                  break;
3943
0
                }
3944
0
                break;
3945
0
              case 't':  // 3 strings to match.
3946
0
                if (memcmp(Mnemonic.data()+7, "ru_f", 4) != 0)
3947
0
                  break;
3948
0
                switch (Mnemonic[11]) {
3949
0
                default: break;
3950
0
                case '1':  // 1 string to match.
3951
0
                  if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
3952
0
                    break;
3953
0
                  Mnemonic = "v_cmp_tru_f16";  // "v_cmp_tru_f16_e64"
3954
0
                  return;
3955
0
                case '3':  // 1 string to match.
3956
0
                  if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
3957
0
                    break;
3958
0
                  Mnemonic = "v_cmp_tru_f32";  // "v_cmp_tru_f32_e64"
3959
0
                  return;
3960
0
                case '6':  // 1 string to match.
3961
0
                  if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
3962
0
                    break;
3963
0
                  Mnemonic = "v_cmp_tru_f64";  // "v_cmp_tru_f64_e64"
3964
0
                  return;
3965
0
                }
3966
0
                break;
3967
0
              }
3968
0
              break;
3969
0
            case 's':  // 18 strings to match.
3970
0
              switch (Mnemonic[6]) {
3971
0
              default: break;
3972
0
              case '_':  // 12 strings to match.
3973
0
                switch (Mnemonic[7]) {
3974
0
                default: break;
3975
0
                case 'e':  // 2 strings to match.
3976
0
                  if (memcmp(Mnemonic.data()+8, "q_f", 3) != 0)
3977
0
                    break;
3978
0
                  switch (Mnemonic[11]) {
3979
0
                  default: break;
3980
0
                  case '3':  // 1 string to match.
3981
0
                    if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
3982
0
                      break;
3983
0
                    Mnemonic = "v_cmps_eq_f32";  // "v_cmps_eq_f32_e64"
3984
0
                    return;
3985
0
                  case '6':  // 1 string to match.
3986
0
                    if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
3987
0
                      break;
3988
0
                    Mnemonic = "v_cmps_eq_f64";  // "v_cmps_eq_f64_e64"
3989
0
                    return;
3990
0
                  }
3991
0
                  break;
3992
0
                case 'g':  // 4 strings to match.
3993
0
                  switch (Mnemonic[8]) {
3994
0
                  default: break;
3995
0
                  case 'e':  // 2 strings to match.
3996
0
                    if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
3997
0
                      break;
3998
0
                    switch (Mnemonic[11]) {
3999
0
                    default: break;
4000
0
                    case '3':  // 1 string to match.
4001
0
                      if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4002
0
                        break;
4003
0
                      Mnemonic = "v_cmps_ge_f32";  // "v_cmps_ge_f32_e64"
4004
0
                      return;
4005
0
                    case '6':  // 1 string to match.
4006
0
                      if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4007
0
                        break;
4008
0
                      Mnemonic = "v_cmps_ge_f64";  // "v_cmps_ge_f64_e64"
4009
0
                      return;
4010
0
                    }
4011
0
                    break;
4012
0
                  case 't':  // 2 strings to match.
4013
0
                    if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
4014
0
                      break;
4015
0
                    switch (Mnemonic[11]) {
4016
0
                    default: break;
4017
0
                    case '3':  // 1 string to match.
4018
0
                      if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4019
0
                        break;
4020
0
                      Mnemonic = "v_cmps_gt_f32";  // "v_cmps_gt_f32_e64"
4021
0
                      return;
4022
0
                    case '6':  // 1 string to match.
4023
0
                      if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4024
0
                        break;
4025
0
                      Mnemonic = "v_cmps_gt_f64";  // "v_cmps_gt_f64_e64"
4026
0
                      return;
4027
0
                    }
4028
0
                    break;
4029
0
                  }
4030
0
                  break;
4031
0
                case 'l':  // 6 strings to match.
4032
0
                  switch (Mnemonic[8]) {
4033
0
                  default: break;
4034
0
                  case 'e':  // 2 strings to match.
4035
0
                    if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
4036
0
                      break;
4037
0
                    switch (Mnemonic[11]) {
4038
0
                    default: break;
4039
0
                    case '3':  // 1 string to match.
4040
0
                      if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4041
0
                        break;
4042
0
                      Mnemonic = "v_cmps_le_f32";  // "v_cmps_le_f32_e64"
4043
0
                      return;
4044
0
                    case '6':  // 1 string to match.
4045
0
                      if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4046
0
                        break;
4047
0
                      Mnemonic = "v_cmps_le_f64";  // "v_cmps_le_f64_e64"
4048
0
                      return;
4049
0
                    }
4050
0
                    break;
4051
0
                  case 'g':  // 2 strings to match.
4052
0
                    if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
4053
0
                      break;
4054
0
                    switch (Mnemonic[11]) {
4055
0
                    default: break;
4056
0
                    case '3':  // 1 string to match.
4057
0
                      if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4058
0
                        break;
4059
0
                      Mnemonic = "v_cmps_lg_f32";  // "v_cmps_lg_f32_e64"
4060
0
                      return;
4061
0
                    case '6':  // 1 string to match.
4062
0
                      if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4063
0
                        break;
4064
0
                      Mnemonic = "v_cmps_lg_f64";  // "v_cmps_lg_f64_e64"
4065
0
                      return;
4066
0
                    }
4067
0
                    break;
4068
0
                  case 't':  // 2 strings to match.
4069
0
                    if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
4070
0
                      break;
4071
0
                    switch (Mnemonic[11]) {
4072
0
                    default: break;
4073
0
                    case '3':  // 1 string to match.
4074
0
                      if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4075
0
                        break;
4076
0
                      Mnemonic = "v_cmps_lt_f32";  // "v_cmps_lt_f32_e64"
4077
0
                      return;
4078
0
                    case '6':  // 1 string to match.
4079
0
                      if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4080
0
                        break;
4081
0
                      Mnemonic = "v_cmps_lt_f64";  // "v_cmps_lt_f64_e64"
4082
0
                      return;
4083
0
                    }
4084
0
                    break;
4085
0
                  }
4086
0
                  break;
4087
0
                }
4088
0
                break;
4089
0
              case 'x':  // 6 strings to match.
4090
0
                if (Mnemonic[7] != '_')
4091
0
                  break;
4092
0
                switch (Mnemonic[8]) {
4093
0
                default: break;
4094
0
                case 'f':  // 2 strings to match.
4095
0
                  if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
4096
0
                    break;
4097
0
                  switch (Mnemonic[11]) {
4098
0
                  default: break;
4099
0
                  case '3':  // 1 string to match.
4100
0
                    if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4101
0
                      break;
4102
0
                    Mnemonic = "v_cmpsx_f_f32";  // "v_cmpsx_f_f32_e64"
4103
0
                    return;
4104
0
                  case '6':  // 1 string to match.
4105
0
                    if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4106
0
                      break;
4107
0
                    Mnemonic = "v_cmpsx_f_f64";  // "v_cmpsx_f_f64_e64"
4108
0
                    return;
4109
0
                  }
4110
0
                  break;
4111
0
                case 'o':  // 2 strings to match.
4112
0
                  if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
4113
0
                    break;
4114
0
                  switch (Mnemonic[11]) {
4115
0
                  default: break;
4116
0
                  case '3':  // 1 string to match.
4117
0
                    if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4118
0
                      break;
4119
0
                    Mnemonic = "v_cmpsx_o_f32";  // "v_cmpsx_o_f32_e64"
4120
0
                    return;
4121
0
                  case '6':  // 1 string to match.
4122
0
                    if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4123
0
                      break;
4124
0
                    Mnemonic = "v_cmpsx_o_f64";  // "v_cmpsx_o_f64_e64"
4125
0
                    return;
4126
0
                  }
4127
0
                  break;
4128
0
                case 'u':  // 2 strings to match.
4129
0
                  if (memcmp(Mnemonic.data()+9, "_f", 2) != 0)
4130
0
                    break;
4131
0
                  switch (Mnemonic[11]) {
4132
0
                  default: break;
4133
0
                  case '3':  // 1 string to match.
4134
0
                    if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4135
0
                      break;
4136
0
                    Mnemonic = "v_cmpsx_u_f32";  // "v_cmpsx_u_f32_e64"
4137
0
                    return;
4138
0
                  case '6':  // 1 string to match.
4139
0
                    if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4140
0
                      break;
4141
0
                    Mnemonic = "v_cmpsx_u_f64";  // "v_cmpsx_u_f64_e64"
4142
0
                    return;
4143
0
                  }
4144
0
                  break;
4145
0
                }
4146
0
                break;
4147
0
              }
4148
0
              break;
4149
0
            case 'x':  // 54 strings to match.
4150
0
              if (Mnemonic[6] != '_')
4151
0
                break;
4152
0
              switch (Mnemonic[7]) {
4153
0
              default: break;
4154
0
              case 'e':  // 9 strings to match.
4155
0
                if (memcmp(Mnemonic.data()+8, "q_", 2) != 0)
4156
0
                  break;
4157
0
                switch (Mnemonic[10]) {
4158
0
                default: break;
4159
0
                case 'f':  // 3 strings to match.
4160
0
                  switch (Mnemonic[11]) {
4161
0
                  default: break;
4162
0
                  case '1':  // 1 string to match.
4163
0
                    if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4164
0
                      break;
4165
0
                    Mnemonic = "v_cmpx_eq_f16";  // "v_cmpx_eq_f16_e64"
4166
0
                    return;
4167
0
                  case '3':  // 1 string to match.
4168
0
                    if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4169
0
                      break;
4170
0
                    Mnemonic = "v_cmpx_eq_f32";  // "v_cmpx_eq_f32_e64"
4171
0
                    return;
4172
0
                  case '6':  // 1 string to match.
4173
0
                    if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4174
0
                      break;
4175
0
                    Mnemonic = "v_cmpx_eq_f64";  // "v_cmpx_eq_f64_e64"
4176
0
                    return;
4177
0
                  }
4178
0
                  break;
4179
0
                case 'i':  // 3 strings to match.
4180
0
                  switch (Mnemonic[11]) {
4181
0
                  default: break;
4182
0
                  case '1':  // 1 string to match.
4183
0
                    if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4184
0
                      break;
4185
0
                    Mnemonic = "v_cmpx_eq_i16";  // "v_cmpx_eq_i16_e64"
4186
0
                    return;
4187
0
                  case '3':  // 1 string to match.
4188
0
                    if (memcmp(Mnemonic.data()+12, "2_e64", 5) != 0)
4189
0
                      break;
4190
0
                    Mnemonic = "v_cmpx_eq_i32";  // "v_cmpx_eq_i32_e64"
4191
0
                    return;
4192
0
                  case '6':  // 1 string to match.
4193
0
                    if (memcmp(Mnemonic.data()+12, "4_e64", 5) != 0)
4194
0
                      break;
4195
0
                    Mnemonic = "v_cmpx_eq_i64";  // "v_cmpx_eq_i64_e64"
4196
0
                    return;
4197
0
                  }
4198
0
                  break;
4199
0
                case 'u':  // 3 strings to match.
4200
0
                  switch (Mnemonic[11]) {
4201
0
                  default: break;
4202
0
                  case '1':  // 1 string to match.
4203
0
                    if (memcmp(Mnemonic.data()+12, "6_e64", 5) != 0)
4204
0
                      break;
4205
0
                    Mnemonic = "v_cmpx_eq_u16