Coverage Report

Created: 2018-12-14 11:24

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