Coverage Report

Created: 2024-01-17 10:31

/src/build/lib/Target/AMDGPU/AMDGPUGenPostLegalizeGICombiner.inc
Line
Count
Source (jump to first uncovered line)
1
/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2
|*                                                                            *|
3
|* AMDGPUPostLegalizerCombinerImpl Combiner Match Table                       *|
4
|*                                                                            *|
5
|* Automatically generated file, do not edit!                                 *|
6
|*                                                                            *|
7
\*===----------------------------------------------------------------------===*/
8
9
#ifdef GET_GICOMBINER_DEPS
10
#include "llvm/ADT/SparseBitVector.h"
11
namespace llvm {
12
extern cl::OptionCategory GICombinerOptionCategory;
13
} // end namespace llvm
14
#endif // ifdef GET_GICOMBINER_DEPS
15
16
#ifdef GET_GICOMBINER_TYPES
17
struct AMDGPUPostLegalizerCombinerImplRuleConfig {
18
  SparseBitVector<> DisabledRules;
19
20
  bool isRuleEnabled(unsigned RuleID) const;
21
  bool parseCommandLineOption();
22
  bool setRuleEnabled(StringRef RuleIdentifier);
23
  bool setRuleDisabled(StringRef RuleIdentifier);
24
};
25
26
0
static std::optional<uint64_t> getRuleIdxForIdentifier(StringRef RuleIdentifier) {
27
0
  uint64_t I;
28
  // getAtInteger(...) returns false on success
29
0
  bool Parsed = !RuleIdentifier.getAsInteger(0, I);
30
0
  if (Parsed)
31
0
    return I;
32
33
0
#ifndef NDEBUG
34
0
  switch (RuleIdentifier.size()) {
35
0
  default: break;
36
0
  case 7:  // 1 string to match.
37
0
    if (memcmp(RuleIdentifier.data()+0, "smulu64", 7) != 0)
38
0
      break;
39
0
    return 136;  // "smulu64"
40
0
  case 9:  // 4 strings to match.
41
0
    switch (RuleIdentifier[0]) {
42
0
    default: break;
43
0
    case 'a':  // 1 string to match.
44
0
      if (memcmp(RuleIdentifier.data()+1, "ddo_by_0", 8) != 0)
45
0
        break;
46
0
      return 84;  // "addo_by_0"
47
0
    case 'c':  // 1 string to match.
48
0
      if (memcmp(RuleIdentifier.data()+1, "opy_prop", 8) != 0)
49
0
        break;
50
0
      return 0;  // "copy_prop"
51
0
    case 'm':  // 2 strings to match.
52
0
      if (memcmp(RuleIdentifier.data()+1, "ulo_by_", 7) != 0)
53
0
        break;
54
0
      switch (RuleIdentifier[8]) {
55
0
      default: break;
56
0
      case '0':  // 1 string to match.
57
0
        return 83;  // "mulo_by_0"
58
0
      case '2':  // 1 string to match.
59
0
        return 82;  // "mulo_by_2"
60
0
      }
61
0
      break;
62
0
    }
63
0
    break;
64
0
  case 10:   // 3 strings to match.
65
0
    switch (RuleIdentifier[0]) {
66
0
    default: break;
67
0
    case 'i':  // 1 string to match.
68
0
      if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i", 9) != 0)
69
0
        break;
70
0
      return 29;  // "i2p_to_p2i"
71
0
    case 'm':  // 1 string to match.
72
0
      if (memcmp(RuleIdentifier.data()+1, "ul_to_shl", 9) != 0)
73
0
        break;
74
0
      return 1;  // "mul_to_shl"
75
0
    case 'p':  // 1 string to match.
76
0
      if (memcmp(RuleIdentifier.data()+1, "2i_to_i2p", 9) != 0)
77
0
        break;
78
0
      return 28;  // "p2i_to_i2p"
79
0
    }
80
0
    break;
81
0
  case 11:   // 4 strings to match.
82
0
    switch (RuleIdentifier[0]) {
83
0
    default: break;
84
0
    case 'a':  // 1 string to match.
85
0
      if (memcmp(RuleIdentifier.data()+1, "dd_sub_reg", 10) != 0)
86
0
        break;
87
0
      return 34;  // "add_sub_reg"
88
0
    case 's':  // 1 string to match.
89
0
      if (memcmp(RuleIdentifier.data()+1, "ub_add_reg", 10) != 0)
90
0
        break;
91
0
      return 122;  // "sub_add_reg"
92
0
    case 't':  // 1 string to match.
93
0
      if (memcmp(RuleIdentifier.data()+1, "runc_shift", 10) != 0)
94
0
        break;
95
0
      return 72;  // "trunc_shift"
96
0
    case 'u':  // 1 string to match.
97
0
      if (memcmp(RuleIdentifier.data()+1, "nmerge_cst", 10) != 0)
98
0
        break;
99
0
      return 67;  // "unmerge_cst"
100
0
    }
101
0
    break;
102
0
  case 12:   // 6 strings to match.
103
0
    switch (RuleIdentifier[0]) {
104
0
    default: break;
105
0
    case 'a':  // 1 string to match.
106
0
      if (memcmp(RuleIdentifier.data()+1, "dde_to_addo", 11) != 0)
107
0
        break;
108
0
      return 85;  // "adde_to_addo"
109
0
    case 'e':  // 1 string to match.
110
0
      if (memcmp(RuleIdentifier.data()+1, "xt_ext_fold", 11) != 0)
111
0
        break;
112
0
      return 63;  // "ext_ext_fold"
113
0
    case 'f':  // 1 string to match.
114
0
      if (memcmp(RuleIdentifier.data()+1, "sub_to_fneg", 11) != 0)
115
0
        break;
116
0
      return 125;  // "fsub_to_fneg"
117
0
    case 'm':  // 1 string to match.
118
0
      if (memcmp(RuleIdentifier.data()+1, "ulh_to_lshr", 11) != 0)
119
0
        break;
120
0
      return 110;  // "mulh_to_lshr"
121
0
    case 'n':  // 1 string to match.
122
0
      if (memcmp(RuleIdentifier.data()+1, "ot_cmp_fold", 11) != 0)
123
0
        break;
124
0
      return 64;  // "not_cmp_fold"
125
0
    case 'r':  // 1 string to match.
126
0
      if (memcmp(RuleIdentifier.data()+1, "edundant_or", 11) != 0)
127
0
        break;
128
0
      return 57;  // "redundant_or"
129
0
    }
130
0
    break;
131
0
  case 13:   // 10 strings to match.
132
0
    switch (RuleIdentifier[0]) {
133
0
    default: break;
134
0
    case 'c':  // 1 string to match.
135
0
      if (memcmp(RuleIdentifier.data()+1, "ommute_shift", 12) != 0)
136
0
        break;
137
0
      return 98;  // "commute_shift"
138
0
    case 'f':  // 1 string to match.
139
0
      if (memcmp(RuleIdentifier.data()+1, "oldable_fneg", 12) != 0)
140
0
        break;
141
0
      return 133;  // "foldable_fneg"
142
0
    case 'l':  // 1 string to match.
143
0
      if (memcmp(RuleIdentifier.data()+1, "oad_and_mask", 12) != 0)
144
0
        break;
145
0
      return 9;  // "load_and_mask"
146
0
    case 'm':  // 2 strings to match.
147
0
      switch (RuleIdentifier[1]) {
148
0
      default: break;
149
0
      case 'a':  // 1 string to match.
150
0
        if (memcmp(RuleIdentifier.data()+2, "tch_selects", 11) != 0)
151
0
          break;
152
0
        return 54;  // "match_selects"
153
0
      case 'e':  // 1 string to match.
154
0
        if (memcmp(RuleIdentifier.data()+2, "rge_unmerge", 11) != 0)
155
0
          break;
156
0
        return 70;  // "merge_unmerge"
157
0
      }
158
0
      break;
159
0
    case 'r':  // 1 string to match.
160
0
      if (memcmp(RuleIdentifier.data()+1, "edundant_and", 12) != 0)
161
0
        break;
162
0
      return 55;  // "redundant_and"
163
0
    case 's':  // 1 string to match.
164
0
      if (memcmp(RuleIdentifier.data()+1, "div_by_const", 12) != 0)
165
0
        break;
166
0
      return 109;  // "sdiv_by_const"
167
0
    case 'u':  // 3 strings to match.
168
0
      switch (RuleIdentifier[1]) {
169
0
      default: break;
170
0
      case 'd':  // 1 string to match.
171
0
        if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
172
0
          break;
173
0
        return 108;  // "udiv_by_const"
174
0
      case 'n':  // 2 strings to match.
175
0
        if (memcmp(RuleIdentifier.data()+2, "merge_", 6) != 0)
176
0
          break;
177
0
        switch (RuleIdentifier[8]) {
178
0
        default: break;
179
0
        case 'm':  // 1 string to match.
180
0
          if (memcmp(RuleIdentifier.data()+9, "erge", 4) != 0)
181
0
            break;
182
0
          return 66;  // "unmerge_merge"
183
0
        case 'u':  // 1 string to match.
184
0
          if (memcmp(RuleIdentifier.data()+9, "ndef", 4) != 0)
185
0
            break;
186
0
          return 21;  // "unmerge_undef"
187
0
        }
188
0
        break;
189
0
      }
190
0
      break;
191
0
    }
192
0
    break;
193
0
  case 14:   // 9 strings to match.
194
0
    switch (RuleIdentifier[0]) {
195
0
    default: break;
196
0
    case 'b':  // 1 string to match.
197
0
      if (memcmp(RuleIdentifier.data()+1, "inop_same_val", 13) != 0)
198
0
        break;
199
0
      return 25;  // "binop_same_val"
200
0
    case 'c':  // 1 string to match.
201
0
      if (memcmp(RuleIdentifier.data()+1, "vt_f32_ubyteN", 13) != 0)
202
0
        break;
203
0
      return 131;  // "cvt_f32_ubyteN"
204
0
    case 'f':  // 2 strings to match.
205
0
      switch (RuleIdentifier[1]) {
206
0
      default: break;
207
0
      case 'a':  // 1 string to match.
208
0
        if (memcmp(RuleIdentifier.data()+2, "bs_fneg_fold", 12) != 0)
209
0
          break;
210
0
        return 107;  // "fabs_fneg_fold"
211
0
      case 'n':  // 1 string to match.
212
0
        if (memcmp(RuleIdentifier.data()+2, "eg_fneg_fold", 12) != 0)
213
0
          break;
214
0
        return 31;  // "fneg_fneg_fold"
215
0
      }
216
0
      break;
217
0
    case 'm':  // 1 string to match.
218
0
      if (memcmp(RuleIdentifier.data()+1, "ul_by_neg_one", 13) != 0)
219
0
        break;
220
0
      return 3;  // "mul_by_neg_one"
221
0
    case 'r':  // 1 string to match.
222
0
      if (memcmp(RuleIdentifier.data()+1, "eassoc_ptradd", 13) != 0)
223
0
        break;
224
0
      return 45;  // "reassoc_ptradd"
225
0
    case 's':  // 1 string to match.
226
0
      if (memcmp(RuleIdentifier.data()+1, "hifts_too_big", 13) != 0)
227
0
        break;
228
0
      return 44;  // "shifts_too_big"
229
0
    case 't':  // 1 string to match.
230
0
      if (memcmp(RuleIdentifier.data()+1, "runc_ext_fold", 13) != 0)
231
0
        break;
232
0
      return 71;  // "trunc_ext_fold"
233
0
    case 'u':  // 1 string to match.
234
0
      if (memcmp(RuleIdentifier.data()+1, "char_to_float", 13) != 0)
235
0
        break;
236
0
      return 130;  // "uchar_to_float"
237
0
    }
238
0
    break;
239
0
  case 15:   // 7 strings to match.
240
0
    switch (RuleIdentifier[0]) {
241
0
    default: break;
242
0
    case 'e':  // 1 string to match.
243
0
      if (memcmp(RuleIdentifier.data()+1, "xtending_loads", 14) != 0)
244
0
        break;
245
0
      return 8;  // "extending_loads"
246
0
    case 'i':  // 1 string to match.
247
0
      if (memcmp(RuleIdentifier.data()+1, "dempotent_prop", 14) != 0)
248
0
        break;
249
0
      return 4;  // "idempotent_prop"
250
0
    case 'l':  // 1 string to match.
251
0
      if (memcmp(RuleIdentifier.data()+1, "oad_or_combine", 14) != 0)
252
0
        break;
253
0
      return 91;  // "load_or_combine"
254
0
    case 'o':  // 1 string to match.
255
0
      if (memcmp(RuleIdentifier.data()+1, "verlapping_and", 14) != 0)
256
0
        break;
257
0
      return 81;  // "overlapping_and"
258
0
    case 'r':  // 1 string to match.
259
0
      if (memcmp(RuleIdentifier.data()+1, "cp_sqrt_to_rsq", 14) != 0)
260
0
        break;
261
0
      return 134;  // "rcp_sqrt_to_rsq"
262
0
    case 's':  // 1 string to match.
263
0
      if (memcmp(RuleIdentifier.data()+1, "elect_same_val", 14) != 0)
264
0
        break;
265
0
      return 23;  // "select_same_val"
266
0
    case 'z':  // 1 string to match.
267
0
      if (memcmp(RuleIdentifier.data()+1, "ext_trunc_fold", 14) != 0)
268
0
        break;
269
0
      return 59;  // "zext_trunc_fold"
270
0
    }
271
0
    break;
272
0
  case 16:   // 3 strings to match.
273
0
    switch (RuleIdentifier[0]) {
274
0
    default: break;
275
0
    case 's':  // 2 strings to match.
276
0
      if (memcmp(RuleIdentifier.data()+1, "elect_", 6) != 0)
277
0
        break;
278
0
      switch (RuleIdentifier[7]) {
279
0
      default: break;
280
0
      case 't':  // 1 string to match.
281
0
        if (memcmp(RuleIdentifier.data()+8, "o_minmax", 8) != 0)
282
0
          break;
283
0
        return 123;  // "select_to_minmax"
284
0
      case 'u':  // 1 string to match.
285
0
        if (memcmp(RuleIdentifier.data()+8, "ndef_cmp", 8) != 0)
286
0
          break;
287
0
        return 52;  // "select_undef_cmp"
288
0
      }
289
0
      break;
290
0
    case 'u':  // 1 string to match.
291
0
      if (memcmp(RuleIdentifier.data()+1, "ndef_to_fp_zero", 15) != 0)
292
0
        break;
293
0
      return 11;  // "undef_to_fp_zero"
294
0
    }
295
0
    break;
296
0
  case 17:   // 9 strings to match.
297
0
    switch (RuleIdentifier[0]) {
298
0
    default: break;
299
0
    case 'a':  // 2 strings to match.
300
0
      switch (RuleIdentifier[1]) {
301
0
      default: break;
302
0
      case 'd':  // 1 string to match.
303
0
        if (memcmp(RuleIdentifier.data()+2, "d_p2i_to_ptradd", 15) != 0)
304
0
          break;
305
0
        return 2;  // "add_p2i_to_ptradd"
306
0
      case 'n':  // 1 string to match.
307
0
        if (memcmp(RuleIdentifier.data()+2, "yext_trunc_fold", 15) != 0)
308
0
          break;
309
0
        return 30;  // "anyext_trunc_fold"
310
0
      }
311
0
      break;
312
0
    case 'c':  // 1 string to match.
313
0
      if (memcmp(RuleIdentifier.data()+1, "onstant_fold_fma", 16) != 0)
314
0
        break;
315
0
      return 105;  // "constant_fold_fma"
316
0
    case 'd':  // 1 string to match.
317
0
      if (memcmp(RuleIdentifier.data()+1, "iv_rem_to_divrem", 16) != 0)
318
0
        break;
319
0
      return 92;  // "div_rem_to_divrem"
320
0
    case 'e':  // 1 string to match.
321
0
      if (memcmp(RuleIdentifier.data()+1, "rase_undef_store", 16) != 0)
322
0
        break;
323
0
      return 20;  // "erase_undef_store"
324
0
    case 'p':  // 1 string to match.
325
0
      if (memcmp(RuleIdentifier.data()+1, "tr_add_with_zero", 16) != 0)
326
0
        break;
327
0
      return 88;  // "ptr_add_with_zero"
328
0
    case 's':  // 1 string to match.
329
0
      if (memcmp(RuleIdentifier.data()+1, "hift_immed_chain", 16) != 0)
330
0
        break;
331
0
      return 89;  // "shift_immed_chain"
332
0
    case 'u':  // 2 strings to match.
333
0
      switch (RuleIdentifier[1]) {
334
0
      default: break;
335
0
      case 'n':  // 1 string to match.
336
0
        if (memcmp(RuleIdentifier.data()+2, "def_to_int_zero", 15) != 0)
337
0
          break;
338
0
        return 12;  // "undef_to_int_zero"
339
0
      case 'r':  // 1 string to match.
340
0
        if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
341
0
          break;
342
0
        return 58;  // "urem_pow2_to_mask"
343
0
      }
344
0
      break;
345
0
    }
346
0
    break;
347
0
  case 18:   // 6 strings to match.
348
0
    switch (RuleIdentifier[0]) {
349
0
    default: break;
350
0
    case 'b':  // 1 string to match.
351
0
      if (memcmp(RuleIdentifier.data()+1, "inop_left_to_zero", 17) != 0)
352
0
        break;
353
0
      return 26;  // "binop_left_to_zero"
354
0
    case 'c':  // 3 strings to match.
355
0
      if (RuleIdentifier[1] != 'o')
356
0
        break;
357
0
      switch (RuleIdentifier[2]) {
358
0
      default: break;
359
0
      case 'm':  // 1 string to match.
360
0
        if (memcmp(RuleIdentifier.data()+3, "bine_minmax_nan", 15) != 0)
361
0
          break;
362
0
        return 86;  // "combine_minmax_nan"
363
0
      case 'n':  // 2 strings to match.
364
0
        if (memcmp(RuleIdentifier.data()+3, "stant_fold_f", 12) != 0)
365
0
          break;
366
0
        switch (RuleIdentifier[15]) {
367
0
        default: break;
368
0
        case 'a':  // 1 string to match.
369
0
          if (memcmp(RuleIdentifier.data()+16, "bs", 2) != 0)
370
0
            break;
371
0
          return 74;  // "constant_fold_fabs"
372
0
        case 'n':  // 1 string to match.
373
0
          if (memcmp(RuleIdentifier.data()+16, "eg", 2) != 0)
374
0
            break;
375
0
          return 73;  // "constant_fold_fneg"
376
0
        }
377
0
        break;
378
0
      }
379
0
      break;
380
0
    case 'f':  // 1 string to match.
381
0
      if (memcmp(RuleIdentifier.data()+1, "ptrunc_fpext_fold", 17) != 0)
382
0
        break;
383
0
      return 39;  // "fptrunc_fpext_fold"
384
0
    case 's':  // 1 string to match.
385
0
      if (memcmp(RuleIdentifier.data()+1, "ext_inreg_of_load", 17) != 0)
386
0
        break;
387
0
      return 49;  // "sext_inreg_of_load"
388
0
    }
389
0
    break;
390
0
  case 19:   // 12 strings to match.
391
0
    switch (RuleIdentifier[0]) {
392
0
    default: break;
393
0
    case 'b':  // 1 string to match.
394
0
      if (memcmp(RuleIdentifier.data()+1, "inop_right_to_zero", 18) != 0)
395
0
        break;
396
0
      return 27;  // "binop_right_to_zero"
397
0
    case 'c':  // 4 strings to match.
398
0
      if (memcmp(RuleIdentifier.data()+1, "onst", 4) != 0)
399
0
        break;
400
0
      switch (RuleIdentifier[5]) {
401
0
      default: break;
402
0
      case '_':  // 1 string to match.
403
0
        if (memcmp(RuleIdentifier.data()+6, "ptradd_to_i2p", 13) != 0)
404
0
          break;
405
0
        return 80;  // "const_ptradd_to_i2p"
406
0
      case 'a':  // 3 strings to match.
407
0
        if (memcmp(RuleIdentifier.data()+6, "nt_fold_", 8) != 0)
408
0
          break;
409
0
        switch (RuleIdentifier[14]) {
410
0
        default: break;
411
0
        case 'b':  // 1 string to match.
412
0
          if (memcmp(RuleIdentifier.data()+15, "inop", 4) != 0)
413
0
            break;
414
0
          return 103;  // "constant_fold_binop"
415
0
        case 'f':  // 2 strings to match.
416
0
          switch (RuleIdentifier[15]) {
417
0
          default: break;
418
0
          case 'l':  // 1 string to match.
419
0
            if (memcmp(RuleIdentifier.data()+16, "og2", 3) != 0)
420
0
              break;
421
0
            return 76;  // "constant_fold_flog2"
422
0
          case 's':  // 1 string to match.
423
0
            if (memcmp(RuleIdentifier.data()+16, "qrt", 3) != 0)
424
0
              break;
425
0
            return 75;  // "constant_fold_fsqrt"
426
0
          }
427
0
          break;
428
0
        }
429
0
        break;
430
0
      }
431
0
      break;
432
0
    case 'e':  // 1 string to match.
433
0
      if (memcmp(RuleIdentifier.data()+1, "xtend_through_phis", 18) != 0)
434
0
        break;
435
0
      return 41;  // "extend_through_phis"
436
0
    case 'p':  // 1 string to match.
437
0
      if (memcmp(RuleIdentifier.data()+1, "tr_add_immed_chain", 18) != 0)
438
0
        break;
439
0
      return 47;  // "ptr_add_immed_chain"
440
0
    case 'r':  // 2 strings to match.
441
0
      switch (RuleIdentifier[1]) {
442
0
      default: break;
443
0
      case 'e':  // 1 string to match.
444
0
        if (memcmp(RuleIdentifier.data()+2, "assoc_comm_binops", 17) != 0)
445
0
          break;
446
0
        return 46;  // "reassoc_comm_binops"
447
0
      case 'i':  // 1 string to match.
448
0
        if (memcmp(RuleIdentifier.data()+2, "ght_identity_zero", 17) != 0)
449
0
          break;
450
0
        return 24;  // "right_identity_zero"
451
0
      }
452
0
      break;
453
0
    case 's':  // 2 strings to match.
454
0
      switch (RuleIdentifier[1]) {
455
0
      default: break;
456
0
      case 'e':  // 1 string to match.
457
0
        if (memcmp(RuleIdentifier.data()+2, "lect_constant_cmp", 17) != 0)
458
0
          break;
459
0
        return 53;  // "select_constant_cmp"
460
0
      case 'i':  // 1 string to match.
461
0
        if (memcmp(RuleIdentifier.data()+2, "mplify_add_to_sub", 17) != 0)
462
0
          break;
463
0
        return 42;  // "simplify_add_to_sub"
464
0
      }
465
0
      break;
466
0
    case 'u':  // 1 string to match.
467
0
      if (memcmp(RuleIdentifier.data()+1, "nary_undef_to_zero", 18) != 0)
468
0
        break;
469
0
      return 16;  // "unary_undef_to_zero"
470
0
    }
471
0
    break;
472
0
  case 20:   // 6 strings to match.
473
0
    switch (RuleIdentifier[0]) {
474
0
    default: break;
475
0
    case 'a':  // 1 string to match.
476
0
      if (memcmp(RuleIdentifier.data()+1, "nd_or_disjoint_mask", 19) != 0)
477
0
        break;
478
0
      return 112;  // "and_or_disjoint_mask"
479
0
    case 'b':  // 1 string to match.
480
0
      if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_fold", 19) != 0)
481
0
        break;
482
0
      return 38;  // "bitcast_bitcast_fold"
483
0
    case 'r':  // 3 strings to match.
484
0
      if (RuleIdentifier[1] != 'e')
485
0
        break;
486
0
      switch (RuleIdentifier[2]) {
487
0
      default: break;
488
0
      case 'd':  // 2 strings to match.
489
0
        if (RuleIdentifier[3] != 'u')
490
0
          break;
491
0
        switch (RuleIdentifier[4]) {
492
0
        default: break;
493
0
        case 'c':  // 1 string to match.
494
0
          if (memcmp(RuleIdentifier.data()+5, "e_shl_of_extend", 15) != 0)
495
0
            break;
496
0
          return 50;  // "reduce_shl_of_extend"
497
0
        case 'n':  // 1 string to match.
498
0
          if (memcmp(RuleIdentifier.data()+5, "dant_sext_inreg", 15) != 0)
499
0
            break;
500
0
          return 56;  // "redundant_sext_inreg"
501
0
        }
502
0
        break;
503
0
      case 'm':  // 1 string to match.
504
0
        if (memcmp(RuleIdentifier.data()+3, "ove_fcanonicalize", 17) != 0)
505
0
          break;
506
0
        return 132;  // "remove_fcanonicalize"
507
0
      }
508
0
      break;
509
0
    case 'u':  // 1 string to match.
510
0
      if (memcmp(RuleIdentifier.data()+1, "nmerge_zext_to_zext", 19) != 0)
511
0
        break;
512
0
      return 69;  // "unmerge_zext_to_zext"
513
0
    }
514
0
    break;
515
0
  case 21:   // 7 strings to match.
516
0
    switch (RuleIdentifier[0]) {
517
0
    default: break;
518
0
    case 'c':  // 2 strings to match.
519
0
      if (memcmp(RuleIdentifier.data()+1, "onstant_fold_", 13) != 0)
520
0
        break;
521
0
      switch (RuleIdentifier[14]) {
522
0
      default: break;
523
0
      case 'c':  // 1 string to match.
524
0
        if (memcmp(RuleIdentifier.data()+15, "ast_op", 6) != 0)
525
0
          break;
526
0
        return 106;  // "constant_fold_cast_op"
527
0
      case 'f':  // 1 string to match.
528
0
        if (memcmp(RuleIdentifier.data()+15, "ptrunc", 6) != 0)
529
0
          break;
530
0
        return 77;  // "constant_fold_fptrunc"
531
0
      }
532
0
      break;
533
0
    case 'e':  // 1 string to match.
534
0
      if (memcmp(RuleIdentifier.data()+1, "xpand_promoted_fmed3", 20) != 0)
535
0
        break;
536
0
      return 129;  // "expand_promoted_fmed3"
537
0
    case 'r':  // 1 string to match.
538
0
      if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_fp", 20) != 0)
539
0
        break;
540
0
      return 33;  // "right_identity_one_fp"
541
0
    case 's':  // 1 string to match.
542
0
      if (memcmp(RuleIdentifier.data()+1, "ign_extension_in_reg", 20) != 0)
543
0
        break;
544
0
      return 135;  // "sign_extension_in_reg"
545
0
    case 'u':  // 2 strings to match.
546
0
      if (RuleIdentifier[1] != 'n')
547
0
        break;
548
0
      switch (RuleIdentifier[2]) {
549
0
      default: break;
550
0
      case 'd':  // 1 string to match.
551
0
        if (memcmp(RuleIdentifier.data()+3, "ef_to_negative_one", 18) != 0)
552
0
          break;
553
0
        return 13;  // "undef_to_negative_one"
554
0
      case 'm':  // 1 string to match.
555
0
        if (memcmp(RuleIdentifier.data()+3, "erge_dead_to_trunc", 18) != 0)
556
0
          break;
557
0
        return 68;  // "unmerge_dead_to_trunc"
558
0
      }
559
0
      break;
560
0
    }
561
0
    break;
562
0
  case 22:   // 11 strings to match.
563
0
    switch (RuleIdentifier[0]) {
564
0
    default: break;
565
0
    case 'c':  // 1 string to match.
566
0
      if (memcmp(RuleIdentifier.data()+1, "onstant_fold_fp_binop", 21) != 0)
567
0
        break;
568
0
      return 104;  // "constant_fold_fp_binop"
569
0
    case 'f':  // 4 strings to match.
570
0
      switch (RuleIdentifier[1]) {
571
0
      default: break;
572
0
      case 'o':  // 1 string to match.
573
0
        if (memcmp(RuleIdentifier.data()+2, "ld_binop_into_select", 20) != 0)
574
0
          break;
575
0
        return 121;  // "fold_binop_into_select"
576
0
      case 'u':  // 3 strings to match.
577
0
        if (memcmp(RuleIdentifier.data()+2, "nnel_shift_", 11) != 0)
578
0
          break;
579
0
        switch (RuleIdentifier[13]) {
580
0
        default: break;
581
0
        case 'l':  // 1 string to match.
582
0
          if (memcmp(RuleIdentifier.data()+14, "eft_zero", 8) != 0)
583
0
            break;
584
0
          return 96;  // "funnel_shift_left_zero"
585
0
        case 'o':  // 1 string to match.
586
0
          if (memcmp(RuleIdentifier.data()+14, "vershift", 8) != 0)
587
0
            break;
588
0
          return 97;  // "funnel_shift_overshift"
589
0
        case 't':  // 1 string to match.
590
0
          if (memcmp(RuleIdentifier.data()+14, "o_rotate", 8) != 0)
591
0
            break;
592
0
          return 94;  // "funnel_shift_to_rotate"
593
0
        }
594
0
        break;
595
0
      }
596
0
      break;
597
0
    case 'i':  // 1 string to match.
598
0
      if (memcmp(RuleIdentifier.data()+1, "cmp_to_lhs_known_bits", 21) != 0)
599
0
        break;
600
0
      return 61;  // "icmp_to_lhs_known_bits"
601
0
    case 'p':  // 1 string to match.
602
0
      if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_any_op", 21) != 0)
603
0
        break;
604
0
      return 17;  // "propagate_undef_any_op"
605
0
    case 'r':  // 2 strings to match.
606
0
      switch (RuleIdentifier[1]) {
607
0
      default: break;
608
0
      case 'e':  // 1 string to match.
609
0
        if (memcmp(RuleIdentifier.data()+2, "dundant_neg_operands", 20) != 0)
610
0
          break;
611
0
        return 111;  // "redundant_neg_operands"
612
0
      case 'i':  // 1 string to match.
613
0
        if (memcmp(RuleIdentifier.data()+2, "ght_identity_one_int", 20) != 0)
614
0
          break;
615
0
        return 32;  // "right_identity_one_int"
616
0
      }
617
0
      break;
618
0
    case 's':  // 1 string to match.
619
0
      if (memcmp(RuleIdentifier.data()+1, "hl_ashr_to_sext_inreg", 21) != 0)
620
0
        break;
621
0
      return 48;  // "shl_ashr_to_sext_inreg"
622
0
    case 't':  // 1 string to match.
623
0
      if (memcmp(RuleIdentifier.data()+1, "runc_buildvector_fold", 21) != 0)
624
0
        break;
625
0
      return 36;  // "trunc_buildvector_fold"
626
0
    }
627
0
    break;
628
0
  case 23:   // 4 strings to match.
629
0
    switch (RuleIdentifier[0]) {
630
0
    default: break;
631
0
    case 'f':  // 1 string to match.
632
0
      if (memcmp(RuleIdentifier.data()+1, "unnel_shift_right_zero", 22) != 0)
633
0
        break;
634
0
      return 95;  // "funnel_shift_right_zero"
635
0
    case 'i':  // 2 strings to match.
636
0
      if (memcmp(RuleIdentifier.data()+1, "tof_const_zero_fold_", 20) != 0)
637
0
        break;
638
0
      switch (RuleIdentifier[21]) {
639
0
      default: break;
640
0
      case 's':  // 1 string to match.
641
0
        if (RuleIdentifier[22] != 'i')
642
0
          break;
643
0
        return 78;  // "itof_const_zero_fold_si"
644
0
      case 'u':  // 1 string to match.
645
0
        if (RuleIdentifier[22] != 'i')
646
0
          break;
647
0
        return 79;  // "itof_const_zero_fold_ui"
648
0
      }
649
0
      break;
650
0
    case 'p':  // 1 string to match.
651
0
      if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_all_ops", 22) != 0)
652
0
        break;
653
0
      return 18;  // "propagate_undef_all_ops"
654
0
    }
655
0
    break;
656
0
  case 24:   // 4 strings to match.
657
0
    switch (RuleIdentifier[0]) {
658
0
    default: break;
659
0
    case 'b':  // 1 string to match.
660
0
      if (memcmp(RuleIdentifier.data()+1, "inop_left_undef_to_zero", 23) != 0)
661
0
        break;
662
0
      return 14;  // "binop_left_undef_to_zero"
663
0
    case 'n':  // 1 string to match.
664
0
      if (memcmp(RuleIdentifier.data()+1, "arrow_binop_feeding_and", 23) != 0)
665
0
        break;
666
0
      return 51;  // "narrow_binop_feeding_and"
667
0
    case 's':  // 1 string to match.
668
0
      if (memcmp(RuleIdentifier.data()+1, "ext_inreg_to_zext_inreg", 23) != 0)
669
0
        break;
670
0
      return 62;  // "sext_inreg_to_zext_inreg"
671
0
    case 'x':  // 1 string to match.
672
0
      if (memcmp(RuleIdentifier.data()+1, "or_of_and_with_same_reg", 23) != 0)
673
0
        break;
674
0
      return 87;  // "xor_of_and_with_same_reg"
675
0
    }
676
0
    break;
677
0
  case 25:   // 4 strings to match.
678
0
    switch (RuleIdentifier[0]) {
679
0
    default: break;
680
0
    case 'b':  // 3 strings to match.
681
0
      switch (RuleIdentifier[1]) {
682
0
      default: break;
683
0
      case 'i':  // 2 strings to match.
684
0
        if (memcmp(RuleIdentifier.data()+2, "tfield_extract_from_", 20) != 0)
685
0
          break;
686
0
        switch (RuleIdentifier[22]) {
687
0
        default: break;
688
0
        case 'a':  // 1 string to match.
689
0
          if (memcmp(RuleIdentifier.data()+23, "nd", 2) != 0)
690
0
            break;
691
0
          return 100;  // "bitfield_extract_from_and"
692
0
        case 's':  // 1 string to match.
693
0
          if (memcmp(RuleIdentifier.data()+23, "hr", 2) != 0)
694
0
            break;
695
0
          return 101;  // "bitfield_extract_from_shr"
696
0
        }
697
0
        break;
698
0
      case 'u':  // 1 string to match.
699
0
        if (memcmp(RuleIdentifier.data()+2, "ildvector_identity_fold", 23) != 0)
700
0
          break;
701
0
        return 35;  // "buildvector_identity_fold"
702
0
      }
703
0
      break;
704
0
    case 'e':  // 1 string to match.
705
0
      if (memcmp(RuleIdentifier.data()+1, "xtract_vec_elt_build_vec", 24) != 0)
706
0
        break;
707
0
      return 6;  // "extract_vec_elt_build_vec"
708
0
    }
709
0
    break;
710
0
  case 26:   // 4 strings to match.
711
0
    switch (RuleIdentifier[0]) {
712
0
    default: break;
713
0
    case 'b':  // 1 string to match.
714
0
      if (memcmp(RuleIdentifier.data()+1, "inop_right_undef_to_undef", 25) != 0)
715
0
        break;
716
0
      return 15;  // "binop_right_undef_to_undef"
717
0
    case 'c':  // 1 string to match.
718
0
      if (memcmp(RuleIdentifier.data()+1, "ommute_fp_constant_to_rhs", 25) != 0)
719
0
        break;
720
0
      return 127;  // "commute_fp_constant_to_rhs"
721
0
    case 'f':  // 1 string to match.
722
0
      if (memcmp(RuleIdentifier.data()+1, "unnel_shift_from_or_shift", 25) != 0)
723
0
        break;
724
0
      return 93;  // "funnel_shift_from_or_shift"
725
0
    case 'r':  // 1 string to match.
726
0
      if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp", 25) != 0)
727
0
        break;
728
0
      return 40;  // "right_identity_neg_zero_fp"
729
0
    }
730
0
    break;
731
0
  case 27:   // 3 strings to match.
732
0
    switch (RuleIdentifier[0]) {
733
0
    default: break;
734
0
    case 'c':  // 1 string to match.
735
0
      if (memcmp(RuleIdentifier.data()+1, "ommute_int_constant_to_rhs", 26) != 0)
736
0
        break;
737
0
      return 126;  // "commute_int_constant_to_rhs"
738
0
    case 'r':  // 1 string to match.
739
0
      if (memcmp(RuleIdentifier.data()+1, "edundant_binop_in_equality", 26) != 0)
740
0
        break;
741
0
      return 124;  // "redundant_binop_in_equality"
742
0
    case 't':  // 1 string to match.
743
0
      if (memcmp(RuleIdentifier.data()+1, "runc_lshr_buildvector_fold", 26) != 0)
744
0
        break;
745
0
      return 37;  // "trunc_lshr_buildvector_fold"
746
0
    }
747
0
    break;
748
0
  case 28:   // 3 strings to match.
749
0
    switch (RuleIdentifier[0]) {
750
0
    default: break;
751
0
    case 'o':  // 1 string to match.
752
0
      if (memcmp(RuleIdentifier.data()+1, "pt_brcond_by_inverting_cond", 27) != 0)
753
0
        break;
754
0
      return 65;  // "opt_brcond_by_inverting_cond"
755
0
    case 'p':  // 1 string to match.
756
0
      if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_shuffle_mask", 27) != 0)
757
0
        break;
758
0
      return 19;  // "propagate_undef_shuffle_mask"
759
0
    case 's':  // 1 string to match.
760
0
      if (memcmp(RuleIdentifier.data()+1, "hift_of_shifted_logic_chain", 27) != 0)
761
0
        break;
762
0
      return 90;  // "shift_of_shifted_logic_chain"
763
0
    }
764
0
    break;
765
0
  case 29:   // 3 strings to match.
766
0
    switch (RuleIdentifier[0]) {
767
0
    default: break;
768
0
    case 'b':  // 1 string to match.
769
0
      if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_shr_and", 28) != 0)
770
0
        break;
771
0
      return 102;  // "bitfield_extract_from_shr_and"
772
0
    case 'c':  // 1 string to match.
773
0
      if (memcmp(RuleIdentifier.data()+1, "ombine_extracted_vector_load", 28) != 0)
774
0
        break;
775
0
      return 10;  // "combine_extracted_vector_load"
776
0
    case 'i':  // 1 string to match.
777
0
      if (memcmp(RuleIdentifier.data()+1, "cmp_to_true_false_known_bits", 28) != 0)
778
0
        break;
779
0
      return 60;  // "icmp_to_true_false_known_bits"
780
0
    }
781
0
    break;
782
0
  case 31:   // 1 string to match.
783
0
    if (memcmp(RuleIdentifier.data()+0, "fcmp_select_to_fmin_fmax_legacy", 31) != 0)
784
0
      break;
785
0
    return 128;  // "fcmp_select_to_fmin_fmax_legacy"
786
0
  case 32:   // 3 strings to match.
787
0
    switch (RuleIdentifier[0]) {
788
0
    default: break;
789
0
    case 'b':  // 1 string to match.
790
0
      if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_sext_inreg", 31) != 0)
791
0
        break;
792
0
      return 99;  // "bitfield_extract_from_sext_inreg"
793
0
    case 'c':  // 2 strings to match.
794
0
      if (memcmp(RuleIdentifier.data()+1, "ombine_f", 8) != 0)
795
0
        break;
796
0
      switch (RuleIdentifier[9]) {
797
0
      default: break;
798
0
      case 'a':  // 1 string to match.
799
0
        if (memcmp(RuleIdentifier.data()+10, "dd_fmul_to_fmad_or_fma", 22) != 0)
800
0
          break;
801
0
        return 113;  // "combine_fadd_fmul_to_fmad_or_fma"
802
0
      case 's':  // 1 string to match.
803
0
        if (memcmp(RuleIdentifier.data()+10, "ub_fmul_to_fmad_or_fma", 22) != 0)
804
0
          break;
805
0
        return 117;  // "combine_fsub_fmul_to_fmad_or_fma"
806
0
      }
807
0
      break;
808
0
    }
809
0
    break;
810
0
  case 34:   // 1 string to match.
811
0
    if (memcmp(RuleIdentifier.data()+0, "extract_all_elts_from_build_vector", 34) != 0)
812
0
      break;
813
0
    return 7;  // "extract_all_elts_from_build_vector"
814
0
  case 36:   // 3 strings to match.
815
0
    switch (RuleIdentifier[0]) {
816
0
    default: break;
817
0
    case 'c':  // 2 strings to match.
818
0
      if (memcmp(RuleIdentifier.data()+1, "ombine_", 7) != 0)
819
0
        break;
820
0
      switch (RuleIdentifier[8]) {
821
0
      default: break;
822
0
      case 'f':  // 1 string to match.
823
0
        if (memcmp(RuleIdentifier.data()+9, "add_fma_fmul_to_fmad_or_fma", 27) != 0)
824
0
          break;
825
0
        return 115;  // "combine_fadd_fma_fmul_to_fmad_or_fma"
826
0
      case 'i':  // 1 string to match.
827
0
        if (memcmp(RuleIdentifier.data()+9, "nsert_vec_elts_build_vector", 27) != 0)
828
0
          break;
829
0
        return 5;  // "combine_insert_vec_elts_build_vector"
830
0
      }
831
0
      break;
832
0
    case 'i':  // 1 string to match.
833
0
      if (memcmp(RuleIdentifier.data()+1, "nsert_extract_vec_elt_out_of_bounds", 35) != 0)
834
0
        break;
835
0
      return 22;  // "insert_extract_vec_elt_out_of_bounds"
836
0
    }
837
0
    break;
838
0
  case 37:   // 2 strings to match.
839
0
    switch (RuleIdentifier[0]) {
840
0
    default: break;
841
0
    case 'c':  // 1 string to match.
842
0
      if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fneg_fmul_to_fmad_or_fma", 36) != 0)
843
0
        break;
844
0
      return 118;  // "combine_fsub_fneg_fmul_to_fmad_or_fma"
845
0
    case 'h':  // 1 string to match.
846
0
      if (memcmp(RuleIdentifier.data()+1, "oist_logic_op_with_same_opcode_hands", 36) != 0)
847
0
        break;
848
0
      return 43;  // "hoist_logic_op_with_same_opcode_hands"
849
0
    }
850
0
    break;
851
0
  case 38:   // 2 strings to match.
852
0
    if (memcmp(RuleIdentifier.data()+0, "combine_f", 9) != 0)
853
0
      break;
854
0
    switch (RuleIdentifier[9]) {
855
0
    default: break;
856
0
    case 'a':  // 1 string to match.
857
0
      if (memcmp(RuleIdentifier.data()+10, "dd_fpext_fmul_to_fmad_or_fma", 28) != 0)
858
0
        break;
859
0
      return 114;  // "combine_fadd_fpext_fmul_to_fmad_or_fma"
860
0
    case 's':  // 1 string to match.
861
0
      if (memcmp(RuleIdentifier.data()+10, "ub_fpext_fmul_to_fmad_or_fma", 28) != 0)
862
0
        break;
863
0
      return 119;  // "combine_fsub_fpext_fmul_to_fmad_or_fma"
864
0
    }
865
0
    break;
866
0
  case 42:   // 1 string to match.
867
0
    if (memcmp(RuleIdentifier.data()+0, "combine_fadd_fpext_fma_fmul_to_fmad_or_fma", 42) != 0)
868
0
      break;
869
0
    return 116;  // "combine_fadd_fpext_fma_fmul_to_fmad_or_fma"
870
0
  case 43:   // 1 string to match.
871
0
    if (memcmp(RuleIdentifier.data()+0, "combine_fsub_fpext_fneg_fmul_to_fmad_or_fma", 43) != 0)
872
0
      break;
873
0
    return 120;  // "combine_fsub_fpext_fneg_fmul_to_fmad_or_fma"
874
0
  }
875
0
#endif // ifndef NDEBUG
876
877
0
  return std::nullopt;
878
0
}
879
0
static std::optional<std::pair<uint64_t, uint64_t>> getRuleRangeForIdentifier(StringRef RuleIdentifier) {
880
0
  std::pair<StringRef, StringRef> RangePair = RuleIdentifier.split('-');
881
0
  if (!RangePair.second.empty()) {
882
0
    const auto First = getRuleIdxForIdentifier(RangePair.first);
883
0
    const auto Last = getRuleIdxForIdentifier(RangePair.second);
884
0
    if (!First || !Last)
885
0
      return std::nullopt;
886
0
    if (First >= Last)
887
0
      report_fatal_error("Beginning of range should be before end of range");
888
0
    return {{*First, *Last + 1}};
889
0
  }
890
0
  if (RangePair.first == "*") {
891
0
    return {{0, 137}};
892
0
  }
893
0
  const auto I = getRuleIdxForIdentifier(RangePair.first);
894
0
  if (!I)
895
0
    return std::nullopt;
896
0
  return {{*I, *I + 1}};
897
0
}
898
899
0
bool AMDGPUPostLegalizerCombinerImplRuleConfig::setRuleEnabled(StringRef RuleIdentifier) {
900
0
  auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
901
0
  if (!MaybeRange)
902
0
    return false;
903
0
  for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
904
0
    DisabledRules.reset(I);
905
0
  return true;
906
0
}
907
908
0
bool AMDGPUPostLegalizerCombinerImplRuleConfig::setRuleDisabled(StringRef RuleIdentifier) {
909
0
  auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
910
0
  if (!MaybeRange)
911
0
    return false;
912
0
  for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
913
0
    DisabledRules.set(I);
914
0
  return true;
915
0
}
916
917
static std::vector<std::string> AMDGPUPostLegalizerCombinerOption;
918
static cl::list<std::string> AMDGPUPostLegalizerCombinerDisableOption(
919
    "amdgpupostlegalizercombiner-disable-rule",
920
    cl::desc("Disable one or more combiner rules temporarily in the AMDGPUPostLegalizerCombiner pass"),
921
    cl::CommaSeparated,
922
    cl::Hidden,
923
    cl::cat(GICombinerOptionCategory),
924
0
    cl::callback([](const std::string &Str) {
925
0
      AMDGPUPostLegalizerCombinerOption.push_back(Str);
926
0
    }));
927
static cl::list<std::string> AMDGPUPostLegalizerCombinerOnlyEnableOption(
928
    "amdgpupostlegalizercombiner-only-enable-rule",
929
    cl::desc("Disable all rules in the AMDGPUPostLegalizerCombiner pass then re-enable the specified ones"),
930
    cl::Hidden,
931
    cl::cat(GICombinerOptionCategory),
932
0
    cl::callback([](const std::string &CommaSeparatedArg) {
933
0
      StringRef Str = CommaSeparatedArg;
934
0
      AMDGPUPostLegalizerCombinerOption.push_back("*");
935
0
      do {
936
0
        auto X = Str.split(",");
937
0
        AMDGPUPostLegalizerCombinerOption.push_back(("!" + X.first).str());
938
0
        Str = X.second;
939
0
      } while (!Str.empty());
940
0
    }));
941
942
943
0
bool AMDGPUPostLegalizerCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const {
944
0
    return  !DisabledRules.test(RuleID);
945
0
}
946
0
bool AMDGPUPostLegalizerCombinerImplRuleConfig::parseCommandLineOption() {
947
0
  for (StringRef Identifier : AMDGPUPostLegalizerCombinerOption) {
948
0
    bool Enabled = Identifier.consume_front("!");
949
0
    if (Enabled && !setRuleEnabled(Identifier))
950
0
      return false;
951
0
    if (!Enabled && !setRuleDisabled(Identifier))
952
0
      return false;
953
0
  }
954
0
  return true;
955
0
}
956
957
#endif // ifdef GET_GICOMBINER_TYPES
958
959
#ifdef GET_GICOMBINER_TYPES
960
const unsigned MAX_SUBTARGET_PREDICATES = 3;
961
using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
962
#endif // ifdef GET_GICOMBINER_TYPES
963
964
#ifdef GET_GICOMBINER_CLASS_MEMBERS
965
PredicateBitset AvailableModuleFeatures;
966
mutable PredicateBitset AvailableFunctionFeatures;
967
0
PredicateBitset getAvailableFeatures() const {
968
0
  return AvailableModuleFeatures | AvailableFunctionFeatures;
969
0
}
970
PredicateBitset
971
computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const;
972
PredicateBitset
973
computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget,
974
                                 const MachineFunction *MF) const;
975
void setupGeneratedPerFunctionState(MachineFunction &MF) override;
976
#endif // ifdef GET_GICOMBINER_CLASS_MEMBERS
977
#ifdef GET_GICOMBINER_CLASS_MEMBERS
978
  mutable MatcherState State;
979
  typedef ComplexRendererFns(AMDGPUPostLegalizerCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const;
980
  typedef void(AMDGPUPostLegalizerCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
981
  const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
982
  static AMDGPUPostLegalizerCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[];
983
  static AMDGPUPostLegalizerCombinerImpl::CustomRendererFn CustomRenderers[];
984
  bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
985
  bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
986
  bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
987
  const uint8_t *getMatchTable() const override;
988
  bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
989
  bool testSimplePredicate(unsigned PredicateID) const override;
990
  void runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
991
  struct MatchInfosTy {
992
    std::pair<Register, bool> MDInfo1;
993
    ConstantFP* MDInfo23;
994
    InstructionStepsMatchInfo MDInfo9;
995
    MachineInstr* MDInfo7;
996
    SmallVector<Register, 4> MDInfo2;
997
    RegisterImmPair MDInfo13;
998
    Register MDInfo3;
999
    std::pair<Register, unsigned> MDInfo18;
1000
    APInt MDInfo20;
1001
    FMinFMaxLegacyInfo MDInfo24;
1002
    unsigned MDInfo0;
1003
    SmallVector<std::pair<Register, MachineInstr*>> MDInfo4;
1004
    std::tuple<Register, unsigned> MDInfo12;
1005
    MachineInstr * MDInfo15;
1006
    ShiftOfShiftedLogic MDInfo22;
1007
    std::pair<MachineInstr*, LLT> MDInfo19;
1008
    std::pair<MachineInstr *, unsigned> MDInfo26;
1009
    PreferredTuple MDInfo5;
1010
    SmallVector<APInt, 8> MDInfo17;
1011
    std::tuple<Register, Register> MDInfo8;
1012
    std::tuple<Register, int64_t> MDInfo11;
1013
    SmallVector<Register, 8> MDInfo16;
1014
    CvtF32UByteMatchInfo MDInfo25;
1015
    std::function<void(MachineIRBuilder &)> MDInfo6;
1016
    int64_t MDInfo14;
1017
    std::pair<Register, Register> MDInfo21;
1018
    PtrAddChain MDInfo10;
1019
  };
1020
  mutable MatchInfosTy MatchInfos;
1021
1022
#endif // ifdef GET_GICOMBINER_CLASS_MEMBERS
1023
1024
#ifdef GET_GICOMBINER_IMPL
1025
// LLT Objects.
1026
enum {
1027
  GILLT_s1,
1028
};
1029
const static size_t NumTypeObjects = 1;
1030
const static LLT TypeObjects[] = {
1031
  LLT::scalar(1),
1032
};
1033
1034
// Bits for subtarget features that participate in instruction matching.
1035
enum SubtargetFeatureBits : uint8_t {
1036
  Feature_Has16BitInstsBit = 1,
1037
  Feature_NotHasMed3_16Bit = 2,
1038
  Feature_HasFminFmaxLegacyBit = 0,
1039
};
1040
1041
PredicateBitset AMDGPUPostLegalizerCombinerImpl::
1042
0
computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const {
1043
0
  PredicateBitset Features;
1044
0
  if (Subtarget->has16BitInsts())
1045
0
    Features.set(Feature_Has16BitInstsBit);
1046
0
  if (!Subtarget->hasMed3_16())
1047
0
    Features.set(Feature_NotHasMed3_16Bit);
1048
0
  if (Subtarget->hasFminFmaxLegacy())
1049
0
    Features.set(Feature_HasFminFmaxLegacyBit);
1050
0
  return Features;
1051
0
}
1052
1053
0
void AMDGPUPostLegalizerCombinerImpl::setupGeneratedPerFunctionState(MachineFunction &MF) {
1054
0
  AvailableFunctionFeatures = computeAvailableFunctionFeatures((const AMDGPUSubtarget *)&MF.getSubtarget(), &MF);
1055
0
}
1056
PredicateBitset AMDGPUPostLegalizerCombinerImpl::
1057
0
computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget, const MachineFunction *MF) const {
1058
0
  PredicateBitset Features;
1059
0
  return Features;
1060
0
}
1061
1062
// Feature bitsets.
1063
enum {
1064
  GIFBS_Invalid,
1065
  GIFBS_HasFminFmaxLegacy,
1066
  GIFBS_Has16BitInsts_NotHasMed3_16,
1067
};
1068
constexpr static PredicateBitset FeatureBitsets[] {
1069
  {}, // GIFBS_Invalid
1070
  {Feature_HasFminFmaxLegacyBit, },
1071
  {Feature_Has16BitInstsBit, Feature_NotHasMed3_16Bit, },
1072
};
1073
1074
// ComplexPattern predicates.
1075
enum {
1076
  GICP_Invalid,
1077
};
1078
// See constructor for table contents
1079
1080
AMDGPUPostLegalizerCombinerImpl::ComplexMatcherMemFn
1081
AMDGPUPostLegalizerCombinerImpl::ComplexPredicateFns[] = {
1082
  nullptr, // GICP_Invalid
1083
};
1084
1085
enum {
1086
  GICXXPred_MI_Predicate_GICombiner0 = GICXXPred_Invalid + 1,
1087
  GICXXPred_MI_Predicate_GICombiner1,
1088
  GICXXPred_MI_Predicate_GICombiner2,
1089
  GICXXPred_MI_Predicate_GICombiner3,
1090
  GICXXPred_MI_Predicate_GICombiner4,
1091
  GICXXPred_MI_Predicate_GICombiner5,
1092
  GICXXPred_MI_Predicate_GICombiner6,
1093
  GICXXPred_MI_Predicate_GICombiner7,
1094
  GICXXPred_MI_Predicate_GICombiner8,
1095
  GICXXPred_MI_Predicate_GICombiner9,
1096
  GICXXPred_MI_Predicate_GICombiner10,
1097
  GICXXPred_MI_Predicate_GICombiner11,
1098
  GICXXPred_MI_Predicate_GICombiner12,
1099
  GICXXPred_MI_Predicate_GICombiner13,
1100
  GICXXPred_MI_Predicate_GICombiner14,
1101
  GICXXPred_MI_Predicate_GICombiner15,
1102
  GICXXPred_MI_Predicate_GICombiner16,
1103
  GICXXPred_MI_Predicate_GICombiner17,
1104
  GICXXPred_MI_Predicate_GICombiner18,
1105
  GICXXPred_MI_Predicate_GICombiner19,
1106
  GICXXPred_MI_Predicate_GICombiner20,
1107
  GICXXPred_MI_Predicate_GICombiner21,
1108
  GICXXPred_MI_Predicate_GICombiner22,
1109
  GICXXPred_MI_Predicate_GICombiner23,
1110
  GICXXPred_MI_Predicate_GICombiner24,
1111
  GICXXPred_MI_Predicate_GICombiner25,
1112
  GICXXPred_MI_Predicate_GICombiner26,
1113
  GICXXPred_MI_Predicate_GICombiner27,
1114
  GICXXPred_MI_Predicate_GICombiner28,
1115
  GICXXPred_MI_Predicate_GICombiner29,
1116
  GICXXPred_MI_Predicate_GICombiner30,
1117
  GICXXPred_MI_Predicate_GICombiner31,
1118
  GICXXPred_MI_Predicate_GICombiner32,
1119
  GICXXPred_MI_Predicate_GICombiner33,
1120
  GICXXPred_MI_Predicate_GICombiner34,
1121
  GICXXPred_MI_Predicate_GICombiner35,
1122
  GICXXPred_MI_Predicate_GICombiner36,
1123
  GICXXPred_MI_Predicate_GICombiner37,
1124
  GICXXPred_MI_Predicate_GICombiner38,
1125
  GICXXPred_MI_Predicate_GICombiner39,
1126
  GICXXPred_MI_Predicate_GICombiner40,
1127
  GICXXPred_MI_Predicate_GICombiner41,
1128
  GICXXPred_MI_Predicate_GICombiner42,
1129
  GICXXPred_MI_Predicate_GICombiner43,
1130
  GICXXPred_MI_Predicate_GICombiner44,
1131
  GICXXPred_MI_Predicate_GICombiner45,
1132
  GICXXPred_MI_Predicate_GICombiner46,
1133
  GICXXPred_MI_Predicate_GICombiner47,
1134
  GICXXPred_MI_Predicate_GICombiner48,
1135
  GICXXPred_MI_Predicate_GICombiner49,
1136
  GICXXPred_MI_Predicate_GICombiner50,
1137
  GICXXPred_MI_Predicate_GICombiner51,
1138
  GICXXPred_MI_Predicate_GICombiner52,
1139
  GICXXPred_MI_Predicate_GICombiner53,
1140
  GICXXPred_MI_Predicate_GICombiner54,
1141
  GICXXPred_MI_Predicate_GICombiner55,
1142
  GICXXPred_MI_Predicate_GICombiner56,
1143
  GICXXPred_MI_Predicate_GICombiner57,
1144
  GICXXPred_MI_Predicate_GICombiner58,
1145
  GICXXPred_MI_Predicate_GICombiner59,
1146
  GICXXPred_MI_Predicate_GICombiner60,
1147
  GICXXPred_MI_Predicate_GICombiner61,
1148
  GICXXPred_MI_Predicate_GICombiner62,
1149
  GICXXPred_MI_Predicate_GICombiner63,
1150
  GICXXPred_MI_Predicate_GICombiner64,
1151
  GICXXPred_MI_Predicate_GICombiner65,
1152
  GICXXPred_MI_Predicate_GICombiner66,
1153
  GICXXPred_MI_Predicate_GICombiner67,
1154
  GICXXPred_MI_Predicate_GICombiner68,
1155
  GICXXPred_MI_Predicate_GICombiner69,
1156
  GICXXPred_MI_Predicate_GICombiner70,
1157
  GICXXPred_MI_Predicate_GICombiner71,
1158
  GICXXPred_MI_Predicate_GICombiner72,
1159
  GICXXPred_MI_Predicate_GICombiner73,
1160
  GICXXPred_MI_Predicate_GICombiner74,
1161
  GICXXPred_MI_Predicate_GICombiner75,
1162
  GICXXPred_MI_Predicate_GICombiner76,
1163
  GICXXPred_MI_Predicate_GICombiner77,
1164
  GICXXPred_MI_Predicate_GICombiner78,
1165
  GICXXPred_MI_Predicate_GICombiner79,
1166
  GICXXPred_MI_Predicate_GICombiner80,
1167
  GICXXPred_MI_Predicate_GICombiner81,
1168
  GICXXPred_MI_Predicate_GICombiner82,
1169
  GICXXPred_MI_Predicate_GICombiner83,
1170
  GICXXPred_MI_Predicate_GICombiner84,
1171
  GICXXPred_MI_Predicate_GICombiner85,
1172
  GICXXPred_MI_Predicate_GICombiner86,
1173
  GICXXPred_MI_Predicate_GICombiner87,
1174
  GICXXPred_MI_Predicate_GICombiner88,
1175
  GICXXPred_MI_Predicate_GICombiner89,
1176
  GICXXPred_MI_Predicate_GICombiner90,
1177
  GICXXPred_MI_Predicate_GICombiner91,
1178
  GICXXPred_MI_Predicate_GICombiner92,
1179
  GICXXPred_MI_Predicate_GICombiner93,
1180
  GICXXPred_MI_Predicate_GICombiner94,
1181
  GICXXPred_MI_Predicate_GICombiner95,
1182
  GICXXPred_MI_Predicate_GICombiner96,
1183
  GICXXPred_MI_Predicate_GICombiner97,
1184
  GICXXPred_MI_Predicate_GICombiner98,
1185
  GICXXPred_MI_Predicate_GICombiner99,
1186
  GICXXPred_MI_Predicate_GICombiner100,
1187
  GICXXPred_MI_Predicate_GICombiner101,
1188
  GICXXPred_MI_Predicate_GICombiner102,
1189
  GICXXPred_MI_Predicate_GICombiner103,
1190
  GICXXPred_MI_Predicate_GICombiner104,
1191
  GICXXPred_MI_Predicate_GICombiner105,
1192
  GICXXPred_MI_Predicate_GICombiner106,
1193
  GICXXPred_MI_Predicate_GICombiner107,
1194
  GICXXPred_MI_Predicate_GICombiner108,
1195
  GICXXPred_MI_Predicate_GICombiner109,
1196
  GICXXPred_MI_Predicate_GICombiner110,
1197
  GICXXPred_MI_Predicate_GICombiner111,
1198
  GICXXPred_MI_Predicate_GICombiner112,
1199
};
1200
0
bool AMDGPUPostLegalizerCombinerImpl::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
1201
0
  switch (PredicateID) {
1202
0
  case GICXXPred_MI_Predicate_GICombiner0: {
1203
0
    return Helper.matchCombineCopy(*State.MIs[0]);
1204
0
  }
1205
0
  case GICXXPred_MI_Predicate_GICombiner1: {
1206
0
    return Helper.matchCombineMulToShl(*State.MIs[0], MatchInfos.MDInfo0);
1207
0
  }
1208
0
  case GICXXPred_MI_Predicate_GICombiner2: {
1209
0
    return Helper.matchCombineAddP2IToPtrAdd(*State.MIs[0], MatchInfos.MDInfo1);
1210
0
  }
1211
0
  case GICXXPred_MI_Predicate_GICombiner3: {
1212
0
    return Helper.matchCombineInsertVecElts(*State.MIs[0], MatchInfos.MDInfo2);
1213
0
  }
1214
0
  case GICXXPred_MI_Predicate_GICombiner4: {
1215
0
    return Helper.matchExtractVecEltBuildVec(*State.MIs[0], MatchInfos.MDInfo3);
1216
0
  }
1217
0
  case GICXXPred_MI_Predicate_GICombiner5: {
1218
0
    return Helper.matchExtractAllEltsFromBuildVector(*State.MIs[0], MatchInfos.MDInfo4);
1219
0
  }
1220
0
  case GICXXPred_MI_Predicate_GICombiner6: {
1221
0
    return Helper.matchCombineExtendingLoads(*State.MIs[0], MatchInfos.MDInfo5);
1222
0
  }
1223
0
  case GICXXPred_MI_Predicate_GICombiner7: {
1224
0
    return Helper.matchCombineLoadWithAndMask(*State.MIs[0], MatchInfos.MDInfo6);
1225
0
  }
1226
0
  case GICXXPred_MI_Predicate_GICombiner8: {
1227
0
    return Helper.matchCombineExtractedVectorLoad(*State.MIs[0], MatchInfos.MDInfo6);
1228
0
  }
1229
0
  case GICXXPred_MI_Predicate_GICombiner9: {
1230
0
    return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);
1231
0
  }
1232
0
  case GICXXPred_MI_Predicate_GICombiner10: {
1233
0
    return Helper.matchOperandIsUndef(*State.MIs[0], 1);
1234
0
  }
1235
0
  case GICXXPred_MI_Predicate_GICombiner11: {
1236
0
    return Helper.matchOperandIsUndef(*State.MIs[0], 2);
1237
0
  }
1238
0
  case GICXXPred_MI_Predicate_GICombiner12: {
1239
0
    return Helper.matchAllExplicitUsesAreUndef(*State.MIs[0]);
1240
0
  }
1241
0
  case GICXXPred_MI_Predicate_GICombiner13: {
1242
0
    return Helper.matchUndefShuffleVectorMask(*State.MIs[0]);
1243
0
  }
1244
0
  case GICXXPred_MI_Predicate_GICombiner14: {
1245
0
    return Helper.matchUndefStore(*State.MIs[0]);
1246
0
  }
1247
0
  case GICXXPred_MI_Predicate_GICombiner15: {
1248
0
    return Helper.matchCombineUnmergeUndef(*State.MIs[0], MatchInfos.MDInfo6);
1249
0
  }
1250
0
  case GICXXPred_MI_Predicate_GICombiner16: {
1251
0
    return Helper.matchInsertExtractVecEltOutOfBounds(*State.MIs[0]);
1252
0
  }
1253
0
  case GICXXPred_MI_Predicate_GICombiner17: {
1254
0
    return Helper.matchSelectSameVal(*State.MIs[0]);
1255
0
  }
1256
0
  case GICXXPred_MI_Predicate_GICombiner18: {
1257
0
    return Helper.matchOperandIsZero(*State.MIs[0], 1);
1258
0
  }
1259
0
  case GICXXPred_MI_Predicate_GICombiner19: {
1260
0
    return Helper.matchCombineI2PToP2I(*State.MIs[0], MatchInfos.MDInfo3);
1261
0
  }
1262
0
  case GICXXPred_MI_Predicate_GICombiner20: {
1263
0
    MatchInfos.MDInfo3 = State.MIs[1]->getOperand(1).getReg(); return true;
1264
0
    llvm_unreachable("GICombiner20 should have returned");
1265
0
  }
1266
0
  case GICXXPred_MI_Predicate_GICombiner21: {
1267
0
    return Helper.matchCombineAnyExtTrunc(*State.MIs[0], MatchInfos.MDInfo3);
1268
0
  }
1269
0
  case GICXXPred_MI_Predicate_GICombiner22: {
1270
0
    return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 1.0);
1271
0
  }
1272
0
  case GICXXPred_MI_Predicate_GICombiner23: {
1273
0
    return Helper.matchBuildVectorIdentityFold(*State.MIs[0], MatchInfos.MDInfo3);
1274
0
  }
1275
0
  case GICXXPred_MI_Predicate_GICombiner24: {
1276
0
    return Helper.matchTruncBuildVectorFold(*State.MIs[0], MatchInfos.MDInfo3);
1277
0
  }
1278
0
  case GICXXPred_MI_Predicate_GICombiner25: {
1279
0
    return Helper.matchTruncLshrBuildVectorFold(*State.MIs[0], MatchInfos.MDInfo3);
1280
0
  }
1281
0
  case GICXXPred_MI_Predicate_GICombiner26: {
1282
0
    return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());
1283
0
  }
1284
0
  case GICXXPred_MI_Predicate_GICombiner27: {
1285
0
    return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -0.0);
1286
0
  }
1287
0
  case GICXXPred_MI_Predicate_GICombiner28: {
1288
0
    return Helper.matchExtendThroughPhis(*State.MIs[0], MatchInfos.MDInfo7);
1289
0
  }
1290
0
  case GICXXPred_MI_Predicate_GICombiner29: {
1291
0
    return Helper.matchSimplifyAddToSub(*State.MIs[0], MatchInfos.MDInfo8);
1292
0
  }
1293
0
  case GICXXPred_MI_Predicate_GICombiner30: {
1294
0
    return Helper.matchHoistLogicOpWithSameOpcodeHands(*State.MIs[0], MatchInfos.MDInfo9);
1295
0
  }
1296
0
  case GICXXPred_MI_Predicate_GICombiner31: {
1297
0
    return Helper.matchShiftsTooBig(*State.MIs[0]);
1298
0
  }
1299
0
  case GICXXPred_MI_Predicate_GICombiner32: {
1300
0
    return Helper.matchReassocPtrAdd(*State.MIs[0], MatchInfos.MDInfo6);
1301
0
  }
1302
0
  case GICXXPred_MI_Predicate_GICombiner33: {
1303
0
    return Helper.matchReassocCommBinOp(*State.MIs[0], MatchInfos.MDInfo6);
1304
0
  }
1305
0
  case GICXXPred_MI_Predicate_GICombiner34: {
1306
0
    return Helper.matchPtrAddImmedChain(*State.MIs[0], MatchInfos.MDInfo10);
1307
0
  }
1308
0
  case GICXXPred_MI_Predicate_GICombiner35: {
1309
0
    return Helper.matchAshrShlToSextInreg(*State.MIs[0], MatchInfos.MDInfo11);
1310
0
  }
1311
0
  case GICXXPred_MI_Predicate_GICombiner36: {
1312
0
    return Helper.matchSextInRegOfLoad(*State.MIs[0], MatchInfos.MDInfo12);
1313
0
  }
1314
0
  case GICXXPred_MI_Predicate_GICombiner37: {
1315
0
    return Helper.matchCombineShlOfExtend(*State.MIs[0], MatchInfos.MDInfo13);
1316
0
  }
1317
0
  case GICXXPred_MI_Predicate_GICombiner38: {
1318
0
    return Helper.matchNarrowBinopFeedingAnd(*State.MIs[0], MatchInfos.MDInfo6);
1319
0
  }
1320
0
  case GICXXPred_MI_Predicate_GICombiner39: {
1321
0
    return Helper.matchConstantSelectCmp(*State.MIs[0], MatchInfos.MDInfo0);
1322
0
  }
1323
0
  case GICXXPred_MI_Predicate_GICombiner40: {
1324
0
    return Helper.matchSelect(*State.MIs[0], MatchInfos.MDInfo6);
1325
0
  }
1326
0
  case GICXXPred_MI_Predicate_GICombiner41: {
1327
0
    return Helper.matchRedundantAnd(*State.MIs[0], MatchInfos.MDInfo3);
1328
0
  }
1329
0
  case GICXXPred_MI_Predicate_GICombiner42: {
1330
0
    return Helper.matchRedundantSExtInReg(*State.MIs[0]);
1331
0
  }
1332
0
  case GICXXPred_MI_Predicate_GICombiner43: {
1333
0
    return Helper.matchRedundantOr(*State.MIs[0], MatchInfos.MDInfo3);
1334
0
  }
1335
0
  case GICXXPred_MI_Predicate_GICombiner44: {
1336
0
    return Helper.matchOperandIsKnownToBeAPowerOfTwo(*State.MIs[0], 2);
1337
0
  }
1338
0
  case GICXXPred_MI_Predicate_GICombiner45: {
1339
0
    return Helper.matchCombineZextTrunc(*State.MIs[0], MatchInfos.MDInfo3);
1340
0
  }
1341
0
  case GICXXPred_MI_Predicate_GICombiner46: {
1342
0
    return Helper.matchICmpToTrueFalseKnownBits(*State.MIs[0], MatchInfos.MDInfo14);
1343
0
  }
1344
0
  case GICXXPred_MI_Predicate_GICombiner47: {
1345
0
    return Helper.matchICmpToLHSKnownBits(*State.MIs[0], MatchInfos.MDInfo6);
1346
0
  }
1347
0
  case GICXXPred_MI_Predicate_GICombiner48: {
1348
0
    unsigned BitWidth = MRI.getType(State.MIs[0]->getOperand(1).getReg()).getScalarSizeInBits();
1349
0
                return Helper.getKnownBits()->maskedValueIsZero(State.MIs[0]->getOperand(1).getReg(),
1350
0
                         APInt::getOneBitSet(BitWidth, State.MIs[0]->getOperand(2).getImm() - 1));
1351
0
    llvm_unreachable("GICombiner48 should have returned");
1352
0
  }
1353
0
  case GICXXPred_MI_Predicate_GICombiner49: {
1354
0
    return Helper.matchCombineExtOfExt(*State.MIs[0], MatchInfos.MDInfo12);
1355
0
  }
1356
0
  case GICXXPred_MI_Predicate_GICombiner50: {
1357
0
    return Helper.matchNotCmp(*State.MIs[0], MatchInfos.MDInfo2);
1358
0
  }
1359
0
  case GICXXPred_MI_Predicate_GICombiner51: {
1360
0
    return Helper.matchOptBrCondByInvertingCond(*State.MIs[0], MatchInfos.MDInfo15);
1361
0
  }
1362
0
  case GICXXPred_MI_Predicate_GICombiner52: {
1363
0
    return Helper.matchCombineUnmergeMergeToPlainValues(*State.MIs[0], MatchInfos.MDInfo16);
1364
0
  }
1365
0
  case GICXXPred_MI_Predicate_GICombiner53: {
1366
0
    return Helper.matchCombineUnmergeConstant(*State.MIs[0], MatchInfos.MDInfo17);
1367
0
  }
1368
0
  case GICXXPred_MI_Predicate_GICombiner54: {
1369
0
    return Helper.matchCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);
1370
0
  }
1371
0
  case GICXXPred_MI_Predicate_GICombiner55: {
1372
0
    return Helper.matchCombineUnmergeZExtToZExt(*State.MIs[0]);
1373
0
  }
1374
0
  case GICXXPred_MI_Predicate_GICombiner56: {
1375
0
    return Helper.matchCombineMergeUnmerge(*State.MIs[0], MatchInfos.MDInfo3);
1376
0
  }
1377
0
  case GICXXPred_MI_Predicate_GICombiner57: {
1378
0
    return Helper.matchCombineTruncOfExt(*State.MIs[0], MatchInfos.MDInfo18);
1379
0
  }
1380
0
  case GICXXPred_MI_Predicate_GICombiner58: {
1381
0
    return Helper.matchCombineTruncOfShift(*State.MIs[0], MatchInfos.MDInfo19);
1382
0
  }
1383
0
  case GICXXPred_MI_Predicate_GICombiner59: {
1384
0
    return Helper.matchCombineConstPtrAddToI2P(*State.MIs[0], MatchInfos.MDInfo20);
1385
0
  }
1386
0
  case GICXXPred_MI_Predicate_GICombiner60: {
1387
0
    return Helper.matchOverlappingAnd(*State.MIs[0], MatchInfos.MDInfo6);
1388
0
  }
1389
0
  case GICXXPred_MI_Predicate_GICombiner61: {
1390
0
    return Helper.matchMulOBy2(*State.MIs[0], MatchInfos.MDInfo6);
1391
0
  }
1392
0
  case GICXXPred_MI_Predicate_GICombiner62: {
1393
0
    return Helper.matchMulOBy0(*State.MIs[0], MatchInfos.MDInfo6);
1394
0
  }
1395
0
  case GICXXPred_MI_Predicate_GICombiner63: {
1396
0
    return Helper.matchAddOBy0(*State.MIs[0], MatchInfos.MDInfo6);
1397
0
  }
1398
0
  case GICXXPred_MI_Predicate_GICombiner64: {
1399
0
    return Helper.matchAddEToAddO(*State.MIs[0], MatchInfos.MDInfo6);
1400
0
  }
1401
0
  case GICXXPred_MI_Predicate_GICombiner65: {
1402
0
    return Helper.matchCombineFMinMaxNaN(*State.MIs[0], MatchInfos.MDInfo0);
1403
0
  }
1404
0
  case GICXXPred_MI_Predicate_GICombiner66: {
1405
0
    return Helper.matchXorOfAndWithSameReg(*State.MIs[0], MatchInfos.MDInfo21);
1406
0
  }
1407
0
  case GICXXPred_MI_Predicate_GICombiner67: {
1408
0
    return Helper.matchPtrAddZero(*State.MIs[0]);
1409
0
  }
1410
0
  case GICXXPred_MI_Predicate_GICombiner68: {
1411
0
    return Helper.matchShiftImmedChain(*State.MIs[0], MatchInfos.MDInfo13);
1412
0
  }
1413
0
  case GICXXPred_MI_Predicate_GICombiner69: {
1414
0
    return Helper.matchShiftOfShiftedLogic(*State.MIs[0], MatchInfos.MDInfo22);
1415
0
  }
1416
0
  case GICXXPred_MI_Predicate_GICombiner70: {
1417
0
    return Helper.matchLoadOrCombine(*State.MIs[0], MatchInfos.MDInfo6);
1418
0
  }
1419
0
  case GICXXPred_MI_Predicate_GICombiner71: {
1420
0
    return Helper.matchCombineDivRem(*State.MIs[0], MatchInfos.MDInfo15);
1421
0
  }
1422
0
  case GICXXPred_MI_Predicate_GICombiner72: {
1423
0
    return Helper.matchOrShiftToFunnelShift(*State.MIs[0], MatchInfos.MDInfo6);
1424
0
  }
1425
0
  case GICXXPred_MI_Predicate_GICombiner73: {
1426
0
    return Helper.matchFunnelShiftToRotate(*State.MIs[0]);
1427
0
  }
1428
0
  case GICXXPred_MI_Predicate_GICombiner74: {
1429
0
    return Helper.matchConstantLargerBitWidth(*State.MIs[0], 3);
1430
0
  }
1431
0
  case GICXXPred_MI_Predicate_GICombiner75: {
1432
0
    return Helper.matchCommuteShift(*State.MIs[0], MatchInfos.MDInfo6);
1433
0
  }
1434
0
  case GICXXPred_MI_Predicate_GICombiner76: {
1435
0
    return Helper.matchBitfieldExtractFromSExtInReg(*State.MIs[0], MatchInfos.MDInfo6);
1436
0
  }
1437
0
  case GICXXPred_MI_Predicate_GICombiner77: {
1438
0
    return Helper.matchBitfieldExtractFromAnd(*State.MIs[0], MatchInfos.MDInfo6);
1439
0
  }
1440
0
  case GICXXPred_MI_Predicate_GICombiner78: {
1441
0
    return Helper.matchBitfieldExtractFromShr(*State.MIs[0], MatchInfos.MDInfo6);
1442
0
  }
1443
0
  case GICXXPred_MI_Predicate_GICombiner79: {
1444
0
    return Helper.matchBitfieldExtractFromShrAnd(*State.MIs[0], MatchInfos.MDInfo6);
1445
0
  }
1446
0
  case GICXXPred_MI_Predicate_GICombiner80: {
1447
0
    return Helper.matchConstantFoldBinOp(*State.MIs[0], MatchInfos.MDInfo20);
1448
0
  }
1449
0
  case GICXXPred_MI_Predicate_GICombiner81: {
1450
0
    return Helper.matchConstantFoldFPBinOp(*State.MIs[0], MatchInfos.MDInfo23);
1451
0
  }
1452
0
  case GICXXPred_MI_Predicate_GICombiner82: {
1453
0
    return Helper.matchConstantFoldFMA(*State.MIs[0], MatchInfos.MDInfo23);
1454
0
  }
1455
0
  case GICXXPred_MI_Predicate_GICombiner83: {
1456
0
    return Helper.matchConstantFoldCastOp(*State.MIs[0], MatchInfos.MDInfo20);
1457
0
  }
1458
0
  case GICXXPred_MI_Predicate_GICombiner84: {
1459
0
    return Helper.matchUDivByConst(*State.MIs[0]);
1460
0
  }
1461
0
  case GICXXPred_MI_Predicate_GICombiner85: {
1462
0
    return Helper.matchSDivByConst(*State.MIs[0]);
1463
0
  }
1464
0
  case GICXXPred_MI_Predicate_GICombiner86: {
1465
0
    return Helper.matchUMulHToLShr(*State.MIs[0]);
1466
0
  }
1467
0
  case GICXXPred_MI_Predicate_GICombiner87: {
1468
0
    return Helper.matchRedundantNegOperands(*State.MIs[0], MatchInfos.MDInfo6);
1469
0
  }
1470
0
  case GICXXPred_MI_Predicate_GICombiner88: {
1471
0
    return Helper.matchAndOrDisjointMask(*State.MIs[0], MatchInfos.MDInfo6);
1472
0
  }
1473
0
  case GICXXPred_MI_Predicate_GICombiner89: {
1474
0
    return Helper.matchCombineFAddFMulToFMadOrFMA(*State.MIs[0],
1475
0
                                                                  MatchInfos.MDInfo6);
1476
0
  }
1477
0
  case GICXXPred_MI_Predicate_GICombiner90: {
1478
0
    return Helper.matchCombineFAddFpExtFMulToFMadOrFMA(*State.MIs[0],
1479
0
                                                                       MatchInfos.MDInfo6);
1480
0
  }
1481
0
  case GICXXPred_MI_Predicate_GICombiner91: {
1482
0
    return Helper.matchCombineFAddFMAFMulToFMadOrFMA(*State.MIs[0],
1483
0
                                                                     MatchInfos.MDInfo6);
1484
0
  }
1485
0
  case GICXXPred_MI_Predicate_GICombiner92: {
1486
0
    return Helper.matchCombineFAddFpExtFMulToFMadOrFMAAggressive(
1487
0
                                                          *State.MIs[0], MatchInfos.MDInfo6);
1488
0
  }
1489
0
  case GICXXPred_MI_Predicate_GICombiner93: {
1490
0
    return Helper.matchCombineFSubFMulToFMadOrFMA(*State.MIs[0],
1491
0
                                                                  MatchInfos.MDInfo6);
1492
0
  }
1493
0
  case GICXXPred_MI_Predicate_GICombiner94: {
1494
0
    return Helper.matchCombineFSubFNegFMulToFMadOrFMA(*State.MIs[0],
1495
0
                                                                      MatchInfos.MDInfo6);
1496
0
  }
1497
0
  case GICXXPred_MI_Predicate_GICombiner95: {
1498
0
    return Helper.matchCombineFSubFpExtFMulToFMadOrFMA(*State.MIs[0],
1499
0
                                                                       MatchInfos.MDInfo6);
1500
0
  }
1501
0
  case GICXXPred_MI_Predicate_GICombiner96: {
1502
0
    return Helper.matchCombineFSubFpExtFNegFMulToFMadOrFMA(
1503
0
                                                    *State.MIs[0], MatchInfos.MDInfo6);
1504
0
  }
1505
0
  case GICXXPred_MI_Predicate_GICombiner97: {
1506
0
    return Helper.matchFoldBinOpIntoSelect(*State.MIs[0], MatchInfos.MDInfo0);
1507
0
  }
1508
0
  case GICXXPred_MI_Predicate_GICombiner98: {
1509
0
    return Helper.matchSubAddSameReg(*State.MIs[0], MatchInfos.MDInfo6);
1510
0
  }
1511
0
  case GICXXPred_MI_Predicate_GICombiner99: {
1512
0
    return Helper.matchSimplifySelectToMinMax(*State.MIs[0], MatchInfos.MDInfo6);
1513
0
  }
1514
0
  case GICXXPred_MI_Predicate_GICombiner100: {
1515
0
    return Helper.matchRedundantBinOpInEquality(*State.MIs[0], MatchInfos.MDInfo6);
1516
0
  }
1517
0
  case GICXXPred_MI_Predicate_GICombiner101: {
1518
0
    return Helper.matchFsubToFneg(*State.MIs[0], MatchInfos.MDInfo3);
1519
0
  }
1520
0
  case GICXXPred_MI_Predicate_GICombiner102: {
1521
0
    return Helper.matchCommuteConstantToRHS(*State.MIs[0]);
1522
0
  }
1523
0
  case GICXXPred_MI_Predicate_GICombiner103: {
1524
0
    return Helper.matchCommuteFPConstantToRHS(*State.MIs[0]);
1525
0
  }
1526
0
  case GICXXPred_MI_Predicate_GICombiner104: {
1527
0
    return matchFMinFMaxLegacy(*State.MIs[0], MatchInfos.MDInfo24);
1528
0
  }
1529
0
  case GICXXPred_MI_Predicate_GICombiner105: {
1530
0
    return Helper.matchExpandPromotedF16FMed3(*State.MIs[0], State.MIs[1]->getOperand(1).getReg(), State.MIs[1]->getOperand(2).getReg(), State.MIs[1]->getOperand(3).getReg());
1531
0
  }
1532
0
  case GICXXPred_MI_Predicate_GICombiner106: {
1533
0
    return matchUCharToFloat(*State.MIs[0]);
1534
0
  }
1535
0
  case GICXXPred_MI_Predicate_GICombiner107: {
1536
0
    return matchCvtF32UByteN(*State.MIs[0], MatchInfos.MDInfo25);
1537
0
  }
1538
0
  case GICXXPred_MI_Predicate_GICombiner108: {
1539
0
    return matchRemoveFcanonicalize(*State.MIs[0], MatchInfos.MDInfo3);
1540
0
  }
1541
0
  case GICXXPred_MI_Predicate_GICombiner109: {
1542
0
    return Helper.matchFoldableFneg(*State.MIs[0], MatchInfos.MDInfo15);
1543
0
  }
1544
0
  case GICXXPred_MI_Predicate_GICombiner110: {
1545
0
    return matchRcpSqrtToRsq(*State.MIs[0], MatchInfos.MDInfo6);
1546
0
  }
1547
0
  case GICXXPred_MI_Predicate_GICombiner111: {
1548
0
    return matchCombineSignExtendInReg(*State.MIs[0], MatchInfos.MDInfo26);
1549
0
  }
1550
0
  case GICXXPred_MI_Predicate_GICombiner112: {
1551
0
    return matchCombine_s_mul_u64(*State.MIs[0], MatchInfos.MDInfo0);
1552
0
  }
1553
0
  }
1554
0
  llvm_unreachable("Unknown predicate");
1555
0
  return false;
1556
0
}
1557
0
bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
1558
0
  llvm_unreachable("Unknown predicate");
1559
0
  return false;
1560
0
}
1561
0
bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
1562
0
  llvm_unreachable("Unknown predicate");
1563
0
  return false;
1564
0
}
1565
0
bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
1566
0
  llvm_unreachable("Unknown predicate");
1567
0
  return false;
1568
0
}
1569
enum {
1570
  GICXXPred_Simple_IsRule0Enabled = GICXXPred_Invalid + 1,
1571
  GICXXPred_Simple_IsRule1Enabled,
1572
  GICXXPred_Simple_IsRule2Enabled,
1573
  GICXXPred_Simple_IsRule3Enabled,
1574
  GICXXPred_Simple_IsRule4Enabled,
1575
  GICXXPred_Simple_IsRule5Enabled,
1576
  GICXXPred_Simple_IsRule6Enabled,
1577
  GICXXPred_Simple_IsRule7Enabled,
1578
  GICXXPred_Simple_IsRule8Enabled,
1579
  GICXXPred_Simple_IsRule9Enabled,
1580
  GICXXPred_Simple_IsRule10Enabled,
1581
  GICXXPred_Simple_IsRule11Enabled,
1582
  GICXXPred_Simple_IsRule12Enabled,
1583
  GICXXPred_Simple_IsRule13Enabled,
1584
  GICXXPred_Simple_IsRule14Enabled,
1585
  GICXXPred_Simple_IsRule15Enabled,
1586
  GICXXPred_Simple_IsRule16Enabled,
1587
  GICXXPred_Simple_IsRule17Enabled,
1588
  GICXXPred_Simple_IsRule18Enabled,
1589
  GICXXPred_Simple_IsRule19Enabled,
1590
  GICXXPred_Simple_IsRule20Enabled,
1591
  GICXXPred_Simple_IsRule21Enabled,
1592
  GICXXPred_Simple_IsRule22Enabled,
1593
  GICXXPred_Simple_IsRule23Enabled,
1594
  GICXXPred_Simple_IsRule24Enabled,
1595
  GICXXPred_Simple_IsRule25Enabled,
1596
  GICXXPred_Simple_IsRule26Enabled,
1597
  GICXXPred_Simple_IsRule27Enabled,
1598
  GICXXPred_Simple_IsRule28Enabled,
1599
  GICXXPred_Simple_IsRule29Enabled,
1600
  GICXXPred_Simple_IsRule30Enabled,
1601
  GICXXPred_Simple_IsRule31Enabled,
1602
  GICXXPred_Simple_IsRule32Enabled,
1603
  GICXXPred_Simple_IsRule33Enabled,
1604
  GICXXPred_Simple_IsRule34Enabled,
1605
  GICXXPred_Simple_IsRule35Enabled,
1606
  GICXXPred_Simple_IsRule36Enabled,
1607
  GICXXPred_Simple_IsRule37Enabled,
1608
  GICXXPred_Simple_IsRule38Enabled,
1609
  GICXXPred_Simple_IsRule39Enabled,
1610
  GICXXPred_Simple_IsRule40Enabled,
1611
  GICXXPred_Simple_IsRule41Enabled,
1612
  GICXXPred_Simple_IsRule42Enabled,
1613
  GICXXPred_Simple_IsRule43Enabled,
1614
  GICXXPred_Simple_IsRule44Enabled,
1615
  GICXXPred_Simple_IsRule45Enabled,
1616
  GICXXPred_Simple_IsRule46Enabled,
1617
  GICXXPred_Simple_IsRule47Enabled,
1618
  GICXXPred_Simple_IsRule48Enabled,
1619
  GICXXPred_Simple_IsRule49Enabled,
1620
  GICXXPred_Simple_IsRule50Enabled,
1621
  GICXXPred_Simple_IsRule51Enabled,
1622
  GICXXPred_Simple_IsRule52Enabled,
1623
  GICXXPred_Simple_IsRule53Enabled,
1624
  GICXXPred_Simple_IsRule54Enabled,
1625
  GICXXPred_Simple_IsRule55Enabled,
1626
  GICXXPred_Simple_IsRule56Enabled,
1627
  GICXXPred_Simple_IsRule57Enabled,
1628
  GICXXPred_Simple_IsRule58Enabled,
1629
  GICXXPred_Simple_IsRule59Enabled,
1630
  GICXXPred_Simple_IsRule60Enabled,
1631
  GICXXPred_Simple_IsRule61Enabled,
1632
  GICXXPred_Simple_IsRule62Enabled,
1633
  GICXXPred_Simple_IsRule63Enabled,
1634
  GICXXPred_Simple_IsRule64Enabled,
1635
  GICXXPred_Simple_IsRule65Enabled,
1636
  GICXXPred_Simple_IsRule66Enabled,
1637
  GICXXPred_Simple_IsRule67Enabled,
1638
  GICXXPred_Simple_IsRule68Enabled,
1639
  GICXXPred_Simple_IsRule69Enabled,
1640
  GICXXPred_Simple_IsRule70Enabled,
1641
  GICXXPred_Simple_IsRule71Enabled,
1642
  GICXXPred_Simple_IsRule72Enabled,
1643
  GICXXPred_Simple_IsRule73Enabled,
1644
  GICXXPred_Simple_IsRule74Enabled,
1645
  GICXXPred_Simple_IsRule75Enabled,
1646
  GICXXPred_Simple_IsRule76Enabled,
1647
  GICXXPred_Simple_IsRule77Enabled,
1648
  GICXXPred_Simple_IsRule78Enabled,
1649
  GICXXPred_Simple_IsRule79Enabled,
1650
  GICXXPred_Simple_IsRule80Enabled,
1651
  GICXXPred_Simple_IsRule81Enabled,
1652
  GICXXPred_Simple_IsRule82Enabled,
1653
  GICXXPred_Simple_IsRule83Enabled,
1654
  GICXXPred_Simple_IsRule84Enabled,
1655
  GICXXPred_Simple_IsRule85Enabled,
1656
  GICXXPred_Simple_IsRule86Enabled,
1657
  GICXXPred_Simple_IsRule87Enabled,
1658
  GICXXPred_Simple_IsRule88Enabled,
1659
  GICXXPred_Simple_IsRule89Enabled,
1660
  GICXXPred_Simple_IsRule90Enabled,
1661
  GICXXPred_Simple_IsRule91Enabled,
1662
  GICXXPred_Simple_IsRule92Enabled,
1663
  GICXXPred_Simple_IsRule93Enabled,
1664
  GICXXPred_Simple_IsRule94Enabled,
1665
  GICXXPred_Simple_IsRule95Enabled,
1666
  GICXXPred_Simple_IsRule96Enabled,
1667
  GICXXPred_Simple_IsRule97Enabled,
1668
  GICXXPred_Simple_IsRule98Enabled,
1669
  GICXXPred_Simple_IsRule99Enabled,
1670
  GICXXPred_Simple_IsRule100Enabled,
1671
  GICXXPred_Simple_IsRule101Enabled,
1672
  GICXXPred_Simple_IsRule102Enabled,
1673
  GICXXPred_Simple_IsRule103Enabled,
1674
  GICXXPred_Simple_IsRule104Enabled,
1675
  GICXXPred_Simple_IsRule105Enabled,
1676
  GICXXPred_Simple_IsRule106Enabled,
1677
  GICXXPred_Simple_IsRule107Enabled,
1678
  GICXXPred_Simple_IsRule108Enabled,
1679
  GICXXPred_Simple_IsRule109Enabled,
1680
  GICXXPred_Simple_IsRule110Enabled,
1681
  GICXXPred_Simple_IsRule111Enabled,
1682
  GICXXPred_Simple_IsRule112Enabled,
1683
  GICXXPred_Simple_IsRule113Enabled,
1684
  GICXXPred_Simple_IsRule114Enabled,
1685
  GICXXPred_Simple_IsRule115Enabled,
1686
  GICXXPred_Simple_IsRule116Enabled,
1687
  GICXXPred_Simple_IsRule117Enabled,
1688
  GICXXPred_Simple_IsRule118Enabled,
1689
  GICXXPred_Simple_IsRule119Enabled,
1690
  GICXXPred_Simple_IsRule120Enabled,
1691
  GICXXPred_Simple_IsRule121Enabled,
1692
  GICXXPred_Simple_IsRule122Enabled,
1693
  GICXXPred_Simple_IsRule123Enabled,
1694
  GICXXPred_Simple_IsRule124Enabled,
1695
  GICXXPred_Simple_IsRule125Enabled,
1696
  GICXXPred_Simple_IsRule126Enabled,
1697
  GICXXPred_Simple_IsRule127Enabled,
1698
  GICXXPred_Simple_IsRule128Enabled,
1699
  GICXXPred_Simple_IsRule129Enabled,
1700
  GICXXPred_Simple_IsRule130Enabled,
1701
  GICXXPred_Simple_IsRule131Enabled,
1702
  GICXXPred_Simple_IsRule132Enabled,
1703
  GICXXPred_Simple_IsRule133Enabled,
1704
  GICXXPred_Simple_IsRule134Enabled,
1705
  GICXXPred_Simple_IsRule135Enabled,
1706
  GICXXPred_Simple_IsRule136Enabled,
1707
};
1708
1709
0
bool AMDGPUPostLegalizerCombinerImpl::testSimplePredicate(unsigned Predicate) const {
1710
0
    return RuleConfig.isRuleEnabled(Predicate - GICXXPred_Invalid - 1);
1711
0
}
1712
// Custom renderers.
1713
enum {
1714
  GICR_Invalid,
1715
};
1716
AMDGPUPostLegalizerCombinerImpl::CustomRendererFn
1717
AMDGPUPostLegalizerCombinerImpl::CustomRenderers[] = {
1718
  nullptr, // GICR_Invalid
1719
};
1720
1721
0
bool AMDGPUPostLegalizerCombinerImpl::tryCombineAllImpl(MachineInstr &I) const {
1722
0
  const TargetSubtargetInfo &ST = MF.getSubtarget();
1723
0
  const PredicateBitset AvailableFeatures = getAvailableFeatures();
1724
0
  B.setInstrAndDebugLoc(I);
1725
0
  State.MIs.clear();
1726
0
  State.MIs.push_back(&I);
1727
0
  MatchInfos = MatchInfosTy();
1728
1729
0
  if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), *ST.getInstrInfo(), MRI, *MRI.getTargetRegisterInfo(), *ST.getRegBankInfo(), AvailableFeatures, /*CoverageInfo*/ nullptr)) {
1730
0
    return true;
1731
0
  }
1732
1733
0
  return false;
1734
0
}
1735
1736
enum {
1737
  GICXXCustomAction_CombineApplyGICombiner0 = GICXXCustomAction_Invalid + 1,
1738
  GICXXCustomAction_CombineApplyGICombiner1,
1739
  GICXXCustomAction_CombineApplyGICombiner2,
1740
  GICXXCustomAction_CombineApplyGICombiner3,
1741
  GICXXCustomAction_CombineApplyGICombiner4,
1742
  GICXXCustomAction_CombineApplyGICombiner5,
1743
  GICXXCustomAction_CombineApplyGICombiner6,
1744
  GICXXCustomAction_CombineApplyGICombiner7,
1745
  GICXXCustomAction_CombineApplyGICombiner8,
1746
  GICXXCustomAction_CombineApplyGICombiner9,
1747
  GICXXCustomAction_CombineApplyGICombiner10,
1748
  GICXXCustomAction_CombineApplyGICombiner11,
1749
  GICXXCustomAction_CombineApplyGICombiner12,
1750
  GICXXCustomAction_CombineApplyGICombiner13,
1751
  GICXXCustomAction_CombineApplyGICombiner14,
1752
  GICXXCustomAction_CombineApplyGICombiner15,
1753
  GICXXCustomAction_CombineApplyGICombiner16,
1754
  GICXXCustomAction_CombineApplyGICombiner17,
1755
  GICXXCustomAction_CombineApplyGICombiner18,
1756
  GICXXCustomAction_CombineApplyGICombiner19,
1757
  GICXXCustomAction_CombineApplyGICombiner20,
1758
  GICXXCustomAction_CombineApplyGICombiner21,
1759
  GICXXCustomAction_CombineApplyGICombiner22,
1760
  GICXXCustomAction_CombineApplyGICombiner23,
1761
  GICXXCustomAction_CombineApplyGICombiner24,
1762
  GICXXCustomAction_CombineApplyGICombiner25,
1763
  GICXXCustomAction_CombineApplyGICombiner26,
1764
  GICXXCustomAction_CombineApplyGICombiner27,
1765
  GICXXCustomAction_CombineApplyGICombiner28,
1766
  GICXXCustomAction_CombineApplyGICombiner29,
1767
  GICXXCustomAction_CombineApplyGICombiner30,
1768
  GICXXCustomAction_CombineApplyGICombiner31,
1769
  GICXXCustomAction_CombineApplyGICombiner32,
1770
  GICXXCustomAction_CombineApplyGICombiner33,
1771
  GICXXCustomAction_CombineApplyGICombiner34,
1772
  GICXXCustomAction_CombineApplyGICombiner35,
1773
  GICXXCustomAction_CombineApplyGICombiner36,
1774
  GICXXCustomAction_CombineApplyGICombiner37,
1775
  GICXXCustomAction_CombineApplyGICombiner38,
1776
  GICXXCustomAction_CombineApplyGICombiner39,
1777
  GICXXCustomAction_CombineApplyGICombiner40,
1778
  GICXXCustomAction_CombineApplyGICombiner41,
1779
  GICXXCustomAction_CombineApplyGICombiner42,
1780
  GICXXCustomAction_CombineApplyGICombiner43,
1781
  GICXXCustomAction_CombineApplyGICombiner44,
1782
  GICXXCustomAction_CombineApplyGICombiner45,
1783
  GICXXCustomAction_CombineApplyGICombiner46,
1784
  GICXXCustomAction_CombineApplyGICombiner47,
1785
  GICXXCustomAction_CombineApplyGICombiner48,
1786
  GICXXCustomAction_CombineApplyGICombiner49,
1787
  GICXXCustomAction_CombineApplyGICombiner50,
1788
  GICXXCustomAction_CombineApplyGICombiner51,
1789
  GICXXCustomAction_CombineApplyGICombiner52,
1790
  GICXXCustomAction_CombineApplyGICombiner53,
1791
  GICXXCustomAction_CombineApplyGICombiner54,
1792
  GICXXCustomAction_CombineApplyGICombiner55,
1793
  GICXXCustomAction_CombineApplyGICombiner56,
1794
  GICXXCustomAction_CombineApplyGICombiner57,
1795
  GICXXCustomAction_CombineApplyGICombiner58,
1796
  GICXXCustomAction_CombineApplyGICombiner59,
1797
  GICXXCustomAction_CombineApplyGICombiner60,
1798
  GICXXCustomAction_CombineApplyGICombiner61,
1799
  GICXXCustomAction_CombineApplyGICombiner62,
1800
  GICXXCustomAction_CombineApplyGICombiner63,
1801
  GICXXCustomAction_CombineApplyGICombiner64,
1802
};
1803
0
void AMDGPUPostLegalizerCombinerImpl::runCustomAction(unsigned ApplyID, const MatcherState &State, NewMIVector &OutMIs) const {
1804
0
  switch(ApplyID) {
1805
0
  case GICXXCustomAction_CombineApplyGICombiner0:{
1806
0
    Helper.applyCombineCopy(*State.MIs[0]);
1807
0
    return;
1808
0
  }
1809
0
  case GICXXCustomAction_CombineApplyGICombiner1:{
1810
0
    Helper.applyCombineMulToShl(*State.MIs[0], MatchInfos.MDInfo0);
1811
0
    return;
1812
0
  }
1813
0
  case GICXXCustomAction_CombineApplyGICombiner2:{
1814
0
    Helper.applyCombineAddP2IToPtrAdd(*State.MIs[0], MatchInfos.MDInfo1);
1815
0
    return;
1816
0
  }
1817
0
  case GICXXCustomAction_CombineApplyGICombiner3:{
1818
0
    Helper.applyCombineInsertVecElts(*State.MIs[0], MatchInfos.MDInfo2);
1819
0
    return;
1820
0
  }
1821
0
  case GICXXCustomAction_CombineApplyGICombiner4:{
1822
0
    Helper.applyExtractVecEltBuildVec(*State.MIs[0], MatchInfos.MDInfo3);
1823
0
    return;
1824
0
  }
1825
0
  case GICXXCustomAction_CombineApplyGICombiner5:{
1826
0
    Helper.applyExtractAllEltsFromBuildVector(*State.MIs[0], MatchInfos.MDInfo4);
1827
0
    return;
1828
0
  }
1829
0
  case GICXXCustomAction_CombineApplyGICombiner6:{
1830
0
    Helper.applyCombineExtendingLoads(*State.MIs[0], MatchInfos.MDInfo5);
1831
0
    return;
1832
0
  }
1833
0
  case GICXXCustomAction_CombineApplyGICombiner7:{
1834
0
    Helper.applyBuildFn(*State.MIs[0], MatchInfos.MDInfo6);
1835
0
    return;
1836
0
  }
1837
0
  case GICXXCustomAction_CombineApplyGICombiner8:{
1838
0
    Helper.replaceInstWithFConstant(*State.MIs[0], 0.0);
1839
0
    return;
1840
0
  }
1841
0
  case GICXXCustomAction_CombineApplyGICombiner9:{
1842
0
    Helper.replaceInstWithConstant(*State.MIs[0], 0);
1843
0
    return;
1844
0
  }
1845
0
  case GICXXCustomAction_CombineApplyGICombiner10:{
1846
0
    Helper.replaceInstWithConstant(*State.MIs[0], -1);
1847
0
    return;
1848
0
  }
1849
0
  case GICXXCustomAction_CombineApplyGICombiner11:{
1850
0
    Helper.replaceInstWithUndef(*State.MIs[0]);
1851
0
    return;
1852
0
  }
1853
0
  case GICXXCustomAction_CombineApplyGICombiner12:{
1854
0
    Helper.eraseInst(*State.MIs[0]);
1855
0
    return;
1856
0
  }
1857
0
  case GICXXCustomAction_CombineApplyGICombiner13:{
1858
0
    Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 2);
1859
0
    return;
1860
0
  }
1861
0
  case GICXXCustomAction_CombineApplyGICombiner14:{
1862
0
    Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 1);
1863
0
    return;
1864
0
  }
1865
0
  case GICXXCustomAction_CombineApplyGICombiner15:{
1866
0
    Helper.applyCombineI2PToP2I(*State.MIs[0], MatchInfos.MDInfo3);
1867
0
    return;
1868
0
  }
1869
0
  case GICXXCustomAction_CombineApplyGICombiner16:{
1870
0
    Helper.applyCombineP2IToI2P(*State.MIs[0], MatchInfos.MDInfo3);
1871
0
    return;
1872
0
  }
1873
0
  case GICXXCustomAction_CombineApplyGICombiner17:{
1874
0
    Helper.replaceSingleDefInstWithReg(*State.MIs[0], MatchInfos.MDInfo3);
1875
0
    return;
1876
0
  }
1877
0
  case GICXXCustomAction_CombineApplyGICombiner18:{
1878
0
    Helper.replaceSingleDefInstWithReg(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
1879
0
    return;
1880
0
  }
1881
0
  case GICXXCustomAction_CombineApplyGICombiner19:{
1882
0
    Helper.applyExtendThroughPhis(*State.MIs[0], MatchInfos.MDInfo7);
1883
0
    return;
1884
0
  }
1885
0
  case GICXXCustomAction_CombineApplyGICombiner20:{
1886
0
    Helper.applySimplifyAddToSub(*State.MIs[0], MatchInfos.MDInfo8);
1887
0
    return;
1888
0
  }
1889
0
  case GICXXCustomAction_CombineApplyGICombiner21:{
1890
0
    Helper.applyBuildInstructionSteps(*State.MIs[0], MatchInfos.MDInfo9);
1891
0
    return;
1892
0
  }
1893
0
  case GICXXCustomAction_CombineApplyGICombiner22:{
1894
0
    Helper.applyBuildFnNoErase(*State.MIs[0], MatchInfos.MDInfo6);
1895
0
    return;
1896
0
  }
1897
0
  case GICXXCustomAction_CombineApplyGICombiner23:{
1898
0
    Helper.applyPtrAddImmedChain(*State.MIs[0], MatchInfos.MDInfo10);
1899
0
    return;
1900
0
  }
1901
0
  case GICXXCustomAction_CombineApplyGICombiner24:{
1902
0
    Helper.applyAshShlToSextInreg(*State.MIs[0], MatchInfos.MDInfo11);
1903
0
    return;
1904
0
  }
1905
0
  case GICXXCustomAction_CombineApplyGICombiner25:{
1906
0
    Helper.applySextInRegOfLoad(*State.MIs[0], MatchInfos.MDInfo12);
1907
0
    return;
1908
0
  }
1909
0
  case GICXXCustomAction_CombineApplyGICombiner26:{
1910
0
    Helper.applyCombineShlOfExtend(*State.MIs[0], MatchInfos.MDInfo13);
1911
0
    return;
1912
0
  }
1913
0
  case GICXXCustomAction_CombineApplyGICombiner27:{
1914
0
    Helper.replaceSingleDefInstWithOperand(*State.MIs[0], MatchInfos.MDInfo0);
1915
0
    return;
1916
0
  }
1917
0
  case GICXXCustomAction_CombineApplyGICombiner28:{
1918
0
    Helper.applySimplifyURemByPow2(*State.MIs[0]);
1919
0
    return;
1920
0
  }
1921
0
  case GICXXCustomAction_CombineApplyGICombiner29:{
1922
0
    Helper.replaceInstWithConstant(*State.MIs[0], MatchInfos.MDInfo14);
1923
0
    return;
1924
0
  }
1925
0
  case GICXXCustomAction_CombineApplyGICombiner30:{
1926
0
    Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
1927
0
              Helper.getBuilder().buildZExtInReg(State.MIs[0]->getOperand(0), State.MIs[0]->getOperand(1), State.MIs[0]->getOperand(2).getImm());
1928
0
              State.MIs[0]->eraseFromParent();
1929
0
    return;
1930
0
  }
1931
0
  case GICXXCustomAction_CombineApplyGICombiner31:{
1932
0
    Helper.applyCombineExtOfExt(*State.MIs[0], MatchInfos.MDInfo12);
1933
0
    return;
1934
0
  }
1935
0
  case GICXXCustomAction_CombineApplyGICombiner32:{
1936
0
    Helper.applyNotCmp(*State.MIs[0], MatchInfos.MDInfo2);
1937
0
    return;
1938
0
  }
1939
0
  case GICXXCustomAction_CombineApplyGICombiner33:{
1940
0
    Helper.applyOptBrCondByInvertingCond(*State.MIs[0], MatchInfos.MDInfo15);
1941
0
    return;
1942
0
  }
1943
0
  case GICXXCustomAction_CombineApplyGICombiner34:{
1944
0
    Helper.applyCombineUnmergeMergeToPlainValues(*State.MIs[0], MatchInfos.MDInfo16);
1945
0
    return;
1946
0
  }
1947
0
  case GICXXCustomAction_CombineApplyGICombiner35:{
1948
0
    Helper.applyCombineUnmergeConstant(*State.MIs[0], MatchInfos.MDInfo17);
1949
0
    return;
1950
0
  }
1951
0
  case GICXXCustomAction_CombineApplyGICombiner36:{
1952
0
    Helper.applyCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);
1953
0
    return;
1954
0
  }
1955
0
  case GICXXCustomAction_CombineApplyGICombiner37:{
1956
0
    Helper.applyCombineUnmergeZExtToZExt(*State.MIs[0]);
1957
0
    return;
1958
0
  }
1959
0
  case GICXXCustomAction_CombineApplyGICombiner38:{
1960
0
    Helper.applyCombineTruncOfExt(*State.MIs[0], MatchInfos.MDInfo18);
1961
0
    return;
1962
0
  }
1963
0
  case GICXXCustomAction_CombineApplyGICombiner39:{
1964
0
    Helper.applyCombineTruncOfShift(*State.MIs[0], MatchInfos.MDInfo19);
1965
0
    return;
1966
0
  }
1967
0
  case GICXXCustomAction_CombineApplyGICombiner40:{
1968
0
    Helper.applyCombineConstantFoldFpUnary(*State.MIs[0], State.MIs[1]->getOperand(1).getFPImm());
1969
0
    return;
1970
0
  }
1971
0
  case GICXXCustomAction_CombineApplyGICombiner41:{
1972
0
    Helper.replaceInstWithFConstant(*State.MIs[0]->getOperand(0).getParent(), 0.0);
1973
0
    return;
1974
0
  }
1975
0
  case GICXXCustomAction_CombineApplyGICombiner42:{
1976
0
    Helper.applyCombineConstPtrAddToI2P(*State.MIs[0], MatchInfos.MDInfo20);
1977
0
    return;
1978
0
  }
1979
0
  case GICXXCustomAction_CombineApplyGICombiner43:{
1980
0
    Helper.applyXorOfAndWithSameReg(*State.MIs[0], MatchInfos.MDInfo21);
1981
0
    return;
1982
0
  }
1983
0
  case GICXXCustomAction_CombineApplyGICombiner44:{
1984
0
    Helper.applyPtrAddZero(*State.MIs[0]);
1985
0
    return;
1986
0
  }
1987
0
  case GICXXCustomAction_CombineApplyGICombiner45:{
1988
0
    Helper.applyShiftImmedChain(*State.MIs[0], MatchInfos.MDInfo13);
1989
0
    return;
1990
0
  }
1991
0
  case GICXXCustomAction_CombineApplyGICombiner46:{
1992
0
    Helper.applyShiftOfShiftedLogic(*State.MIs[0], MatchInfos.MDInfo22);
1993
0
    return;
1994
0
  }
1995
0
  case GICXXCustomAction_CombineApplyGICombiner47:{
1996
0
    Helper.applyCombineDivRem(*State.MIs[0], MatchInfos.MDInfo15);
1997
0
    return;
1998
0
  }
1999
0
  case GICXXCustomAction_CombineApplyGICombiner48:{
2000
0
    Helper.applyFunnelShiftToRotate(*State.MIs[0]);
2001
0
    return;
2002
0
  }
2003
0
  case GICXXCustomAction_CombineApplyGICombiner49:{
2004
0
    Helper.applyFunnelShiftConstantModulo(*State.MIs[0]);
2005
0
    return;
2006
0
  }
2007
0
  case GICXXCustomAction_CombineApplyGICombiner50:{
2008
0
    Helper.replaceInstWithConstant(*State.MIs[0], MatchInfos.MDInfo20);
2009
0
    return;
2010
0
  }
2011
0
  case GICXXCustomAction_CombineApplyGICombiner51:{
2012
0
    Helper.replaceInstWithFConstant(*State.MIs[0], MatchInfos.MDInfo23);
2013
0
    return;
2014
0
  }
2015
0
  case GICXXCustomAction_CombineApplyGICombiner52:{
2016
0
    Helper.applyUDivByConst(*State.MIs[0]);
2017
0
    return;
2018
0
  }
2019
0
  case GICXXCustomAction_CombineApplyGICombiner53:{
2020
0
    Helper.applySDivByConst(*State.MIs[0]);
2021
0
    return;
2022
0
  }
2023
0
  case GICXXCustomAction_CombineApplyGICombiner54:{
2024
0
    Helper.applyUMulHToLShr(*State.MIs[0]);
2025
0
    return;
2026
0
  }
2027
0
  case GICXXCustomAction_CombineApplyGICombiner55:{
2028
0
    Helper.applyFoldBinOpIntoSelect(*State.MIs[0], MatchInfos.MDInfo0);
2029
0
    return;
2030
0
  }
2031
0
  case GICXXCustomAction_CombineApplyGICombiner56:{
2032
0
    Helper.applyFsubToFneg(*State.MIs[0], MatchInfos.MDInfo3);
2033
0
    return;
2034
0
  }
2035
0
  case GICXXCustomAction_CombineApplyGICombiner57:{
2036
0
    Helper.applyCommuteBinOpOperands(*State.MIs[0]);
2037
0
    return;
2038
0
  }
2039
0
  case GICXXCustomAction_CombineApplyGICombiner58:{
2040
0
    applySelectFCmpToFMinToFMaxLegacy(*State.MIs[0], MatchInfos.MDInfo24);
2041
0
    return;
2042
0
  }
2043
0
  case GICXXCustomAction_CombineApplyGICombiner59:{
2044
0
    Helper.applyExpandPromotedF16FMed3(*State.MIs[0], State.MIs[1]->getOperand(1).getReg(), State.MIs[1]->getOperand(2).getReg(), State.MIs[1]->getOperand(3).getReg());
2045
0
    return;
2046
0
  }
2047
0
  case GICXXCustomAction_CombineApplyGICombiner60:{
2048
0
    applyUCharToFloat(*State.MIs[0]);
2049
0
    return;
2050
0
  }
2051
0
  case GICXXCustomAction_CombineApplyGICombiner61:{
2052
0
    applyCvtF32UByteN(*State.MIs[0], MatchInfos.MDInfo25);
2053
0
    return;
2054
0
  }
2055
0
  case GICXXCustomAction_CombineApplyGICombiner62:{
2056
0
    Helper.applyFoldableFneg(*State.MIs[0], MatchInfos.MDInfo15);
2057
0
    return;
2058
0
  }
2059
0
  case GICXXCustomAction_CombineApplyGICombiner63:{
2060
0
    applyCombineSignExtendInReg(*State.MIs[0], MatchInfos.MDInfo26);
2061
0
    return;
2062
0
  }
2063
0
  case GICXXCustomAction_CombineApplyGICombiner64:{
2064
0
    applyCombine_s_mul_u64(*State.MIs[0], MatchInfos.MDInfo0);
2065
0
    return;
2066
0
  }
2067
0
}
2068
0
  llvm_unreachable("Unknown Apply Action");
2069
0
}
2070
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
2071
0
#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((uint16_t)Val >> 8)
2072
0
#define GIMT_Encode4(Val) uint8_t(Val), uint8_t((uint32_t)Val >> 8), uint8_t((uint32_t)Val >> 16), uint8_t((uint32_t)Val >> 24)
2073
0
#define GIMT_Encode8(Val) uint8_t(Val), uint8_t((uint64_t)Val >> 8), uint8_t((uint64_t)Val >> 16), uint8_t((uint64_t)Val >> 24),  uint8_t((uint64_t)Val >> 32), uint8_t((uint64_t)Val >> 40), uint8_t((uint64_t)Val >> 48), uint8_t((uint64_t)Val >> 56)
2074
#else
2075
#define GIMT_Encode2(Val) uint8_t((uint16_t)Val >> 8), uint8_t(Val)
2076
#define GIMT_Encode4(Val) uint8_t((uint32_t)Val >> 24), uint8_t((uint32_t)Val >> 16), uint8_t((uint32_t)Val >> 8), uint8_t(Val)
2077
#define GIMT_Encode8(Val) uint8_t((uint64_t)Val >> 56), uint8_t((uint64_t)Val >> 48), uint8_t((uint64_t)Val >> 40), uint8_t((uint64_t)Val >> 32),  uint8_t((uint64_t)Val >> 24), uint8_t((uint64_t)Val >> 16), uint8_t((uint64_t)Val >> 8), uint8_t(Val)
2078
#endif
2079
0
const uint8_t *AMDGPUPostLegalizerCombinerImpl::getMatchTable() const {
2080
0
  constexpr static uint8_t MatchTable0[] = {
2081
0
    GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(19), GIMT_Encode2(3585), /*)*//*default:*//*Label 85*/ GIMT_Encode4(18798),
2082
0
    /*TargetOpcode::COPY*//*Label 0*/ GIMT_Encode4(14274), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
2083
0
    /*TargetOpcode::G_ADD*//*Label 1*/ GIMT_Encode4(14291),
2084
0
    /*TargetOpcode::G_SUB*//*Label 2*/ GIMT_Encode4(14501),
2085
0
    /*TargetOpcode::G_MUL*//*Label 3*/ GIMT_Encode4(14591),
2086
0
    /*TargetOpcode::G_SDIV*//*Label 4*/ GIMT_Encode4(14769),
2087
0
    /*TargetOpcode::G_UDIV*//*Label 5*/ GIMT_Encode4(14834),
2088
0
    /*TargetOpcode::G_SREM*//*Label 6*/ GIMT_Encode4(14915),
2089
0
    /*TargetOpcode::G_UREM*//*Label 7*/ GIMT_Encode4(14964), GIMT_Encode4(0), GIMT_Encode4(0),
2090
0
    /*TargetOpcode::G_AND*//*Label 8*/ GIMT_Encode4(15045),
2091
0
    /*TargetOpcode::G_OR*//*Label 9*/ GIMT_Encode4(15248),
2092
0
    /*TargetOpcode::G_XOR*//*Label 10*/ GIMT_Encode4(15428), GIMT_Encode4(0),
2093
0
    /*TargetOpcode::G_PHI*//*Label 11*/ GIMT_Encode4(15566), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
2094
0
    /*TargetOpcode::G_UNMERGE_VALUES*//*Label 12*/ GIMT_Encode4(15583), GIMT_Encode4(0),
2095
0
    /*TargetOpcode::G_MERGE_VALUES*//*Label 13*/ GIMT_Encode4(15664),
2096
0
    /*TargetOpcode::G_BUILD_VECTOR*//*Label 14*/ GIMT_Encode4(15681),
2097
0
    /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 15*/ GIMT_Encode4(15714), GIMT_Encode4(0),
2098
0
    /*TargetOpcode::G_PTRTOINT*//*Label 16*/ GIMT_Encode4(15731),
2099
0
    /*TargetOpcode::G_INTTOPTR*//*Label 17*/ GIMT_Encode4(15758),
2100
0
    /*TargetOpcode::G_BITCAST*//*Label 18*/ GIMT_Encode4(15775),
2101
0
    /*TargetOpcode::G_FREEZE*//*Label 19*/ GIMT_Encode4(15802), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
2102
0
    /*TargetOpcode::G_LOAD*//*Label 20*/ GIMT_Encode4(15834),
2103
0
    /*TargetOpcode::G_SEXTLOAD*//*Label 21*/ GIMT_Encode4(15851),
2104
0
    /*TargetOpcode::G_ZEXTLOAD*//*Label 22*/ GIMT_Encode4(15868), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
2105
0
    /*TargetOpcode::G_STORE*//*Label 23*/ GIMT_Encode4(15885), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
2106
0
    /*TargetOpcode::G_INTRINSIC*//*Label 24*/ GIMT_Encode4(15902), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
2107
0
    /*TargetOpcode::G_ANYEXT*//*Label 25*/ GIMT_Encode4(15919),
2108
0
    /*TargetOpcode::G_TRUNC*//*Label 26*/ GIMT_Encode4(15968), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
2109
0
    /*TargetOpcode::G_SEXT*//*Label 27*/ GIMT_Encode4(16049),
2110
0
    /*TargetOpcode::G_SEXT_INREG*//*Label 28*/ GIMT_Encode4(16082),
2111
0
    /*TargetOpcode::G_ZEXT*//*Label 29*/ GIMT_Encode4(16163),
2112
0
    /*TargetOpcode::G_SHL*//*Label 30*/ GIMT_Encode4(16212),
2113
0
    /*TargetOpcode::G_LSHR*//*Label 31*/ GIMT_Encode4(16382),
2114
0
    /*TargetOpcode::G_ASHR*//*Label 32*/ GIMT_Encode4(16536),
2115
0
    /*TargetOpcode::G_FSHL*//*Label 33*/ GIMT_Encode4(16706),
2116
0
    /*TargetOpcode::G_FSHR*//*Label 34*/ GIMT_Encode4(16766),
2117
0
    /*TargetOpcode::G_ROTR*//*Label 35*/ GIMT_Encode4(16826),
2118
0
    /*TargetOpcode::G_ROTL*//*Label 36*/ GIMT_Encode4(16852),
2119
0
    /*TargetOpcode::G_ICMP*//*Label 37*/ GIMT_Encode4(16878), GIMT_Encode4(0),
2120
0
    /*TargetOpcode::G_SELECT*//*Label 38*/ GIMT_Encode4(16927),
2121
0
    /*TargetOpcode::G_UADDO*//*Label 39*/ GIMT_Encode4(17042),
2122
0
    /*TargetOpcode::G_UADDE*//*Label 40*/ GIMT_Encode4(17059), GIMT_Encode4(0),
2123
0
    /*TargetOpcode::G_USUBE*//*Label 41*/ GIMT_Encode4(17076),
2124
0
    /*TargetOpcode::G_SADDO*//*Label 42*/ GIMT_Encode4(17093),
2125
0
    /*TargetOpcode::G_SADDE*//*Label 43*/ GIMT_Encode4(17110), GIMT_Encode4(0),
2126
0
    /*TargetOpcode::G_SSUBE*//*Label 44*/ GIMT_Encode4(17127),
2127
0
    /*TargetOpcode::G_UMULO*//*Label 45*/ GIMT_Encode4(17144),
2128
0
    /*TargetOpcode::G_SMULO*//*Label 46*/ GIMT_Encode4(17177),
2129
0
    /*TargetOpcode::G_UMULH*//*Label 47*/ GIMT_Encode4(17210), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
2130
0
    /*TargetOpcode::G_USHLSAT*//*Label 48*/ GIMT_Encode4(17227),
2131
0
    /*TargetOpcode::G_SSHLSAT*//*Label 49*/ GIMT_Encode4(17260), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
2132
0
    /*TargetOpcode::G_FADD*//*Label 50*/ GIMT_Encode4(17293),
2133
0
    /*TargetOpcode::G_FSUB*//*Label 51*/ GIMT_Encode4(17447),
2134
0
    /*TargetOpcode::G_FMUL*//*Label 52*/ GIMT_Encode4(17576),
2135
0
    /*TargetOpcode::G_FMA*//*Label 53*/ GIMT_Encode4(17666),
2136
0
    /*TargetOpcode::G_FMAD*//*Label 54*/ GIMT_Encode4(17699),
2137
0
    /*TargetOpcode::G_FDIV*//*Label 55*/ GIMT_Encode4(17732),
2138
0
    /*TargetOpcode::G_FREM*//*Label 56*/ GIMT_Encode4(17781), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
2139
0
    /*TargetOpcode::G_FLOG2*//*Label 57*/ GIMT_Encode4(17798), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
2140
0
    /*TargetOpcode::G_FNEG*//*Label 58*/ GIMT_Encode4(17821), GIMT_Encode4(0),
2141
0
    /*TargetOpcode::G_FPTRUNC*//*Label 59*/ GIMT_Encode4(17891),
2142
0
    /*TargetOpcode::G_FPTOSI*//*Label 60*/ GIMT_Encode4(17969),
2143
0
    /*TargetOpcode::G_FPTOUI*//*Label 61*/ GIMT_Encode4(17986),
2144
0
    /*TargetOpcode::G_SITOFP*//*Label 62*/ GIMT_Encode4(18003),
2145
0
    /*TargetOpcode::G_UITOFP*//*Label 63*/ GIMT_Encode4(18052),
2146
0
    /*TargetOpcode::G_FABS*//*Label 64*/ GIMT_Encode4(18101), GIMT_Encode4(0), GIMT_Encode4(0),
2147
0
    /*TargetOpcode::G_FCANONICALIZE*//*Label 65*/ GIMT_Encode4(18188),
2148
0
    /*TargetOpcode::G_FMINNUM*//*Label 66*/ GIMT_Encode4(18236),
2149
0
    /*TargetOpcode::G_FMAXNUM*//*Label 67*/ GIMT_Encode4(18269), GIMT_Encode4(0), GIMT_Encode4(0),
2150
0
    /*TargetOpcode::G_FMINIMUM*//*Label 68*/ GIMT_Encode4(18302),
2151
0
    /*TargetOpcode::G_FMAXIMUM*//*Label 69*/ GIMT_Encode4(18335), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
2152
0
    /*TargetOpcode::G_PTR_ADD*//*Label 70*/ GIMT_Encode4(18368), GIMT_Encode4(0),
2153
0
    /*TargetOpcode::G_SMIN*//*Label 71*/ GIMT_Encode4(18474),
2154
0
    /*TargetOpcode::G_SMAX*//*Label 72*/ GIMT_Encode4(18491),
2155
0
    /*TargetOpcode::G_UMIN*//*Label 73*/ GIMT_Encode4(18508),
2156
0
    /*TargetOpcode::G_UMAX*//*Label 74*/ GIMT_Encode4(18525),
2157
0
    /*TargetOpcode::G_ABS*//*Label 75*/ GIMT_Encode4(18542), GIMT_Encode4(0), GIMT_Encode4(0),
2158
0
    /*TargetOpcode::G_BR*//*Label 76*/ GIMT_Encode4(18559), GIMT_Encode4(0),
2159
0
    /*TargetOpcode::G_INSERT_VECTOR_ELT*//*Label 77*/ GIMT_Encode4(18576),
2160
0
    /*TargetOpcode::G_EXTRACT_VECTOR_ELT*//*Label 78*/ GIMT_Encode4(18609),
2161
0
    /*TargetOpcode::G_SHUFFLE_VECTOR*//*Label 79*/ GIMT_Encode4(18658), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
2162
0
    /*TargetOpcode::G_FSQRT*//*Label 80*/ GIMT_Encode4(18691), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
2163
0
    /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE0*//*Label 81*/ GIMT_Encode4(18730),
2164
0
    /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE1*//*Label 82*/ GIMT_Encode4(18747),
2165
0
    /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE2*//*Label 83*/ GIMT_Encode4(18764),
2166
0
    /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE3*//*Label 84*/ GIMT_Encode4(18781),
2167
    // Label 0: @14274
2168
0
    GIM_Try, /*On fail goto*//*Label 86*/ GIMT_Encode4(14290), // Rule ID 0 //
2169
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
2170
      // MIs[0] d
2171
      // No operand predicates
2172
      // MIs[0] s
2173
      // No operand predicates
2174
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
2175
      // Combiner Rule #0: copy_prop
2176
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner0),
2177
0
      GIR_Done,
2178
    // Label 86: @14290
2179
0
    GIM_Reject,
2180
    // Label 1: @14291
2181
0
    GIM_Try, /*On fail goto*//*Label 87*/ GIMT_Encode4(14307), // Rule ID 2 //
2182
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
2183
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
2184
      // Combiner Rule #2: add_p2i_to_ptradd; wip_match_opcode 'G_ADD'
2185
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner2),
2186
0
      GIR_Done,
2187
    // Label 87: @14307
2188
0
    GIM_Try, /*On fail goto*//*Label 88*/ GIMT_Encode4(14323), // Rule ID 27 //
2189
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
2190
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
2191
      // Combiner Rule #17: propagate_undef_any_op; wip_match_opcode 'G_ADD'
2192
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner11),
2193
0
      GIR_Done,
2194
    // Label 88: @14323
2195
0
    GIM_Try, /*On fail goto*//*Label 89*/ GIMT_Encode4(14339), // Rule ID 73 //
2196
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
2197
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner29),
2198
      // Combiner Rule #42: simplify_add_to_sub; wip_match_opcode 'G_ADD'
2199
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner20),
2200
0
      GIR_Done,
2201
    // Label 89: @14339
2202
0
    GIM_Try, /*On fail goto*//*Label 90*/ GIMT_Encode4(14355), // Rule ID 164 //
2203
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
2204
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner80),
2205
      // Combiner Rule #103: constant_fold_binop; wip_match_opcode 'G_ADD'
2206
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner50),
2207
0
      GIR_Done,
2208
    // Label 90: @14355
2209
0
    GIM_Try, /*On fail goto*//*Label 91*/ GIMT_Encode4(14371), // Rule ID 201 //
2210
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
2211
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
2212
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_ADD'
2213
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
2214
0
      GIR_Done,
2215
    // Label 91: @14371
2216
0
    GIM_Try, /*On fail goto*//*Label 92*/ GIMT_Encode4(14387), // Rule ID 231 //
2217
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule126Enabled),
2218
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner102),
2219
      // Combiner Rule #126: commute_int_constant_to_rhs; wip_match_opcode 'G_ADD'
2220
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner57),
2221
0
      GIR_Done,
2222
    // Label 92: @14387
2223
0
    GIM_Try, /*On fail goto*//*Label 93*/ GIMT_Encode4(14423), // Rule ID 64 //
2224
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
2225
      // MIs[0] dst
2226
      // No operand predicates
2227
      // MIs[0] __add_sub_reg_match_0.tmp
2228
0
      GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2229
0
      GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
2230
      // MIs[1] src
2231
      // No operand predicates
2232
      // MIs[1] __add_sub_reg_match_0.x
2233
      // No operand predicates
2234
      // MIs[0] __add_sub_reg_match_0.x
2235
0
      GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
2236
0
      GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
2237
0
      GIM_CheckIsSafeToFold, /*InsnID*/1,
2238
      // Combiner Rule #34: add_sub_reg @ [__add_sub_reg_match_0[1]]
2239
0
      GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
2240
0
      GIR_EraseFromParent, /*InsnID*/0,
2241
0
      GIR_Done,
2242
    // Label 93: @14423
2243
0
    GIM_Try, /*On fail goto*//*Label 94*/ GIMT_Encode4(14459), // Rule ID 63 //
2244
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
2245
      // MIs[0] dst
2246
      // No operand predicates
2247
      // MIs[0] __add_sub_reg_match_0.x
2248
      // No operand predicates
2249
      // MIs[0] __add_sub_reg_match_0.tmp
2250
0
      GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
2251
0
      GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
2252
      // MIs[1] src
2253
      // No operand predicates
2254
      // MIs[1] __add_sub_reg_match_0.x
2255
0
      GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
2256
0
      GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
2257
0
      GIM_CheckIsSafeToFold, /*InsnID*/1,
2258
      // Combiner Rule #34: add_sub_reg @ [__add_sub_reg_match_0[0]]
2259
0
      GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
2260
0
      GIR_EraseFromParent, /*InsnID*/0,
2261
0
      GIR_Done,
2262
    // Label 94: @14459
2263
0
    GIM_Try, /*On fail goto*//*Label 95*/ GIMT_Encode4(14484), // Rule ID 41 //
2264
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
2265
      // MIs[0] dst
2266
      // No operand predicates
2267
      // MIs[0] lhs
2268
      // No operand predicates
2269
      // MIs[0] Operand 2
2270
0
      GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
2271
0
      GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2272
      // Combiner Rule #24: right_identity_zero @ [__right_identity_zero_match_0[1]]
2273
0
      GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2274
0
      GIR_EraseFromParent, /*InsnID*/0,
2275
0
      GIR_Done,
2276
    // Label 95: @14484
2277
0
    GIM_Try, /*On fail goto*//*Label 96*/ GIMT_Encode4(14500), // Rule ID 81 //
2278
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
2279
      // MIs[0] root
2280
      // No operand predicates
2281
      // MIs[0] src1
2282
      // No operand predicates
2283
      // MIs[0] src2
2284
      // No operand predicates
2285
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner33),
2286
      // Combiner Rule #46: reassoc_comm_binops
2287
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
2288
0
      GIR_Done,
2289
    // Label 96: @14500
2290
0
    GIM_Reject,
2291
    // Label 2: @14501
2292
0
    GIM_Try, /*On fail goto*//*Label 97*/ GIMT_Encode4(14517), // Rule ID 30 //
2293
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
2294
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
2295
      // Combiner Rule #17: propagate_undef_any_op; wip_match_opcode 'G_SUB'
2296
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner11),
2297
0
      GIR_Done,
2298
    // Label 97: @14517
2299
0
    GIM_Try, /*On fail goto*//*Label 98*/ GIMT_Encode4(14533), // Rule ID 165 //
2300
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
2301
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner80),
2302
      // Combiner Rule #103: constant_fold_binop; wip_match_opcode 'G_SUB'
2303
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner50),
2304
0
      GIR_Done,
2305
    // Label 98: @14533
2306
0
    GIM_Try, /*On fail goto*//*Label 99*/ GIMT_Encode4(14549), // Rule ID 202 //
2307
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
2308
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
2309
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_SUB'
2310
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
2311
0
      GIR_Done,
2312
    // Label 99: @14549
2313
0
    GIM_Try, /*On fail goto*//*Label 100*/ GIMT_Encode4(14565), // Rule ID 227 //
2314
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule122Enabled),
2315
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner98),
2316
      // Combiner Rule #122: sub_add_reg; wip_match_opcode 'G_SUB'
2317
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
2318
0
      GIR_Done,
2319
    // Label 100: @14565
2320
0
    GIM_Try, /*On fail goto*//*Label 101*/ GIMT_Encode4(14590), // Rule ID 40 //
2321
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
2322
      // MIs[0] dst
2323
      // No operand predicates
2324
      // MIs[0] lhs
2325
      // No operand predicates
2326
      // MIs[0] Operand 2
2327
0
      GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
2328
0
      GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2329
      // Combiner Rule #24: right_identity_zero @ [__right_identity_zero_match_0[0]]
2330
0
      GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2331
0
      GIR_EraseFromParent, /*InsnID*/0,
2332
0
      GIR_Done,
2333
    // Label 101: @14590
2334
0
    GIM_Reject,
2335
    // Label 3: @14591
2336
0
    GIM_Try, /*On fail goto*//*Label 102*/ GIMT_Encode4(14607), // Rule ID 18 //
2337
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
2338
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
2339
      // Combiner Rule #12: undef_to_int_zero; wip_match_opcode 'G_MUL'
2340
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner9),
2341
0
      GIR_Done,
2342
    // Label 102: @14607
2343
0
    GIM_Try, /*On fail goto*//*Label 103*/ GIMT_Encode4(14623), // Rule ID 166 //
2344
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
2345
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner80),
2346
      // Combiner Rule #103: constant_fold_binop; wip_match_opcode 'G_MUL'
2347
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner50),
2348
0
      GIR_Done,
2349
    // Label 103: @14623
2350
0
    GIM_Try, /*On fail goto*//*Label 104*/ GIMT_Encode4(14639), // Rule ID 232 //
2351
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule126Enabled),
2352
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner102),
2353
      // Combiner Rule #126: commute_int_constant_to_rhs; wip_match_opcode 'G_MUL'
2354
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner57),
2355
0
      GIR_Done,
2356
    // Label 104: @14639
2357
0
    GIM_Try, /*On fail goto*//*Label 105*/ GIMT_Encode4(14655), // Rule ID 251 //
2358
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule136Enabled),
2359
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner112),
2360
      // Combiner Rule #136: smulu64; wip_match_opcode 'G_MUL'
2361
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner64),
2362
0
      GIR_Done,
2363
    // Label 105: @14655
2364
0
    GIM_Try, /*On fail goto*//*Label 106*/ GIMT_Encode4(14702), // Rule ID 3 //
2365
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
2366
      // MIs[0] dst
2367
0
      GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/uint8_t(-1),
2368
      // MIs[0] x
2369
      // No operand predicates
2370
      // MIs[0] Operand 2
2371
0
      GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, uint8_t(-1),
2372
0
      GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/uint8_t(-1),
2373
0
      GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
2374
      // Combiner Rule #3: mul_by_neg_one
2375
0
      GIR_BuildMI, /*InsnID*/0, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
2376
0
      GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
2377
0
      GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
2378
0
      GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // x
2379
0
      GIR_EraseFromParent, /*InsnID*/0,
2380
0
      GIR_Done,
2381
    // Label 106: @14702
2382
0
    GIM_Try, /*On fail goto*//*Label 107*/ GIMT_Encode4(14727), // Rule ID 56 //
2383
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
2384
      // MIs[0] dst
2385
      // No operand predicates
2386
      // MIs[0] lhs
2387
      // No operand predicates
2388
      // MIs[0] zero
2389
0
      GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
2390
0
      GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
2391
      // Combiner Rule #27: binop_right_to_zero
2392
0
      GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
2393
0
      GIR_EraseFromParent, /*InsnID*/0,
2394
0
      GIR_Done,
2395
    // Label 107: @14727
2396
0
    GIM_Try, /*On fail goto*//*Label 108*/ GIMT_Encode4(14752), // Rule ID 61 //
2397
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
2398
      // MIs[0] dst
2399
      // No operand predicates
2400
      // MIs[0] x
2401
      // No operand predicates
2402
      // MIs[0] Operand 2
2403
0
      GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
2404
0
      GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2405
      // Combiner Rule #32: right_identity_one_int
2406
0
      GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2407
0
      GIR_EraseFromParent, /*InsnID*/0,
2408
0
      GIR_Done,
2409
    // Label 108: @14752
2410
0
    GIM_Try, /*On fail goto*//*Label 109*/ GIMT_Encode4(14768), // Rule ID 1 //
2411
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
2412
      // MIs[0] d
2413
      // No operand predicates
2414
      // MIs[0] op1
2415
      // No operand predicates
2416
      // MIs[0] op2
2417
      // No operand predicates
2418
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
2419
      // Combiner Rule #1: mul_to_shl
2420
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner1),
2421
0
      GIR_Done,
2422
    // Label 109: @14768
2423
0
    GIM_Reject,
2424
    // Label 4: @14769
2425
0
    GIM_Try, /*On fail goto*//*Label 110*/ GIMT_Encode4(14785), // Rule ID 52 //
2426
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
2427
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner18),
2428
      // Combiner Rule #26: binop_left_to_zero; wip_match_opcode 'G_SDIV'
2429
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner14),
2430
0
      GIR_Done,
2431
    // Label 110: @14785
2432
0
    GIM_Try, /*On fail goto*//*Label 111*/ GIMT_Encode4(14801), // Rule ID 146 //
2433
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
2434
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner71),
2435
      // Combiner Rule #92: div_rem_to_divrem; wip_match_opcode 'G_SDIV'
2436
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner47),
2437
0
      GIR_Done,
2438
    // Label 111: @14801
2439
0
    GIM_Try, /*On fail goto*//*Label 112*/ GIMT_Encode4(14817), // Rule ID 184 //
2440
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule109Enabled),
2441
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner85),
2442
      // Combiner Rule #109: sdiv_by_const; wip_match_opcode 'G_SDIV'
2443
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner53),
2444
0
      GIR_Done,
2445
    // Label 112: @14817
2446
0
    GIM_Try, /*On fail goto*//*Label 113*/ GIMT_Encode4(14833), // Rule ID 207 //
2447
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
2448
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
2449
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_SDIV'
2450
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
2451
0
      GIR_Done,
2452
    // Label 113: @14833
2453
0
    GIM_Reject,
2454
    // Label 5: @14834
2455
0
    GIM_Try, /*On fail goto*//*Label 114*/ GIMT_Encode4(14850), // Rule ID 21 //
2456
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
2457
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner10),
2458
      // Combiner Rule #14: binop_left_undef_to_zero; wip_match_opcode 'G_UDIV'
2459
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner9),
2460
0
      GIR_Done,
2461
    // Label 114: @14850
2462
0
    GIM_Try, /*On fail goto*//*Label 115*/ GIMT_Encode4(14866), // Rule ID 53 //
2463
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
2464
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner18),
2465
      // Combiner Rule #26: binop_left_to_zero; wip_match_opcode 'G_UDIV'
2466
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner14),
2467
0
      GIR_Done,
2468
    // Label 115: @14866
2469
0
    GIM_Try, /*On fail goto*//*Label 116*/ GIMT_Encode4(14882), // Rule ID 147 //
2470
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
2471
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner71),
2472
      // Combiner Rule #92: div_rem_to_divrem; wip_match_opcode 'G_UDIV'
2473
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner47),
2474
0
      GIR_Done,
2475
    // Label 116: @14882
2476
0
    GIM_Try, /*On fail goto*//*Label 117*/ GIMT_Encode4(14898), // Rule ID 183 //
2477
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule108Enabled),
2478
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner84),
2479
      // Combiner Rule #108: udiv_by_const; wip_match_opcode 'G_UDIV'
2480
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner52),
2481
0
      GIR_Done,
2482
    // Label 117: @14898
2483
0
    GIM_Try, /*On fail goto*//*Label 118*/ GIMT_Encode4(14914), // Rule ID 209 //
2484
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
2485
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
2486
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_UDIV'
2487
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
2488
0
      GIR_Done,
2489
    // Label 118: @14914
2490
0
    GIM_Reject,
2491
    // Label 6: @14915
2492
0
    GIM_Try, /*On fail goto*//*Label 119*/ GIMT_Encode4(14931), // Rule ID 54 //
2493
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
2494
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner18),
2495
      // Combiner Rule #26: binop_left_to_zero; wip_match_opcode 'G_SREM'
2496
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner14),
2497
0
      GIR_Done,
2498
    // Label 119: @14931
2499
0
    GIM_Try, /*On fail goto*//*Label 120*/ GIMT_Encode4(14947), // Rule ID 148 //
2500
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
2501
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner71),
2502
      // Combiner Rule #92: div_rem_to_divrem; wip_match_opcode 'G_SREM'
2503
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner47),
2504
0
      GIR_Done,
2505
    // Label 120: @14947
2506
0
    GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(14963), // Rule ID 208 //
2507
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
2508
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
2509
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_SREM'
2510
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
2511
0
      GIR_Done,
2512
    // Label 121: @14963
2513
0
    GIM_Reject,
2514
    // Label 7: @14964
2515
0
    GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(14980), // Rule ID 22 //
2516
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
2517
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner10),
2518
      // Combiner Rule #14: binop_left_undef_to_zero; wip_match_opcode 'G_UREM'
2519
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner9),
2520
0
      GIR_Done,
2521
    // Label 122: @14980
2522
0
    GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(14996), // Rule ID 55 //
2523
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
2524
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner18),
2525
      // Combiner Rule #26: binop_left_to_zero; wip_match_opcode 'G_UREM'
2526
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner14),
2527
0
      GIR_Done,
2528
    // Label 123: @14996
2529
0
    GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(15012), // Rule ID 93 //
2530
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled),
2531
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner44),
2532
      // Combiner Rule #58: urem_pow2_to_mask; wip_match_opcode 'G_UREM'
2533
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner28),
2534
0
      GIR_Done,
2535
    // Label 124: @15012
2536
0
    GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(15028), // Rule ID 149 //
2537
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
2538
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner71),
2539
      // Combiner Rule #92: div_rem_to_divrem; wip_match_opcode 'G_UREM'
2540
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner47),
2541
0
      GIR_Done,
2542
    // Label 125: @15028
2543
0
    GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(15044), // Rule ID 210 //
2544
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
2545
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
2546
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_UREM'
2547
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
2548
0
      GIR_Done,
2549
    // Label 126: @15044
2550
0
    GIM_Reject,
2551
    // Label 8: @15045
2552
0
    GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(15061), // Rule ID 13 //
2553
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
2554
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner7),
2555
      // Combiner Rule #9: load_and_mask; wip_match_opcode 'G_AND'
2556
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
2557
0
      GIR_Done,
2558
    // Label 127: @15061
2559
0
    GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(15077), // Rule ID 17 //
2560
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
2561
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
2562
      // Combiner Rule #12: undef_to_int_zero; wip_match_opcode 'G_AND'
2563
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner9),
2564
0
      GIR_Done,
2565
    // Label 128: @15077
2566
0
    GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(15093), // Rule ID 74 //
2567
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
2568
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner30),
2569
      // Combiner Rule #43: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_AND'
2570
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner21),
2571
0
      GIR_Done,
2572
    // Label 129: @15093
2573
0
    GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(15109), // Rule ID 86 //
2574
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled),
2575
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner38),
2576
      // Combiner Rule #51: narrow_binop_feeding_and; wip_match_opcode 'G_AND'
2577
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner22),
2578
0
      GIR_Done,
2579
    // Label 130: @15109
2580
0
    GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(15125), // Rule ID 90 //
2581
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
2582
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner41),
2583
      // Combiner Rule #55: redundant_and; wip_match_opcode 'G_AND'
2584
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner17),
2585
0
      GIR_Done,
2586
    // Label 131: @15125
2587
0
    GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(15141), // Rule ID 118 //
2588
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
2589
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner60),
2590
      // Combiner Rule #81: overlapping_and; wip_match_opcode 'G_AND'
2591
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
2592
0
      GIR_Done,
2593
    // Label 132: @15141
2594
0
    GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(15157), // Rule ID 159 //
2595
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule100Enabled),
2596
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner77),
2597
      // Combiner Rule #100: bitfield_extract_from_and; wip_match_opcode 'G_AND'
2598
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
2599
0
      GIR_Done,
2600
    // Label 133: @15157
2601
0
    GIM_Try, /*On fail goto*//*Label 134*/ GIMT_Encode4(15173), // Rule ID 167 //
2602
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
2603
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner80),
2604
      // Combiner Rule #103: constant_fold_binop; wip_match_opcode 'G_AND'
2605
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner50),
2606
0
      GIR_Done,
2607
    // Label 134: @15173
2608
0
    GIM_Try, /*On fail goto*//*Label 135*/ GIMT_Encode4(15189), // Rule ID 192 //
2609
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
2610
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner88),
2611
      // Combiner Rule #112: and_or_disjoint_mask; wip_match_opcode 'G_AND'
2612
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner22),
2613
0
      GIR_Done,
2614
    // Label 135: @15189
2615
0
    GIM_Try, /*On fail goto*//*Label 136*/ GIMT_Encode4(15205), // Rule ID 204 //
2616
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
2617
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
2618
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_AND'
2619
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
2620
0
      GIR_Done,
2621
    // Label 136: @15205
2622
0
    GIM_Try, /*On fail goto*//*Label 137*/ GIMT_Encode4(15221), // Rule ID 233 //
2623
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule126Enabled),
2624
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner102),
2625
      // Combiner Rule #126: commute_int_constant_to_rhs; wip_match_opcode 'G_AND'
2626
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner57),
2627
0
      GIR_Done,
2628
    // Label 137: @15221
2629
0
    GIM_Try, /*On fail goto*//*Label 138*/ GIMT_Encode4(15247), // Rule ID 50 //
2630
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
2631
      // MIs[0] dst
2632
      // No operand predicates
2633
      // MIs[0] src
2634
      // No operand predicates
2635
      // MIs[0] src
2636
0
      GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
2637
0
      GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2638
      // Combiner Rule #25: binop_same_val @ [__binop_same_val_match_0[0]]
2639
0
      GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2640
0
      GIR_EraseFromParent, /*InsnID*/0,
2641
0
      GIR_Done,
2642
    // Label 138: @15247
2643
0
    GIM_Reject,
2644
    // Label 9: @15248
2645
0
    GIM_Try, /*On fail goto*//*Label 139*/ GIMT_Encode4(15264), // Rule ID 19 //
2646
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
2647
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
2648
      // Combiner Rule #13: undef_to_negative_one; wip_match_opcode 'G_OR'
2649
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner10),
2650
0
      GIR_Done,
2651
    // Label 139: @15264
2652
0
    GIM_Try, /*On fail goto*//*Label 140*/ GIMT_Encode4(15280), // Rule ID 75 //
2653
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
2654
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner30),
2655
      // Combiner Rule #43: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_OR'
2656
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner21),
2657
0
      GIR_Done,
2658
    // Label 140: @15280
2659
0
    GIM_Try, /*On fail goto*//*Label 141*/ GIMT_Encode4(15296), // Rule ID 92 //
2660
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled),
2661
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner43),
2662
      // Combiner Rule #57: redundant_or; wip_match_opcode 'G_OR'
2663
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner17),
2664
0
      GIR_Done,
2665
    // Label 141: @15296
2666
0
    GIM_Try, /*On fail goto*//*Label 142*/ GIMT_Encode4(15312), // Rule ID 145 //
2667
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
2668
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner70),
2669
      // Combiner Rule #91: load_or_combine; wip_match_opcode 'G_OR'
2670
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
2671
0
      GIR_Done,
2672
    // Label 142: @15312
2673
0
    GIM_Try, /*On fail goto*//*Label 143*/ GIMT_Encode4(15328), // Rule ID 150 //
2674
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
2675
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner72),
2676
      // Combiner Rule #93: funnel_shift_from_or_shift; wip_match_opcode 'G_OR'
2677
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
2678
0
      GIR_Done,
2679
    // Label 143: @15328
2680
0
    GIM_Try, /*On fail goto*//*Label 144*/ GIMT_Encode4(15344), // Rule ID 168 //
2681
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
2682
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner80),
2683
      // Combiner Rule #103: constant_fold_binop; wip_match_opcode 'G_OR'
2684
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner50),
2685
0
      GIR_Done,
2686
    // Label 144: @15344
2687
0
    GIM_Try, /*On fail goto*//*Label 145*/ GIMT_Encode4(15360), // Rule ID 205 //
2688
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
2689
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
2690
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_OR'
2691
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
2692
0
      GIR_Done,
2693
    // Label 145: @15360
2694
0
    GIM_Try, /*On fail goto*//*Label 146*/ GIMT_Encode4(15376), // Rule ID 234 //
2695
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule126Enabled),
2696
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner102),
2697
      // Combiner Rule #126: commute_int_constant_to_rhs; wip_match_opcode 'G_OR'
2698
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner57),
2699
0
      GIR_Done,
2700
    // Label 146: @15376
2701
0
    GIM_Try, /*On fail goto*//*Label 147*/ GIMT_Encode4(15402), // Rule ID 51 //
2702
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
2703
      // MIs[0] dst
2704
      // No operand predicates
2705
      // MIs[0] src
2706
      // No operand predicates
2707
      // MIs[0] src
2708
0
      GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
2709
0
      GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2710
      // Combiner Rule #25: binop_same_val @ [__binop_same_val_match_0[1]]
2711
0
      GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2712
0
      GIR_EraseFromParent, /*InsnID*/0,
2713
0
      GIR_Done,
2714
    // Label 147: @15402
2715
0
    GIM_Try, /*On fail goto*//*Label 148*/ GIMT_Encode4(15427), // Rule ID 42 //
2716
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
2717
      // MIs[0] dst
2718
      // No operand predicates
2719
      // MIs[0] lhs
2720
      // No operand predicates
2721
      // MIs[0] Operand 2
2722
0
      GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
2723
0
      GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2724
      // Combiner Rule #24: right_identity_zero @ [__right_identity_zero_match_0[2]]
2725
0
      GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2726
0
      GIR_EraseFromParent, /*InsnID*/0,
2727
0
      GIR_Done,
2728
    // Label 148: @15427
2729
0
    GIM_Reject,
2730
    // Label 10: @15428
2731
0
    GIM_Try, /*On fail goto*//*Label 149*/ GIMT_Encode4(15444), // Rule ID 31 //
2732
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
2733
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
2734
      // Combiner Rule #17: propagate_undef_any_op; wip_match_opcode 'G_XOR'
2735
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner11),
2736
0
      GIR_Done,
2737
    // Label 149: @15444
2738
0
    GIM_Try, /*On fail goto*//*Label 150*/ GIMT_Encode4(15460), // Rule ID 76 //
2739
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
2740
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner30),
2741
      // Combiner Rule #43: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_XOR'
2742
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner21),
2743
0
      GIR_Done,
2744
    // Label 150: @15460
2745
0
    GIM_Try, /*On fail goto*//*Label 151*/ GIMT_Encode4(15476), // Rule ID 101 //
2746
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
2747
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner50),
2748
      // Combiner Rule #64: not_cmp_fold; wip_match_opcode 'G_XOR'
2749
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner32),
2750
0
      GIR_Done,
2751
    // Label 151: @15476
2752
0
    GIM_Try, /*On fail goto*//*Label 152*/ GIMT_Encode4(15492), // Rule ID 133 //
2753
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
2754
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner66),
2755
      // Combiner Rule #87: xor_of_and_with_same_reg; wip_match_opcode 'G_XOR'
2756
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner43),
2757
0
      GIR_Done,
2758
    // Label 152: @15492
2759
0
    GIM_Try, /*On fail goto*//*Label 153*/ GIMT_Encode4(15508), // Rule ID 169 //
2760
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
2761
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner80),
2762
      // Combiner Rule #103: constant_fold_binop; wip_match_opcode 'G_XOR'
2763
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner50),
2764
0
      GIR_Done,
2765
    // Label 153: @15508
2766
0
    GIM_Try, /*On fail goto*//*Label 154*/ GIMT_Encode4(15524), // Rule ID 206 //
2767
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
2768
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
2769
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_XOR'
2770
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
2771
0
      GIR_Done,
2772
    // Label 154: @15524
2773
0
    GIM_Try, /*On fail goto*//*Label 155*/ GIMT_Encode4(15540), // Rule ID 235 //
2774
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule126Enabled),
2775
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner102),
2776
      // Combiner Rule #126: commute_int_constant_to_rhs; wip_match_opcode 'G_XOR'
2777
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner57),
2778
0
      GIR_Done,
2779
    // Label 155: @15540
2780
0
    GIM_Try, /*On fail goto*//*Label 156*/ GIMT_Encode4(15565), // Rule ID 43 //
2781
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
2782
      // MIs[0] dst
2783
      // No operand predicates
2784
      // MIs[0] lhs
2785
      // No operand predicates
2786
      // MIs[0] Operand 2
2787
0
      GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
2788
0
      GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2789
      // Combiner Rule #24: right_identity_zero @ [__right_identity_zero_match_0[3]]
2790
0
      GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2791
0
      GIR_EraseFromParent, /*InsnID*/0,
2792
0
      GIR_Done,
2793
    // Label 156: @15565
2794
0
    GIM_Reject,
2795
    // Label 11: @15566
2796
0
    GIM_Try, /*On fail goto*//*Label 157*/ GIMT_Encode4(15582), // Rule ID 72 //
2797
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
2798
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner28),
2799
      // Combiner Rule #41: extend_through_phis; wip_match_opcode 'G_PHI'
2800
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner19),
2801
0
      GIR_Done,
2802
    // Label 157: @15582
2803
0
    GIM_Reject,
2804
    // Label 12: @15583
2805
0
    GIM_Try, /*On fail goto*//*Label 158*/ GIMT_Encode4(15599), // Rule ID 36 //
2806
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
2807
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner15),
2808
      // Combiner Rule #21: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES'
2809
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
2810
0
      GIR_Done,
2811
    // Label 158: @15599
2812
0
    GIM_Try, /*On fail goto*//*Label 159*/ GIMT_Encode4(15615), // Rule ID 103 //
2813
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule66Enabled),
2814
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner52),
2815
      // Combiner Rule #66: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES'
2816
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner34),
2817
0
      GIR_Done,
2818
    // Label 159: @15615
2819
0
    GIM_Try, /*On fail goto*//*Label 160*/ GIMT_Encode4(15631), // Rule ID 104 //
2820
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule67Enabled),
2821
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner53),
2822
      // Combiner Rule #67: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES'
2823
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner35),
2824
0
      GIR_Done,
2825
    // Label 160: @15631
2826
0
    GIM_Try, /*On fail goto*//*Label 161*/ GIMT_Encode4(15647), // Rule ID 105 //
2827
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
2828
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner54),
2829
      // Combiner Rule #68: unmerge_dead_to_trunc; wip_match_opcode 'G_UNMERGE_VALUES'
2830
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner36),
2831
0
      GIR_Done,
2832
    // Label 161: @15647
2833
0
    GIM_Try, /*On fail goto*//*Label 162*/ GIMT_Encode4(15663), // Rule ID 106 //
2834
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled),
2835
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner55),
2836
      // Combiner Rule #69: unmerge_zext_to_zext; wip_match_opcode 'G_UNMERGE_VALUES'
2837
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner37),
2838
0
      GIR_Done,
2839
    // Label 162: @15663
2840
0
    GIM_Reject,
2841
    // Label 13: @15664
2842
0
    GIM_Try, /*On fail goto*//*Label 163*/ GIMT_Encode4(15680), // Rule ID 107 //
2843
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled),
2844
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner56),
2845
      // Combiner Rule #70: merge_unmerge; wip_match_opcode 'G_MERGE_VALUES'
2846
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner17),
2847
0
      GIR_Done,
2848
    // Label 163: @15680
2849
0
    GIM_Reject,
2850
    // Label 14: @15681
2851
0
    GIM_Try, /*On fail goto*//*Label 164*/ GIMT_Encode4(15697), // Rule ID 9 //
2852
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
2853
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner5),
2854
      // Combiner Rule #7: extract_all_elts_from_build_vector; wip_match_opcode 'G_BUILD_VECTOR'
2855
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner5),
2856
0
      GIR_Done,
2857
    // Label 164: @15697
2858
0
    GIM_Try, /*On fail goto*//*Label 165*/ GIMT_Encode4(15713), // Rule ID 66 //
2859
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
2860
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner23),
2861
      // Combiner Rule #35: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR'
2862
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner17),
2863
0
      GIR_Done,
2864
    // Label 165: @15713
2865
0
    GIM_Reject,
2866
    // Label 15: @15714
2867
0
    GIM_Try, /*On fail goto*//*Label 166*/ GIMT_Encode4(15730), // Rule ID 65 //
2868
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
2869
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner23),
2870
      // Combiner Rule #35: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR_TRUNC'
2871
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner17),
2872
0
      GIR_Done,
2873
    // Label 166: @15730
2874
0
    GIM_Reject,
2875
    // Label 16: @15731
2876
0
    GIM_Try, /*On fail goto*//*Label 167*/ GIMT_Encode4(15757), // Rule ID 58 //
2877
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
2878
      // MIs[0] dst
2879
      // No operand predicates
2880
      // MIs[0] t
2881
0
      GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2882
0
      GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
2883
      // MIs[1] ptr
2884
      // No operand predicates
2885
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner20),
2886
0
      GIM_CheckIsSafeToFold, /*InsnID*/1,
2887
      // Combiner Rule #29: i2p_to_p2i
2888
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner16),
2889
0
      GIR_Done,
2890
    // Label 167: @15757
2891
0
    GIM_Reject,
2892
    // Label 17: @15758
2893
0
    GIM_Try, /*On fail goto*//*Label 168*/ GIMT_Encode4(15774), // Rule ID 57 //
2894
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
2895
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner19),
2896
      // Combiner Rule #28: p2i_to_i2p; wip_match_opcode 'G_INTTOPTR'
2897
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner15),
2898
0
      GIR_Done,
2899
    // Label 168: @15774
2900
0
    GIM_Reject,
2901
    // Label 18: @15775
2902
0
    GIM_Try, /*On fail goto*//*Label 169*/ GIMT_Encode4(15801), // Rule ID 69 //
2903
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
2904
      // MIs[0] dst
2905
      // No operand predicates
2906
      // MIs[0] src1
2907
0
      GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2908
0
      GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
2909
      // MIs[1] src0
2910
      // No operand predicates
2911
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner26),
2912
0
      GIM_CheckIsSafeToFold, /*InsnID*/1,
2913
      // Combiner Rule #38: bitcast_bitcast_fold
2914
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner18),
2915
0
      GIR_Done,
2916
    // Label 169: @15801
2917
0
    GIM_Reject,
2918
    // Label 19: @15802
2919
0
    GIM_Try, /*On fail goto*//*Label 170*/ GIMT_Encode4(15833), // Rule ID 4 //
2920
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
2921
      // MIs[0] dst
2922
      // No operand predicates
2923
      // MIs[0] src
2924
0
      GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
2925
0
      GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREEZE),
2926
      // MIs[1] __idempotent_prop_match_0.x
2927
      // No operand predicates
2928
0
      GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2929
0
      GIM_CheckIsSafeToFold, /*InsnID*/1,
2930
      // Combiner Rule #4: idempotent_prop @ [__idempotent_prop_match_0[0]]
2931
0
      GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
2932
0
      GIR_EraseFromParent, /*InsnID*/0,
2933
0
      GIR_Done,
2934
    // Label 170: @15833
2935
0
    GIM_Reject,
2936
    // Label 20: @15834
2937
0
    GIM_Try, /*On fail goto*//*Label 171*/ GIMT_Encode4(15850), // Rule ID 10 //
2938
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
2939
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner6),
2940
      // Combiner Rule #8: extending_loads; wip_match_opcode 'G_LOAD'
2941
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner6),
2942
0
      GIR_Done,
2943
    // Label 171: @15850
2944
0
    GIM_Reject,
2945
    // Label 21: @15851
2946
0
    GIM_Try, /*On fail goto*//*Label 172*/ GIMT_Encode4(15867), // Rule ID 11 //
2947
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
2948
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner6),
2949
      // Combiner Rule #8: extending_loads; wip_match_opcode 'G_SEXTLOAD'
2950
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner6),
2951
0
      GIR_Done,
2952
    // Label 172: @15867
2953
0
    GIM_Reject,
2954
    // Label 22: @15868
2955
0
    GIM_Try, /*On fail goto*//*Label 173*/ GIMT_Encode4(15884), // Rule ID 12 //
2956
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
2957
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner6),
2958
      // Combiner Rule #8: extending_loads; wip_match_opcode 'G_ZEXTLOAD'
2959
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner6),
2960
0
      GIR_Done,
2961
    // Label 173: @15884
2962
0
    GIM_Reject,
2963
    // Label 23: @15885
2964
0
    GIM_Try, /*On fail goto*//*Label 174*/ GIMT_Encode4(15901), // Rule ID 35 //
2965
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
2966
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner14),
2967
      // Combiner Rule #20: erase_undef_store; wip_match_opcode 'G_STORE'
2968
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner12),
2969
0
      GIR_Done,
2970
    // Label 174: @15901
2971
0
    GIM_Reject,
2972
    // Label 24: @15902
2973
0
    GIM_Try, /*On fail goto*//*Label 175*/ GIMT_Encode4(15918), // Rule ID 248 //
2974
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule134Enabled),
2975
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner110),
2976
      // Combiner Rule #134: rcp_sqrt_to_rsq; wip_match_opcode 'G_INTRINSIC'
2977
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
2978
0
      GIR_Done,
2979
    // Label 175: @15918
2980
0
    GIM_Reject,
2981
    // Label 25: @15919
2982
0
    GIM_Try, /*On fail goto*//*Label 176*/ GIMT_Encode4(15935), // Rule ID 59 //
2983
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
2984
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner21),
2985
      // Combiner Rule #30: anyext_trunc_fold; wip_match_opcode 'G_ANYEXT'
2986
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner17),
2987
0
      GIR_Done,
2988
    // Label 176: @15935
2989
0
    GIM_Try, /*On fail goto*//*Label 177*/ GIMT_Encode4(15951), // Rule ID 98 //
2990
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule63Enabled),
2991
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
2992
      // Combiner Rule #63: ext_ext_fold; wip_match_opcode 'G_ANYEXT'
2993
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner31),
2994
0
      GIR_Done,
2995
    // Label 177: @15951
2996
0
    GIM_Try, /*On fail goto*//*Label 178*/ GIMT_Encode4(15967), // Rule ID 181 //
2997
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
2998
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner83),
2999
      // Combiner Rule #106: constant_fold_cast_op; wip_match_opcode 'G_ANYEXT'
3000
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner50),
3001
0
      GIR_Done,
3002
    // Label 178: @15967
3003
0
    GIM_Reject,
3004
    // Label 26: @15968
3005
0
    GIM_Try, /*On fail goto*//*Label 179*/ GIMT_Encode4(15984), // Rule ID 32 //
3006
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
3007
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
3008
      // Combiner Rule #17: propagate_undef_any_op; wip_match_opcode 'G_TRUNC'
3009
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner11),
3010
0
      GIR_Done,
3011
    // Label 179: @15984
3012
0
    GIM_Try, /*On fail goto*//*Label 180*/ GIMT_Encode4(16000), // Rule ID 67 //
3013
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
3014
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner24),
3015
      // Combiner Rule #36: trunc_buildvector_fold; wip_match_opcode 'G_TRUNC'
3016
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner17),
3017
0
      GIR_Done,
3018
    // Label 180: @16000
3019
0
    GIM_Try, /*On fail goto*//*Label 181*/ GIMT_Encode4(16016), // Rule ID 68 //
3020
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
3021
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner25),
3022
      // Combiner Rule #37: trunc_lshr_buildvector_fold; wip_match_opcode 'G_TRUNC'
3023
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner17),
3024
0
      GIR_Done,
3025
    // Label 181: @16016
3026
0
    GIM_Try, /*On fail goto*//*Label 182*/ GIMT_Encode4(16032), // Rule ID 108 //
3027
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
3028
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner57),
3029
      // Combiner Rule #71: trunc_ext_fold; wip_match_opcode 'G_TRUNC'
3030
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner38),
3031
0
      GIR_Done,
3032
    // Label 182: @16032
3033
0
    GIM_Try, /*On fail goto*//*Label 183*/ GIMT_Encode4(16048), // Rule ID 109 //
3034
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled),
3035
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner58),
3036
      // Combiner Rule #72: trunc_shift; wip_match_opcode 'G_TRUNC'
3037
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner39),
3038
0
      GIR_Done,
3039
    // Label 183: @16048
3040
0
    GIM_Reject,
3041
    // Label 27: @16049
3042
0
    GIM_Try, /*On fail goto*//*Label 184*/ GIMT_Encode4(16065), // Rule ID 99 //
3043
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule63Enabled),
3044
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
3045
      // Combiner Rule #63: ext_ext_fold; wip_match_opcode 'G_SEXT'
3046
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner31),
3047
0
      GIR_Done,
3048
    // Label 184: @16065
3049
0
    GIM_Try, /*On fail goto*//*Label 185*/ GIMT_Encode4(16081), // Rule ID 180 //
3050
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
3051
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner83),
3052
      // Combiner Rule #106: constant_fold_cast_op; wip_match_opcode 'G_SEXT'
3053
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner50),
3054
0
      GIR_Done,
3055
    // Label 185: @16081
3056
0
    GIM_Reject,
3057
    // Label 28: @16082
3058
0
    GIM_Try, /*On fail goto*//*Label 186*/ GIMT_Encode4(16098), // Rule ID 84 //
3059
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
3060
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner36),
3061
      // Combiner Rule #49: sext_inreg_of_load; wip_match_opcode 'G_SEXT_INREG'
3062
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner25),
3063
0
      GIR_Done,
3064
    // Label 186: @16098
3065
0
    GIM_Try, /*On fail goto*//*Label 187*/ GIMT_Encode4(16114), // Rule ID 91 //
3066
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled),
3067
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner42),
3068
      // Combiner Rule #56: redundant_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
3069
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner14),
3070
0
      GIR_Done,
3071
    // Label 187: @16114
3072
0
    GIM_Try, /*On fail goto*//*Label 188*/ GIMT_Encode4(16130), // Rule ID 158 //
3073
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule99Enabled),
3074
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner76),
3075
      // Combiner Rule #99: bitfield_extract_from_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
3076
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
3077
0
      GIR_Done,
3078
    // Label 188: @16130
3079
0
    GIM_Try, /*On fail goto*//*Label 189*/ GIMT_Encode4(16146), // Rule ID 250 //
3080
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule135Enabled),
3081
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner111),
3082
      // Combiner Rule #135: sign_extension_in_reg; wip_match_opcode 'G_SEXT_INREG'
3083
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner63),
3084
0
      GIR_Done,
3085
    // Label 189: @16146
3086
0
    GIM_Try, /*On fail goto*//*Label 190*/ GIMT_Encode4(16162), // Rule ID 97 //
3087
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled),
3088
      // MIs[0] dst
3089
      // No operand predicates
3090
      // MIs[0] src
3091
      // No operand predicates
3092
      // MIs[0] imm
3093
      // No operand predicates
3094
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
3095
      // Combiner Rule #62: sext_inreg_to_zext_inreg
3096
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner30),
3097
0
      GIR_Done,
3098
    // Label 190: @16162
3099
0
    GIM_Reject,
3100
    // Label 29: @16163
3101
0
    GIM_Try, /*On fail goto*//*Label 191*/ GIMT_Encode4(16179), // Rule ID 94 //
3102
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled),
3103
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner45),
3104
      // Combiner Rule #59: zext_trunc_fold; wip_match_opcode 'G_ZEXT'
3105
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner17),
3106
0
      GIR_Done,
3107
    // Label 191: @16179
3108
0
    GIM_Try, /*On fail goto*//*Label 192*/ GIMT_Encode4(16195), // Rule ID 100 //
3109
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule63Enabled),
3110
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
3111
      // Combiner Rule #63: ext_ext_fold; wip_match_opcode 'G_ZEXT'
3112
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner31),
3113
0
      GIR_Done,
3114
    // Label 192: @16195
3115
0
    GIM_Try, /*On fail goto*//*Label 193*/ GIMT_Encode4(16211), // Rule ID 179 //
3116
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
3117
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner83),
3118
      // Combiner Rule #106: constant_fold_cast_op; wip_match_opcode 'G_ZEXT'
3119
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner50),
3120
0
      GIR_Done,
3121
    // Label 193: @16211
3122
0
    GIM_Reject,
3123
    // Label 30: @16212
3124
0
    GIM_Try, /*On fail goto*//*Label 194*/ GIMT_Encode4(16228), // Rule ID 20 //
3125
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
3126
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner10),
3127
      // Combiner Rule #14: binop_left_undef_to_zero; wip_match_opcode 'G_SHL'
3128
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner9),
3129
0
      GIR_Done,
3130
    // Label 194: @16228
3131
0
    GIM_Try, /*On fail goto*//*Label 195*/ GIMT_Encode4(16244), // Rule ID 23 //
3132
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
3133
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner11),
3134
      // Combiner Rule #15: binop_right_undef_to_undef; wip_match_opcode 'G_SHL'
3135
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner11),
3136
0
      GIR_Done,
3137
    // Label 195: @16244
3138
0
    GIM_Try, /*On fail goto*//*Label 196*/ GIMT_Encode4(16260), // Rule ID 77 //
3139
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
3140
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner31),
3141
      // Combiner Rule #44: shifts_too_big; wip_match_opcode 'G_SHL'
3142
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner11),
3143
0
      GIR_Done,
3144
    // Label 196: @16260
3145
0
    GIM_Try, /*On fail goto*//*Label 197*/ GIMT_Encode4(16276), // Rule ID 135 //
3146
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled),
3147
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner68),
3148
      // Combiner Rule #89: shift_immed_chain; wip_match_opcode 'G_SHL'
3149
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner45),
3150
0
      GIR_Done,
3151
    // Label 197: @16276
3152
0
    GIM_Try, /*On fail goto*//*Label 198*/ GIMT_Encode4(16292), // Rule ID 140 //
3153
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
3154
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner69),
3155
      // Combiner Rule #90: shift_of_shifted_logic_chain; wip_match_opcode 'G_SHL'
3156
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner46),
3157
0
      GIR_Done,
3158
    // Label 198: @16292
3159
0
    GIM_Try, /*On fail goto*//*Label 199*/ GIMT_Encode4(16308), // Rule ID 157 //
3160
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule98Enabled),
3161
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner75),
3162
      // Combiner Rule #98: commute_shift; wip_match_opcode 'G_SHL'
3163
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
3164
0
      GIR_Done,
3165
    // Label 199: @16308
3166
0
    GIM_Try, /*On fail goto*//*Label 200*/ GIMT_Encode4(16324), // Rule ID 170 //
3167
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
3168
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner80),
3169
      // Combiner Rule #103: constant_fold_binop; wip_match_opcode 'G_SHL'
3170
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner50),
3171
0
      GIR_Done,
3172
    // Label 200: @16324
3173
0
    GIM_Try, /*On fail goto*//*Label 201*/ GIMT_Encode4(16340), // Rule ID 213 //
3174
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
3175
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
3176
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_SHL'
3177
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
3178
0
      GIR_Done,
3179
    // Label 201: @16340
3180
0
    GIM_Try, /*On fail goto*//*Label 202*/ GIMT_Encode4(16365), // Rule ID 44 //
3181
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
3182
      // MIs[0] dst
3183
      // No operand predicates
3184
      // MIs[0] lhs
3185
      // No operand predicates
3186
      // MIs[0] Operand 2
3187
0
      GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
3188
0
      GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
3189
      // Combiner Rule #24: right_identity_zero @ [__right_identity_zero_match_0[4]]
3190
0
      GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
3191
0
      GIR_EraseFromParent, /*InsnID*/0,
3192
0
      GIR_Done,
3193
    // Label 202: @16365
3194
0
    GIM_Try, /*On fail goto*//*Label 203*/ GIMT_Encode4(16381), // Rule ID 85 //
3195
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
3196
      // MIs[0] dst
3197
      // No operand predicates
3198
      // MIs[0] src0
3199
      // No operand predicates
3200
      // MIs[0] src1
3201
      // No operand predicates
3202
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner37),
3203
      // Combiner Rule #50: reduce_shl_of_extend
3204
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner26),
3205
0
      GIR_Done,
3206
    // Label 203: @16381
3207
0
    GIM_Reject,
3208
    // Label 31: @16382
3209
0
    GIM_Try, /*On fail goto*//*Label 204*/ GIMT_Encode4(16398), // Rule ID 25 //
3210
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
3211
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner11),
3212
      // Combiner Rule #15: binop_right_undef_to_undef; wip_match_opcode 'G_LSHR'
3213
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner11),
3214
0
      GIR_Done,
3215
    // Label 204: @16398
3216
0
    GIM_Try, /*On fail goto*//*Label 205*/ GIMT_Encode4(16414), // Rule ID 79 //
3217
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
3218
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner31),
3219
      // Combiner Rule #44: shifts_too_big; wip_match_opcode 'G_LSHR'
3220
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner11),
3221
0
      GIR_Done,
3222
    // Label 205: @16414
3223
0
    GIM_Try, /*On fail goto*//*Label 206*/ GIMT_Encode4(16430), // Rule ID 137 //
3224
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled),
3225
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner68),
3226
      // Combiner Rule #89: shift_immed_chain; wip_match_opcode 'G_LSHR'
3227
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner45),
3228
0
      GIR_Done,
3229
    // Label 206: @16430
3230
0
    GIM_Try, /*On fail goto*//*Label 207*/ GIMT_Encode4(16446), // Rule ID 142 //
3231
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
3232
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner69),
3233
      // Combiner Rule #90: shift_of_shifted_logic_chain; wip_match_opcode 'G_LSHR'
3234
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner46),
3235
0
      GIR_Done,
3236
    // Label 207: @16446
3237
0
    GIM_Try, /*On fail goto*//*Label 208*/ GIMT_Encode4(16462), // Rule ID 161 //
3238
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
3239
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner78),
3240
      // Combiner Rule #101: bitfield_extract_from_shr; wip_match_opcode 'G_LSHR'
3241
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
3242
0
      GIR_Done,
3243
    // Label 208: @16462
3244
0
    GIM_Try, /*On fail goto*//*Label 209*/ GIMT_Encode4(16478), // Rule ID 163 //
3245
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
3246
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner79),
3247
      // Combiner Rule #102: bitfield_extract_from_shr_and; wip_match_opcode 'G_LSHR'
3248
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
3249
0
      GIR_Done,
3250
    // Label 209: @16478
3251
0
    GIM_Try, /*On fail goto*//*Label 210*/ GIMT_Encode4(16494), // Rule ID 171 //
3252
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
3253
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner80),
3254
      // Combiner Rule #103: constant_fold_binop; wip_match_opcode 'G_LSHR'
3255
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner50),
3256
0
      GIR_Done,
3257
    // Label 210: @16494
3258
0
    GIM_Try, /*On fail goto*//*Label 211*/ GIMT_Encode4(16510), // Rule ID 211 //
3259
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
3260
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
3261
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_LSHR'
3262
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
3263
0
      GIR_Done,
3264
    // Label 211: @16510
3265
0
    GIM_Try, /*On fail goto*//*Label 212*/ GIMT_Encode4(16535), // Rule ID 46 //
3266
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
3267
      // MIs[0] dst
3268
      // No operand predicates
3269
      // MIs[0] lhs
3270
      // No operand predicates
3271
      // MIs[0] Operand 2
3272
0
      GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
3273
0
      GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
3274
      // Combiner Rule #24: right_identity_zero @ [__right_identity_zero_match_0[6]]
3275
0
      GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
3276
0
      GIR_EraseFromParent, /*InsnID*/0,
3277
0
      GIR_Done,
3278
    // Label 212: @16535
3279
0
    GIM_Reject,
3280
    // Label 32: @16536
3281
0
    GIM_Try, /*On fail goto*//*Label 213*/ GIMT_Encode4(16552), // Rule ID 24 //
3282
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
3283
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner11),
3284
      // Combiner Rule #15: binop_right_undef_to_undef; wip_match_opcode 'G_ASHR'
3285
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner11),
3286
0
      GIR_Done,
3287
    // Label 213: @16552
3288
0
    GIM_Try, /*On fail goto*//*Label 214*/ GIMT_Encode4(16568), // Rule ID 78 //
3289
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
3290
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner31),
3291
      // Combiner Rule #44: shifts_too_big; wip_match_opcode 'G_ASHR'
3292
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner11),
3293
0
      GIR_Done,
3294
    // Label 214: @16568
3295
0
    GIM_Try, /*On fail goto*//*Label 215*/ GIMT_Encode4(16584), // Rule ID 83 //
3296
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled),
3297
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner35),
3298
      // Combiner Rule #48: shl_ashr_to_sext_inreg; wip_match_opcode 'G_ASHR'
3299
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner24),
3300
0
      GIR_Done,
3301
    // Label 215: @16584
3302
0
    GIM_Try, /*On fail goto*//*Label 216*/ GIMT_Encode4(16600), // Rule ID 136 //
3303
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled),
3304
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner68),
3305
      // Combiner Rule #89: shift_immed_chain; wip_match_opcode 'G_ASHR'
3306
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner45),
3307
0
      GIR_Done,
3308
    // Label 216: @16600
3309
0
    GIM_Try, /*On fail goto*//*Label 217*/ GIMT_Encode4(16616), // Rule ID 141 //
3310
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
3311
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner69),
3312
      // Combiner Rule #90: shift_of_shifted_logic_chain; wip_match_opcode 'G_ASHR'
3313
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner46),
3314
0
      GIR_Done,
3315
    // Label 217: @16616
3316
0
    GIM_Try, /*On fail goto*//*Label 218*/ GIMT_Encode4(16632), // Rule ID 160 //
3317
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
3318
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner78),
3319
      // Combiner Rule #101: bitfield_extract_from_shr; wip_match_opcode 'G_ASHR'
3320
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
3321
0
      GIR_Done,
3322
    // Label 218: @16632
3323
0
    GIM_Try, /*On fail goto*//*Label 219*/ GIMT_Encode4(16648), // Rule ID 162 //
3324
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
3325
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner79),
3326
      // Combiner Rule #102: bitfield_extract_from_shr_and; wip_match_opcode 'G_ASHR'
3327
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
3328
0
      GIR_Done,
3329
    // Label 219: @16648
3330
0
    GIM_Try, /*On fail goto*//*Label 220*/ GIMT_Encode4(16664), // Rule ID 172 //
3331
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
3332
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner80),
3333
      // Combiner Rule #103: constant_fold_binop; wip_match_opcode 'G_ASHR'
3334
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner50),
3335
0
      GIR_Done,
3336
    // Label 220: @16664
3337
0
    GIM_Try, /*On fail goto*//*Label 221*/ GIMT_Encode4(16680), // Rule ID 212 //
3338
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
3339
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
3340
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_ASHR'
3341
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
3342
0
      GIR_Done,
3343
    // Label 221: @16680
3344
0
    GIM_Try, /*On fail goto*//*Label 222*/ GIMT_Encode4(16705), // Rule ID 45 //
3345
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
3346
      // MIs[0] dst
3347
      // No operand predicates
3348
      // MIs[0] lhs
3349
      // No operand predicates
3350
      // MIs[0] Operand 2
3351
0
      GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
3352
0
      GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
3353
      // Combiner Rule #24: right_identity_zero @ [__right_identity_zero_match_0[5]]
3354
0
      GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
3355
0
      GIR_EraseFromParent, /*InsnID*/0,
3356
0
      GIR_Done,
3357
    // Label 222: @16705
3358
0
    GIM_Reject,
3359
    // Label 33: @16706
3360
0
    GIM_Try, /*On fail goto*//*Label 223*/ GIMT_Encode4(16722), // Rule ID 151 //
3361
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
3362
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner73),
3363
      // Combiner Rule #94: funnel_shift_to_rotate; wip_match_opcode 'G_FSHL'
3364
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner48),
3365
0
      GIR_Done,
3366
    // Label 223: @16722
3367
0
    GIM_Try, /*On fail goto*//*Label 224*/ GIMT_Encode4(16738), // Rule ID 155 //
3368
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule97Enabled),
3369
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner74),
3370
      // Combiner Rule #97: funnel_shift_overshift; wip_match_opcode 'G_FSHL'
3371
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner49),
3372
0
      GIR_Done,
3373
    // Label 224: @16738
3374
0
    GIM_Try, /*On fail goto*//*Label 225*/ GIMT_Encode4(16765), // Rule ID 154 //
3375
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule96Enabled),
3376
      // MIs[0] x
3377
      // No operand predicates
3378
      // MIs[0] y
3379
      // No operand predicates
3380
      // MIs[0] z
3381
      // No operand predicates
3382
      // MIs[0] Operand 3
3383
0
      GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
3384
      // Combiner Rule #96: funnel_shift_left_zero
3385
0
      GIR_BuildMI, /*InsnID*/0, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
3386
0
      GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // x
3387
0
      GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // y
3388
0
      GIR_EraseFromParent, /*InsnID*/0,
3389
0
      GIR_Done,
3390
    // Label 225: @16765
3391
0
    GIM_Reject,
3392
    // Label 34: @16766
3393
0
    GIM_Try, /*On fail goto*//*Label 226*/ GIMT_Encode4(16782), // Rule ID 152 //
3394
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
3395
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner73),
3396
      // Combiner Rule #94: funnel_shift_to_rotate; wip_match_opcode 'G_FSHR'
3397
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner48),
3398
0
      GIR_Done,
3399
    // Label 226: @16782
3400
0
    GIM_Try, /*On fail goto*//*Label 227*/ GIMT_Encode4(16798), // Rule ID 156 //
3401
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule97Enabled),
3402
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner74),
3403
      // Combiner Rule #97: funnel_shift_overshift; wip_match_opcode 'G_FSHR'
3404
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner49),
3405
0
      GIR_Done,
3406
    // Label 227: @16798
3407
0
    GIM_Try, /*On fail goto*//*Label 228*/ GIMT_Encode4(16825), // Rule ID 153 //
3408
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
3409
      // MIs[0] x
3410
      // No operand predicates
3411
      // MIs[0] y
3412
      // No operand predicates
3413
      // MIs[0] z
3414
      // No operand predicates
3415
      // MIs[0] Operand 3
3416
0
      GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
3417
      // Combiner Rule #95: funnel_shift_right_zero
3418
0
      GIR_BuildMI, /*InsnID*/0, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
3419
0
      GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // x
3420
0
      GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // z
3421
0
      GIR_EraseFromParent, /*InsnID*/0,
3422
0
      GIR_Done,
3423
    // Label 228: @16825
3424
0
    GIM_Reject,
3425
    // Label 35: @16826
3426
0
    GIM_Try, /*On fail goto*//*Label 229*/ GIMT_Encode4(16851), // Rule ID 49 //
3427
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
3428
      // MIs[0] dst
3429
      // No operand predicates
3430
      // MIs[0] lhs
3431
      // No operand predicates
3432
      // MIs[0] Operand 2
3433
0
      GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
3434
0
      GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
3435
      // Combiner Rule #24: right_identity_zero @ [__right_identity_zero_match_0[9]]
3436
0
      GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
3437
0
      GIR_EraseFromParent, /*InsnID*/0,
3438
0
      GIR_Done,
3439
    // Label 229: @16851
3440
0
    GIM_Reject,
3441
    // Label 36: @16852
3442
0
    GIM_Try, /*On fail goto*//*Label 230*/ GIMT_Encode4(16877), // Rule ID 48 //
3443
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
3444
      // MIs[0] dst
3445
      // No operand predicates
3446
      // MIs[0] lhs
3447
      // No operand predicates
3448
      // MIs[0] Operand 2
3449
0
      GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
3450
0
      GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
3451
      // Combiner Rule #24: right_identity_zero @ [__right_identity_zero_match_0[8]]
3452
0
      GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
3453
0
      GIR_EraseFromParent, /*InsnID*/0,
3454
0
      GIR_Done,
3455
    // Label 230: @16877
3456
0
    GIM_Reject,
3457
    // Label 37: @16878
3458
0
    GIM_Try, /*On fail goto*//*Label 231*/ GIMT_Encode4(16894), // Rule ID 95 //
3459
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled),
3460
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner46),
3461
      // Combiner Rule #60: icmp_to_true_false_known_bits; wip_match_opcode 'G_ICMP'
3462
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner29),
3463
0
      GIR_Done,
3464
    // Label 231: @16894
3465
0
    GIM_Try, /*On fail goto*//*Label 232*/ GIMT_Encode4(16910), // Rule ID 96 //
3466
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule61Enabled),
3467
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner47),
3468
      // Combiner Rule #61: icmp_to_lhs_known_bits; wip_match_opcode 'G_ICMP'
3469
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
3470
0
      GIR_Done,
3471
    // Label 232: @16910
3472
0
    GIM_Try, /*On fail goto*//*Label 233*/ GIMT_Encode4(16926), // Rule ID 229 //
3473
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule124Enabled),
3474
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner100),
3475
      // Combiner Rule #124: redundant_binop_in_equality; wip_match_opcode 'G_ICMP'
3476
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
3477
0
      GIR_Done,
3478
    // Label 233: @16926
3479
0
    GIM_Reject,
3480
    // Label 38: @16927
3481
0
    GIM_Try, /*On fail goto*//*Label 234*/ GIMT_Encode4(16943), // Rule ID 39 //
3482
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
3483
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner17),
3484
      // Combiner Rule #23: select_same_val; wip_match_opcode 'G_SELECT'
3485
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner13),
3486
0
      GIR_Done,
3487
    // Label 234: @16943
3488
0
    GIM_Try, /*On fail goto*//*Label 235*/ GIMT_Encode4(16959), // Rule ID 88 //
3489
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
3490
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner39),
3491
      // Combiner Rule #53: select_constant_cmp; wip_match_opcode 'G_SELECT'
3492
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner27),
3493
0
      GIR_Done,
3494
    // Label 235: @16959
3495
0
    GIM_Try, /*On fail goto*//*Label 236*/ GIMT_Encode4(16975), // Rule ID 89 //
3496
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled),
3497
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner40),
3498
      // Combiner Rule #54: match_selects; wip_match_opcode 'G_SELECT'
3499
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
3500
0
      GIR_Done,
3501
    // Label 236: @16975
3502
0
    GIM_Try, /*On fail goto*//*Label 237*/ GIMT_Encode4(16991), // Rule ID 228 //
3503
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule123Enabled),
3504
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner99),
3505
      // Combiner Rule #123: select_to_minmax; wip_match_opcode 'G_SELECT'
3506
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
3507
0
      GIR_Done,
3508
    // Label 237: @16991
3509
0
    GIM_Try, /*On fail goto*//*Label 238*/ GIMT_Encode4(17010), // Rule ID 238 //
3510
0
      GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFminFmaxLegacy),
3511
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule128Enabled),
3512
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner104),
3513
      // Combiner Rule #128: fcmp_select_to_fmin_fmax_legacy; wip_match_opcode 'G_SELECT'
3514
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner58),
3515
0
      GIR_Done,
3516
    // Label 238: @17010
3517
0
    GIM_Try, /*On fail goto*//*Label 239*/ GIMT_Encode4(17041), // Rule ID 87 //
3518
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
3519
      // MIs[0] dst
3520
      // No operand predicates
3521
      // MIs[0] undef
3522
0
      GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3523
0
      GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
3524
      // MIs[0] x
3525
      // No operand predicates
3526
      // MIs[0] y
3527
      // No operand predicates
3528
0
      GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
3529
0
      GIM_CheckIsSafeToFold, /*InsnID*/1,
3530
      // Combiner Rule #52: select_undef_cmp
3531
0
      GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
3532
0
      GIR_EraseFromParent, /*InsnID*/0,
3533
0
      GIR_Done,
3534
    // Label 239: @17041
3535
0
    GIM_Reject,
3536
    // Label 39: @17042
3537
0
    GIM_Try, /*On fail goto*//*Label 240*/ GIMT_Encode4(17058), // Rule ID 123 //
3538
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
3539
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner63),
3540
      // Combiner Rule #84: addo_by_0; wip_match_opcode 'G_UADDO'
3541
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
3542
0
      GIR_Done,
3543
    // Label 240: @17058
3544
0
    GIM_Reject,
3545
    // Label 40: @17059
3546
0
    GIM_Try, /*On fail goto*//*Label 241*/ GIMT_Encode4(17075), // Rule ID 125 //
3547
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
3548
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner64),
3549
      // Combiner Rule #85: adde_to_addo; wip_match_opcode 'G_UADDE'
3550
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner22),
3551
0
      GIR_Done,
3552
    // Label 241: @17075
3553
0
    GIM_Reject,
3554
    // Label 41: @17076
3555
0
    GIM_Try, /*On fail goto*//*Label 242*/ GIMT_Encode4(17092), // Rule ID 127 //
3556
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
3557
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner64),
3558
      // Combiner Rule #85: adde_to_addo; wip_match_opcode 'G_USUBE'
3559
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner22),
3560
0
      GIR_Done,
3561
    // Label 242: @17092
3562
0
    GIM_Reject,
3563
    // Label 42: @17093
3564
0
    GIM_Try, /*On fail goto*//*Label 243*/ GIMT_Encode4(17109), // Rule ID 124 //
3565
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
3566
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner63),
3567
      // Combiner Rule #84: addo_by_0; wip_match_opcode 'G_SADDO'
3568
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
3569
0
      GIR_Done,
3570
    // Label 243: @17109
3571
0
    GIM_Reject,
3572
    // Label 43: @17110
3573
0
    GIM_Try, /*On fail goto*//*Label 244*/ GIMT_Encode4(17126), // Rule ID 126 //
3574
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
3575
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner64),
3576
      // Combiner Rule #85: adde_to_addo; wip_match_opcode 'G_SADDE'
3577
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner22),
3578
0
      GIR_Done,
3579
    // Label 244: @17126
3580
0
    GIM_Reject,
3581
    // Label 44: @17127
3582
0
    GIM_Try, /*On fail goto*//*Label 245*/ GIMT_Encode4(17143), // Rule ID 128 //
3583
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
3584
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner64),
3585
      // Combiner Rule #85: adde_to_addo; wip_match_opcode 'G_SSUBE'
3586
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner22),
3587
0
      GIR_Done,
3588
    // Label 245: @17143
3589
0
    GIM_Reject,
3590
    // Label 45: @17144
3591
0
    GIM_Try, /*On fail goto*//*Label 246*/ GIMT_Encode4(17160), // Rule ID 119 //
3592
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
3593
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner61),
3594
      // Combiner Rule #82: mulo_by_2; wip_match_opcode 'G_UMULO'
3595
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner22),
3596
0
      GIR_Done,
3597
    // Label 246: @17160
3598
0
    GIM_Try, /*On fail goto*//*Label 247*/ GIMT_Encode4(17176), // Rule ID 121 //
3599
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
3600
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner62),
3601
      // Combiner Rule #83: mulo_by_0; wip_match_opcode 'G_UMULO'
3602
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
3603
0
      GIR_Done,
3604
    // Label 247: @17176
3605
0
    GIM_Reject,
3606
    // Label 46: @17177
3607
0
    GIM_Try, /*On fail goto*//*Label 248*/ GIMT_Encode4(17193), // Rule ID 120 //
3608
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
3609
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner61),
3610
      // Combiner Rule #82: mulo_by_2; wip_match_opcode 'G_SMULO'
3611
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner22),
3612
0
      GIR_Done,
3613
    // Label 248: @17193
3614
0
    GIM_Try, /*On fail goto*//*Label 249*/ GIMT_Encode4(17209), // Rule ID 122 //
3615
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
3616
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner62),
3617
      // Combiner Rule #83: mulo_by_0; wip_match_opcode 'G_SMULO'
3618
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
3619
0
      GIR_Done,
3620
    // Label 249: @17209
3621
0
    GIM_Reject,
3622
    // Label 47: @17210
3623
0
    GIM_Try, /*On fail goto*//*Label 250*/ GIMT_Encode4(17226), // Rule ID 185 //
3624
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule110Enabled),
3625
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner86),
3626
      // Combiner Rule #110: mulh_to_lshr; wip_match_opcode 'G_UMULH'
3627
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner54),
3628
0
      GIR_Done,
3629
    // Label 250: @17226
3630
0
    GIM_Reject,
3631
    // Label 48: @17227
3632
0
    GIM_Try, /*On fail goto*//*Label 251*/ GIMT_Encode4(17243), // Rule ID 139 //
3633
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled),
3634
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner68),
3635
      // Combiner Rule #89: shift_immed_chain; wip_match_opcode 'G_USHLSAT'
3636
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner45),
3637
0
      GIR_Done,
3638
    // Label 251: @17243
3639
0
    GIM_Try, /*On fail goto*//*Label 252*/ GIMT_Encode4(17259), // Rule ID 143 //
3640
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
3641
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner69),
3642
      // Combiner Rule #90: shift_of_shifted_logic_chain; wip_match_opcode 'G_USHLSAT'
3643
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner46),
3644
0
      GIR_Done,
3645
    // Label 252: @17259
3646
0
    GIM_Reject,
3647
    // Label 49: @17260
3648
0
    GIM_Try, /*On fail goto*//*Label 253*/ GIMT_Encode4(17276), // Rule ID 138 //
3649
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled),
3650
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner68),
3651
      // Combiner Rule #89: shift_immed_chain; wip_match_opcode 'G_SSHLSAT'
3652
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner45),
3653
0
      GIR_Done,
3654
    // Label 253: @17276
3655
0
    GIM_Try, /*On fail goto*//*Label 254*/ GIMT_Encode4(17292), // Rule ID 144 //
3656
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
3657
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner69),
3658
      // Combiner Rule #90: shift_of_shifted_logic_chain; wip_match_opcode 'G_SSHLSAT'
3659
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner46),
3660
0
      GIR_Done,
3661
    // Label 254: @17292
3662
0
    GIM_Reject,
3663
    // Label 50: @17293
3664
0
    GIM_Try, /*On fail goto*//*Label 255*/ GIMT_Encode4(17309), // Rule ID 173 //
3665
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
3666
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner81),
3667
      // Combiner Rule #104: constant_fold_fp_binop; wip_match_opcode 'G_FADD'
3668
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner51),
3669
0
      GIR_Done,
3670
    // Label 255: @17309
3671
0
    GIM_Try, /*On fail goto*//*Label 256*/ GIMT_Encode4(17325), // Rule ID 186 //
3672
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled),
3673
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner87),
3674
      // Combiner Rule #111: redundant_neg_operands; wip_match_opcode 'G_FADD'
3675
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner22),
3676
0
      GIR_Done,
3677
    // Label 256: @17325
3678
0
    GIM_Try, /*On fail goto*//*Label 257*/ GIMT_Encode4(17341), // Rule ID 193 //
3679
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
3680
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner89),
3681
      // Combiner Rule #113: combine_fadd_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
3682
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
3683
0
      GIR_Done,
3684
    // Label 257: @17341
3685
0
    GIM_Try, /*On fail goto*//*Label 258*/ GIMT_Encode4(17357), // Rule ID 194 //
3686
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
3687
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner90),
3688
      // Combiner Rule #114: combine_fadd_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
3689
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
3690
0
      GIR_Done,
3691
    // Label 258: @17357
3692
0
    GIM_Try, /*On fail goto*//*Label 259*/ GIMT_Encode4(17373), // Rule ID 195 //
3693
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule115Enabled),
3694
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner91),
3695
      // Combiner Rule #115: combine_fadd_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
3696
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
3697
0
      GIR_Done,
3698
    // Label 259: @17373
3699
0
    GIM_Try, /*On fail goto*//*Label 260*/ GIMT_Encode4(17389), // Rule ID 196 //
3700
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule116Enabled),
3701
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner92),
3702
      // Combiner Rule #116: combine_fadd_fpext_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
3703
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
3704
0
      GIR_Done,
3705
    // Label 260: @17389
3706
0
    GIM_Try, /*On fail goto*//*Label 261*/ GIMT_Encode4(17405), // Rule ID 219 //
3707
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
3708
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
3709
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_FADD'
3710
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
3711
0
      GIR_Done,
3712
    // Label 261: @17405
3713
0
    GIM_Try, /*On fail goto*//*Label 262*/ GIMT_Encode4(17421), // Rule ID 236 //
3714
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule127Enabled),
3715
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner103),
3716
      // Combiner Rule #127: commute_fp_constant_to_rhs; wip_match_opcode 'G_FADD'
3717
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner57),
3718
0
      GIR_Done,
3719
    // Label 262: @17421
3720
0
    GIM_Try, /*On fail goto*//*Label 263*/ GIMT_Encode4(17446), // Rule ID 71 //
3721
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
3722
      // MIs[0] dst
3723
      // No operand predicates
3724
      // MIs[0] x
3725
      // No operand predicates
3726
      // MIs[0] y
3727
      // No operand predicates
3728
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner27),
3729
0
      GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
3730
      // Combiner Rule #40: right_identity_neg_zero_fp
3731
0
      GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
3732
0
      GIR_EraseFromParent, /*InsnID*/0,
3733
0
      GIR_Done,
3734
    // Label 263: @17446
3735
0
    GIM_Reject,
3736
    // Label 51: @17447
3737
0
    GIM_Try, /*On fail goto*//*Label 264*/ GIMT_Encode4(17463), // Rule ID 174 //
3738
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
3739
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner81),
3740
      // Combiner Rule #104: constant_fold_fp_binop; wip_match_opcode 'G_FSUB'
3741
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner51),
3742
0
      GIR_Done,
3743
    // Label 264: @17463
3744
0
    GIM_Try, /*On fail goto*//*Label 265*/ GIMT_Encode4(17479), // Rule ID 187 //
3745
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled),
3746
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner87),
3747
      // Combiner Rule #111: redundant_neg_operands; wip_match_opcode 'G_FSUB'
3748
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner22),
3749
0
      GIR_Done,
3750
    // Label 265: @17479
3751
0
    GIM_Try, /*On fail goto*//*Label 266*/ GIMT_Encode4(17495), // Rule ID 197 //
3752
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule117Enabled),
3753
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner93),
3754
      // Combiner Rule #117: combine_fsub_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
3755
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
3756
0
      GIR_Done,
3757
    // Label 266: @17495
3758
0
    GIM_Try, /*On fail goto*//*Label 267*/ GIMT_Encode4(17511), // Rule ID 198 //
3759
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
3760
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner94),
3761
      // Combiner Rule #118: combine_fsub_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
3762
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
3763
0
      GIR_Done,
3764
    // Label 267: @17511
3765
0
    GIM_Try, /*On fail goto*//*Label 268*/ GIMT_Encode4(17527), // Rule ID 199 //
3766
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
3767
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner95),
3768
      // Combiner Rule #119: combine_fsub_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
3769
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
3770
0
      GIR_Done,
3771
    // Label 268: @17527
3772
0
    GIM_Try, /*On fail goto*//*Label 269*/ GIMT_Encode4(17543), // Rule ID 200 //
3773
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule120Enabled),
3774
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner96),
3775
      // Combiner Rule #120: combine_fsub_fpext_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
3776
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
3777
0
      GIR_Done,
3778
    // Label 269: @17543
3779
0
    GIM_Try, /*On fail goto*//*Label 270*/ GIMT_Encode4(17559), // Rule ID 220 //
3780
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
3781
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
3782
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_FSUB'
3783
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
3784
0
      GIR_Done,
3785
    // Label 270: @17559
3786
0
    GIM_Try, /*On fail goto*//*Label 271*/ GIMT_Encode4(17575), // Rule ID 230 //
3787
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule125Enabled),
3788
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner101),
3789
      // Combiner Rule #125: fsub_to_fneg; wip_match_opcode 'G_FSUB'
3790
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner56),
3791
0
      GIR_Done,
3792
    // Label 271: @17575
3793
0
    GIM_Reject,
3794
    // Label 52: @17576
3795
0
    GIM_Try, /*On fail goto*//*Label 272*/ GIMT_Encode4(17592), // Rule ID 175 //
3796
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
3797
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner81),
3798
      // Combiner Rule #104: constant_fold_fp_binop; wip_match_opcode 'G_FMUL'
3799
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner51),
3800
0
      GIR_Done,
3801
    // Label 272: @17592
3802
0
    GIM_Try, /*On fail goto*//*Label 273*/ GIMT_Encode4(17608), // Rule ID 188 //
3803
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled),
3804
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner87),
3805
      // Combiner Rule #111: redundant_neg_operands; wip_match_opcode 'G_FMUL'
3806
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner22),
3807
0
      GIR_Done,
3808
    // Label 273: @17608
3809
0
    GIM_Try, /*On fail goto*//*Label 274*/ GIMT_Encode4(17624), // Rule ID 218 //
3810
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
3811
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
3812
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_FMUL'
3813
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
3814
0
      GIR_Done,
3815
    // Label 274: @17624
3816
0
    GIM_Try, /*On fail goto*//*Label 275*/ GIMT_Encode4(17640), // Rule ID 237 //
3817
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule127Enabled),
3818
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner103),
3819
      // Combiner Rule #127: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMUL'
3820
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner57),
3821
0
      GIR_Done,
3822
    // Label 275: @17640
3823
0
    GIM_Try, /*On fail goto*//*Label 276*/ GIMT_Encode4(17665), // Rule ID 62 //
3824
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
3825
      // MIs[0] dst
3826
      // No operand predicates
3827
      // MIs[0] x
3828
      // No operand predicates
3829
      // MIs[0] y
3830
      // No operand predicates
3831
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner22),
3832
0
      GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
3833
      // Combiner Rule #33: right_identity_one_fp
3834
0
      GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
3835
0
      GIR_EraseFromParent, /*InsnID*/0,
3836
0
      GIR_Done,
3837
    // Label 276: @17665
3838
0
    GIM_Reject,
3839
    // Label 53: @17666
3840
0
    GIM_Try, /*On fail goto*//*Label 277*/ GIMT_Encode4(17682), // Rule ID 178 //
3841
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
3842
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner82),
3843
      // Combiner Rule #105: constant_fold_fma; wip_match_opcode 'G_FMA'
3844
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner51),
3845
0
      GIR_Done,
3846
    // Label 277: @17682
3847
0
    GIM_Try, /*On fail goto*//*Label 278*/ GIMT_Encode4(17698), // Rule ID 191 //
3848
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled),
3849
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner87),
3850
      // Combiner Rule #111: redundant_neg_operands; wip_match_opcode 'G_FMA'
3851
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner22),
3852
0
      GIR_Done,
3853
    // Label 278: @17698
3854
0
    GIM_Reject,
3855
    // Label 54: @17699
3856
0
    GIM_Try, /*On fail goto*//*Label 279*/ GIMT_Encode4(17715), // Rule ID 177 //
3857
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
3858
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner82),
3859
      // Combiner Rule #105: constant_fold_fma; wip_match_opcode 'G_FMAD'
3860
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner51),
3861
0
      GIR_Done,
3862
    // Label 279: @17715
3863
0
    GIM_Try, /*On fail goto*//*Label 280*/ GIMT_Encode4(17731), // Rule ID 190 //
3864
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled),
3865
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner87),
3866
      // Combiner Rule #111: redundant_neg_operands; wip_match_opcode 'G_FMAD'
3867
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner22),
3868
0
      GIR_Done,
3869
    // Label 280: @17731
3870
0
    GIM_Reject,
3871
    // Label 55: @17732
3872
0
    GIM_Try, /*On fail goto*//*Label 281*/ GIMT_Encode4(17748), // Rule ID 176 //
3873
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
3874
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner81),
3875
      // Combiner Rule #104: constant_fold_fp_binop; wip_match_opcode 'G_FDIV'
3876
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner51),
3877
0
      GIR_Done,
3878
    // Label 281: @17748
3879
0
    GIM_Try, /*On fail goto*//*Label 282*/ GIMT_Encode4(17764), // Rule ID 189 //
3880
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled),
3881
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner87),
3882
      // Combiner Rule #111: redundant_neg_operands; wip_match_opcode 'G_FDIV'
3883
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner22),
3884
0
      GIR_Done,
3885
    // Label 282: @17764
3886
0
    GIM_Try, /*On fail goto*//*Label 283*/ GIMT_Encode4(17780), // Rule ID 221 //
3887
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
3888
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
3889
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_FDIV'
3890
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
3891
0
      GIR_Done,
3892
    // Label 283: @17780
3893
0
    GIM_Reject,
3894
    // Label 56: @17781
3895
0
    GIM_Try, /*On fail goto*//*Label 284*/ GIMT_Encode4(17797), // Rule ID 222 //
3896
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
3897
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
3898
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_FREM'
3899
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
3900
0
      GIR_Done,
3901
    // Label 284: @17797
3902
0
    GIM_Reject,
3903
    // Label 57: @17798
3904
0
    GIM_Try, /*On fail goto*//*Label 285*/ GIMT_Encode4(17820), // Rule ID 113 //
3905
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
3906
      // MIs[0] dst
3907
      // No operand predicates
3908
      // MIs[0] src0
3909
0
      GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3910
0
      GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
3911
      // MIs[1] cst
3912
      // No operand predicates
3913
0
      GIM_CheckIsSafeToFold, /*InsnID*/1,
3914
      // Combiner Rule #76: constant_fold_flog2
3915
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner40),
3916
0
      GIR_Done,
3917
    // Label 285: @17820
3918
0
    GIM_Reject,
3919
    // Label 58: @17821
3920
0
    GIM_Try, /*On fail goto*//*Label 286*/ GIMT_Encode4(17837), // Rule ID 247 //
3921
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule133Enabled),
3922
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner109),
3923
      // Combiner Rule #133: foldable_fneg; wip_match_opcode 'G_FNEG'
3924
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner62),
3925
0
      GIR_Done,
3926
    // Label 286: @17837
3927
0
    GIM_Try, /*On fail goto*//*Label 287*/ GIMT_Encode4(17859), // Rule ID 110 //
3928
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
3929
      // MIs[0] dst
3930
      // No operand predicates
3931
      // MIs[0] src0
3932
0
      GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3933
0
      GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
3934
      // MIs[1] cst
3935
      // No operand predicates
3936
0
      GIM_CheckIsSafeToFold, /*InsnID*/1,
3937
      // Combiner Rule #73: constant_fold_fneg
3938
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner40),
3939
0
      GIR_Done,
3940
    // Label 287: @17859
3941
0
    GIM_Try, /*On fail goto*//*Label 288*/ GIMT_Encode4(17890), // Rule ID 60 //
3942
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
3943
      // MIs[0] dst
3944
      // No operand predicates
3945
      // MIs[0] t
3946
0
      GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3947
0
      GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
3948
      // MIs[1] src
3949
      // No operand predicates
3950
0
      GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
3951
0
      GIM_CheckIsSafeToFold, /*InsnID*/1,
3952
      // Combiner Rule #31: fneg_fneg_fold
3953
0
      GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
3954
0
      GIR_EraseFromParent, /*InsnID*/0,
3955
0
      GIR_Done,
3956
    // Label 288: @17890
3957
0
    GIM_Reject,
3958
    // Label 59: @17891
3959
0
    GIM_Try, /*On fail goto*//*Label 289*/ GIMT_Encode4(17920), // Rule ID 239 //
3960
0
      GIM_CheckFeatures, GIMT_Encode2(GIFBS_Has16BitInsts_NotHasMed3_16),
3961
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule129Enabled),
3962
      // MIs[0] fptrunc_dst
3963
      // No operand predicates
3964
      // MIs[0] fmed3_dst
3965
0
      GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3966
0
      GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(AMDGPU::G_AMDGPU_FMED3),
3967
      // MIs[1] src0
3968
      // No operand predicates
3969
      // MIs[1] src1
3970
      // No operand predicates
3971
      // MIs[1] src2
3972
      // No operand predicates
3973
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner105),
3974
0
      GIM_CheckIsSafeToFold, /*InsnID*/1,
3975
      // Combiner Rule #129: expand_promoted_fmed3
3976
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner59),
3977
0
      GIR_Done,
3978
    // Label 289: @17920
3979
0
    GIM_Try, /*On fail goto*//*Label 290*/ GIMT_Encode4(17942), // Rule ID 114 //
3980
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
3981
      // MIs[0] dst
3982
      // No operand predicates
3983
      // MIs[0] src0
3984
0
      GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3985
0
      GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
3986
      // MIs[1] cst
3987
      // No operand predicates
3988
0
      GIM_CheckIsSafeToFold, /*InsnID*/1,
3989
      // Combiner Rule #77: constant_fold_fptrunc
3990
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner40),
3991
0
      GIR_Done,
3992
    // Label 290: @17942
3993
0
    GIM_Try, /*On fail goto*//*Label 291*/ GIMT_Encode4(17968), // Rule ID 70 //
3994
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
3995
      // MIs[0] dst
3996
      // No operand predicates
3997
      // MIs[0] src1
3998
0
      GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3999
0
      GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT),
4000
      // MIs[1] src0
4001
      // No operand predicates
4002
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner26),
4003
0
      GIM_CheckIsSafeToFold, /*InsnID*/1,
4004
      // Combiner Rule #39: fptrunc_fpext_fold
4005
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner18),
4006
0
      GIR_Done,
4007
    // Label 291: @17968
4008
0
    GIM_Reject,
4009
    // Label 60: @17969
4010
0
    GIM_Try, /*On fail goto*//*Label 292*/ GIMT_Encode4(17985), // Rule ID 28 //
4011
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
4012
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
4013
      // Combiner Rule #17: propagate_undef_any_op; wip_match_opcode 'G_FPTOSI'
4014
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner11),
4015
0
      GIR_Done,
4016
    // Label 292: @17985
4017
0
    GIM_Reject,
4018
    // Label 61: @17986
4019
0
    GIM_Try, /*On fail goto*//*Label 293*/ GIMT_Encode4(18002), // Rule ID 29 //
4020
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
4021
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
4022
      // Combiner Rule #17: propagate_undef_any_op; wip_match_opcode 'G_FPTOUI'
4023
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner11),
4024
0
      GIR_Done,
4025
    // Label 293: @18002
4026
0
    GIM_Reject,
4027
    // Label 62: @18003
4028
0
    GIM_Try, /*On fail goto*//*Label 294*/ GIMT_Encode4(18019), // Rule ID 16 //
4029
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
4030
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
4031
      // Combiner Rule #11: undef_to_fp_zero; wip_match_opcode 'G_SITOFP'
4032
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner8),
4033
0
      GIR_Done,
4034
    // Label 294: @18019
4035
0
    GIM_Try, /*On fail goto*//*Label 295*/ GIMT_Encode4(18035), // Rule ID 241 //
4036
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule130Enabled),
4037
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner106),
4038
      // Combiner Rule #130: uchar_to_float; wip_match_opcode 'G_SITOFP'
4039
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner60),
4040
0
      GIR_Done,
4041
    // Label 295: @18035
4042
0
    GIM_Try, /*On fail goto*//*Label 296*/ GIMT_Encode4(18051), // Rule ID 115 //
4043
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
4044
      // MIs[0] dst
4045
      // No operand predicates
4046
      // MIs[0] Operand 1
4047
0
      GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
4048
      // Combiner Rule #78: itof_const_zero_fold_si
4049
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner41),
4050
0
      GIR_Done,
4051
    // Label 296: @18051
4052
0
    GIM_Reject,
4053
    // Label 63: @18052
4054
0
    GIM_Try, /*On fail goto*//*Label 297*/ GIMT_Encode4(18068), // Rule ID 15 //
4055
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
4056
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
4057
      // Combiner Rule #11: undef_to_fp_zero; wip_match_opcode 'G_UITOFP'
4058
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner8),
4059
0
      GIR_Done,
4060
    // Label 297: @18068
4061
0
    GIM_Try, /*On fail goto*//*Label 298*/ GIMT_Encode4(18084), // Rule ID 240 //
4062
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule130Enabled),
4063
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner106),
4064
      // Combiner Rule #130: uchar_to_float; wip_match_opcode 'G_UITOFP'
4065
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner60),
4066
0
      GIR_Done,
4067
    // Label 298: @18084
4068
0
    GIM_Try, /*On fail goto*//*Label 299*/ GIMT_Encode4(18100), // Rule ID 116 //
4069
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
4070
      // MIs[0] dst
4071
      // No operand predicates
4072
      // MIs[0] Operand 1
4073
0
      GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
4074
      // Combiner Rule #79: itof_const_zero_fold_ui
4075
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner41),
4076
0
      GIR_Done,
4077
    // Label 299: @18100
4078
0
    GIM_Reject,
4079
    // Label 64: @18101
4080
0
    GIM_Try, /*On fail goto*//*Label 300*/ GIMT_Encode4(18132), // Rule ID 5 //
4081
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
4082
      // MIs[0] dst
4083
      // No operand predicates
4084
      // MIs[0] src
4085
0
      GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4086
0
      GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FABS),
4087
      // MIs[1] __idempotent_prop_match_0.x
4088
      // No operand predicates
4089
0
      GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4090
0
      GIM_CheckIsSafeToFold, /*InsnID*/1,
4091
      // Combiner Rule #4: idempotent_prop @ [__idempotent_prop_match_0[1]]
4092
0
      GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4093
0
      GIR_EraseFromParent, /*InsnID*/0,
4094
0
      GIR_Done,
4095
    // Label 300: @18132
4096
0
    GIM_Try, /*On fail goto*//*Label 301*/ GIMT_Encode4(18154), // Rule ID 111 //
4097
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
4098
      // MIs[0] dst
4099
      // No operand predicates
4100
      // MIs[0] src0
4101
0
      GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4102
0
      GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
4103
      // MIs[1] cst
4104
      // No operand predicates
4105
0
      GIM_CheckIsSafeToFold, /*InsnID*/1,
4106
      // Combiner Rule #74: constant_fold_fabs
4107
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner40),
4108
0
      GIR_Done,
4109
    // Label 301: @18154
4110
0
    GIM_Try, /*On fail goto*//*Label 302*/ GIMT_Encode4(18187), // Rule ID 182 //
4111
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule107Enabled),
4112
      // MIs[0] dst
4113
      // No operand predicates
4114
      // MIs[0] tmp
4115
0
      GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4116
0
      GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
4117
      // MIs[1] x
4118
      // No operand predicates
4119
0
      GIM_CheckIsSafeToFold, /*InsnID*/1,
4120
      // Combiner Rule #107: fabs_fneg_fold
4121
0
      GIR_BuildMI, /*InsnID*/0, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FABS),
4122
0
      GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // dst
4123
0
      GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
4124
0
      GIR_EraseFromParent, /*InsnID*/0,
4125
0
      GIR_Done,
4126
    // Label 302: @18187
4127
0
    GIM_Reject,
4128
    // Label 65: @18188
4129
0
    GIM_Try, /*On fail goto*//*Label 303*/ GIMT_Encode4(18204), // Rule ID 246 //
4130
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule132Enabled),
4131
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner108),
4132
      // Combiner Rule #132: remove_fcanonicalize; wip_match_opcode 'G_FCANONICALIZE'
4133
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner17),
4134
0
      GIR_Done,
4135
    // Label 303: @18204
4136
0
    GIM_Try, /*On fail goto*//*Label 304*/ GIMT_Encode4(18235), // Rule ID 6 //
4137
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
4138
      // MIs[0] dst
4139
      // No operand predicates
4140
      // MIs[0] src
4141
0
      GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4142
0
      GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCANONICALIZE),
4143
      // MIs[1] __idempotent_prop_match_0.x
4144
      // No operand predicates
4145
0
      GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4146
0
      GIM_CheckIsSafeToFold, /*InsnID*/1,
4147
      // Combiner Rule #4: idempotent_prop @ [__idempotent_prop_match_0[2]]
4148
0
      GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4149
0
      GIR_EraseFromParent, /*InsnID*/0,
4150
0
      GIR_Done,
4151
    // Label 304: @18235
4152
0
    GIM_Reject,
4153
    // Label 66: @18236
4154
0
    GIM_Try, /*On fail goto*//*Label 305*/ GIMT_Encode4(18252), // Rule ID 129 //
4155
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
4156
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner65),
4157
      // Combiner Rule #86: combine_minmax_nan; wip_match_opcode 'G_FMINNUM'
4158
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner27),
4159
0
      GIR_Done,
4160
    // Label 305: @18252
4161
0
    GIM_Try, /*On fail goto*//*Label 306*/ GIMT_Encode4(18268), // Rule ID 223 //
4162
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
4163
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
4164
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_FMINNUM'
4165
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
4166
0
      GIR_Done,
4167
    // Label 306: @18268
4168
0
    GIM_Reject,
4169
    // Label 67: @18269
4170
0
    GIM_Try, /*On fail goto*//*Label 307*/ GIMT_Encode4(18285), // Rule ID 130 //
4171
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
4172
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner65),
4173
      // Combiner Rule #86: combine_minmax_nan; wip_match_opcode 'G_FMAXNUM'
4174
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner27),
4175
0
      GIR_Done,
4176
    // Label 307: @18285
4177
0
    GIM_Try, /*On fail goto*//*Label 308*/ GIMT_Encode4(18301), // Rule ID 224 //
4178
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
4179
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
4180
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_FMAXNUM'
4181
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
4182
0
      GIR_Done,
4183
    // Label 308: @18301
4184
0
    GIM_Reject,
4185
    // Label 68: @18302
4186
0
    GIM_Try, /*On fail goto*//*Label 309*/ GIMT_Encode4(18318), // Rule ID 131 //
4187
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
4188
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner65),
4189
      // Combiner Rule #86: combine_minmax_nan; wip_match_opcode 'G_FMINIMUM'
4190
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner27),
4191
0
      GIR_Done,
4192
    // Label 309: @18318
4193
0
    GIM_Try, /*On fail goto*//*Label 310*/ GIMT_Encode4(18334), // Rule ID 225 //
4194
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
4195
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
4196
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_FMINIMUM'
4197
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
4198
0
      GIR_Done,
4199
    // Label 310: @18334
4200
0
    GIM_Reject,
4201
    // Label 69: @18335
4202
0
    GIM_Try, /*On fail goto*//*Label 311*/ GIMT_Encode4(18351), // Rule ID 132 //
4203
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
4204
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner65),
4205
      // Combiner Rule #86: combine_minmax_nan; wip_match_opcode 'G_FMAXIMUM'
4206
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner27),
4207
0
      GIR_Done,
4208
    // Label 311: @18351
4209
0
    GIM_Try, /*On fail goto*//*Label 312*/ GIMT_Encode4(18367), // Rule ID 226 //
4210
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
4211
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
4212
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_FMAXIMUM'
4213
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
4214
0
      GIR_Done,
4215
    // Label 312: @18367
4216
0
    GIM_Reject,
4217
    // Label 70: @18368
4218
0
    GIM_Try, /*On fail goto*//*Label 313*/ GIMT_Encode4(18384), // Rule ID 80 //
4219
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
4220
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner32),
4221
      // Combiner Rule #45: reassoc_ptradd; wip_match_opcode 'G_PTR_ADD'
4222
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner22),
4223
0
      GIR_Done,
4224
    // Label 313: @18384
4225
0
    GIM_Try, /*On fail goto*//*Label 314*/ GIMT_Encode4(18400), // Rule ID 82 //
4226
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled),
4227
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner34),
4228
      // Combiner Rule #47: ptr_add_immed_chain; wip_match_opcode 'G_PTR_ADD'
4229
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner23),
4230
0
      GIR_Done,
4231
    // Label 314: @18400
4232
0
    GIM_Try, /*On fail goto*//*Label 315*/ GIMT_Encode4(18416), // Rule ID 117 //
4233
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
4234
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner59),
4235
      // Combiner Rule #80: const_ptradd_to_i2p; wip_match_opcode 'G_PTR_ADD'
4236
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner42),
4237
0
      GIR_Done,
4238
    // Label 315: @18416
4239
0
    GIM_Try, /*On fail goto*//*Label 316*/ GIMT_Encode4(18432), // Rule ID 134 //
4240
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
4241
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner67),
4242
      // Combiner Rule #88: ptr_add_with_zero; wip_match_opcode 'G_PTR_ADD'
4243
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner44),
4244
0
      GIR_Done,
4245
    // Label 316: @18432
4246
0
    GIM_Try, /*On fail goto*//*Label 317*/ GIMT_Encode4(18448), // Rule ID 203 //
4247
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
4248
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
4249
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_PTR_ADD'
4250
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
4251
0
      GIR_Done,
4252
    // Label 317: @18448
4253
0
    GIM_Try, /*On fail goto*//*Label 318*/ GIMT_Encode4(18473), // Rule ID 47 //
4254
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
4255
      // MIs[0] dst
4256
      // No operand predicates
4257
      // MIs[0] lhs
4258
      // No operand predicates
4259
      // MIs[0] Operand 2
4260
0
      GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4261
0
      GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4262
      // Combiner Rule #24: right_identity_zero @ [__right_identity_zero_match_0[7]]
4263
0
      GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4264
0
      GIR_EraseFromParent, /*InsnID*/0,
4265
0
      GIR_Done,
4266
    // Label 318: @18473
4267
0
    GIM_Reject,
4268
    // Label 71: @18474
4269
0
    GIM_Try, /*On fail goto*//*Label 319*/ GIMT_Encode4(18490), // Rule ID 214 //
4270
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
4271
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
4272
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_SMIN'
4273
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
4274
0
      GIR_Done,
4275
    // Label 319: @18490
4276
0
    GIM_Reject,
4277
    // Label 72: @18491
4278
0
    GIM_Try, /*On fail goto*//*Label 320*/ GIMT_Encode4(18507), // Rule ID 215 //
4279
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
4280
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
4281
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_SMAX'
4282
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
4283
0
      GIR_Done,
4284
    // Label 320: @18507
4285
0
    GIM_Reject,
4286
    // Label 73: @18508
4287
0
    GIM_Try, /*On fail goto*//*Label 321*/ GIMT_Encode4(18524), // Rule ID 216 //
4288
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
4289
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
4290
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_UMIN'
4291
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
4292
0
      GIR_Done,
4293
    // Label 321: @18524
4294
0
    GIM_Reject,
4295
    // Label 74: @18525
4296
0
    GIM_Try, /*On fail goto*//*Label 322*/ GIMT_Encode4(18541), // Rule ID 217 //
4297
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
4298
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner97),
4299
      // Combiner Rule #121: fold_binop_into_select; wip_match_opcode 'G_UMAX'
4300
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner55),
4301
0
      GIR_Done,
4302
    // Label 322: @18541
4303
0
    GIM_Reject,
4304
    // Label 75: @18542
4305
0
    GIM_Try, /*On fail goto*//*Label 323*/ GIMT_Encode4(18558), // Rule ID 26 //
4306
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
4307
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner10),
4308
      // Combiner Rule #16: unary_undef_to_zero; wip_match_opcode 'G_ABS'
4309
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner9),
4310
0
      GIR_Done,
4311
    // Label 323: @18558
4312
0
    GIM_Reject,
4313
    // Label 76: @18559
4314
0
    GIM_Try, /*On fail goto*//*Label 324*/ GIMT_Encode4(18575), // Rule ID 102 //
4315
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
4316
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner51),
4317
      // Combiner Rule #65: opt_brcond_by_inverting_cond; wip_match_opcode 'G_BR'
4318
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner33),
4319
0
      GIR_Done,
4320
    // Label 324: @18575
4321
0
    GIM_Reject,
4322
    // Label 77: @18576
4323
0
    GIM_Try, /*On fail goto*//*Label 325*/ GIMT_Encode4(18592), // Rule ID 7 //
4324
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
4325
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3),
4326
      // Combiner Rule #5: combine_insert_vec_elts_build_vector; wip_match_opcode 'G_INSERT_VECTOR_ELT'
4327
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner3),
4328
0
      GIR_Done,
4329
    // Label 325: @18592
4330
0
    GIM_Try, /*On fail goto*//*Label 326*/ GIMT_Encode4(18608), // Rule ID 37 //
4331
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
4332
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner16),
4333
      // Combiner Rule #22: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_INSERT_VECTOR_ELT'
4334
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner11),
4335
0
      GIR_Done,
4336
    // Label 326: @18608
4337
0
    GIM_Reject,
4338
    // Label 78: @18609
4339
0
    GIM_Try, /*On fail goto*//*Label 327*/ GIMT_Encode4(18625), // Rule ID 8 //
4340
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
4341
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner4),
4342
      // Combiner Rule #6: extract_vec_elt_build_vec; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
4343
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner4),
4344
0
      GIR_Done,
4345
    // Label 327: @18625
4346
0
    GIM_Try, /*On fail goto*//*Label 328*/ GIMT_Encode4(18641), // Rule ID 14 //
4347
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
4348
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner8),
4349
      // Combiner Rule #10: combine_extracted_vector_load; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
4350
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
4351
0
      GIR_Done,
4352
    // Label 328: @18641
4353
0
    GIM_Try, /*On fail goto*//*Label 329*/ GIMT_Encode4(18657), // Rule ID 38 //
4354
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
4355
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner16),
4356
      // Combiner Rule #22: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
4357
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner11),
4358
0
      GIR_Done,
4359
    // Label 329: @18657
4360
0
    GIM_Reject,
4361
    // Label 79: @18658
4362
0
    GIM_Try, /*On fail goto*//*Label 330*/ GIMT_Encode4(18674), // Rule ID 33 //
4363
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
4364
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
4365
      // Combiner Rule #18: propagate_undef_all_ops; wip_match_opcode 'G_SHUFFLE_VECTOR'
4366
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner11),
4367
0
      GIR_Done,
4368
    // Label 330: @18674
4369
0
    GIM_Try, /*On fail goto*//*Label 331*/ GIMT_Encode4(18690), // Rule ID 34 //
4370
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
4371
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
4372
      // Combiner Rule #19: propagate_undef_shuffle_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
4373
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner11),
4374
0
      GIR_Done,
4375
    // Label 331: @18690
4376
0
    GIM_Reject,
4377
    // Label 80: @18691
4378
0
    GIM_Try, /*On fail goto*//*Label 332*/ GIMT_Encode4(18707), // Rule ID 249 //
4379
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule134Enabled),
4380
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner110),
4381
      // Combiner Rule #134: rcp_sqrt_to_rsq; wip_match_opcode 'G_FSQRT'
4382
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner7),
4383
0
      GIR_Done,
4384
    // Label 332: @18707
4385
0
    GIM_Try, /*On fail goto*//*Label 333*/ GIMT_Encode4(18729), // Rule ID 112 //
4386
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
4387
      // MIs[0] dst
4388
      // No operand predicates
4389
      // MIs[0] src0
4390
0
      GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4391
0
      GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
4392
      // MIs[1] cst
4393
      // No operand predicates
4394
0
      GIM_CheckIsSafeToFold, /*InsnID*/1,
4395
      // Combiner Rule #75: constant_fold_fsqrt
4396
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner40),
4397
0
      GIR_Done,
4398
    // Label 333: @18729
4399
0
    GIM_Reject,
4400
    // Label 81: @18730
4401
0
    GIM_Try, /*On fail goto*//*Label 334*/ GIMT_Encode4(18746), // Rule ID 242 //
4402
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled),
4403
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner107),
4404
      // Combiner Rule #131: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE0'
4405
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner61),
4406
0
      GIR_Done,
4407
    // Label 334: @18746
4408
0
    GIM_Reject,
4409
    // Label 82: @18747
4410
0
    GIM_Try, /*On fail goto*//*Label 335*/ GIMT_Encode4(18763), // Rule ID 243 //
4411
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled),
4412
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner107),
4413
      // Combiner Rule #131: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE1'
4414
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner61),
4415
0
      GIR_Done,
4416
    // Label 335: @18763
4417
0
    GIM_Reject,
4418
    // Label 83: @18764
4419
0
    GIM_Try, /*On fail goto*//*Label 336*/ GIMT_Encode4(18780), // Rule ID 244 //
4420
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled),
4421
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner107),
4422
      // Combiner Rule #131: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE2'
4423
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner61),
4424
0
      GIR_Done,
4425
    // Label 336: @18780
4426
0
    GIM_Reject,
4427
    // Label 84: @18781
4428
0
    GIM_Try, /*On fail goto*//*Label 337*/ GIMT_Encode4(18797), // Rule ID 245 //
4429
0
      GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled),
4430
0
      GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner107),
4431
      // Combiner Rule #131: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE3'
4432
0
      GIR_CustomAction, GIMT_Encode2(GICXXCustomAction_CombineApplyGICombiner61),
4433
0
      GIR_Done,
4434
    // Label 337: @18797
4435
0
    GIM_Reject,
4436
    // Label 85: @18798
4437
0
    GIM_Reject,
4438
0
    }; // Size: 18799 bytes
4439
0
  return MatchTable0;
4440
0
}
4441
#undef GIMT_Encode2
4442
#undef GIMT_Encode4
4443
#undef GIMT_Encode8
4444
4445
#endif // ifdef GET_GICOMBINER_IMPL
4446
4447
#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
4448
AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
4449
AvailableFunctionFeatures()
4450
#endif // ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
4451
#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
4452
, State(0),
4453
ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
4454
#endif // ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
4455