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"
11namespace llvm {
12extern cl::OptionCategory GICombinerOptionCategory;
13} // end namespace llvm
14#endif // ifdef GET_GICOMBINER_DEPS
15
16#ifdef GET_GICOMBINER_TYPES
17struct 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
26static std::optional<uint64_t> getRuleIdxForIdentifier(StringRef RuleIdentifier) {
27 uint64_t I;
28 // getAtInteger(...) returns false on success
29 bool Parsed = !RuleIdentifier.getAsInteger(Radix: 0, Result&: I);
30 if (Parsed)
31 return I;
32
33#ifndef NDEBUG
34 switch (RuleIdentifier.size()) {
35 default: break;
36 case 7: // 1 string to match.
37 if (memcmp(RuleIdentifier.data()+0, "smulu64", 7) != 0)
38 break;
39 return 225; // "smulu64"
40 case 9: // 5 strings to match.
41 switch (RuleIdentifier[0]) {
42 default: break;
43 case 'c': // 1 string to match.
44 if (memcmp(RuleIdentifier.data()+1, "opy_prop", 8) != 0)
45 break;
46 return 13; // "copy_prop"
47 case 'm': // 3 strings to match.
48 switch (RuleIdentifier[1]) {
49 default: break;
50 case 'a': // 1 string to match.
51 if (memcmp(RuleIdentifier.data()+2, "tch_ors", 7) != 0)
52 break;
53 return 194; // "match_ors"
54 case 'u': // 2 strings to match.
55 if (memcmp(RuleIdentifier.data()+2, "lo_by_", 6) != 0)
56 break;
57 switch (RuleIdentifier[8]) {
58 default: break;
59 case '0': // 1 string to match.
60 return 144; // "mulo_by_0"
61 case '2': // 1 string to match.
62 return 143; // "mulo_by_2"
63 }
64 break;
65 }
66 break;
67 case 'n': // 1 string to match.
68 if (memcmp(RuleIdentifier.data()+1, "neg_zext", 8) != 0)
69 break;
70 return 199; // "nneg_zext"
71 }
72 break;
73 case 10: // 7 strings to match.
74 switch (RuleIdentifier[0]) {
75 default: break;
76 case 'i': // 1 string to match.
77 if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i", 9) != 0)
78 break;
79 return 89; // "i2p_to_p2i"
80 case 'm': // 2 strings to match.
81 switch (RuleIdentifier[1]) {
82 default: break;
83 case 'a': // 1 string to match.
84 if (memcmp(RuleIdentifier.data()+2, "tch_ands", 8) != 0)
85 break;
86 return 193; // "match_ands"
87 case 'u': // 1 string to match.
88 if (memcmp(RuleIdentifier.data()+2, "l_to_shl", 8) != 0)
89 break;
90 return 14; // "mul_to_shl"
91 }
92 break;
93 case 'p': // 1 string to match.
94 if (memcmp(RuleIdentifier.data()+1, "2i_to_i2p", 9) != 0)
95 break;
96 return 88; // "p2i_to_i2p"
97 case 's': // 2 strings to match.
98 switch (RuleIdentifier[1]) {
99 default: break;
100 case 'e': // 1 string to match.
101 if (memcmp(RuleIdentifier.data()+2, "xt_trunc", 8) != 0)
102 break;
103 return 197; // "sext_trunc"
104 case 'u': // 1 string to match.
105 if (memcmp(RuleIdentifier.data()+2, "b_to_add", 8) != 0)
106 break;
107 return 15; // "sub_to_add"
108 }
109 break;
110 case 'z': // 1 string to match.
111 if (memcmp(RuleIdentifier.data()+1, "ext_trunc", 9) != 0)
112 break;
113 return 198; // "zext_trunc"
114 }
115 break;
116 case 11: // 5 strings to match.
117 switch (RuleIdentifier[0]) {
118 default: break;
119 case 'a': // 1 string to match.
120 if (memcmp(RuleIdentifier.data()+1, "dd_sub_reg", 10) != 0)
121 break;
122 return 94; // "add_sub_reg"
123 case 'm': // 1 string to match.
124 if (memcmp(RuleIdentifier.data()+1, "atch_addos", 10) != 0)
125 break;
126 return 213; // "match_addos"
127 case 's': // 1 string to match.
128 if (memcmp(RuleIdentifier.data()+1, "ub_add_reg", 10) != 0)
129 break;
130 return 188; // "sub_add_reg"
131 case 't': // 1 string to match.
132 if (memcmp(RuleIdentifier.data()+1, "runc_shift", 10) != 0)
133 break;
134 return 131; // "trunc_shift"
135 case 'u': // 1 string to match.
136 if (memcmp(RuleIdentifier.data()+1, "nmerge_cst", 10) != 0)
137 break;
138 return 207; // "unmerge_cst"
139 }
140 break;
141 case 12: // 11 strings to match.
142 switch (RuleIdentifier[0]) {
143 default: break;
144 case 'A': // 1 string to match.
145 if (memcmp(RuleIdentifier.data()+1, "PlusBMinusB", 11) != 0)
146 break;
147 return 2; // "APlusBMinusB"
148 case 'B': // 1 string to match.
149 if (memcmp(RuleIdentifier.data()+1, "MinusAPlusA", 11) != 0)
150 break;
151 return 3; // "BMinusAPlusA"
152 case 'a': // 1 string to match.
153 if (memcmp(RuleIdentifier.data()+1, "dde_to_addo", 11) != 0)
154 break;
155 return 145; // "adde_to_addo"
156 case 'f': // 1 string to match.
157 if (memcmp(RuleIdentifier.data()+1, "sub_to_fneg", 11) != 0)
158 break;
159 return 190; // "fsub_to_fneg"
160 case 'm': // 1 string to match.
161 if (memcmp(RuleIdentifier.data()+1, "ulh_to_lshr", 11) != 0)
162 break;
163 return 175; // "mulh_to_lshr"
164 case 'n': // 1 string to match.
165 if (memcmp(RuleIdentifier.data()+1, "ot_cmp_fold", 11) != 0)
166 break;
167 return 132; // "not_cmp_fold"
168 case 'r': // 1 string to match.
169 if (memcmp(RuleIdentifier.data()+1, "edundant_or", 11) != 0)
170 break;
171 return 127; // "redundant_or"
172 case 's': // 2 strings to match.
173 switch (RuleIdentifier[1]) {
174 default: break;
175 case 'd': // 1 string to match.
176 if (memcmp(RuleIdentifier.data()+2, "iv_by_pow2", 10) != 0)
177 break;
178 return 173; // "sdiv_by_pow2"
179 case 'e': // 1 string to match.
180 if (memcmp(RuleIdentifier.data()+2, "xt_of_sext", 10) != 0)
181 break;
182 return 48; // "sext_of_sext"
183 }
184 break;
185 case 'u': // 1 string to match.
186 if (memcmp(RuleIdentifier.data()+1, "div_by_pow2", 11) != 0)
187 break;
188 return 174; // "udiv_by_pow2"
189 case 'z': // 1 string to match.
190 if (memcmp(RuleIdentifier.data()+1, "ext_of_zext", 11) != 0)
191 break;
192 return 46; // "zext_of_zext"
193 }
194 break;
195 case 13: // 15 strings to match.
196 switch (RuleIdentifier[0]) {
197 default: break;
198 case 'a': // 1 string to match.
199 if (memcmp(RuleIdentifier.data()+1, "dd_of_vscale", 12) != 0)
200 break;
201 return 37; // "add_of_vscale"
202 case 'c': // 1 string to match.
203 if (memcmp(RuleIdentifier.data()+1, "ommute_shift", 12) != 0)
204 break;
205 return 161; // "commute_shift"
206 case 'f': // 1 string to match.
207 if (memcmp(RuleIdentifier.data()+1, "oldable_fneg", 12) != 0)
208 break;
209 return 221; // "foldable_fneg"
210 case 'l': // 1 string to match.
211 if (memcmp(RuleIdentifier.data()+1, "oad_and_mask", 12) != 0)
212 break;
213 return 69; // "load_and_mask"
214 case 'm': // 3 strings to match.
215 switch (RuleIdentifier[1]) {
216 default: break;
217 case 'a': // 1 string to match.
218 if (memcmp(RuleIdentifier.data()+2, "tch_selects", 11) != 0)
219 break;
220 return 124; // "match_selects"
221 case 'e': // 1 string to match.
222 if (memcmp(RuleIdentifier.data()+2, "rge_unmerge", 11) != 0)
223 break;
224 return 206; // "merge_unmerge"
225 case 'u': // 1 string to match.
226 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
227 break;
228 return 38; // "mul_of_vscale"
229 }
230 break;
231 case 'r': // 1 string to match.
232 if (memcmp(RuleIdentifier.data()+1, "edundant_and", 12) != 0)
233 break;
234 return 125; // "redundant_and"
235 case 's': // 3 strings to match.
236 switch (RuleIdentifier[1]) {
237 default: break;
238 case 'd': // 1 string to match.
239 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
240 break;
241 return 172; // "sdiv_by_const"
242 case 'h': // 1 string to match.
243 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
244 break;
245 return 39; // "shl_of_vscale"
246 case 'u': // 1 string to match.
247 if (memcmp(RuleIdentifier.data()+2, "b_of_vscale", 11) != 0)
248 break;
249 return 40; // "sub_of_vscale"
250 }
251 break;
252 case 'u': // 4 strings to match.
253 switch (RuleIdentifier[1]) {
254 default: break;
255 case 'd': // 1 string to match.
256 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
257 break;
258 return 171; // "udiv_by_const"
259 case 'n': // 2 strings to match.
260 if (memcmp(RuleIdentifier.data()+2, "merge_", 6) != 0)
261 break;
262 switch (RuleIdentifier[8]) {
263 default: break;
264 case 'm': // 1 string to match.
265 if (memcmp(RuleIdentifier.data()+9, "erge", 4) != 0)
266 break;
267 return 205; // "unmerge_merge"
268 case 'u': // 1 string to match.
269 if (memcmp(RuleIdentifier.data()+9, "ndef", 4) != 0)
270 break;
271 return 208; // "unmerge_undef"
272 }
273 break;
274 case 'r': // 1 string to match.
275 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
276 break;
277 return 187; // "urem_by_const"
278 }
279 break;
280 }
281 break;
282 case 14: // 17 strings to match.
283 switch (RuleIdentifier[0]) {
284 default: break;
285 case 'A': // 2 strings to match.
286 switch (RuleIdentifier[1]) {
287 default: break;
288 case 'M': // 1 string to match.
289 if (memcmp(RuleIdentifier.data()+2, "inusC1PlusC2", 12) != 0)
290 break;
291 return 12; // "AMinusC1PlusC2"
292 case 'P': // 1 string to match.
293 if (memcmp(RuleIdentifier.data()+2, "lusC1MinusC2", 12) != 0)
294 break;
295 return 8; // "APlusC1MinusC2"
296 }
297 break;
298 case 'C': // 1 string to match.
299 if (memcmp(RuleIdentifier.data()+1, "2MinusAPlusC1", 13) != 0)
300 break;
301 return 9; // "C2MinusAPlusC1"
302 case 'a': // 2 strings to match.
303 if (memcmp(RuleIdentifier.data()+1, "nyext_of_", 9) != 0)
304 break;
305 switch (RuleIdentifier[10]) {
306 default: break;
307 case 's': // 1 string to match.
308 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
309 break;
310 return 52; // "anyext_of_sext"
311 case 'z': // 1 string to match.
312 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
313 break;
314 return 51; // "anyext_of_zext"
315 }
316 break;
317 case 'b': // 2 strings to match.
318 if (RuleIdentifier[1] != 'i')
319 break;
320 switch (RuleIdentifier[2]) {
321 default: break;
322 case 'n': // 1 string to match.
323 if (memcmp(RuleIdentifier.data()+3, "op_same_val", 11) != 0)
324 break;
325 return 85; // "binop_same_val"
326 case 't': // 1 string to match.
327 if (memcmp(RuleIdentifier.data()+3, "reverse_shl", 11) != 0)
328 break;
329 return 159; // "bitreverse_shl"
330 }
331 break;
332 case 'c': // 1 string to match.
333 if (memcmp(RuleIdentifier.data()+1, "vt_f32_ubyteN", 13) != 0)
334 break;
335 return 219; // "cvt_f32_ubyteN"
336 case 'f': // 2 strings to match.
337 switch (RuleIdentifier[1]) {
338 default: break;
339 case 'a': // 1 string to match.
340 if (memcmp(RuleIdentifier.data()+2, "bs_fneg_fold", 12) != 0)
341 break;
342 return 170; // "fabs_fneg_fold"
343 case 'n': // 1 string to match.
344 if (memcmp(RuleIdentifier.data()+2, "eg_fneg_fold", 12) != 0)
345 break;
346 return 91; // "fneg_fneg_fold"
347 }
348 break;
349 case 'm': // 1 string to match.
350 if (memcmp(RuleIdentifier.data()+1, "ul_by_neg_one", 13) != 0)
351 break;
352 return 17; // "mul_by_neg_one"
353 case 'r': // 1 string to match.
354 if (memcmp(RuleIdentifier.data()+1, "eassoc_ptradd", 13) != 0)
355 break;
356 return 106; // "reassoc_ptradd"
357 case 's': // 3 strings to match.
358 switch (RuleIdentifier[1]) {
359 default: break;
360 case 'e': // 2 strings to match.
361 switch (RuleIdentifier[2]) {
362 default: break;
363 case 'l': // 1 string to match.
364 if (memcmp(RuleIdentifier.data()+3, "ect_of_zext", 11) != 0)
365 break;
366 return 54; // "select_of_zext"
367 case 'x': // 1 string to match.
368 if (memcmp(RuleIdentifier.data()+3, "t_of_anyext", 11) != 0)
369 break;
370 return 49; // "sext_of_anyext"
371 }
372 break;
373 case 'h': // 1 string to match.
374 if (memcmp(RuleIdentifier.data()+2, "ifts_too_big", 12) != 0)
375 break;
376 return 105; // "shifts_too_big"
377 }
378 break;
379 case 'u': // 1 string to match.
380 if (memcmp(RuleIdentifier.data()+1, "char_to_float", 13) != 0)
381 break;
382 return 218; // "uchar_to_float"
383 case 'z': // 1 string to match.
384 if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
385 break;
386 return 47; // "zext_of_anyext"
387 }
388 break;
389 case 15: // 13 strings to match.
390 switch (RuleIdentifier[0]) {
391 default: break;
392 case 'A': // 2 strings to match.
393 switch (RuleIdentifier[1]) {
394 default: break;
395 case 'M': // 1 string to match.
396 if (memcmp(RuleIdentifier.data()+2, "inusC1MinusC2", 13) != 0)
397 break;
398 return 10; // "AMinusC1MinusC2"
399 case 'P': // 1 string to match.
400 if (memcmp(RuleIdentifier.data()+2, "lusZeroMinusB", 13) != 0)
401 break;
402 return 1; // "APlusZeroMinusB"
403 }
404 break;
405 case 'C': // 1 string to match.
406 if (memcmp(RuleIdentifier.data()+1, "1Minus2MinusC2", 14) != 0)
407 break;
408 return 11; // "C1Minus2MinusC2"
409 case 'Z': // 1 string to match.
410 if (memcmp(RuleIdentifier.data()+1, "eroMinusAPlusB", 14) != 0)
411 break;
412 return 0; // "ZeroMinusAPlusB"
413 case 'b': // 1 string to match.
414 if (memcmp(RuleIdentifier.data()+1, "itreverse_lshr", 14) != 0)
415 break;
416 return 160; // "bitreverse_lshr"
417 case 'e': // 1 string to match.
418 if (memcmp(RuleIdentifier.data()+1, "xtending_loads", 14) != 0)
419 break;
420 return 68; // "extending_loads"
421 case 'i': // 1 string to match.
422 if (memcmp(RuleIdentifier.data()+1, "dempotent_prop", 14) != 0)
423 break;
424 return 18; // "idempotent_prop"
425 case 'l': // 1 string to match.
426 if (memcmp(RuleIdentifier.data()+1, "oad_or_combine", 14) != 0)
427 break;
428 return 152; // "load_or_combine"
429 case 'n': // 1 string to match.
430 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_or", 14) != 0)
431 break;
432 return 62; // "narrow_binop_or"
433 case 'o': // 1 string to match.
434 if (memcmp(RuleIdentifier.data()+1, "verlapping_and", 14) != 0)
435 break;
436 return 142; // "overlapping_and"
437 case 'r': // 1 string to match.
438 if (memcmp(RuleIdentifier.data()+1, "cp_sqrt_to_rsq", 14) != 0)
439 break;
440 return 222; // "rcp_sqrt_to_rsq"
441 case 's': // 1 string to match.
442 if (memcmp(RuleIdentifier.data()+1, "elect_same_val", 14) != 0)
443 break;
444 return 83; // "select_same_val"
445 case 'z': // 1 string to match.
446 if (memcmp(RuleIdentifier.data()+1, "ext_trunc_fold", 14) != 0)
447 break;
448 return 129; // "zext_trunc_fold"
449 }
450 break;
451 case 16: // 12 strings to match.
452 switch (RuleIdentifier[0]) {
453 default: break;
454 case 'a': // 1 string to match.
455 if (memcmp(RuleIdentifier.data()+1, "nyext_of_anyext", 15) != 0)
456 break;
457 return 50; // "anyext_of_anyext"
458 case 'n': // 5 strings to match.
459 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_", 12) != 0)
460 break;
461 switch (RuleIdentifier[13]) {
462 default: break;
463 case 'a': // 2 strings to match.
464 switch (RuleIdentifier[14]) {
465 default: break;
466 case 'd': // 1 string to match.
467 if (RuleIdentifier[15] != 'd')
468 break;
469 return 58; // "narrow_binop_add"
470 case 'n': // 1 string to match.
471 if (RuleIdentifier[15] != 'd')
472 break;
473 return 61; // "narrow_binop_and"
474 }
475 break;
476 case 'm': // 1 string to match.
477 if (memcmp(RuleIdentifier.data()+14, "ul", 2) != 0)
478 break;
479 return 60; // "narrow_binop_mul"
480 case 's': // 1 string to match.
481 if (memcmp(RuleIdentifier.data()+14, "ub", 2) != 0)
482 break;
483 return 59; // "narrow_binop_sub"
484 case 'x': // 1 string to match.
485 if (memcmp(RuleIdentifier.data()+14, "or", 2) != 0)
486 break;
487 return 63; // "narrow_binop_xor"
488 }
489 break;
490 case 's': // 3 strings to match.
491 if (memcmp(RuleIdentifier.data()+1, "elect_", 6) != 0)
492 break;
493 switch (RuleIdentifier[7]) {
494 default: break;
495 case 'o': // 1 string to match.
496 if (memcmp(RuleIdentifier.data()+8, "f_anyext", 8) != 0)
497 break;
498 return 55; // "select_of_anyext"
499 case 't': // 1 string to match.
500 if (memcmp(RuleIdentifier.data()+8, "o_minmax", 8) != 0)
501 break;
502 return 189; // "select_to_minmax"
503 case 'u': // 1 string to match.
504 if (memcmp(RuleIdentifier.data()+8, "ndef_cmp", 8) != 0)
505 break;
506 return 121; // "select_undef_cmp"
507 }
508 break;
509 case 't': // 2 strings to match.
510 if (memcmp(RuleIdentifier.data()+1, "runcate_of_", 11) != 0)
511 break;
512 switch (RuleIdentifier[12]) {
513 default: break;
514 case 's': // 1 string to match.
515 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
516 break;
517 return 44; // "truncate_of_sext"
518 case 'z': // 1 string to match.
519 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
520 break;
521 return 43; // "truncate_of_zext"
522 }
523 break;
524 case 'u': // 1 string to match.
525 if (memcmp(RuleIdentifier.data()+1, "ndef_to_fp_zero", 15) != 0)
526 break;
527 return 71; // "undef_to_fp_zero"
528 }
529 break;
530 case 17: // 14 strings to match.
531 switch (RuleIdentifier[0]) {
532 default: break;
533 case 'A': // 2 strings to match.
534 if (memcmp(RuleIdentifier.data()+1, "PlusBMinus", 10) != 0)
535 break;
536 switch (RuleIdentifier[11]) {
537 default: break;
538 case 'A': // 1 string to match.
539 if (memcmp(RuleIdentifier.data()+12, "plusC", 5) != 0)
540 break;
541 return 6; // "APlusBMinusAplusC"
542 case 'C': // 1 string to match.
543 if (memcmp(RuleIdentifier.data()+12, "PlusA", 5) != 0)
544 break;
545 return 7; // "APlusBMinusCPlusA"
546 }
547 break;
548 case 'a': // 2 strings to match.
549 switch (RuleIdentifier[1]) {
550 default: break;
551 case 'd': // 1 string to match.
552 if (memcmp(RuleIdentifier.data()+2, "d_p2i_to_ptradd", 15) != 0)
553 break;
554 return 16; // "add_p2i_to_ptradd"
555 case 'n': // 1 string to match.
556 if (memcmp(RuleIdentifier.data()+2, "yext_trunc_fold", 15) != 0)
557 break;
558 return 90; // "anyext_trunc_fold"
559 }
560 break;
561 case 'c': // 3 strings to match.
562 switch (RuleIdentifier[1]) {
563 default: break;
564 case 'a': // 2 strings to match.
565 if (memcmp(RuleIdentifier.data()+2, "nonicalize_", 11) != 0)
566 break;
567 switch (RuleIdentifier[13]) {
568 default: break;
569 case 'f': // 1 string to match.
570 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
571 break;
572 return 110; // "canonicalize_fcmp"
573 case 'i': // 1 string to match.
574 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
575 break;
576 return 109; // "canonicalize_icmp"
577 }
578 break;
579 case 'o': // 1 string to match.
580 if (memcmp(RuleIdentifier.data()+2, "nstant_fold_fma", 15) != 0)
581 break;
582 return 168; // "constant_fold_fma"
583 }
584 break;
585 case 'd': // 1 string to match.
586 if (memcmp(RuleIdentifier.data()+1, "iv_rem_to_divrem", 16) != 0)
587 break;
588 return 153; // "div_rem_to_divrem"
589 case 'e': // 1 string to match.
590 if (memcmp(RuleIdentifier.data()+1, "rase_undef_store", 16) != 0)
591 break;
592 return 81; // "erase_undef_store"
593 case 'p': // 1 string to match.
594 if (memcmp(RuleIdentifier.data()+1, "tr_add_with_zero", 16) != 0)
595 break;
596 return 149; // "ptr_add_with_zero"
597 case 's': // 2 strings to match.
598 switch (RuleIdentifier[1]) {
599 default: break;
600 case 'e': // 1 string to match.
601 if (memcmp(RuleIdentifier.data()+2, "lect_to_iminmax", 15) != 0)
602 break;
603 return 123; // "select_to_iminmax"
604 case 'h': // 1 string to match.
605 if (memcmp(RuleIdentifier.data()+2, "ift_immed_chain", 15) != 0)
606 break;
607 return 150; // "shift_immed_chain"
608 }
609 break;
610 case 'u': // 2 strings to match.
611 switch (RuleIdentifier[1]) {
612 default: break;
613 case 'n': // 1 string to match.
614 if (memcmp(RuleIdentifier.data()+2, "def_to_int_zero", 15) != 0)
615 break;
616 return 72; // "undef_to_int_zero"
617 case 'r': // 1 string to match.
618 if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
619 break;
620 return 128; // "urem_pow2_to_mask"
621 }
622 break;
623 }
624 break;
625 case 18: // 11 strings to match.
626 switch (RuleIdentifier[0]) {
627 default: break;
628 case 'A': // 2 strings to match.
629 if (memcmp(RuleIdentifier.data()+1, "MinusBPlus", 10) != 0)
630 break;
631 switch (RuleIdentifier[11]) {
632 default: break;
633 case 'B': // 1 string to match.
634 if (memcmp(RuleIdentifier.data()+12, "MinusC", 6) != 0)
635 break;
636 return 5; // "AMinusBPlusBMinusC"
637 case 'C': // 1 string to match.
638 if (memcmp(RuleIdentifier.data()+12, "MinusA", 6) != 0)
639 break;
640 return 4; // "AMinusBPlusCMinusA"
641 }
642 break;
643 case 'b': // 1 string to match.
644 if (memcmp(RuleIdentifier.data()+1, "inop_left_to_zero", 17) != 0)
645 break;
646 return 86; // "binop_left_to_zero"
647 case 'c': // 3 strings to match.
648 if (RuleIdentifier[1] != 'o')
649 break;
650 switch (RuleIdentifier[2]) {
651 default: break;
652 case 'm': // 1 string to match.
653 if (memcmp(RuleIdentifier.data()+3, "bine_minmax_nan", 15) != 0)
654 break;
655 return 146; // "combine_minmax_nan"
656 case 'n': // 2 strings to match.
657 if (memcmp(RuleIdentifier.data()+3, "stant_fold_f", 12) != 0)
658 break;
659 switch (RuleIdentifier[15]) {
660 default: break;
661 case 'a': // 1 string to match.
662 if (memcmp(RuleIdentifier.data()+16, "bs", 2) != 0)
663 break;
664 return 135; // "constant_fold_fabs"
665 case 'n': // 1 string to match.
666 if (memcmp(RuleIdentifier.data()+16, "eg", 2) != 0)
667 break;
668 return 134; // "constant_fold_fneg"
669 }
670 break;
671 }
672 break;
673 case 'e': // 1 string to match.
674 if (memcmp(RuleIdentifier.data()+1, "xpand_const_fpowi", 17) != 0)
675 break;
676 return 147; // "expand_const_fpowi"
677 case 'f': // 1 string to match.
678 if (memcmp(RuleIdentifier.data()+1, "ptrunc_fpext_fold", 17) != 0)
679 break;
680 return 99; // "fptrunc_fpext_fold"
681 case 's': // 2 strings to match.
682 if (RuleIdentifier[1] != 'e')
683 break;
684 switch (RuleIdentifier[2]) {
685 default: break;
686 case 'l': // 1 string to match.
687 if (memcmp(RuleIdentifier.data()+3, "ect_of_truncate", 15) != 0)
688 break;
689 return 56; // "select_of_truncate"
690 case 'x': // 1 string to match.
691 if (memcmp(RuleIdentifier.data()+3, "t_inreg_of_load", 15) != 0)
692 break;
693 return 118; // "sext_inreg_of_load"
694 }
695 break;
696 case 't': // 1 string to match.
697 if (memcmp(RuleIdentifier.data()+1, "runcate_of_anyext", 17) != 0)
698 break;
699 return 45; // "truncate_of_anyext"
700 }
701 break;
702 case 19: // 15 strings to match.
703 switch (RuleIdentifier[0]) {
704 default: break;
705 case 'b': // 1 string to match.
706 if (memcmp(RuleIdentifier.data()+1, "inop_right_to_zero", 18) != 0)
707 break;
708 return 87; // "binop_right_to_zero"
709 case 'c': // 4 strings to match.
710 if (memcmp(RuleIdentifier.data()+1, "onst", 4) != 0)
711 break;
712 switch (RuleIdentifier[5]) {
713 default: break;
714 case '_': // 1 string to match.
715 if (memcmp(RuleIdentifier.data()+6, "ptradd_to_i2p", 13) != 0)
716 break;
717 return 141; // "const_ptradd_to_i2p"
718 case 'a': // 3 strings to match.
719 if (memcmp(RuleIdentifier.data()+6, "nt_fold_", 8) != 0)
720 break;
721 switch (RuleIdentifier[14]) {
722 default: break;
723 case 'b': // 1 string to match.
724 if (memcmp(RuleIdentifier.data()+15, "inop", 4) != 0)
725 break;
726 return 166; // "constant_fold_binop"
727 case 'f': // 2 strings to match.
728 switch (RuleIdentifier[15]) {
729 default: break;
730 case 'l': // 1 string to match.
731 if (memcmp(RuleIdentifier.data()+16, "og2", 3) != 0)
732 break;
733 return 137; // "constant_fold_flog2"
734 case 's': // 1 string to match.
735 if (memcmp(RuleIdentifier.data()+16, "qrt", 3) != 0)
736 break;
737 return 136; // "constant_fold_fsqrt"
738 }
739 break;
740 }
741 break;
742 }
743 break;
744 case 'e': // 1 string to match.
745 if (memcmp(RuleIdentifier.data()+1, "xtend_through_phis", 18) != 0)
746 break;
747 return 102; // "extend_through_phis"
748 case 'i': // 1 string to match.
749 if (memcmp(RuleIdentifier.data()+1, "nteger_of_truncate", 18) != 0)
750 break;
751 return 64; // "integer_of_truncate"
752 case 'm': // 1 string to match.
753 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_zero", 18) != 0)
754 break;
755 return 212; // "merge_of_x_and_zero"
756 case 'p': // 1 string to match.
757 if (memcmp(RuleIdentifier.data()+1, "tr_add_immed_chain", 18) != 0)
758 break;
759 return 108; // "ptr_add_immed_chain"
760 case 'r': // 2 strings to match.
761 switch (RuleIdentifier[1]) {
762 default: break;
763 case 'e': // 1 string to match.
764 if (memcmp(RuleIdentifier.data()+2, "assoc_comm_binops", 17) != 0)
765 break;
766 return 107; // "reassoc_comm_binops"
767 case 'i': // 1 string to match.
768 if (memcmp(RuleIdentifier.data()+2, "ght_identity_zero", 17) != 0)
769 break;
770 return 84; // "right_identity_zero"
771 }
772 break;
773 case 's': // 3 strings to match.
774 switch (RuleIdentifier[1]) {
775 default: break;
776 case 'e': // 1 string to match.
777 if (memcmp(RuleIdentifier.data()+2, "lect_constant_cmp", 17) != 0)
778 break;
779 return 122; // "select_constant_cmp"
780 case 'i': // 2 strings to match.
781 if (memcmp(RuleIdentifier.data()+2, "mplify_", 7) != 0)
782 break;
783 switch (RuleIdentifier[9]) {
784 default: break;
785 case 'a': // 1 string to match.
786 if (memcmp(RuleIdentifier.data()+10, "dd_to_sub", 9) != 0)
787 break;
788 return 103; // "simplify_add_to_sub"
789 case 'n': // 1 string to match.
790 if (memcmp(RuleIdentifier.data()+10, "eg_minmax", 9) != 0)
791 break;
792 return 195; // "simplify_neg_minmax"
793 }
794 break;
795 }
796 break;
797 case 'u': // 1 string to match.
798 if (memcmp(RuleIdentifier.data()+1, "nary_undef_to_zero", 18) != 0)
799 break;
800 return 76; // "unary_undef_to_zero"
801 }
802 break;
803 case 20: // 8 strings to match.
804 switch (RuleIdentifier[0]) {
805 default: break;
806 case 'a': // 1 string to match.
807 if (memcmp(RuleIdentifier.data()+1, "nd_or_disjoint_mask", 19) != 0)
808 break;
809 return 177; // "and_or_disjoint_mask"
810 case 'b': // 1 string to match.
811 if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_fold", 19) != 0)
812 break;
813 return 98; // "bitcast_bitcast_fold"
814 case 'm': // 1 string to match.
815 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_undef", 19) != 0)
816 break;
817 return 211; // "merge_of_x_and_undef"
818 case 'r': // 3 strings to match.
819 if (RuleIdentifier[1] != 'e')
820 break;
821 switch (RuleIdentifier[2]) {
822 default: break;
823 case 'd': // 2 strings to match.
824 if (RuleIdentifier[3] != 'u')
825 break;
826 switch (RuleIdentifier[4]) {
827 default: break;
828 case 'c': // 1 string to match.
829 if (memcmp(RuleIdentifier.data()+5, "e_shl_of_extend", 15) != 0)
830 break;
831 return 119; // "reduce_shl_of_extend"
832 case 'n': // 1 string to match.
833 if (memcmp(RuleIdentifier.data()+5, "dant_sext_inreg", 15) != 0)
834 break;
835 return 126; // "redundant_sext_inreg"
836 }
837 break;
838 case 'm': // 1 string to match.
839 if (memcmp(RuleIdentifier.data()+3, "ove_fcanonicalize", 17) != 0)
840 break;
841 return 220; // "remove_fcanonicalize"
842 }
843 break;
844 case 'u': // 2 strings to match.
845 if (RuleIdentifier[1] != 'n')
846 break;
847 switch (RuleIdentifier[2]) {
848 default: break;
849 case 'a': // 1 string to match.
850 if (memcmp(RuleIdentifier.data()+3, "ry_undef_to_undef", 17) != 0)
851 break;
852 return 77; // "unary_undef_to_undef"
853 case 'm': // 1 string to match.
854 if (memcmp(RuleIdentifier.data()+3, "erge_zext_to_zext", 17) != 0)
855 break;
856 return 210; // "unmerge_zext_to_zext"
857 }
858 break;
859 }
860 break;
861 case 21: // 9 strings to match.
862 switch (RuleIdentifier[0]) {
863 default: break;
864 case 'c': // 3 strings to match.
865 if (RuleIdentifier[1] != 'o')
866 break;
867 switch (RuleIdentifier[2]) {
868 default: break;
869 case 'm': // 1 string to match.
870 if (memcmp(RuleIdentifier.data()+3, "bine_concat_vector", 18) != 0)
871 break;
872 return 196; // "combine_concat_vector"
873 case 'n': // 2 strings to match.
874 if (memcmp(RuleIdentifier.data()+3, "stant_fold_", 11) != 0)
875 break;
876 switch (RuleIdentifier[14]) {
877 default: break;
878 case 'c': // 1 string to match.
879 if (memcmp(RuleIdentifier.data()+15, "ast_op", 6) != 0)
880 break;
881 return 169; // "constant_fold_cast_op"
882 case 'f': // 1 string to match.
883 if (memcmp(RuleIdentifier.data()+15, "ptrunc", 6) != 0)
884 break;
885 return 138; // "constant_fold_fptrunc"
886 }
887 break;
888 }
889 break;
890 case 'e': // 1 string to match.
891 if (memcmp(RuleIdentifier.data()+1, "xpand_promoted_fmed3", 20) != 0)
892 break;
893 return 216; // "expand_promoted_fmed3"
894 case 'i': // 1 string to match.
895 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_elt_oob", 20) != 0)
896 break;
897 return 24; // "insert_vector_elt_oob"
898 case 'r': // 1 string to match.
899 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_fp", 20) != 0)
900 break;
901 return 93; // "right_identity_one_fp"
902 case 's': // 1 string to match.
903 if (memcmp(RuleIdentifier.data()+1, "ign_extension_in_reg", 20) != 0)
904 break;
905 return 224; // "sign_extension_in_reg"
906 case 'u': // 2 strings to match.
907 if (RuleIdentifier[1] != 'n')
908 break;
909 switch (RuleIdentifier[2]) {
910 default: break;
911 case 'd': // 1 string to match.
912 if (memcmp(RuleIdentifier.data()+3, "ef_to_negative_one", 18) != 0)
913 break;
914 return 73; // "undef_to_negative_one"
915 case 'm': // 1 string to match.
916 if (memcmp(RuleIdentifier.data()+3, "erge_dead_to_trunc", 18) != 0)
917 break;
918 return 209; // "unmerge_dead_to_trunc"
919 }
920 break;
921 }
922 break;
923 case 22: // 13 strings to match.
924 switch (RuleIdentifier[0]) {
925 default: break;
926 case 'c': // 2 strings to match.
927 if (RuleIdentifier[1] != 'o')
928 break;
929 switch (RuleIdentifier[2]) {
930 default: break;
931 case 'm': // 1 string to match.
932 if (memcmp(RuleIdentifier.data()+3, "bine_shuffle_concat", 19) != 0)
933 break;
934 return 200; // "combine_shuffle_concat"
935 case 'n': // 1 string to match.
936 if (memcmp(RuleIdentifier.data()+3, "stant_fold_fp_binop", 19) != 0)
937 break;
938 return 167; // "constant_fold_fp_binop"
939 }
940 break;
941 case 'f': // 4 strings to match.
942 switch (RuleIdentifier[1]) {
943 default: break;
944 case 'o': // 1 string to match.
945 if (memcmp(RuleIdentifier.data()+2, "ld_binop_into_select", 20) != 0)
946 break;
947 return 186; // "fold_binop_into_select"
948 case 'u': // 3 strings to match.
949 if (memcmp(RuleIdentifier.data()+2, "nnel_shift_", 11) != 0)
950 break;
951 switch (RuleIdentifier[13]) {
952 default: break;
953 case 'l': // 1 string to match.
954 if (memcmp(RuleIdentifier.data()+14, "eft_zero", 8) != 0)
955 break;
956 return 157; // "funnel_shift_left_zero"
957 case 'o': // 1 string to match.
958 if (memcmp(RuleIdentifier.data()+14, "vershift", 8) != 0)
959 break;
960 return 158; // "funnel_shift_overshift"
961 case 't': // 1 string to match.
962 if (memcmp(RuleIdentifier.data()+14, "o_rotate", 8) != 0)
963 break;
964 return 155; // "funnel_shift_to_rotate"
965 }
966 break;
967 }
968 break;
969 case 'i': // 1 string to match.
970 if (memcmp(RuleIdentifier.data()+1, "cmp_to_lhs_known_bits", 21) != 0)
971 break;
972 return 112; // "icmp_to_lhs_known_bits"
973 case 'm': // 1 string to match.
974 if (memcmp(RuleIdentifier.data()+1, "atch_subo_no_overflow", 21) != 0)
975 break;
976 return 214; // "match_subo_no_overflow"
977 case 'p': // 1 string to match.
978 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_any_op", 21) != 0)
979 break;
980 return 78; // "propagate_undef_any_op"
981 case 'r': // 2 strings to match.
982 switch (RuleIdentifier[1]) {
983 default: break;
984 case 'e': // 1 string to match.
985 if (memcmp(RuleIdentifier.data()+2, "dundant_neg_operands", 20) != 0)
986 break;
987 return 176; // "redundant_neg_operands"
988 case 'i': // 1 string to match.
989 if (memcmp(RuleIdentifier.data()+2, "ght_identity_one_int", 20) != 0)
990 break;
991 return 92; // "right_identity_one_int"
992 }
993 break;
994 case 's': // 1 string to match.
995 if (memcmp(RuleIdentifier.data()+1, "hl_ashr_to_sext_inreg", 21) != 0)
996 break;
997 return 116; // "shl_ashr_to_sext_inreg"
998 case 't': // 1 string to match.
999 if (memcmp(RuleIdentifier.data()+1, "runc_buildvector_fold", 21) != 0)
1000 break;
1001 return 96; // "trunc_buildvector_fold"
1002 }
1003 break;
1004 case 23: // 6 strings to match.
1005 switch (RuleIdentifier[0]) {
1006 default: break;
1007 case 'b': // 1 string to match.
1008 if (memcmp(RuleIdentifier.data()+1, "uildvector_of_truncate", 22) != 0)
1009 break;
1010 return 57; // "buildvector_of_truncate"
1011 case 'f': // 2 strings to match.
1012 switch (RuleIdentifier[1]) {
1013 default: break;
1014 case 'd': // 1 string to match.
1015 if (memcmp(RuleIdentifier.data()+2, "iv_by_sqrt_to_rsq_f16", 21) != 0)
1016 break;
1017 return 223; // "fdiv_by_sqrt_to_rsq_f16"
1018 case 'u': // 1 string to match.
1019 if (memcmp(RuleIdentifier.data()+2, "nnel_shift_right_zero", 21) != 0)
1020 break;
1021 return 156; // "funnel_shift_right_zero"
1022 }
1023 break;
1024 case 'i': // 2 strings to match.
1025 if (memcmp(RuleIdentifier.data()+1, "tof_const_zero_fold_", 20) != 0)
1026 break;
1027 switch (RuleIdentifier[21]) {
1028 default: break;
1029 case 's': // 1 string to match.
1030 if (RuleIdentifier[22] != 'i')
1031 break;
1032 return 139; // "itof_const_zero_fold_si"
1033 case 'u': // 1 string to match.
1034 if (RuleIdentifier[22] != 'i')
1035 break;
1036 return 140; // "itof_const_zero_fold_ui"
1037 }
1038 break;
1039 case 'p': // 1 string to match.
1040 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_all_ops", 22) != 0)
1041 break;
1042 return 79; // "propagate_undef_all_ops"
1043 }
1044 break;
1045 case 24: // 6 strings to match.
1046 switch (RuleIdentifier[0]) {
1047 default: break;
1048 case 'b': // 1 string to match.
1049 if (memcmp(RuleIdentifier.data()+1, "inop_left_undef_to_zero", 23) != 0)
1050 break;
1051 return 74; // "binop_left_undef_to_zero"
1052 case 'm': // 1 string to match.
1053 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element", 23) != 0)
1054 break;
1055 return 23; // "match_extract_of_element"
1056 case 'n': // 1 string to match.
1057 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_feeding_and", 23) != 0)
1058 break;
1059 return 120; // "narrow_binop_feeding_and"
1060 case 's': // 2 strings to match.
1061 if (memcmp(RuleIdentifier.data()+1, "ext_inreg_", 10) != 0)
1062 break;
1063 switch (RuleIdentifier[11]) {
1064 default: break;
1065 case 'o': // 1 string to match.
1066 if (memcmp(RuleIdentifier.data()+12, "f_sext_inreg", 12) != 0)
1067 break;
1068 return 53; // "sext_inreg_of_sext_inreg"
1069 case 't': // 1 string to match.
1070 if (memcmp(RuleIdentifier.data()+12, "o_zext_inreg", 12) != 0)
1071 break;
1072 return 130; // "sext_inreg_to_zext_inreg"
1073 }
1074 break;
1075 case 'x': // 1 string to match.
1076 if (memcmp(RuleIdentifier.data()+1, "or_of_and_with_same_reg", 23) != 0)
1077 break;
1078 return 148; // "xor_of_and_with_same_reg"
1079 }
1080 break;
1081 case 25: // 7 strings to match.
1082 switch (RuleIdentifier[0]) {
1083 default: break;
1084 case 'b': // 3 strings to match.
1085 switch (RuleIdentifier[1]) {
1086 default: break;
1087 case 'i': // 2 strings to match.
1088 if (memcmp(RuleIdentifier.data()+2, "tfield_extract_from_", 20) != 0)
1089 break;
1090 switch (RuleIdentifier[22]) {
1091 default: break;
1092 case 'a': // 1 string to match.
1093 if (memcmp(RuleIdentifier.data()+23, "nd", 2) != 0)
1094 break;
1095 return 163; // "bitfield_extract_from_and"
1096 case 's': // 1 string to match.
1097 if (memcmp(RuleIdentifier.data()+23, "hr", 2) != 0)
1098 break;
1099 return 164; // "bitfield_extract_from_shr"
1100 }
1101 break;
1102 case 'u': // 1 string to match.
1103 if (memcmp(RuleIdentifier.data()+2, "ildvector_identity_fold", 23) != 0)
1104 break;
1105 return 95; // "buildvector_identity_fold"
1106 }
1107 break;
1108 case 'c': // 1 string to match.
1109 if (memcmp(RuleIdentifier.data()+1, "ombine_shuffle_undef_rhs", 24) != 0)
1110 break;
1111 return 201; // "combine_shuffle_undef_rhs"
1112 case 'e': // 1 string to match.
1113 if (memcmp(RuleIdentifier.data()+1, "xtract_vec_elt_build_vec", 24) != 0)
1114 break;
1115 return 66; // "extract_vec_elt_build_vec"
1116 case 'n': // 1 string to match.
1117 if (memcmp(RuleIdentifier.data()+1, "eg_and_one_to_sext_inreg", 24) != 0)
1118 break;
1119 return 117; // "neg_and_one_to_sext_inreg"
1120 case 'r': // 1 string to match.
1121 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_one_fp", 24) != 0)
1122 break;
1123 return 101; // "right_identity_neg_one_fp"
1124 }
1125 break;
1126 case 26: // 4 strings to match.
1127 switch (RuleIdentifier[0]) {
1128 default: break;
1129 case 'b': // 1 string to match.
1130 if (memcmp(RuleIdentifier.data()+1, "inop_right_undef_to_undef", 25) != 0)
1131 break;
1132 return 75; // "binop_right_undef_to_undef"
1133 case 'c': // 1 string to match.
1134 if (memcmp(RuleIdentifier.data()+1, "ommute_fp_constant_to_rhs", 25) != 0)
1135 break;
1136 return 192; // "commute_fp_constant_to_rhs"
1137 case 'f': // 1 string to match.
1138 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_from_or_shift", 25) != 0)
1139 break;
1140 return 154; // "funnel_shift_from_or_shift"
1141 case 'r': // 1 string to match.
1142 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp", 25) != 0)
1143 break;
1144 return 100; // "right_identity_neg_zero_fp"
1145 }
1146 break;
1147 case 27: // 6 strings to match.
1148 switch (RuleIdentifier[0]) {
1149 default: break;
1150 case 'c': // 2 strings to match.
1151 if (memcmp(RuleIdentifier.data()+1, "om", 2) != 0)
1152 break;
1153 switch (RuleIdentifier[3]) {
1154 default: break;
1155 case 'b': // 1 string to match.
1156 if (memcmp(RuleIdentifier.data()+4, "ine_use_vector_truncate", 23) != 0)
1157 break;
1158 return 203; // "combine_use_vector_truncate"
1159 case 'm': // 1 string to match.
1160 if (memcmp(RuleIdentifier.data()+4, "ute_int_constant_to_rhs", 23) != 0)
1161 break;
1162 return 191; // "commute_int_constant_to_rhs"
1163 }
1164 break;
1165 case 'd': // 1 string to match.
1166 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_or_combine", 26) != 0)
1167 break;
1168 return 114; // "double_icmp_zero_or_combine"
1169 case 'r': // 1 string to match.
1170 if (memcmp(RuleIdentifier.data()+1, "edundant_binop_in_equality", 26) != 0)
1171 break;
1172 return 115; // "redundant_binop_in_equality"
1173 case 't': // 1 string to match.
1174 if (memcmp(RuleIdentifier.data()+1, "runc_lshr_buildvector_fold", 26) != 0)
1175 break;
1176 return 97; // "trunc_lshr_buildvector_fold"
1177 case 'u': // 1 string to match.
1178 if (memcmp(RuleIdentifier.data()+1, "nmerge_anyext_build_vector", 26) != 0)
1179 break;
1180 return 204; // "unmerge_anyext_build_vector"
1181 }
1182 break;
1183 case 28: // 4 strings to match.
1184 switch (RuleIdentifier[0]) {
1185 default: break;
1186 case 'd': // 1 string to match.
1187 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_and_combine", 27) != 0)
1188 break;
1189 return 113; // "double_icmp_zero_and_combine"
1190 case 'o': // 1 string to match.
1191 if (memcmp(RuleIdentifier.data()+1, "pt_brcond_by_inverting_cond", 27) != 0)
1192 break;
1193 return 133; // "opt_brcond_by_inverting_cond"
1194 case 'p': // 1 string to match.
1195 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_shuffle_mask", 27) != 0)
1196 break;
1197 return 80; // "propagate_undef_shuffle_mask"
1198 case 's': // 1 string to match.
1199 if (memcmp(RuleIdentifier.data()+1, "hift_of_shifted_logic_chain", 27) != 0)
1200 break;
1201 return 151; // "shift_of_shifted_logic_chain"
1202 }
1203 break;
1204 case 29: // 4 strings to match.
1205 switch (RuleIdentifier[0]) {
1206 default: break;
1207 case 'b': // 1 string to match.
1208 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_shr_and", 28) != 0)
1209 break;
1210 return 165; // "bitfield_extract_from_shr_and"
1211 case 'c': // 2 strings to match.
1212 if (memcmp(RuleIdentifier.data()+1, "ombine_", 7) != 0)
1213 break;
1214 switch (RuleIdentifier[8]) {
1215 default: break;
1216 case 'e': // 1 string to match.
1217 if (memcmp(RuleIdentifier.data()+9, "xtracted_vector_load", 20) != 0)
1218 break;
1219 return 70; // "combine_extracted_vector_load"
1220 case 's': // 1 string to match.
1221 if (memcmp(RuleIdentifier.data()+9, "huffle_disjoint_mask", 20) != 0)
1222 break;
1223 return 202; // "combine_shuffle_disjoint_mask"
1224 }
1225 break;
1226 case 'i': // 1 string to match.
1227 if (memcmp(RuleIdentifier.data()+1, "cmp_to_true_false_known_bits", 28) != 0)
1228 break;
1229 return 111; // "icmp_to_true_false_known_bits"
1230 }
1231 break;
1232 case 30: // 1 string to match.
1233 if (memcmp(RuleIdentifier.data()+0, "freeze_of_non_undef_non_poison", 30) != 0)
1234 break;
1235 return 41; // "freeze_of_non_undef_non_poison"
1236 case 31: // 3 strings to match.
1237 switch (RuleIdentifier[0]) {
1238 default: break;
1239 case 'f': // 1 string to match.
1240 if (memcmp(RuleIdentifier.data()+1, "cmp_select_to_fmin_fmax_legacy", 30) != 0)
1241 break;
1242 return 215; // "fcmp_select_to_fmin_fmax_legacy"
1243 case 'i': // 2 strings to match.
1244 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_element_", 21) != 0)
1245 break;
1246 switch (RuleIdentifier[22]) {
1247 default: break;
1248 case 'e': // 1 string to match.
1249 if (memcmp(RuleIdentifier.data()+23, "lt_undef", 8) != 0)
1250 break;
1251 return 22; // "insert_vector_element_elt_undef"
1252 case 'i': // 1 string to match.
1253 if (memcmp(RuleIdentifier.data()+23, "dx_undef", 8) != 0)
1254 break;
1255 return 21; // "insert_vector_element_idx_undef"
1256 }
1257 break;
1258 }
1259 break;
1260 case 32: // 4 strings to match.
1261 switch (RuleIdentifier[0]) {
1262 default: break;
1263 case 'b': // 1 string to match.
1264 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_sext_inreg", 31) != 0)
1265 break;
1266 return 162; // "bitfield_extract_from_sext_inreg"
1267 case 'c': // 2 strings to match.
1268 if (memcmp(RuleIdentifier.data()+1, "ombine_f", 8) != 0)
1269 break;
1270 switch (RuleIdentifier[9]) {
1271 default: break;
1272 case 'a': // 1 string to match.
1273 if (memcmp(RuleIdentifier.data()+10, "dd_fmul_to_fmad_or_fma", 22) != 0)
1274 break;
1275 return 178; // "combine_fadd_fmul_to_fmad_or_fma"
1276 case 's': // 1 string to match.
1277 if (memcmp(RuleIdentifier.data()+10, "ub_fmul_to_fmad_or_fma", 22) != 0)
1278 break;
1279 return 182; // "combine_fsub_fmul_to_fmad_or_fma"
1280 }
1281 break;
1282 case 'e': // 1 string to match.
1283 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_not_const", 31) != 0)
1284 break;
1285 return 25; // "extract_vector_element_not_const"
1286 }
1287 break;
1288 case 34: // 2 strings to match.
1289 switch (RuleIdentifier[0]) {
1290 default: break;
1291 case 'c': // 1 string to match.
1292 if (memcmp(RuleIdentifier.data()+1, "ombine_fmul_with_select_to_fldexp", 33) != 0)
1293 break;
1294 return 217; // "combine_fmul_with_select_to_fldexp"
1295 case 'e': // 1 string to match.
1296 if (memcmp(RuleIdentifier.data()+1, "xtract_all_elts_from_build_vector", 33) != 0)
1297 break;
1298 return 67; // "extract_all_elts_from_build_vector"
1299 }
1300 break;
1301 case 35: // 1 string to match.
1302 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_build_vector", 35) != 0)
1303 break;
1304 return 27; // "extract_vector_element_build_vector"
1305 case 36: // 4 strings to match.
1306 switch (RuleIdentifier[0]) {
1307 default: break;
1308 case 'c': // 2 strings to match.
1309 if (memcmp(RuleIdentifier.data()+1, "ombine_", 7) != 0)
1310 break;
1311 switch (RuleIdentifier[8]) {
1312 default: break;
1313 case 'f': // 1 string to match.
1314 if (memcmp(RuleIdentifier.data()+9, "add_fma_fmul_to_fmad_or_fma", 27) != 0)
1315 break;
1316 return 180; // "combine_fadd_fma_fmul_to_fmad_or_fma"
1317 case 'i': // 1 string to match.
1318 if (memcmp(RuleIdentifier.data()+9, "nsert_vec_elts_build_vector", 27) != 0)
1319 break;
1320 return 65; // "combine_insert_vec_elts_build_vector"
1321 }
1322 break;
1323 case 'i': // 1 string to match.
1324 if (memcmp(RuleIdentifier.data()+1, "nsert_extract_vec_elt_out_of_bounds", 35) != 0)
1325 break;
1326 return 82; // "insert_extract_vec_elt_out_of_bounds"
1327 case 'm': // 1 string to match.
1328 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_index", 35) != 0)
1329 break;
1330 return 20; // "match_extract_of_element_undef_index"
1331 }
1332 break;
1333 case 37: // 4 strings to match.
1334 switch (RuleIdentifier[0]) {
1335 default: break;
1336 case 'c': // 1 string to match.
1337 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fneg_fmul_to_fmad_or_fma", 36) != 0)
1338 break;
1339 return 183; // "combine_fsub_fneg_fmul_to_fmad_or_fma"
1340 case 'e': // 1 string to match.
1341 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_shuffle_vector", 36) != 0)
1342 break;
1343 return 35; // "extract_vector_element_shuffle_vector"
1344 case 'h': // 1 string to match.
1345 if (memcmp(RuleIdentifier.data()+1, "oist_logic_op_with_same_opcode_hands", 36) != 0)
1346 break;
1347 return 104; // "hoist_logic_op_with_same_opcode_hands"
1348 case 'm': // 1 string to match.
1349 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_vector", 36) != 0)
1350 break;
1351 return 19; // "match_extract_of_element_undef_vector"
1352 }
1353 break;
1354 case 38: // 2 strings to match.
1355 if (memcmp(RuleIdentifier.data()+0, "combine_f", 9) != 0)
1356 break;
1357 switch (RuleIdentifier[9]) {
1358 default: break;
1359 case 'a': // 1 string to match.
1360 if (memcmp(RuleIdentifier.data()+10, "dd_fpext_fmul_to_fmad_or_fma", 28) != 0)
1361 break;
1362 return 179; // "combine_fadd_fpext_fmul_to_fmad_or_fma"
1363 case 's': // 1 string to match.
1364 if (memcmp(RuleIdentifier.data()+10, "ub_fpext_fmul_to_fmad_or_fma", 28) != 0)
1365 break;
1366 return 184; // "combine_fsub_fpext_fmul_to_fmad_or_fma"
1367 }
1368 break;
1369 case 40: // 1 string to match.
1370 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_different_indices", 40) != 0)
1371 break;
1372 return 26; // "extract_vector_element_different_indices"
1373 case 42: // 8 strings to match.
1374 switch (RuleIdentifier[0]) {
1375 default: break;
1376 case 'c': // 1 string to match.
1377 if (memcmp(RuleIdentifier.data()+1, "ombine_fadd_fpext_fma_fmul_to_fmad_or_fma", 41) != 0)
1378 break;
1379 return 181; // "combine_fadd_fpext_fma_fmul_to_fmad_or_fma"
1380 case 'e': // 7 strings to match.
1381 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_build_vector_trunc", 40) != 0)
1382 break;
1383 switch (RuleIdentifier[41]) {
1384 default: break;
1385 case '2': // 1 string to match.
1386 return 28; // "extract_vector_element_build_vector_trunc2"
1387 case '3': // 1 string to match.
1388 return 29; // "extract_vector_element_build_vector_trunc3"
1389 case '4': // 1 string to match.
1390 return 30; // "extract_vector_element_build_vector_trunc4"
1391 case '5': // 1 string to match.
1392 return 31; // "extract_vector_element_build_vector_trunc5"
1393 case '6': // 1 string to match.
1394 return 32; // "extract_vector_element_build_vector_trunc6"
1395 case '7': // 1 string to match.
1396 return 33; // "extract_vector_element_build_vector_trunc7"
1397 case '8': // 1 string to match.
1398 return 34; // "extract_vector_element_build_vector_trunc8"
1399 }
1400 break;
1401 }
1402 break;
1403 case 43: // 1 string to match.
1404 if (memcmp(RuleIdentifier.data()+0, "combine_fsub_fpext_fneg_fmul_to_fmad_or_fma", 43) != 0)
1405 break;
1406 return 185; // "combine_fsub_fpext_fneg_fmul_to_fmad_or_fma"
1407 case 44: // 1 string to match.
1408 if (memcmp(RuleIdentifier.data()+0, "insert_vector_element_extract_vector_element", 44) != 0)
1409 break;
1410 return 36; // "insert_vector_element_extract_vector_element"
1411 case 46: // 1 string to match.
1412 if (memcmp(RuleIdentifier.data()+0, "push_freeze_to_prevent_poison_from_propagating", 46) != 0)
1413 break;
1414 return 42; // "push_freeze_to_prevent_poison_from_propagating"
1415 }
1416#endif // ifndef NDEBUG
1417
1418 return std::nullopt;
1419}
1420static std::optional<std::pair<uint64_t, uint64_t>> getRuleRangeForIdentifier(StringRef RuleIdentifier) {
1421 std::pair<StringRef, StringRef> RangePair = RuleIdentifier.split(Separator: '-');
1422 if (!RangePair.second.empty()) {
1423 const auto First = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
1424 const auto Last = getRuleIdxForIdentifier(RuleIdentifier: RangePair.second);
1425 if (!First || !Last)
1426 return std::nullopt;
1427 if (First >= Last)
1428 report_fatal_error(reason: "Beginning of range should be before end of range");
1429 return {{*First, *Last + 1}};
1430 }
1431 if (RangePair.first == "*") {
1432 return {{0, 226}};
1433 }
1434 const auto I = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
1435 if (!I)
1436 return std::nullopt;
1437 return {{*I, *I + 1}};
1438}
1439
1440bool AMDGPUPostLegalizerCombinerImplRuleConfig::setRuleEnabled(StringRef RuleIdentifier) {
1441 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1442 if (!MaybeRange)
1443 return false;
1444 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1445 DisabledRules.reset(Idx: I);
1446 return true;
1447}
1448
1449bool AMDGPUPostLegalizerCombinerImplRuleConfig::setRuleDisabled(StringRef RuleIdentifier) {
1450 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1451 if (!MaybeRange)
1452 return false;
1453 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1454 DisabledRules.set(I);
1455 return true;
1456}
1457
1458static std::vector<std::string> AMDGPUPostLegalizerCombinerOption;
1459static cl::list<std::string> AMDGPUPostLegalizerCombinerDisableOption(
1460 "amdgpupostlegalizercombiner-disable-rule",
1461 cl::desc("Disable one or more combiner rules temporarily in the AMDGPUPostLegalizerCombiner pass"),
1462 cl::CommaSeparated,
1463 cl::Hidden,
1464 cl::cat(GICombinerOptionCategory),
1465 cl::callback(CB: [](const std::string &Str) {
1466 AMDGPUPostLegalizerCombinerOption.push_back(x: Str);
1467 }));
1468static cl::list<std::string> AMDGPUPostLegalizerCombinerOnlyEnableOption(
1469 "amdgpupostlegalizercombiner-only-enable-rule",
1470 cl::desc("Disable all rules in the AMDGPUPostLegalizerCombiner pass then re-enable the specified ones"),
1471 cl::Hidden,
1472 cl::cat(GICombinerOptionCategory),
1473 cl::callback(CB: [](const std::string &CommaSeparatedArg) {
1474 StringRef Str = CommaSeparatedArg;
1475 AMDGPUPostLegalizerCombinerOption.push_back(x: "*");
1476 do {
1477 auto X = Str.split(Separator: ",");
1478 AMDGPUPostLegalizerCombinerOption.push_back(x: ("!" + X.first).str());
1479 Str = X.second;
1480 } while (!Str.empty());
1481 }));
1482
1483
1484bool AMDGPUPostLegalizerCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const {
1485 return !DisabledRules.test(Idx: RuleID);
1486}
1487bool AMDGPUPostLegalizerCombinerImplRuleConfig::parseCommandLineOption() {
1488 for (StringRef Identifier : AMDGPUPostLegalizerCombinerOption) {
1489 bool Enabled = Identifier.consume_front(Prefix: "!");
1490 if (Enabled && !setRuleEnabled(Identifier))
1491 return false;
1492 if (!Enabled && !setRuleDisabled(Identifier))
1493 return false;
1494 }
1495 return true;
1496}
1497
1498#endif // ifdef GET_GICOMBINER_TYPES
1499
1500#ifdef GET_GICOMBINER_TYPES
1501const unsigned MAX_SUBTARGET_PREDICATES = 3;
1502using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
1503#endif // ifdef GET_GICOMBINER_TYPES
1504
1505#ifdef GET_GICOMBINER_CLASS_MEMBERS
1506PredicateBitset AvailableModuleFeatures;
1507mutable PredicateBitset AvailableFunctionFeatures;
1508PredicateBitset getAvailableFeatures() const {
1509 return AvailableModuleFeatures | AvailableFunctionFeatures;
1510}
1511PredicateBitset
1512computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const;
1513PredicateBitset
1514computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget,
1515 const MachineFunction *MF) const;
1516void setupGeneratedPerFunctionState(MachineFunction &MF) override;
1517#endif // ifdef GET_GICOMBINER_CLASS_MEMBERS
1518#ifdef GET_GICOMBINER_CLASS_MEMBERS
1519 mutable MatcherState State;
1520 typedef ComplexRendererFns(AMDGPUPostLegalizerCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const;
1521 typedef void(AMDGPUPostLegalizerCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
1522 const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
1523 static AMDGPUPostLegalizerCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[];
1524 static AMDGPUPostLegalizerCombinerImpl::CustomRendererFn CustomRenderers[];
1525 bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
1526 bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
1527 bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
1528 const uint8_t *getMatchTable() const override;
1529 bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
1530 bool testMOPredicate_MO(unsigned PredicateID, const MachineOperand &MO, const MatcherState &State) const override;
1531 bool testSimplePredicate(unsigned PredicateID) const override;
1532 bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
1533#endif // ifdef GET_GICOMBINER_CLASS_MEMBERS
1534
1535#ifdef GET_GICOMBINER_IMPL
1536// LLT Objects.
1537enum {
1538 GILLT_s16,
1539 GILLT_s32,
1540};
1541const static size_t NumTypeObjects = 2;
1542const static LLT TypeObjects[] = {
1543 LLT::scalar(16),
1544 LLT::scalar(32),
1545};
1546
1547// Bits for subtarget features that participate in instruction matching.
1548enum SubtargetFeatureBits : uint8_t {
1549 Feature_Has16BitInstsBit = 1,
1550 Feature_NotHasMed3_16Bit = 2,
1551 Feature_HasFminFmaxLegacyBit = 0,
1552};
1553
1554PredicateBitset AMDGPUPostLegalizerCombinerImpl::
1555computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const {
1556 PredicateBitset Features{};
1557 if (Subtarget->has16BitInsts())
1558 Features.set(Feature_Has16BitInstsBit);
1559 if (!Subtarget->hasMed3_16())
1560 Features.set(Feature_NotHasMed3_16Bit);
1561 if (Subtarget->hasFminFmaxLegacy())
1562 Features.set(Feature_HasFminFmaxLegacyBit);
1563 return Features;
1564}
1565
1566void AMDGPUPostLegalizerCombinerImpl::setupGeneratedPerFunctionState(MachineFunction &MF) {
1567 AvailableFunctionFeatures = computeAvailableFunctionFeatures((const AMDGPUSubtarget *)&MF.getSubtarget(), &MF);
1568}
1569PredicateBitset AMDGPUPostLegalizerCombinerImpl::
1570computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget, const MachineFunction *MF) const {
1571 PredicateBitset Features{};
1572 return Features;
1573}
1574
1575// Feature bitsets.
1576enum {
1577 GIFBS_Invalid,
1578 GIFBS_HasFminFmaxLegacy,
1579 GIFBS_Has16BitInsts_NotHasMed3_16,
1580};
1581constexpr static PredicateBitset FeatureBitsets[] {
1582 {}, // GIFBS_Invalid
1583 {Feature_HasFminFmaxLegacyBit, },
1584 {Feature_Has16BitInstsBit, Feature_NotHasMed3_16Bit, },
1585};
1586
1587// ComplexPattern predicates.
1588enum {
1589 GICP_Invalid,
1590};
1591// See constructor for table contents
1592
1593AMDGPUPostLegalizerCombinerImpl::ComplexMatcherMemFn
1594AMDGPUPostLegalizerCombinerImpl::ComplexPredicateFns[] = {
1595 nullptr, // GICP_Invalid
1596};
1597
1598enum {
1599 GICXXPred_MI_Predicate_GICombiner0 = GICXXPred_Invalid + 1,
1600 GICXXPred_MI_Predicate_GICombiner1,
1601 GICXXPred_MI_Predicate_GICombiner2,
1602 GICXXPred_MI_Predicate_GICombiner3,
1603 GICXXPred_MI_Predicate_GICombiner4,
1604 GICXXPred_MI_Predicate_GICombiner5,
1605 GICXXPred_MI_Predicate_GICombiner6,
1606 GICXXPred_MI_Predicate_GICombiner7,
1607 GICXXPred_MI_Predicate_GICombiner8,
1608 GICXXPred_MI_Predicate_GICombiner9,
1609};
1610bool AMDGPUPostLegalizerCombinerImpl::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
1611 switch (PredicateID) {
1612 case GICXXPred_MI_Predicate_GICombiner0: {
1613 return isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI);
1614 }
1615 case GICXXPred_MI_Predicate_GICombiner1: {
1616 return isGuaranteedNotToBeUndefOrPoison(State.MIs[0]->getOperand(1).getReg(), MRI);
1617 }
1618 case GICXXPred_MI_Predicate_GICombiner2: {
1619 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 1.0);
1620 }
1621 case GICXXPred_MI_Predicate_GICombiner3: {
1622 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -0.0);
1623 }
1624 case GICXXPred_MI_Predicate_GICombiner4: {
1625 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -1.0);
1626 }
1627 case GICXXPred_MI_Predicate_GICombiner5: {
1628 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_EQ &&
1629 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
1630 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
1631 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
1632 }
1633 case GICXXPred_MI_Predicate_GICombiner6: {
1634 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_NE &&
1635 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
1636 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
1637 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
1638 }
1639 case GICXXPred_MI_Predicate_GICombiner7: {
1640 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
1641 Helper.isLegalOrBeforeLegalizer(
1642 {TargetOpcode::G_SEXT_INREG, {MRI.getType(State.MIs[1]->getOperand(1).getReg())}});
1643 }
1644 case GICXXPred_MI_Predicate_GICombiner8: {
1645 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_LSHR,
1646 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
1647 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
1648 }
1649 case GICXXPred_MI_Predicate_GICombiner9: {
1650 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_SHL,
1651 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
1652 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
1653 }
1654 }
1655 llvm_unreachable("Unknown predicate");
1656 return false;
1657}
1658bool AMDGPUPostLegalizerCombinerImpl::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
1659 llvm_unreachable("Unknown predicate");
1660 return false;
1661}
1662bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
1663 llvm_unreachable("Unknown predicate");
1664 return false;
1665}
1666bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
1667 llvm_unreachable("Unknown predicate");
1668 return false;
1669}
1670bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
1671 llvm_unreachable("Unknown predicate");
1672 return false;
1673}
1674enum {
1675 GICXXPred_Simple_IsRule0Enabled = GICXXPred_Invalid + 1,
1676 GICXXPred_Simple_IsRule1Enabled,
1677 GICXXPred_Simple_IsRule2Enabled,
1678 GICXXPred_Simple_IsRule3Enabled,
1679 GICXXPred_Simple_IsRule4Enabled,
1680 GICXXPred_Simple_IsRule5Enabled,
1681 GICXXPred_Simple_IsRule6Enabled,
1682 GICXXPred_Simple_IsRule7Enabled,
1683 GICXXPred_Simple_IsRule8Enabled,
1684 GICXXPred_Simple_IsRule9Enabled,
1685 GICXXPred_Simple_IsRule10Enabled,
1686 GICXXPred_Simple_IsRule11Enabled,
1687 GICXXPred_Simple_IsRule12Enabled,
1688 GICXXPred_Simple_IsRule13Enabled,
1689 GICXXPred_Simple_IsRule14Enabled,
1690 GICXXPred_Simple_IsRule15Enabled,
1691 GICXXPred_Simple_IsRule16Enabled,
1692 GICXXPred_Simple_IsRule17Enabled,
1693 GICXXPred_Simple_IsRule18Enabled,
1694 GICXXPred_Simple_IsRule19Enabled,
1695 GICXXPred_Simple_IsRule20Enabled,
1696 GICXXPred_Simple_IsRule21Enabled,
1697 GICXXPred_Simple_IsRule22Enabled,
1698 GICXXPred_Simple_IsRule23Enabled,
1699 GICXXPred_Simple_IsRule24Enabled,
1700 GICXXPred_Simple_IsRule25Enabled,
1701 GICXXPred_Simple_IsRule26Enabled,
1702 GICXXPred_Simple_IsRule27Enabled,
1703 GICXXPred_Simple_IsRule28Enabled,
1704 GICXXPred_Simple_IsRule29Enabled,
1705 GICXXPred_Simple_IsRule30Enabled,
1706 GICXXPred_Simple_IsRule31Enabled,
1707 GICXXPred_Simple_IsRule32Enabled,
1708 GICXXPred_Simple_IsRule33Enabled,
1709 GICXXPred_Simple_IsRule34Enabled,
1710 GICXXPred_Simple_IsRule35Enabled,
1711 GICXXPred_Simple_IsRule36Enabled,
1712 GICXXPred_Simple_IsRule37Enabled,
1713 GICXXPred_Simple_IsRule38Enabled,
1714 GICXXPred_Simple_IsRule39Enabled,
1715 GICXXPred_Simple_IsRule40Enabled,
1716 GICXXPred_Simple_IsRule41Enabled,
1717 GICXXPred_Simple_IsRule42Enabled,
1718 GICXXPred_Simple_IsRule43Enabled,
1719 GICXXPred_Simple_IsRule44Enabled,
1720 GICXXPred_Simple_IsRule45Enabled,
1721 GICXXPred_Simple_IsRule46Enabled,
1722 GICXXPred_Simple_IsRule47Enabled,
1723 GICXXPred_Simple_IsRule48Enabled,
1724 GICXXPred_Simple_IsRule49Enabled,
1725 GICXXPred_Simple_IsRule50Enabled,
1726 GICXXPred_Simple_IsRule51Enabled,
1727 GICXXPred_Simple_IsRule52Enabled,
1728 GICXXPred_Simple_IsRule53Enabled,
1729 GICXXPred_Simple_IsRule54Enabled,
1730 GICXXPred_Simple_IsRule55Enabled,
1731 GICXXPred_Simple_IsRule56Enabled,
1732 GICXXPred_Simple_IsRule57Enabled,
1733 GICXXPred_Simple_IsRule58Enabled,
1734 GICXXPred_Simple_IsRule59Enabled,
1735 GICXXPred_Simple_IsRule60Enabled,
1736 GICXXPred_Simple_IsRule61Enabled,
1737 GICXXPred_Simple_IsRule62Enabled,
1738 GICXXPred_Simple_IsRule63Enabled,
1739 GICXXPred_Simple_IsRule64Enabled,
1740 GICXXPred_Simple_IsRule65Enabled,
1741 GICXXPred_Simple_IsRule66Enabled,
1742 GICXXPred_Simple_IsRule67Enabled,
1743 GICXXPred_Simple_IsRule68Enabled,
1744 GICXXPred_Simple_IsRule69Enabled,
1745 GICXXPred_Simple_IsRule70Enabled,
1746 GICXXPred_Simple_IsRule71Enabled,
1747 GICXXPred_Simple_IsRule72Enabled,
1748 GICXXPred_Simple_IsRule73Enabled,
1749 GICXXPred_Simple_IsRule74Enabled,
1750 GICXXPred_Simple_IsRule75Enabled,
1751 GICXXPred_Simple_IsRule76Enabled,
1752 GICXXPred_Simple_IsRule77Enabled,
1753 GICXXPred_Simple_IsRule78Enabled,
1754 GICXXPred_Simple_IsRule79Enabled,
1755 GICXXPred_Simple_IsRule80Enabled,
1756 GICXXPred_Simple_IsRule81Enabled,
1757 GICXXPred_Simple_IsRule82Enabled,
1758 GICXXPred_Simple_IsRule83Enabled,
1759 GICXXPred_Simple_IsRule84Enabled,
1760 GICXXPred_Simple_IsRule85Enabled,
1761 GICXXPred_Simple_IsRule86Enabled,
1762 GICXXPred_Simple_IsRule87Enabled,
1763 GICXXPred_Simple_IsRule88Enabled,
1764 GICXXPred_Simple_IsRule89Enabled,
1765 GICXXPred_Simple_IsRule90Enabled,
1766 GICXXPred_Simple_IsRule91Enabled,
1767 GICXXPred_Simple_IsRule92Enabled,
1768 GICXXPred_Simple_IsRule93Enabled,
1769 GICXXPred_Simple_IsRule94Enabled,
1770 GICXXPred_Simple_IsRule95Enabled,
1771 GICXXPred_Simple_IsRule96Enabled,
1772 GICXXPred_Simple_IsRule97Enabled,
1773 GICXXPred_Simple_IsRule98Enabled,
1774 GICXXPred_Simple_IsRule99Enabled,
1775 GICXXPred_Simple_IsRule100Enabled,
1776 GICXXPred_Simple_IsRule101Enabled,
1777 GICXXPred_Simple_IsRule102Enabled,
1778 GICXXPred_Simple_IsRule103Enabled,
1779 GICXXPred_Simple_IsRule104Enabled,
1780 GICXXPred_Simple_IsRule105Enabled,
1781 GICXXPred_Simple_IsRule106Enabled,
1782 GICXXPred_Simple_IsRule107Enabled,
1783 GICXXPred_Simple_IsRule108Enabled,
1784 GICXXPred_Simple_IsRule109Enabled,
1785 GICXXPred_Simple_IsRule110Enabled,
1786 GICXXPred_Simple_IsRule111Enabled,
1787 GICXXPred_Simple_IsRule112Enabled,
1788 GICXXPred_Simple_IsRule113Enabled,
1789 GICXXPred_Simple_IsRule114Enabled,
1790 GICXXPred_Simple_IsRule115Enabled,
1791 GICXXPred_Simple_IsRule116Enabled,
1792 GICXXPred_Simple_IsRule117Enabled,
1793 GICXXPred_Simple_IsRule118Enabled,
1794 GICXXPred_Simple_IsRule119Enabled,
1795 GICXXPred_Simple_IsRule120Enabled,
1796 GICXXPred_Simple_IsRule121Enabled,
1797 GICXXPred_Simple_IsRule122Enabled,
1798 GICXXPred_Simple_IsRule123Enabled,
1799 GICXXPred_Simple_IsRule124Enabled,
1800 GICXXPred_Simple_IsRule125Enabled,
1801 GICXXPred_Simple_IsRule126Enabled,
1802 GICXXPred_Simple_IsRule127Enabled,
1803 GICXXPred_Simple_IsRule128Enabled,
1804 GICXXPred_Simple_IsRule129Enabled,
1805 GICXXPred_Simple_IsRule130Enabled,
1806 GICXXPred_Simple_IsRule131Enabled,
1807 GICXXPred_Simple_IsRule132Enabled,
1808 GICXXPred_Simple_IsRule133Enabled,
1809 GICXXPred_Simple_IsRule134Enabled,
1810 GICXXPred_Simple_IsRule135Enabled,
1811 GICXXPred_Simple_IsRule136Enabled,
1812 GICXXPred_Simple_IsRule137Enabled,
1813 GICXXPred_Simple_IsRule138Enabled,
1814 GICXXPred_Simple_IsRule139Enabled,
1815 GICXXPred_Simple_IsRule140Enabled,
1816 GICXXPred_Simple_IsRule141Enabled,
1817 GICXXPred_Simple_IsRule142Enabled,
1818 GICXXPred_Simple_IsRule143Enabled,
1819 GICXXPred_Simple_IsRule144Enabled,
1820 GICXXPred_Simple_IsRule145Enabled,
1821 GICXXPred_Simple_IsRule146Enabled,
1822 GICXXPred_Simple_IsRule147Enabled,
1823 GICXXPred_Simple_IsRule148Enabled,
1824 GICXXPred_Simple_IsRule149Enabled,
1825 GICXXPred_Simple_IsRule150Enabled,
1826 GICXXPred_Simple_IsRule151Enabled,
1827 GICXXPred_Simple_IsRule152Enabled,
1828 GICXXPred_Simple_IsRule153Enabled,
1829 GICXXPred_Simple_IsRule154Enabled,
1830 GICXXPred_Simple_IsRule155Enabled,
1831 GICXXPred_Simple_IsRule156Enabled,
1832 GICXXPred_Simple_IsRule157Enabled,
1833 GICXXPred_Simple_IsRule158Enabled,
1834 GICXXPred_Simple_IsRule159Enabled,
1835 GICXXPred_Simple_IsRule160Enabled,
1836 GICXXPred_Simple_IsRule161Enabled,
1837 GICXXPred_Simple_IsRule162Enabled,
1838 GICXXPred_Simple_IsRule163Enabled,
1839 GICXXPred_Simple_IsRule164Enabled,
1840 GICXXPred_Simple_IsRule165Enabled,
1841 GICXXPred_Simple_IsRule166Enabled,
1842 GICXXPred_Simple_IsRule167Enabled,
1843 GICXXPred_Simple_IsRule168Enabled,
1844 GICXXPred_Simple_IsRule169Enabled,
1845 GICXXPred_Simple_IsRule170Enabled,
1846 GICXXPred_Simple_IsRule171Enabled,
1847 GICXXPred_Simple_IsRule172Enabled,
1848 GICXXPred_Simple_IsRule173Enabled,
1849 GICXXPred_Simple_IsRule174Enabled,
1850 GICXXPred_Simple_IsRule175Enabled,
1851 GICXXPred_Simple_IsRule176Enabled,
1852 GICXXPred_Simple_IsRule177Enabled,
1853 GICXXPred_Simple_IsRule178Enabled,
1854 GICXXPred_Simple_IsRule179Enabled,
1855 GICXXPred_Simple_IsRule180Enabled,
1856 GICXXPred_Simple_IsRule181Enabled,
1857 GICXXPred_Simple_IsRule182Enabled,
1858 GICXXPred_Simple_IsRule183Enabled,
1859 GICXXPred_Simple_IsRule184Enabled,
1860 GICXXPred_Simple_IsRule185Enabled,
1861 GICXXPred_Simple_IsRule186Enabled,
1862 GICXXPred_Simple_IsRule187Enabled,
1863 GICXXPred_Simple_IsRule188Enabled,
1864 GICXXPred_Simple_IsRule189Enabled,
1865 GICXXPred_Simple_IsRule190Enabled,
1866 GICXXPred_Simple_IsRule191Enabled,
1867 GICXXPred_Simple_IsRule192Enabled,
1868 GICXXPred_Simple_IsRule193Enabled,
1869 GICXXPred_Simple_IsRule194Enabled,
1870 GICXXPred_Simple_IsRule195Enabled,
1871 GICXXPred_Simple_IsRule196Enabled,
1872 GICXXPred_Simple_IsRule197Enabled,
1873 GICXXPred_Simple_IsRule198Enabled,
1874 GICXXPred_Simple_IsRule199Enabled,
1875 GICXXPred_Simple_IsRule200Enabled,
1876 GICXXPred_Simple_IsRule201Enabled,
1877 GICXXPred_Simple_IsRule202Enabled,
1878 GICXXPred_Simple_IsRule203Enabled,
1879 GICXXPred_Simple_IsRule204Enabled,
1880 GICXXPred_Simple_IsRule205Enabled,
1881 GICXXPred_Simple_IsRule206Enabled,
1882 GICXXPred_Simple_IsRule207Enabled,
1883 GICXXPred_Simple_IsRule208Enabled,
1884 GICXXPred_Simple_IsRule209Enabled,
1885 GICXXPred_Simple_IsRule210Enabled,
1886 GICXXPred_Simple_IsRule211Enabled,
1887 GICXXPred_Simple_IsRule212Enabled,
1888 GICXXPred_Simple_IsRule213Enabled,
1889 GICXXPred_Simple_IsRule214Enabled,
1890 GICXXPred_Simple_IsRule215Enabled,
1891 GICXXPred_Simple_IsRule216Enabled,
1892 GICXXPred_Simple_IsRule217Enabled,
1893 GICXXPred_Simple_IsRule218Enabled,
1894 GICXXPred_Simple_IsRule219Enabled,
1895 GICXXPred_Simple_IsRule220Enabled,
1896 GICXXPred_Simple_IsRule221Enabled,
1897 GICXXPred_Simple_IsRule222Enabled,
1898 GICXXPred_Simple_IsRule223Enabled,
1899 GICXXPred_Simple_IsRule224Enabled,
1900 GICXXPred_Simple_IsRule225Enabled,
1901};
1902
1903bool AMDGPUPostLegalizerCombinerImpl::testSimplePredicate(unsigned Predicate) const {
1904 return RuleConfig.isRuleEnabled(Predicate - GICXXPred_Invalid - 1);
1905}
1906// Custom renderers.
1907enum {
1908 GICR_Invalid,
1909};
1910AMDGPUPostLegalizerCombinerImpl::CustomRendererFn
1911AMDGPUPostLegalizerCombinerImpl::CustomRenderers[] = {
1912 nullptr, // GICR_Invalid
1913};
1914
1915bool AMDGPUPostLegalizerCombinerImpl::tryCombineAllImpl(MachineInstr &I) const {
1916 const TargetSubtargetInfo &ST = MF.getSubtarget();
1917 const PredicateBitset AvailableFeatures = getAvailableFeatures();
1918 B.setInstrAndDebugLoc(I);
1919 State.MIs.clear();
1920 State.MIs.push_back(&I);
1921 if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), *ST.getInstrInfo(), MRI, *MRI.getTargetRegisterInfo(), *ST.getRegBankInfo(), AvailableFeatures, /*CoverageInfo*/ nullptr)) {
1922 return true;
1923 }
1924
1925 return false;
1926}
1927
1928enum {
1929 GICXXCustomAction_GICombiner0 = GICXXCustomAction_Invalid + 1,
1930 GICXXCustomAction_GICombiner1,
1931 GICXXCustomAction_GICombiner2,
1932 GICXXCustomAction_GICombiner3,
1933 GICXXCustomAction_GICombiner4,
1934 GICXXCustomAction_GICombiner5,
1935 GICXXCustomAction_GICombiner6,
1936 GICXXCustomAction_GICombiner7,
1937 GICXXCustomAction_GICombiner8,
1938 GICXXCustomAction_GICombiner9,
1939 GICXXCustomAction_GICombiner10,
1940 GICXXCustomAction_GICombiner11,
1941 GICXXCustomAction_GICombiner12,
1942 GICXXCustomAction_GICombiner13,
1943 GICXXCustomAction_GICombiner14,
1944 GICXXCustomAction_GICombiner15,
1945 GICXXCustomAction_GICombiner16,
1946 GICXXCustomAction_GICombiner17,
1947 GICXXCustomAction_GICombiner18,
1948 GICXXCustomAction_GICombiner19,
1949 GICXXCustomAction_GICombiner20,
1950 GICXXCustomAction_GICombiner21,
1951 GICXXCustomAction_GICombiner22,
1952 GICXXCustomAction_GICombiner23,
1953 GICXXCustomAction_GICombiner24,
1954 GICXXCustomAction_GICombiner25,
1955 GICXXCustomAction_GICombiner26,
1956 GICXXCustomAction_GICombiner27,
1957 GICXXCustomAction_GICombiner28,
1958 GICXXCustomAction_GICombiner29,
1959 GICXXCustomAction_GICombiner30,
1960 GICXXCustomAction_GICombiner31,
1961 GICXXCustomAction_GICombiner32,
1962 GICXXCustomAction_GICombiner33,
1963 GICXXCustomAction_GICombiner34,
1964 GICXXCustomAction_GICombiner35,
1965 GICXXCustomAction_GICombiner36,
1966 GICXXCustomAction_GICombiner37,
1967 GICXXCustomAction_GICombiner38,
1968 GICXXCustomAction_GICombiner39,
1969 GICXXCustomAction_GICombiner40,
1970 GICXXCustomAction_GICombiner41,
1971 GICXXCustomAction_GICombiner42,
1972 GICXXCustomAction_GICombiner43,
1973 GICXXCustomAction_GICombiner44,
1974 GICXXCustomAction_GICombiner45,
1975 GICXXCustomAction_GICombiner46,
1976 GICXXCustomAction_GICombiner47,
1977 GICXXCustomAction_GICombiner48,
1978 GICXXCustomAction_GICombiner49,
1979 GICXXCustomAction_GICombiner50,
1980 GICXXCustomAction_GICombiner51,
1981 GICXXCustomAction_GICombiner52,
1982 GICXXCustomAction_GICombiner53,
1983 GICXXCustomAction_GICombiner54,
1984 GICXXCustomAction_GICombiner55,
1985 GICXXCustomAction_GICombiner56,
1986 GICXXCustomAction_GICombiner57,
1987 GICXXCustomAction_GICombiner58,
1988 GICXXCustomAction_GICombiner59,
1989 GICXXCustomAction_GICombiner60,
1990 GICXXCustomAction_GICombiner61,
1991 GICXXCustomAction_GICombiner62,
1992 GICXXCustomAction_GICombiner63,
1993 GICXXCustomAction_GICombiner64,
1994 GICXXCustomAction_GICombiner65,
1995 GICXXCustomAction_GICombiner66,
1996 GICXXCustomAction_GICombiner67,
1997 GICXXCustomAction_GICombiner68,
1998 GICXXCustomAction_GICombiner69,
1999 GICXXCustomAction_GICombiner70,
2000 GICXXCustomAction_GICombiner71,
2001 GICXXCustomAction_GICombiner72,
2002 GICXXCustomAction_GICombiner73,
2003 GICXXCustomAction_GICombiner74,
2004 GICXXCustomAction_GICombiner75,
2005 GICXXCustomAction_GICombiner76,
2006 GICXXCustomAction_GICombiner77,
2007 GICXXCustomAction_GICombiner78,
2008 GICXXCustomAction_GICombiner79,
2009 GICXXCustomAction_GICombiner80,
2010 GICXXCustomAction_GICombiner81,
2011 GICXXCustomAction_GICombiner82,
2012 GICXXCustomAction_GICombiner83,
2013 GICXXCustomAction_GICombiner84,
2014 GICXXCustomAction_GICombiner85,
2015 GICXXCustomAction_GICombiner86,
2016 GICXXCustomAction_GICombiner87,
2017 GICXXCustomAction_GICombiner88,
2018 GICXXCustomAction_GICombiner89,
2019 GICXXCustomAction_GICombiner90,
2020 GICXXCustomAction_GICombiner91,
2021 GICXXCustomAction_GICombiner92,
2022 GICXXCustomAction_GICombiner93,
2023 GICXXCustomAction_GICombiner94,
2024 GICXXCustomAction_GICombiner95,
2025 GICXXCustomAction_GICombiner96,
2026 GICXXCustomAction_GICombiner97,
2027 GICXXCustomAction_GICombiner98,
2028 GICXXCustomAction_GICombiner99,
2029 GICXXCustomAction_GICombiner100,
2030 GICXXCustomAction_GICombiner101,
2031 GICXXCustomAction_GICombiner102,
2032 GICXXCustomAction_GICombiner103,
2033 GICXXCustomAction_GICombiner104,
2034 GICXXCustomAction_GICombiner105,
2035 GICXXCustomAction_GICombiner106,
2036 GICXXCustomAction_GICombiner107,
2037 GICXXCustomAction_GICombiner108,
2038 GICXXCustomAction_GICombiner109,
2039 GICXXCustomAction_GICombiner110,
2040 GICXXCustomAction_GICombiner111,
2041 GICXXCustomAction_GICombiner112,
2042 GICXXCustomAction_GICombiner113,
2043 GICXXCustomAction_GICombiner114,
2044 GICXXCustomAction_GICombiner115,
2045 GICXXCustomAction_GICombiner116,
2046 GICXXCustomAction_GICombiner117,
2047 GICXXCustomAction_GICombiner118,
2048 GICXXCustomAction_GICombiner119,
2049 GICXXCustomAction_GICombiner120,
2050 GICXXCustomAction_GICombiner121,
2051 GICXXCustomAction_GICombiner122,
2052 GICXXCustomAction_GICombiner123,
2053 GICXXCustomAction_GICombiner124,
2054 GICXXCustomAction_GICombiner125,
2055 GICXXCustomAction_GICombiner126,
2056 GICXXCustomAction_GICombiner127,
2057 GICXXCustomAction_GICombiner128,
2058 GICXXCustomAction_GICombiner129,
2059 GICXXCustomAction_GICombiner130,
2060 GICXXCustomAction_GICombiner131,
2061 GICXXCustomAction_GICombiner132,
2062 GICXXCustomAction_GICombiner133,
2063 GICXXCustomAction_GICombiner134,
2064 GICXXCustomAction_GICombiner135,
2065 GICXXCustomAction_GICombiner136,
2066 GICXXCustomAction_GICombiner137,
2067 GICXXCustomAction_GICombiner138,
2068 GICXXCustomAction_GICombiner139,
2069 GICXXCustomAction_GICombiner140,
2070 GICXXCustomAction_GICombiner141,
2071 GICXXCustomAction_GICombiner142,
2072 GICXXCustomAction_GICombiner143,
2073 GICXXCustomAction_GICombiner144,
2074 GICXXCustomAction_GICombiner145,
2075 GICXXCustomAction_GICombiner146,
2076 GICXXCustomAction_GICombiner147,
2077 GICXXCustomAction_GICombiner148,
2078 GICXXCustomAction_GICombiner149,
2079 GICXXCustomAction_GICombiner150,
2080 GICXXCustomAction_GICombiner151,
2081 GICXXCustomAction_GICombiner152,
2082 GICXXCustomAction_GICombiner153,
2083 GICXXCustomAction_GICombiner154,
2084 GICXXCustomAction_GICombiner155,
2085 GICXXCustomAction_GICombiner156,
2086 GICXXCustomAction_GICombiner157,
2087 GICXXCustomAction_GICombiner158,
2088 GICXXCustomAction_GICombiner159,
2089 GICXXCustomAction_GICombiner160,
2090 GICXXCustomAction_GICombiner161,
2091};
2092bool AMDGPUPostLegalizerCombinerImpl::runCustomAction(unsigned ApplyID, const MatcherState &State, NewMIVector &OutMIs) const {
2093 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
2094 switch(ApplyID) {
2095 case GICXXCustomAction_GICombiner0:{
2096 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2097 // Match Patterns
2098 if(![&](){return Helper.matchFoldAPlusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2099 return false;
2100 }
2101 // Apply Patterns
2102 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2103 return true;
2104 }
2105 case GICXXCustomAction_GICombiner1:{
2106 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2107 // Match Patterns
2108 if(![&](){return Helper.matchFoldC2MinusAPlusC1(*State.MIs[0], GIMatchData_matchinfo);}()) {
2109 return false;
2110 }
2111 // Apply Patterns
2112 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2113 return true;
2114 }
2115 case GICXXCustomAction_GICombiner2:{
2116 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2117 // Match Patterns
2118 if(![&](){return Helper.matchFoldAMinusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2119 return false;
2120 }
2121 // Apply Patterns
2122 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2123 return true;
2124 }
2125 case GICXXCustomAction_GICombiner3:{
2126 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2127 // Match Patterns
2128 if(![&](){return Helper.matchFoldC1Minus2MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2129 return false;
2130 }
2131 // Apply Patterns
2132 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2133 return true;
2134 }
2135 case GICXXCustomAction_GICombiner4:{
2136 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2137 // Match Patterns
2138 if(![&](){return Helper.matchFoldAMinusC1PlusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2139 return false;
2140 }
2141 // Apply Patterns
2142 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2143 return true;
2144 }
2145 case GICXXCustomAction_GICombiner5:{
2146 // Match Patterns
2147 if(![&](){return Helper.matchCombineCopy(*State.MIs[0]);}()) {
2148 return false;
2149 }
2150 // Apply Patterns
2151 Helper.applyCombineCopy(*State.MIs[0]);
2152 return true;
2153 }
2154 case GICXXCustomAction_GICombiner6:{
2155 unsigned GIMatchData_matchinfo;
2156 // Match Patterns
2157 if(![&](){return Helper.matchCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);}()) {
2158 return false;
2159 }
2160 // Apply Patterns
2161 Helper.applyCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);
2162 return true;
2163 }
2164 case GICXXCustomAction_GICombiner7:{
2165 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2166 // Match Patterns
2167 if(![&](){return Helper.matchCombineSubToAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2168 return false;
2169 }
2170 // Apply Patterns
2171 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2172 return true;
2173 }
2174 case GICXXCustomAction_GICombiner8:{
2175 std::pair<Register, bool> GIMatchData_info;
2176 // Match Patterns
2177 if(![&](){return Helper.matchCombineAddP2IToPtrAdd(*State.MIs[0], GIMatchData_info);}()) {
2178 return false;
2179 }
2180 // Apply Patterns
2181 Helper.applyCombineAddP2IToPtrAdd(*State.MIs[0], GIMatchData_info);
2182 return true;
2183 }
2184 case GICXXCustomAction_GICombiner9:{
2185 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2186 // Match Patterns
2187 if(![&](){return Helper.matchExtractVectorElement(*State.MIs[0], GIMatchData_matchinfo);}()) {
2188 return false;
2189 }
2190 // Apply Patterns
2191 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2192 return true;
2193 }
2194 case GICXXCustomAction_GICombiner10:{
2195 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2196 // Match Patterns
2197 if(![&](){return Helper.matchInsertVectorElementOOB(*State.MIs[0], GIMatchData_matchinfo);}()) {
2198 return false;
2199 }
2200 // Apply Patterns
2201 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2202 return true;
2203 }
2204 case GICXXCustomAction_GICombiner11:{
2205 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2206 // Match Patterns
2207 if(![&](){return Helper.matchExtractVectorElementWithDifferentIndices(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2208 return false;
2209 }
2210 // Apply Patterns
2211 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2212 return true;
2213 }
2214 case GICXXCustomAction_GICombiner12:{
2215 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2216 // Match Patterns
2217 if(![&](){return Helper.matchExtractVectorElementWithBuildVector(*State.MIs[0], *State.MIs[1],
2218 GIMatchData_matchinfo);}()) {
2219 return false;
2220 }
2221 // Apply Patterns
2222 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2223 return true;
2224 }
2225 case GICXXCustomAction_GICombiner13:{
2226 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2227 // Match Patterns
2228 if(![&](){return Helper.matchExtractVectorElementWithBuildVectorTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2229 return false;
2230 }
2231 // Apply Patterns
2232 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2233 return true;
2234 }
2235 case GICXXCustomAction_GICombiner14:{
2236 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2237 // Match Patterns
2238 if(![&](){return Helper.matchExtractVectorElementWithShuffleVector(*State.MIs[0], *State.MIs[1],
2239 GIMatchData_matchinfo);}()) {
2240 return false;
2241 }
2242 // Apply Patterns
2243 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2244 return true;
2245 }
2246 case GICXXCustomAction_GICombiner15:{
2247 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2248 // Match Patterns
2249 if(![&](){return Helper.matchAddOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2250 return false;
2251 }
2252 // Apply Patterns
2253 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2254 return true;
2255 }
2256 case GICXXCustomAction_GICombiner16:{
2257 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2258 // Match Patterns
2259 if(![&](){return Helper.matchMulOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2260 return false;
2261 }
2262 // Apply Patterns
2263 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2264 return true;
2265 }
2266 case GICXXCustomAction_GICombiner17:{
2267 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2268 // Match Patterns
2269 if(![&](){return Helper.matchShlOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2270 return false;
2271 }
2272 // Apply Patterns
2273 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2274 return true;
2275 }
2276 case GICXXCustomAction_GICombiner18:{
2277 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2278 // Match Patterns
2279 if(![&](){return Helper.matchSubOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2280 return false;
2281 }
2282 // Apply Patterns
2283 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2284 return true;
2285 }
2286 case GICXXCustomAction_GICombiner19:{
2287 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2288 // Match Patterns
2289 if(![&](){return !isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI) && Helper.matchFreezeOfSingleMaybePoisonOperand(*State.MIs[0], GIMatchData_matchinfo);}()) {
2290 return false;
2291 }
2292 // Apply Patterns
2293 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2294 return true;
2295 }
2296 case GICXXCustomAction_GICombiner20:{
2297 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2298 // Match Patterns
2299 if(![&](){return Helper.matchTruncateOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2300 return false;
2301 }
2302 // Apply Patterns
2303 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2304 return true;
2305 }
2306 case GICXXCustomAction_GICombiner21:{
2307 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2308 // Match Patterns
2309 if(![&](){return Helper.matchExtOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2310 return false;
2311 }
2312 // Apply Patterns
2313 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2314 return true;
2315 }
2316 case GICXXCustomAction_GICombiner22:{
2317 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2318 // Match Patterns
2319 if(![&](){return Helper.matchRedundantSextInReg(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2320 return false;
2321 }
2322 // Apply Patterns
2323 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2324 return true;
2325 }
2326 case GICXXCustomAction_GICombiner23:{
2327 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2328 // Match Patterns
2329 if(![&](){return Helper.matchCastOfSelect(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2330 return false;
2331 }
2332 // Apply Patterns
2333 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2334 return true;
2335 }
2336 case GICXXCustomAction_GICombiner24:{
2337 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2338 // Match Patterns
2339 if(![&](){return Helper.matchCastOfBuildVector(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2340 return false;
2341 }
2342 // Apply Patterns
2343 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2344 return true;
2345 }
2346 case GICXXCustomAction_GICombiner25:{
2347 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2348 // Match Patterns
2349 if(![&](){return Helper.matchNarrowBinop(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2350 return false;
2351 }
2352 // Apply Patterns
2353 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2354 return true;
2355 }
2356 case GICXXCustomAction_GICombiner26:{
2357 APInt GIMatchData_matchinfo;
2358 // Match Patterns
2359 if(![&](){return Helper.matchCastOfInteger(*State.MIs[0], GIMatchData_matchinfo);}()) {
2360 return false;
2361 }
2362 // Apply Patterns
2363 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
2364 return true;
2365 }
2366 case GICXXCustomAction_GICombiner27:{
2367 SmallVector<Register> GIMatchData_info;
2368 // Match Patterns
2369 if(![&](){return Helper.matchCombineInsertVecElts(*State.MIs[0], GIMatchData_info);}()) {
2370 return false;
2371 }
2372 // Apply Patterns
2373 Helper.applyCombineInsertVecElts(*State.MIs[0], GIMatchData_info);
2374 return true;
2375 }
2376 case GICXXCustomAction_GICombiner28:{
2377 Register GIMatchData_matchinfo;
2378 // Match Patterns
2379 if(![&](){return Helper.matchExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);}()) {
2380 return false;
2381 }
2382 // Apply Patterns
2383 Helper.applyExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);
2384 return true;
2385 }
2386 case GICXXCustomAction_GICombiner29:{
2387 SmallVector<std::pair<Register, MachineInstr*>> GIMatchData_matchinfo;
2388 // Match Patterns
2389 if(![&](){return Helper.matchExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
2390 return false;
2391 }
2392 // Apply Patterns
2393 Helper.applyExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);
2394 return true;
2395 }
2396 case GICXXCustomAction_GICombiner30:{
2397 PreferredTuple GIMatchData_matchinfo;
2398 // Match Patterns
2399 if(![&](){return Helper.matchCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);}()) {
2400 return false;
2401 }
2402 // Apply Patterns
2403 Helper.applyCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);
2404 return true;
2405 }
2406 case GICXXCustomAction_GICombiner31:{
2407 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2408 // Match Patterns
2409 if(![&](){return Helper.matchCombineLoadWithAndMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
2410 return false;
2411 }
2412 // Apply Patterns
2413 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2414 return true;
2415 }
2416 case GICXXCustomAction_GICombiner32:{
2417 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2418 // Match Patterns
2419 if(![&](){return Helper.matchCombineExtractedVectorLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
2420 return false;
2421 }
2422 // Apply Patterns
2423 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2424 return true;
2425 }
2426 case GICXXCustomAction_GICombiner33:{
2427 // Match Patterns
2428 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2429 return false;
2430 }
2431 // Apply Patterns
2432 Helper.replaceInstWithFConstant(*State.MIs[0], 0.0);
2433 return true;
2434 }
2435 case GICXXCustomAction_GICombiner34:{
2436 // Match Patterns
2437 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2438 return false;
2439 }
2440 // Apply Patterns
2441 Helper.replaceInstWithConstant(*State.MIs[0], 0);
2442 return true;
2443 }
2444 case GICXXCustomAction_GICombiner35:{
2445 // Match Patterns
2446 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2447 return false;
2448 }
2449 // Apply Patterns
2450 Helper.replaceInstWithConstant(*State.MIs[0], -1);
2451 return true;
2452 }
2453 case GICXXCustomAction_GICombiner36:{
2454 // Match Patterns
2455 if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 1);}()) {
2456 return false;
2457 }
2458 // Apply Patterns
2459 Helper.replaceInstWithConstant(*State.MIs[0], 0);
2460 return true;
2461 }
2462 case GICXXCustomAction_GICombiner37:{
2463 // Match Patterns
2464 if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 2);}()) {
2465 return false;
2466 }
2467 // Apply Patterns
2468 Helper.replaceInstWithUndef(*State.MIs[0]);
2469 return true;
2470 }
2471 case GICXXCustomAction_GICombiner38:{
2472 // Apply Patterns
2473 Helper.replaceInstWithUndef(*State.MIs[0]->getOperand(0).getParent());
2474 return true;
2475 }
2476 case GICXXCustomAction_GICombiner39:{
2477 // Match Patterns
2478 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2479 return false;
2480 }
2481 // Apply Patterns
2482 Helper.replaceInstWithUndef(*State.MIs[0]);
2483 return true;
2484 }
2485 case GICXXCustomAction_GICombiner40:{
2486 // Match Patterns
2487 if(![&](){return Helper.matchAllExplicitUsesAreUndef(*State.MIs[0]);}()) {
2488 return false;
2489 }
2490 // Apply Patterns
2491 Helper.replaceInstWithUndef(*State.MIs[0]);
2492 return true;
2493 }
2494 case GICXXCustomAction_GICombiner41:{
2495 // Match Patterns
2496 if(![&](){return Helper.matchUndefShuffleVectorMask(*State.MIs[0]);}()) {
2497 return false;
2498 }
2499 // Apply Patterns
2500 Helper.replaceInstWithUndef(*State.MIs[0]);
2501 return true;
2502 }
2503 case GICXXCustomAction_GICombiner42:{
2504 // Match Patterns
2505 if(![&](){return Helper.matchUndefStore(*State.MIs[0]);}()) {
2506 return false;
2507 }
2508 // Apply Patterns
2509 Helper.eraseInst(*State.MIs[0]);
2510 return true;
2511 }
2512 case GICXXCustomAction_GICombiner43:{
2513 // Match Patterns
2514 if(![&](){return Helper.matchInsertExtractVecEltOutOfBounds(*State.MIs[0]);}()) {
2515 return false;
2516 }
2517 // Apply Patterns
2518 Helper.replaceInstWithUndef(*State.MIs[0]);
2519 return true;
2520 }
2521 case GICXXCustomAction_GICombiner44:{
2522 // Match Patterns
2523 if(![&](){return Helper.matchSelectSameVal(*State.MIs[0]);}()) {
2524 return false;
2525 }
2526 // Apply Patterns
2527 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 2);
2528 return true;
2529 }
2530 case GICXXCustomAction_GICombiner45:{
2531 // Match Patterns
2532 if(![&](){return Helper.matchOperandIsZero(*State.MIs[0], 1);}()) {
2533 return false;
2534 }
2535 // Apply Patterns
2536 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 1);
2537 return true;
2538 }
2539 case GICXXCustomAction_GICombiner46:{
2540 Register GIMatchData_info;
2541 // Match Patterns
2542 if(![&](){return Helper.matchCombineI2PToP2I(*State.MIs[0], GIMatchData_info);}()) {
2543 return false;
2544 }
2545 // Apply Patterns
2546 Helper.applyCombineI2PToP2I(*State.MIs[0], GIMatchData_info);
2547 return true;
2548 }
2549 case GICXXCustomAction_GICombiner47:{
2550 Register GIMatchData_info;
2551 // Match Patterns
2552 if(![&](){GIMatchData_info = State.MIs[1]->getOperand(1).getReg(); return true;}()) {
2553 return false;
2554 }
2555 // Apply Patterns
2556 Helper.applyCombineP2IToI2P(*State.MIs[0], GIMatchData_info);
2557 return true;
2558 }
2559 case GICXXCustomAction_GICombiner48:{
2560 Register GIMatchData_matchinfo;
2561 // Match Patterns
2562 if(![&](){return Helper.matchCombineAnyExtTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
2563 return false;
2564 }
2565 // Apply Patterns
2566 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2567 return true;
2568 }
2569 case GICXXCustomAction_GICombiner49:{
2570 Register GIMatchData_matchinfo;
2571 // Match Patterns
2572 if(![&](){return Helper.matchBuildVectorIdentityFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
2573 return false;
2574 }
2575 // Apply Patterns
2576 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2577 return true;
2578 }
2579 case GICXXCustomAction_GICombiner50:{
2580 Register GIMatchData_matchinfo;
2581 // Match Patterns
2582 if(![&](){return Helper.matchTruncBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
2583 return false;
2584 }
2585 // Apply Patterns
2586 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2587 return true;
2588 }
2589 case GICXXCustomAction_GICombiner51:{
2590 Register GIMatchData_matchinfo;
2591 // Match Patterns
2592 if(![&](){return Helper.matchTruncLshrBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
2593 return false;
2594 }
2595 // Apply Patterns
2596 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2597 return true;
2598 }
2599 case GICXXCustomAction_GICombiner52:{
2600 // Match Patterns
2601 if(![&](){return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());}()) {
2602 return false;
2603 }
2604 // Apply Patterns
2605 Helper.replaceSingleDefInstWithReg(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
2606 return true;
2607 }
2608 case GICXXCustomAction_GICombiner53:{
2609 MachineInstr* GIMatchData_matchinfo;
2610 // Match Patterns
2611 if(![&](){return Helper.matchExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);}()) {
2612 return false;
2613 }
2614 // Apply Patterns
2615 Helper.applyExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);
2616 return true;
2617 }
2618 case GICXXCustomAction_GICombiner54:{
2619 std::tuple<Register, Register> GIMatchData_info;
2620 // Match Patterns
2621 if(![&](){return Helper.matchSimplifyAddToSub(*State.MIs[0], GIMatchData_info);}()) {
2622 return false;
2623 }
2624 // Apply Patterns
2625 Helper.applySimplifyAddToSub(*State.MIs[0], GIMatchData_info);
2626 return true;
2627 }
2628 case GICXXCustomAction_GICombiner55:{
2629 InstructionStepsMatchInfo GIMatchData_info;
2630 // Match Patterns
2631 if(![&](){return Helper.matchHoistLogicOpWithSameOpcodeHands(*State.MIs[0], GIMatchData_info);}()) {
2632 return false;
2633 }
2634 // Apply Patterns
2635 Helper.applyBuildInstructionSteps(*State.MIs[0], GIMatchData_info);
2636 return true;
2637 }
2638 case GICXXCustomAction_GICombiner56:{
2639 std::optional<int64_t> GIMatchData_matchinfo;
2640 // Match Patterns
2641 if(![&](){return Helper.matchShiftsTooBig(*State.MIs[0], GIMatchData_matchinfo);}()) {
2642 return false;
2643 }
2644 // Apply Patterns
2645 if (GIMatchData_matchinfo) {
2646 Helper.replaceInstWithConstant(*State.MIs[0], *GIMatchData_matchinfo);
2647 } else {
2648 Helper.replaceInstWithUndef(*State.MIs[0]);
2649 }
2650 return true;
2651 }
2652 case GICXXCustomAction_GICombiner57:{
2653 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2654 // Match Patterns
2655 if(![&](){return Helper.matchReassocPtrAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2656 return false;
2657 }
2658 // Apply Patterns
2659 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2660 return true;
2661 }
2662 case GICXXCustomAction_GICombiner58:{
2663 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2664 // Match Patterns
2665 if(![&](){return Helper.matchReassocCommBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2666 return false;
2667 }
2668 // Apply Patterns
2669 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2670 return true;
2671 }
2672 case GICXXCustomAction_GICombiner59:{
2673 PtrAddChain GIMatchData_matchinfo;
2674 // Match Patterns
2675 if(![&](){return Helper.matchPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
2676 return false;
2677 }
2678 // Apply Patterns
2679 Helper.applyPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);
2680 return true;
2681 }
2682 case GICXXCustomAction_GICombiner60:{
2683 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2684 // Match Patterns
2685 if(![&](){return Helper.matchCanonicalizeICmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2686 return false;
2687 }
2688 // Apply Patterns
2689 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2690 return true;
2691 }
2692 case GICXXCustomAction_GICombiner61:{
2693 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2694 // Match Patterns
2695 if(![&](){return Helper.matchCanonicalizeFCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2696 return false;
2697 }
2698 // Apply Patterns
2699 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2700 return true;
2701 }
2702 case GICXXCustomAction_GICombiner62:{
2703 int64_t GIMatchData_matchinfo;
2704 // Match Patterns
2705 if(![&](){return Helper.matchICmpToTrueFalseKnownBits(*State.MIs[0], GIMatchData_matchinfo);}()) {
2706 return false;
2707 }
2708 // Apply Patterns
2709 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
2710 return true;
2711 }
2712 case GICXXCustomAction_GICombiner63:{
2713 std::function<void(MachineIRBuilder &)> GIMatchData_info;
2714 // Match Patterns
2715 if(![&](){return Helper.matchICmpToLHSKnownBits(*State.MIs[0], GIMatchData_info);}()) {
2716 return false;
2717 }
2718 // Apply Patterns
2719 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
2720 return true;
2721 }
2722 case GICXXCustomAction_GICombiner64:{
2723 std::function<void(MachineIRBuilder &)> GIMatchData_info;
2724 // Match Patterns
2725 if(![&](){return Helper.matchRedundantBinOpInEquality(*State.MIs[0], GIMatchData_info);}()) {
2726 return false;
2727 }
2728 // Apply Patterns
2729 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
2730 return true;
2731 }
2732 case GICXXCustomAction_GICombiner65:{
2733 std::tuple<Register, int64_t> GIMatchData_info;
2734 // Match Patterns
2735 if(![&](){return Helper.matchAshrShlToSextInreg(*State.MIs[0], GIMatchData_info);}()) {
2736 return false;
2737 }
2738 // Apply Patterns
2739 Helper.applyAshShlToSextInreg(*State.MIs[0], GIMatchData_info);
2740 return true;
2741 }
2742 case GICXXCustomAction_GICombiner66:{
2743 std::tuple<Register, unsigned> GIMatchData_matchinfo;
2744 // Match Patterns
2745 if(![&](){return Helper.matchSextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
2746 return false;
2747 }
2748 // Apply Patterns
2749 Helper.applySextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);
2750 return true;
2751 }
2752 case GICXXCustomAction_GICombiner67:{
2753 RegisterImmPair GIMatchData_matchinfo;
2754 // Match Patterns
2755 if(![&](){return Helper.matchCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);}()) {
2756 return false;
2757 }
2758 // Apply Patterns
2759 Helper.applyCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);
2760 return true;
2761 }
2762 case GICXXCustomAction_GICombiner68:{
2763 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2764 // Match Patterns
2765 if(![&](){return Helper.matchNarrowBinopFeedingAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2766 return false;
2767 }
2768 // Apply Patterns
2769 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2770 return true;
2771 }
2772 case GICXXCustomAction_GICombiner69:{
2773 unsigned GIMatchData_matchinfo;
2774 // Match Patterns
2775 if(![&](){return Helper.matchConstantSelectCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2776 return false;
2777 }
2778 // Apply Patterns
2779 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_matchinfo);
2780 return true;
2781 }
2782 case GICXXCustomAction_GICombiner70:{
2783 std::function<void(MachineIRBuilder &)> GIMatchData_info;
2784 // Match Patterns
2785 if(![&](){return Helper.matchSelectIMinMax(State.MIs[0]->getOperand(0), GIMatchData_info);}()) {
2786 return false;
2787 }
2788 // Apply Patterns
2789 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_info);
2790 return true;
2791 }
2792 case GICXXCustomAction_GICombiner71:{
2793 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2794 // Match Patterns
2795 if(![&](){return Helper.matchSelect(*State.MIs[0], GIMatchData_matchinfo);}()) {
2796 return false;
2797 }
2798 // Apply Patterns
2799 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2800 return true;
2801 }
2802 case GICXXCustomAction_GICombiner72:{
2803 Register GIMatchData_matchinfo;
2804 // Match Patterns
2805 if(![&](){return Helper.matchRedundantAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2806 return false;
2807 }
2808 // Apply Patterns
2809 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2810 return true;
2811 }
2812 case GICXXCustomAction_GICombiner73:{
2813 // Match Patterns
2814 if(![&](){return Helper.matchRedundantSExtInReg(*State.MIs[0]);}()) {
2815 return false;
2816 }
2817 // Apply Patterns
2818 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 1);
2819 return true;
2820 }
2821 case GICXXCustomAction_GICombiner74:{
2822 Register GIMatchData_matchinfo;
2823 // Match Patterns
2824 if(![&](){return Helper.matchRedundantOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
2825 return false;
2826 }
2827 // Apply Patterns
2828 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2829 return true;
2830 }
2831 case GICXXCustomAction_GICombiner75:{
2832 // Match Patterns
2833 if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(*State.MIs[0], 2);}()) {
2834 return false;
2835 }
2836 // Apply Patterns
2837 Helper.applySimplifyURemByPow2(*State.MIs[0]);
2838 return true;
2839 }
2840 case GICXXCustomAction_GICombiner76:{
2841 Register GIMatchData_matchinfo;
2842 // Match Patterns
2843 if(![&](){return Helper.matchCombineZextTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
2844 return false;
2845 }
2846 // Apply Patterns
2847 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2848 return true;
2849 }
2850 case GICXXCustomAction_GICombiner77:{
2851 // Match Patterns
2852 if(![&](){unsigned BitWidth = MRI.getType(State.MIs[0]->getOperand(1).getReg()).getScalarSizeInBits();
2853 return Helper.getValueTracking()->maskedValueIsZero(State.MIs[0]->getOperand(1).getReg(),
2854 APInt::getOneBitSet(BitWidth, State.MIs[0]->getOperand(2).getImm() - 1));}()) {
2855 return false;
2856 }
2857 // Apply Patterns
2858 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
2859 Helper.getBuilder().buildZExtInReg(State.MIs[0]->getOperand(0), State.MIs[0]->getOperand(1), State.MIs[0]->getOperand(2).getImm());
2860 State.MIs[0]->eraseFromParent();
2861 return true;
2862 }
2863 case GICXXCustomAction_GICombiner78:{
2864 std::pair<MachineInstr*, LLT> GIMatchData_matchinfo;
2865 // Match Patterns
2866 if(![&](){return Helper.matchCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
2867 return false;
2868 }
2869 // Apply Patterns
2870 Helper.applyCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);
2871 return true;
2872 }
2873 case GICXXCustomAction_GICombiner79:{
2874 SmallVector<Register> GIMatchData_info;
2875 // Match Patterns
2876 if(![&](){return Helper.matchNotCmp(*State.MIs[0], GIMatchData_info);}()) {
2877 return false;
2878 }
2879 // Apply Patterns
2880 Helper.applyNotCmp(*State.MIs[0], GIMatchData_info);
2881 return true;
2882 }
2883 case GICXXCustomAction_GICombiner80:{
2884 MachineInstr * GIMatchData_matchinfo;
2885 // Match Patterns
2886 if(![&](){return Helper.matchOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);}()) {
2887 return false;
2888 }
2889 // Apply Patterns
2890 Helper.applyOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);
2891 return true;
2892 }
2893 case GICXXCustomAction_GICombiner81:{
2894 // Apply Patterns
2895 Helper.applyCombineConstantFoldFpUnary(*State.MIs[0], State.MIs[1]->getOperand(1).getFPImm());
2896 return true;
2897 }
2898 case GICXXCustomAction_GICombiner82:{
2899 // Apply Patterns
2900 Helper.replaceInstWithFConstant(*State.MIs[0]->getOperand(0).getParent(), 0.0);
2901 return true;
2902 }
2903 case GICXXCustomAction_GICombiner83:{
2904 APInt GIMatchData_info;
2905 // Match Patterns
2906 if(![&](){return Helper.matchCombineConstPtrAddToI2P(*State.MIs[0], GIMatchData_info);}()) {
2907 return false;
2908 }
2909 // Apply Patterns
2910 Helper.applyCombineConstPtrAddToI2P(*State.MIs[0], GIMatchData_info);
2911 return true;
2912 }
2913 case GICXXCustomAction_GICombiner84:{
2914 std::function<void(MachineIRBuilder &)> GIMatchData_info;
2915 // Match Patterns
2916 if(![&](){return Helper.matchOverlappingAnd(*State.MIs[0], GIMatchData_info);}()) {
2917 return false;
2918 }
2919 // Apply Patterns
2920 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
2921 return true;
2922 }
2923 case GICXXCustomAction_GICombiner85:{
2924 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2925 // Match Patterns
2926 if(![&](){return Helper.matchMulOBy2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2927 return false;
2928 }
2929 // Apply Patterns
2930 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2931 return true;
2932 }
2933 case GICXXCustomAction_GICombiner86:{
2934 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2935 // Match Patterns
2936 if(![&](){return Helper.matchMulOBy0(*State.MIs[0], GIMatchData_matchinfo);}()) {
2937 return false;
2938 }
2939 // Apply Patterns
2940 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2941 return true;
2942 }
2943 case GICXXCustomAction_GICombiner87:{
2944 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2945 // Match Patterns
2946 if(![&](){return Helper.matchAddEToAddO(*State.MIs[0], GIMatchData_matchinfo);}()) {
2947 return false;
2948 }
2949 // Apply Patterns
2950 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2951 return true;
2952 }
2953 case GICXXCustomAction_GICombiner88:{
2954 unsigned GIMatchData_info;
2955 // Match Patterns
2956 if(![&](){return Helper.matchCombineFMinMaxNaN(*State.MIs[0], GIMatchData_info);}()) {
2957 return false;
2958 }
2959 // Apply Patterns
2960 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_info);
2961 return true;
2962 }
2963 case GICXXCustomAction_GICombiner89:{
2964 // Match Patterns
2965 if(![&](){return Helper.matchFPowIExpansion(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());}()) {
2966 return false;
2967 }
2968 // Apply Patterns
2969 Helper.applyExpandFPowI(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());
2970 return true;
2971 }
2972 case GICXXCustomAction_GICombiner90:{
2973 std::pair<Register, Register> GIMatchData_matchinfo;
2974 // Match Patterns
2975 if(![&](){return Helper.matchXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
2976 return false;
2977 }
2978 // Apply Patterns
2979 Helper.applyXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);
2980 return true;
2981 }
2982 case GICXXCustomAction_GICombiner91:{
2983 // Match Patterns
2984 if(![&](){return Helper.matchPtrAddZero(*State.MIs[0]);}()) {
2985 return false;
2986 }
2987 // Apply Patterns
2988 Helper.applyPtrAddZero(*State.MIs[0]);
2989 return true;
2990 }
2991 case GICXXCustomAction_GICombiner92:{
2992 RegisterImmPair GIMatchData_matchinfo;
2993 // Match Patterns
2994 if(![&](){return Helper.matchShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
2995 return false;
2996 }
2997 // Apply Patterns
2998 Helper.applyShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);
2999 return true;
3000 }
3001 case GICXXCustomAction_GICombiner93:{
3002 ShiftOfShiftedLogic GIMatchData_matchinfo;
3003 // Match Patterns
3004 if(![&](){return Helper.matchShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);}()) {
3005 return false;
3006 }
3007 // Apply Patterns
3008 Helper.applyShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);
3009 return true;
3010 }
3011 case GICXXCustomAction_GICombiner94:{
3012 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3013 // Match Patterns
3014 if(![&](){return Helper.matchLoadOrCombine(*State.MIs[0], GIMatchData_info);}()) {
3015 return false;
3016 }
3017 // Apply Patterns
3018 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3019 return true;
3020 }
3021 case GICXXCustomAction_GICombiner95:{
3022 MachineInstr * GIMatchData_matchinfo;
3023 // Match Patterns
3024 if(![&](){return Helper.matchCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);}()) {
3025 return false;
3026 }
3027 // Apply Patterns
3028 Helper.applyCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);
3029 return true;
3030 }
3031 case GICXXCustomAction_GICombiner96:{
3032 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3033 // Match Patterns
3034 if(![&](){return Helper.matchOrShiftToFunnelShift(*State.MIs[0], GIMatchData_info);}()) {
3035 return false;
3036 }
3037 // Apply Patterns
3038 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3039 return true;
3040 }
3041 case GICXXCustomAction_GICombiner97:{
3042 // Match Patterns
3043 if(![&](){return Helper.matchFunnelShiftToRotate(*State.MIs[0]);}()) {
3044 return false;
3045 }
3046 // Apply Patterns
3047 Helper.applyFunnelShiftToRotate(*State.MIs[0]);
3048 return true;
3049 }
3050 case GICXXCustomAction_GICombiner98:{
3051 // Match Patterns
3052 if(![&](){return Helper.matchConstantLargerBitWidth(*State.MIs[0], 3);}()) {
3053 return false;
3054 }
3055 // Apply Patterns
3056 Helper.applyFunnelShiftConstantModulo(*State.MIs[0]);
3057 return true;
3058 }
3059 case GICXXCustomAction_GICombiner99:{
3060 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3061 // Match Patterns
3062 if(![&](){return Helper.matchCommuteShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
3063 return false;
3064 }
3065 // Apply Patterns
3066 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3067 return true;
3068 }
3069 case GICXXCustomAction_GICombiner100:{
3070 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3071 // Match Patterns
3072 if(![&](){return Helper.matchBitfieldExtractFromSExtInReg(*State.MIs[0], GIMatchData_info);}()) {
3073 return false;
3074 }
3075 // Apply Patterns
3076 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3077 return true;
3078 }
3079 case GICXXCustomAction_GICombiner101:{
3080 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3081 // Match Patterns
3082 if(![&](){return Helper.matchBitfieldExtractFromAnd(*State.MIs[0], GIMatchData_info);}()) {
3083 return false;
3084 }
3085 // Apply Patterns
3086 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3087 return true;
3088 }
3089 case GICXXCustomAction_GICombiner102:{
3090 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3091 // Match Patterns
3092 if(![&](){return Helper.matchBitfieldExtractFromShr(*State.MIs[0], GIMatchData_info);}()) {
3093 return false;
3094 }
3095 // Apply Patterns
3096 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3097 return true;
3098 }
3099 case GICXXCustomAction_GICombiner103:{
3100 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3101 // Match Patterns
3102 if(![&](){return Helper.matchBitfieldExtractFromShrAnd(*State.MIs[0], GIMatchData_info);}()) {
3103 return false;
3104 }
3105 // Apply Patterns
3106 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3107 return true;
3108 }
3109 case GICXXCustomAction_GICombiner104:{
3110 APInt GIMatchData_matchinfo;
3111 // Match Patterns
3112 if(![&](){return Helper.matchConstantFoldBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3113 return false;
3114 }
3115 // Apply Patterns
3116 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3117 return true;
3118 }
3119 case GICXXCustomAction_GICombiner105:{
3120 ConstantFP* GIMatchData_matchinfo;
3121 // Match Patterns
3122 if(![&](){return Helper.matchConstantFoldFPBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3123 return false;
3124 }
3125 // Apply Patterns
3126 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3127 return true;
3128 }
3129 case GICXXCustomAction_GICombiner106:{
3130 ConstantFP* GIMatchData_matchinfo;
3131 // Match Patterns
3132 if(![&](){return Helper.matchConstantFoldFMA(*State.MIs[0], GIMatchData_matchinfo);}()) {
3133 return false;
3134 }
3135 // Apply Patterns
3136 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3137 return true;
3138 }
3139 case GICXXCustomAction_GICombiner107:{
3140 APInt GIMatchData_matchinfo;
3141 // Match Patterns
3142 if(![&](){return Helper.matchConstantFoldCastOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3143 return false;
3144 }
3145 // Apply Patterns
3146 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3147 return true;
3148 }
3149 case GICXXCustomAction_GICombiner108:{
3150 // Match Patterns
3151 if(![&](){return Helper.matchUDivorURemByConst(*State.MIs[0]);}()) {
3152 return false;
3153 }
3154 // Apply Patterns
3155 Helper.applyUDivorURemByConst(*State.MIs[0]);
3156 return true;
3157 }
3158 case GICXXCustomAction_GICombiner109:{
3159 // Match Patterns
3160 if(![&](){return Helper.matchSDivByConst(*State.MIs[0]);}()) {
3161 return false;
3162 }
3163 // Apply Patterns
3164 Helper.applySDivByConst(*State.MIs[0]);
3165 return true;
3166 }
3167 case GICXXCustomAction_GICombiner110:{
3168 // Match Patterns
3169 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/true);}()) {
3170 return false;
3171 }
3172 // Apply Patterns
3173 Helper.applySDivByPow2(*State.MIs[0]);
3174 return true;
3175 }
3176 case GICXXCustomAction_GICombiner111:{
3177 // Match Patterns
3178 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/false);}()) {
3179 return false;
3180 }
3181 // Apply Patterns
3182 Helper.applyUDivByPow2(*State.MIs[0]);
3183 return true;
3184 }
3185 case GICXXCustomAction_GICombiner112:{
3186 // Match Patterns
3187 if(![&](){return Helper.matchUMulHToLShr(*State.MIs[0]);}()) {
3188 return false;
3189 }
3190 // Apply Patterns
3191 Helper.applyUMulHToLShr(*State.MIs[0]);
3192 return true;
3193 }
3194 case GICXXCustomAction_GICombiner113:{
3195 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3196 // Match Patterns
3197 if(![&](){return Helper.matchRedundantNegOperands(*State.MIs[0], GIMatchData_matchinfo);}()) {
3198 return false;
3199 }
3200 // Apply Patterns
3201 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3202 return true;
3203 }
3204 case GICXXCustomAction_GICombiner114:{
3205 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3206 // Match Patterns
3207 if(![&](){return Helper.matchAndOrDisjointMask(*State.MIs[0], GIMatchData_info);}()) {
3208 return false;
3209 }
3210 // Apply Patterns
3211 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_info);
3212 return true;
3213 }
3214 case GICXXCustomAction_GICombiner115:{
3215 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3216 // Match Patterns
3217 if(![&](){return Helper.matchCombineFAddFMulToFMadOrFMA(*State.MIs[0],
3218 GIMatchData_info);}()) {
3219 return false;
3220 }
3221 // Apply Patterns
3222 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3223 return true;
3224 }
3225 case GICXXCustomAction_GICombiner116:{
3226 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3227 // Match Patterns
3228 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMA(*State.MIs[0],
3229 GIMatchData_info);}()) {
3230 return false;
3231 }
3232 // Apply Patterns
3233 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3234 return true;
3235 }
3236 case GICXXCustomAction_GICombiner117:{
3237 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3238 // Match Patterns
3239 if(![&](){return Helper.matchCombineFAddFMAFMulToFMadOrFMA(*State.MIs[0],
3240 GIMatchData_info);}()) {
3241 return false;
3242 }
3243 // Apply Patterns
3244 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3245 return true;
3246 }
3247 case GICXXCustomAction_GICombiner118:{
3248 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3249 // Match Patterns
3250 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMAAggressive(
3251 *State.MIs[0], GIMatchData_info);}()) {
3252 return false;
3253 }
3254 // Apply Patterns
3255 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3256 return true;
3257 }
3258 case GICXXCustomAction_GICombiner119:{
3259 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3260 // Match Patterns
3261 if(![&](){return Helper.matchCombineFSubFMulToFMadOrFMA(*State.MIs[0],
3262 GIMatchData_info);}()) {
3263 return false;
3264 }
3265 // Apply Patterns
3266 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3267 return true;
3268 }
3269 case GICXXCustomAction_GICombiner120:{
3270 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3271 // Match Patterns
3272 if(![&](){return Helper.matchCombineFSubFNegFMulToFMadOrFMA(*State.MIs[0],
3273 GIMatchData_info);}()) {
3274 return false;
3275 }
3276 // Apply Patterns
3277 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3278 return true;
3279 }
3280 case GICXXCustomAction_GICombiner121:{
3281 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3282 // Match Patterns
3283 if(![&](){return Helper.matchCombineFSubFpExtFMulToFMadOrFMA(*State.MIs[0],
3284 GIMatchData_info);}()) {
3285 return false;
3286 }
3287 // Apply Patterns
3288 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3289 return true;
3290 }
3291 case GICXXCustomAction_GICombiner122:{
3292 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3293 // Match Patterns
3294 if(![&](){return Helper.matchCombineFSubFpExtFNegFMulToFMadOrFMA(
3295 *State.MIs[0], GIMatchData_info);}()) {
3296 return false;
3297 }
3298 // Apply Patterns
3299 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3300 return true;
3301 }
3302 case GICXXCustomAction_GICombiner123:{
3303 unsigned GIMatchData_select_op_no;
3304 // Match Patterns
3305 if(![&](){return Helper.matchFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);}()) {
3306 return false;
3307 }
3308 // Apply Patterns
3309 Helper.applyFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);
3310 return true;
3311 }
3312 case GICXXCustomAction_GICombiner124:{
3313 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3314 // Match Patterns
3315 if(![&](){return Helper.matchSubAddSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3316 return false;
3317 }
3318 // Apply Patterns
3319 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3320 return true;
3321 }
3322 case GICXXCustomAction_GICombiner125:{
3323 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3324 // Match Patterns
3325 if(![&](){return Helper.matchSimplifySelectToMinMax(*State.MIs[0], GIMatchData_info);}()) {
3326 return false;
3327 }
3328 // Apply Patterns
3329 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3330 return true;
3331 }
3332 case GICXXCustomAction_GICombiner126:{
3333 Register GIMatchData_matchinfo;
3334 // Match Patterns
3335 if(![&](){return Helper.matchFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3336 return false;
3337 }
3338 // Apply Patterns
3339 Helper.applyFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);
3340 return true;
3341 }
3342 case GICXXCustomAction_GICombiner127:{
3343 // Match Patterns
3344 if(![&](){return Helper.matchCommuteConstantToRHS(*State.MIs[0]);}()) {
3345 return false;
3346 }
3347 // Apply Patterns
3348 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
3349 return true;
3350 }
3351 case GICXXCustomAction_GICombiner128:{
3352 // Match Patterns
3353 if(![&](){return Helper.matchCommuteFPConstantToRHS(*State.MIs[0]);}()) {
3354 return false;
3355 }
3356 // Apply Patterns
3357 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
3358 return true;
3359 }
3360 case GICXXCustomAction_GICombiner129:{
3361 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3362 // Match Patterns
3363 if(![&](){return Helper.matchAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3364 return false;
3365 }
3366 // Apply Patterns
3367 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3368 return true;
3369 }
3370 case GICXXCustomAction_GICombiner130:{
3371 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3372 // Match Patterns
3373 if(![&](){return Helper.matchOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
3374 return false;
3375 }
3376 // Apply Patterns
3377 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3378 return true;
3379 }
3380 case GICXXCustomAction_GICombiner131:{
3381 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3382 // Match Patterns
3383 if(![&](){return Helper.matchSimplifyNegMinMax(*State.MIs[0], GIMatchData_matchinfo);}()) {
3384 return false;
3385 }
3386 // Apply Patterns
3387 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3388 return true;
3389 }
3390 case GICXXCustomAction_GICombiner132:{
3391 SmallVector<Register> GIMatchData_matchinfo;
3392 // Match Patterns
3393 if(![&](){return Helper.matchCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);}()) {
3394 return false;
3395 }
3396 // Apply Patterns
3397 Helper.applyCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);
3398 return true;
3399 }
3400 case GICXXCustomAction_GICombiner133:{
3401 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3402 // Match Patterns
3403 if(![&](){return Helper.matchSextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3404 return false;
3405 }
3406 // Apply Patterns
3407 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3408 return true;
3409 }
3410 case GICXXCustomAction_GICombiner134:{
3411 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3412 // Match Patterns
3413 if(![&](){return Helper.matchZextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3414 return false;
3415 }
3416 // Apply Patterns
3417 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3418 return true;
3419 }
3420 case GICXXCustomAction_GICombiner135:{
3421 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3422 // Match Patterns
3423 if(![&](){return Helper.matchNonNegZext(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3424 return false;
3425 }
3426 // Apply Patterns
3427 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3428 return true;
3429 }
3430 case GICXXCustomAction_GICombiner136:{
3431 SmallVector<Register> GIMatchData_matchinfo;
3432 // Match Patterns
3433 if(![&](){return Helper.matchCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);}()) {
3434 return false;
3435 }
3436 // Apply Patterns
3437 Helper.applyCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);
3438 return true;
3439 }
3440 case GICXXCustomAction_GICombiner137:{
3441 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3442 // Match Patterns
3443 if(![&](){return Helper.matchShuffleUndefRHS(*State.MIs[0], GIMatchData_matchinfo);}()) {
3444 return false;
3445 }
3446 // Apply Patterns
3447 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3448 return true;
3449 }
3450 case GICXXCustomAction_GICombiner138:{
3451 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3452 // Match Patterns
3453 if(![&](){return Helper.matchShuffleDisjointMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
3454 return false;
3455 }
3456 // Apply Patterns
3457 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3458 return true;
3459 }
3460 case GICXXCustomAction_GICombiner139:{
3461 Register GIMatchData_matchinfo;
3462 // Match Patterns
3463 if(![&](){return Helper.matchUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);}()) {
3464 return false;
3465 }
3466 // Apply Patterns
3467 Helper.applyUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);
3468 return true;
3469 }
3470 case GICXXCustomAction_GICombiner140:{
3471 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3472 // Match Patterns
3473 if(![&](){return Helper.matchUnmergeValuesAnyExtBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
3474 return false;
3475 }
3476 // Apply Patterns
3477 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3478 return true;
3479 }
3480 case GICXXCustomAction_GICombiner141:{
3481 SmallVector<Register> GIMatchData_info;
3482 // Match Patterns
3483 if(![&](){return Helper.matchCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);}()) {
3484 return false;
3485 }
3486 // Apply Patterns
3487 Helper.applyCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);
3488 return true;
3489 }
3490 case GICXXCustomAction_GICombiner142:{
3491 Register GIMatchData_matchinfo;
3492 // Match Patterns
3493 if(![&](){return Helper.matchCombineMergeUnmerge(*State.MIs[0], GIMatchData_matchinfo);}()) {
3494 return false;
3495 }
3496 // Apply Patterns
3497 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3498 return true;
3499 }
3500 case GICXXCustomAction_GICombiner143:{
3501 SmallVector<APInt, 8> GIMatchData_info;
3502 // Match Patterns
3503 if(![&](){return Helper.matchCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);}()) {
3504 return false;
3505 }
3506 // Apply Patterns
3507 Helper.applyCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);
3508 return true;
3509 }
3510 case GICXXCustomAction_GICombiner144:{
3511 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3512 // Match Patterns
3513 if(![&](){return Helper.matchCombineUnmergeUndef(*State.MIs[0], GIMatchData_info);}()) {
3514 return false;
3515 }
3516 // Apply Patterns
3517 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3518 return true;
3519 }
3520 case GICXXCustomAction_GICombiner145:{
3521 // Match Patterns
3522 if(![&](){return Helper.matchCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);}()) {
3523 return false;
3524 }
3525 // Apply Patterns
3526 Helper.applyCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);
3527 return true;
3528 }
3529 case GICXXCustomAction_GICombiner146:{
3530 // Match Patterns
3531 if(![&](){return Helper.matchCombineUnmergeZExtToZExt(*State.MIs[0]);}()) {
3532 return false;
3533 }
3534 // Apply Patterns
3535 Helper.applyCombineUnmergeZExtToZExt(*State.MIs[0]);
3536 return true;
3537 }
3538 case GICXXCustomAction_GICombiner147:{
3539 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3540 // Match Patterns
3541 if(![&](){return Helper.matchMergeXAndUndef(*State.MIs[0], GIMatchData_matchinfo);}()) {
3542 return false;
3543 }
3544 // Apply Patterns
3545 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3546 return true;
3547 }
3548 case GICXXCustomAction_GICombiner148:{
3549 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3550 // Match Patterns
3551 if(![&](){return Helper.matchMergeXAndZero(*State.MIs[0], GIMatchData_matchinfo);}()) {
3552 return false;
3553 }
3554 // Apply Patterns
3555 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3556 return true;
3557 }
3558 case GICXXCustomAction_GICombiner149:{
3559 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3560 // Match Patterns
3561 if(![&](){return Helper.matchAddOverflow(*State.MIs[0], GIMatchData_matchinfo);}()) {
3562 return false;
3563 }
3564 // Apply Patterns
3565 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3566 return true;
3567 }
3568 case GICXXCustomAction_GICombiner150:{
3569 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3570 // Match Patterns
3571 if(![&](){return Helper.matchSuboCarryOut(*State.MIs[0], GIMatchData_matchinfo);}()) {
3572 return false;
3573 }
3574 // Apply Patterns
3575 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3576 return true;
3577 }
3578 case GICXXCustomAction_GICombiner151:{
3579 FMinFMaxLegacyInfo GIMatchData_matchinfo;
3580 // Match Patterns
3581 if(![&](){return matchFMinFMaxLegacy(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3582 return false;
3583 }
3584 // Apply Patterns
3585 applySelectFCmpToFMinFMaxLegacy(*State.MIs[0], GIMatchData_matchinfo);
3586 return true;
3587 }
3588 case GICXXCustomAction_GICombiner152:{
3589 // Match Patterns
3590 if(![&](){return Helper.matchExpandPromotedF16FMed3(*State.MIs[0], State.MIs[1]->getOperand(1).getReg(), State.MIs[1]->getOperand(2).getReg(), State.MIs[1]->getOperand(3).getReg());}()) {
3591 return false;
3592 }
3593 // Apply Patterns
3594 Helper.applyExpandPromotedF16FMed3(*State.MIs[0], State.MIs[1]->getOperand(1).getReg(), State.MIs[1]->getOperand(2).getReg(), State.MIs[1]->getOperand(3).getReg());
3595 return true;
3596 }
3597 case GICXXCustomAction_GICombiner153:{
3598 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3599 // Match Patterns
3600 if(![&](){return Helper.matchCombineFmulWithSelectToFldexp(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3601 return false;
3602 }
3603 // Apply Patterns
3604 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3605 return true;
3606 }
3607 case GICXXCustomAction_GICombiner154:{
3608 // Match Patterns
3609 if(![&](){return matchUCharToFloat(*State.MIs[0]);}()) {
3610 return false;
3611 }
3612 // Apply Patterns
3613 applyUCharToFloat(*State.MIs[0]);
3614 return true;
3615 }
3616 case GICXXCustomAction_GICombiner155:{
3617 CvtF32UByteMatchInfo GIMatchData_matchinfo;
3618 // Match Patterns
3619 if(![&](){return matchCvtF32UByteN(*State.MIs[0], GIMatchData_matchinfo);}()) {
3620 return false;
3621 }
3622 // Apply Patterns
3623 applyCvtF32UByteN(*State.MIs[0], GIMatchData_matchinfo);
3624 return true;
3625 }
3626 case GICXXCustomAction_GICombiner156:{
3627 Register GIMatchData_matchinfo;
3628 // Match Patterns
3629 if(![&](){return matchRemoveFcanonicalize(*State.MIs[0], GIMatchData_matchinfo);}()) {
3630 return false;
3631 }
3632 // Apply Patterns
3633 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3634 return true;
3635 }
3636 case GICXXCustomAction_GICombiner157:{
3637 MachineInstr * GIMatchData_matchinfo;
3638 // Match Patterns
3639 if(![&](){return Helper.matchFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3640 return false;
3641 }
3642 // Apply Patterns
3643 Helper.applyFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);
3644 return true;
3645 }
3646 case GICXXCustomAction_GICombiner158:{
3647 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3648 // Match Patterns
3649 if(![&](){return matchRcpSqrtToRsq(*State.MIs[0], GIMatchData_matchinfo);}()) {
3650 return false;
3651 }
3652 // Apply Patterns
3653 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3654 return true;
3655 }
3656 case GICXXCustomAction_GICombiner159:{
3657 // Match Patterns
3658 if(![&](){return matchFDivSqrtToRsqF16(*State.MIs[0]);}()) {
3659 return false;
3660 }
3661 // Apply Patterns
3662 applyFDivSqrtToRsqF16(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
3663 return true;
3664 }
3665 case GICXXCustomAction_GICombiner160:{
3666 std::pair<MachineInstr *, unsigned> GIMatchData_matchinfo;
3667 // Match Patterns
3668 if(![&](){return matchCombineSignExtendInReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3669 return false;
3670 }
3671 // Apply Patterns
3672 applyCombineSignExtendInReg(*State.MIs[0], GIMatchData_matchinfo);
3673 return true;
3674 }
3675 case GICXXCustomAction_GICombiner161:{
3676 unsigned GIMatchData_matchinfo;
3677 // Match Patterns
3678 if(![&](){return matchCombine_s_mul_u64(*State.MIs[0], GIMatchData_matchinfo);}()) {
3679 return false;
3680 }
3681 // Apply Patterns
3682 Helper.replaceOpcodeWith(*State.MIs[0], GIMatchData_matchinfo);
3683 return true;
3684 }
3685 }
3686 llvm_unreachable("Unknown Apply Action");
3687}
3688#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
3689#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((uint16_t)Val >> 8)
3690#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)
3691#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)
3692#else
3693#define GIMT_Encode2(Val) uint8_t((uint16_t)Val >> 8), uint8_t(Val)
3694#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)
3695#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)
3696#endif
3697const uint8_t *AMDGPUPostLegalizerCombinerImpl::getMatchTable() const {
3698 constexpr static uint8_t MatchTable0[] = {
3699 /* 0 */ GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(20), GIMT_Encode2(3677), /*)*//*default:*//*Label 100*/ GIMT_Encode4(20930),
3700 /* 10 */ /*TargetOpcode::COPY*//*Label 0*/ GIMT_Encode4(14638), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3701 /* 142 */ /*TargetOpcode::G_ADD*//*Label 1*/ GIMT_Encode4(14650),
3702 /* 146 */ /*TargetOpcode::G_SUB*//*Label 2*/ GIMT_Encode4(15207),
3703 /* 150 */ /*TargetOpcode::G_MUL*//*Label 3*/ GIMT_Encode4(15525),
3704 /* 154 */ /*TargetOpcode::G_SDIV*//*Label 4*/ GIMT_Encode4(15702),
3705 /* 158 */ /*TargetOpcode::G_UDIV*//*Label 5*/ GIMT_Encode4(15775),
3706 /* 162 */ /*TargetOpcode::G_SREM*//*Label 6*/ GIMT_Encode4(15859),
3707 /* 166 */ /*TargetOpcode::G_UREM*//*Label 7*/ GIMT_Encode4(15904), GIMT_Encode4(0), GIMT_Encode4(0),
3708 /* 178 */ /*TargetOpcode::G_AND*//*Label 8*/ GIMT_Encode4(15982),
3709 /* 182 */ /*TargetOpcode::G_OR*//*Label 9*/ GIMT_Encode4(16263),
3710 /* 186 */ /*TargetOpcode::G_XOR*//*Label 10*/ GIMT_Encode4(16508), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3711 /* 202 */ /*TargetOpcode::G_PHI*//*Label 11*/ GIMT_Encode4(16609), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3712 /* 226 */ /*TargetOpcode::G_UNMERGE_VALUES*//*Label 12*/ GIMT_Encode4(16621), GIMT_Encode4(0),
3713 /* 234 */ /*TargetOpcode::G_MERGE_VALUES*//*Label 13*/ GIMT_Encode4(16688),
3714 /* 238 */ /*TargetOpcode::G_BUILD_VECTOR*//*Label 14*/ GIMT_Encode4(16762),
3715 /* 242 */ /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 15*/ GIMT_Encode4(16810),
3716 /* 246 */ /*TargetOpcode::G_CONCAT_VECTORS*//*Label 16*/ GIMT_Encode4(16822),
3717 /* 250 */ /*TargetOpcode::G_PTRTOINT*//*Label 17*/ GIMT_Encode4(16834),
3718 /* 254 */ /*TargetOpcode::G_INTTOPTR*//*Label 18*/ GIMT_Encode4(16877),
3719 /* 258 */ /*TargetOpcode::G_BITCAST*//*Label 19*/ GIMT_Encode4(16910),
3720 /* 262 */ /*TargetOpcode::G_FREEZE*//*Label 20*/ GIMT_Encode4(16953), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3721 /* 302 */ /*TargetOpcode::G_LOAD*//*Label 21*/ GIMT_Encode4(17017),
3722 /* 306 */ /*TargetOpcode::G_SEXTLOAD*//*Label 22*/ GIMT_Encode4(17029),
3723 /* 310 */ /*TargetOpcode::G_ZEXTLOAD*//*Label 23*/ GIMT_Encode4(17041), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3724 /* 326 */ /*TargetOpcode::G_STORE*//*Label 24*/ GIMT_Encode4(17053), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3725 /* 446 */ /*TargetOpcode::G_INTRINSIC*//*Label 25*/ GIMT_Encode4(17065), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3726 /* 462 */ /*TargetOpcode::G_ANYEXT*//*Label 26*/ GIMT_Encode4(17077),
3727 /* 466 */ /*TargetOpcode::G_TRUNC*//*Label 27*/ GIMT_Encode4(17205), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3728 /* 486 */ /*TargetOpcode::G_SEXT*//*Label 28*/ GIMT_Encode4(17563),
3729 /* 490 */ /*TargetOpcode::G_SEXT_INREG*//*Label 29*/ GIMT_Encode4(17638),
3730 /* 494 */ /*TargetOpcode::G_ZEXT*//*Label 30*/ GIMT_Encode4(17715),
3731 /* 498 */ /*TargetOpcode::G_SHL*//*Label 31*/ GIMT_Encode4(17845),
3732 /* 502 */ /*TargetOpcode::G_LSHR*//*Label 32*/ GIMT_Encode4(18014),
3733 /* 506 */ /*TargetOpcode::G_ASHR*//*Label 33*/ GIMT_Encode4(18137),
3734 /* 510 */ /*TargetOpcode::G_FSHL*//*Label 34*/ GIMT_Encode4(18271),
3735 /* 514 */ /*TargetOpcode::G_FSHR*//*Label 35*/ GIMT_Encode4(18314),
3736 /* 518 */ /*TargetOpcode::G_ROTR*//*Label 36*/ GIMT_Encode4(18357),
3737 /* 522 */ /*TargetOpcode::G_ROTL*//*Label 37*/ GIMT_Encode4(18381),
3738 /* 526 */ /*TargetOpcode::G_ICMP*//*Label 38*/ GIMT_Encode4(18405),
3739 /* 530 */ /*TargetOpcode::G_FCMP*//*Label 39*/ GIMT_Encode4(18450), GIMT_Encode4(0), GIMT_Encode4(0),
3740 /* 542 */ /*TargetOpcode::G_SELECT*//*Label 40*/ GIMT_Encode4(18462),
3741 /* 546 */ /*TargetOpcode::G_UADDO*//*Label 41*/ GIMT_Encode4(18584),
3742 /* 550 */ /*TargetOpcode::G_UADDE*//*Label 42*/ GIMT_Encode4(18607),
3743 /* 554 */ /*TargetOpcode::G_USUBO*//*Label 43*/ GIMT_Encode4(18619),
3744 /* 558 */ /*TargetOpcode::G_USUBE*//*Label 44*/ GIMT_Encode4(18631),
3745 /* 562 */ /*TargetOpcode::G_SADDO*//*Label 45*/ GIMT_Encode4(18643),
3746 /* 566 */ /*TargetOpcode::G_SADDE*//*Label 46*/ GIMT_Encode4(18666),
3747 /* 570 */ /*TargetOpcode::G_SSUBO*//*Label 47*/ GIMT_Encode4(18678),
3748 /* 574 */ /*TargetOpcode::G_SSUBE*//*Label 48*/ GIMT_Encode4(18690),
3749 /* 578 */ /*TargetOpcode::G_UMULO*//*Label 49*/ GIMT_Encode4(18702),
3750 /* 582 */ /*TargetOpcode::G_SMULO*//*Label 50*/ GIMT_Encode4(18736),
3751 /* 586 */ /*TargetOpcode::G_UMULH*//*Label 51*/ GIMT_Encode4(18770),
3752 /* 590 */ /*TargetOpcode::G_SMULH*//*Label 52*/ GIMT_Encode4(18793),
3753 /* 594 */ /*TargetOpcode::G_UADDSAT*//*Label 53*/ GIMT_Encode4(18805),
3754 /* 598 */ /*TargetOpcode::G_SADDSAT*//*Label 54*/ GIMT_Encode4(18817), GIMT_Encode4(0), GIMT_Encode4(0),
3755 /* 610 */ /*TargetOpcode::G_USHLSAT*//*Label 55*/ GIMT_Encode4(18829),
3756 /* 614 */ /*TargetOpcode::G_SSHLSAT*//*Label 56*/ GIMT_Encode4(18852),
3757 /* 618 */ /*TargetOpcode::G_SMULFIX*//*Label 57*/ GIMT_Encode4(18875),
3758 /* 622 */ /*TargetOpcode::G_UMULFIX*//*Label 58*/ GIMT_Encode4(18887),
3759 /* 626 */ /*TargetOpcode::G_SMULFIXSAT*//*Label 59*/ GIMT_Encode4(18899),
3760 /* 630 */ /*TargetOpcode::G_UMULFIXSAT*//*Label 60*/ GIMT_Encode4(18911), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3761 /* 650 */ /*TargetOpcode::G_FADD*//*Label 61*/ GIMT_Encode4(18923),
3762 /* 654 */ /*TargetOpcode::G_FSUB*//*Label 62*/ GIMT_Encode4(19035),
3763 /* 658 */ /*TargetOpcode::G_FMUL*//*Label 63*/ GIMT_Encode4(19124),
3764 /* 662 */ /*TargetOpcode::G_FMA*//*Label 64*/ GIMT_Encode4(19233),
3765 /* 666 */ /*TargetOpcode::G_FMAD*//*Label 65*/ GIMT_Encode4(19256),
3766 /* 670 */ /*TargetOpcode::G_FDIV*//*Label 66*/ GIMT_Encode4(19279),
3767 /* 674 */ /*TargetOpcode::G_FREM*//*Label 67*/ GIMT_Encode4(19352), GIMT_Encode4(0),
3768 /* 682 */ /*TargetOpcode::G_FPOWI*//*Label 68*/ GIMT_Encode4(19364), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3769 /* 702 */ /*TargetOpcode::G_FLOG2*//*Label 69*/ GIMT_Encode4(19386), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3770 /* 718 */ /*TargetOpcode::G_FNEG*//*Label 70*/ GIMT_Encode4(19408), GIMT_Encode4(0),
3771 /* 726 */ /*TargetOpcode::G_FPTRUNC*//*Label 71*/ GIMT_Encode4(19470),
3772 /* 730 */ /*TargetOpcode::G_FPTOSI*//*Label 72*/ GIMT_Encode4(19537),
3773 /* 734 */ /*TargetOpcode::G_FPTOUI*//*Label 73*/ GIMT_Encode4(19559),
3774 /* 738 */ /*TargetOpcode::G_SITOFP*//*Label 74*/ GIMT_Encode4(19581),
3775 /* 742 */ /*TargetOpcode::G_UITOFP*//*Label 75*/ GIMT_Encode4(19619), GIMT_Encode4(0), GIMT_Encode4(0),
3776 /* 754 */ /*TargetOpcode::G_FABS*//*Label 76*/ GIMT_Encode4(19657), GIMT_Encode4(0), GIMT_Encode4(0),
3777 /* 766 */ /*TargetOpcode::G_FCANONICALIZE*//*Label 77*/ GIMT_Encode4(19736),
3778 /* 770 */ /*TargetOpcode::G_FMINNUM*//*Label 78*/ GIMT_Encode4(19777),
3779 /* 774 */ /*TargetOpcode::G_FMAXNUM*//*Label 79*/ GIMT_Encode4(19811),
3780 /* 778 */ /*TargetOpcode::G_FMINNUM_IEEE*//*Label 80*/ GIMT_Encode4(19845),
3781 /* 782 */ /*TargetOpcode::G_FMAXNUM_IEEE*//*Label 81*/ GIMT_Encode4(19857),
3782 /* 786 */ /*TargetOpcode::G_FMINIMUM*//*Label 82*/ GIMT_Encode4(19869),
3783 /* 790 */ /*TargetOpcode::G_FMAXIMUM*//*Label 83*/ GIMT_Encode4(19903), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3784 /* 826 */ /*TargetOpcode::G_PTR_ADD*//*Label 84*/ GIMT_Encode4(19937), GIMT_Encode4(0),
3785 /* 834 */ /*TargetOpcode::G_SMIN*//*Label 85*/ GIMT_Encode4(20027),
3786 /* 838 */ /*TargetOpcode::G_SMAX*//*Label 86*/ GIMT_Encode4(20061),
3787 /* 842 */ /*TargetOpcode::G_UMIN*//*Label 87*/ GIMT_Encode4(20095),
3788 /* 846 */ /*TargetOpcode::G_UMAX*//*Label 88*/ GIMT_Encode4(20129),
3789 /* 850 */ /*TargetOpcode::G_ABS*//*Label 89*/ GIMT_Encode4(20163), GIMT_Encode4(0), GIMT_Encode4(0),
3790 /* 862 */ /*TargetOpcode::G_BR*//*Label 90*/ GIMT_Encode4(20175), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3791 /* 882 */ /*TargetOpcode::G_INSERT_VECTOR_ELT*//*Label 91*/ GIMT_Encode4(20187),
3792 /* 886 */ /*TargetOpcode::G_EXTRACT_VECTOR_ELT*//*Label 92*/ GIMT_Encode4(20317),
3793 /* 890 */ /*TargetOpcode::G_SHUFFLE_VECTOR*//*Label 93*/ GIMT_Encode4(20694), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3794 /* 930 */ /*TargetOpcode::G_BITREVERSE*//*Label 94*/ GIMT_Encode4(20760), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3795 /* 982 */ /*TargetOpcode::G_FSQRT*//*Label 95*/ GIMT_Encode4(20849), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3796 /* 14622 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE0*//*Label 96*/ GIMT_Encode4(20882),
3797 /* 14626 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE1*//*Label 97*/ GIMT_Encode4(20894),
3798 /* 14630 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE2*//*Label 98*/ GIMT_Encode4(20906),
3799 /* 14634 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE3*//*Label 99*/ GIMT_Encode4(20918),
3800 /* 14638 */ // Label 0: @14638
3801 /* 14638 */ GIM_Try, /*On fail goto*//*Label 101*/ GIMT_Encode4(14649), // Rule ID 13 //
3802 /* 14643 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
3803 /* 14646 */ // MIs[0] d
3804 /* 14646 */ // No operand predicates
3805 /* 14646 */ // MIs[0] s
3806 /* 14646 */ // No operand predicates
3807 /* 14646 */ // Combiner Rule #13: copy_prop
3808 /* 14646 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner5),
3809 /* 14649 */ // Label 101: @14649
3810 /* 14649 */ GIM_Reject,
3811 /* 14650 */ // Label 1: @14650
3812 /* 14650 */ GIM_Try, /*On fail goto*//*Label 102*/ GIMT_Encode4(14661), // Rule ID 16 //
3813 /* 14655 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
3814 /* 14658 */ // Combiner Rule #16: add_p2i_to_ptradd; wip_match_opcode 'G_ADD'
3815 /* 14658 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner8),
3816 /* 14661 */ // Label 102: @14661
3817 /* 14661 */ GIM_Try, /*On fail goto*//*Label 103*/ GIMT_Encode4(14672), // Rule ID 94 //
3818 /* 14666 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
3819 /* 14669 */ // Combiner Rule #78: propagate_undef_any_op; wip_match_opcode 'G_ADD'
3820 /* 14669 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
3821 /* 14672 */ // Label 103: @14672
3822 /* 14672 */ GIM_Try, /*On fail goto*//*Label 104*/ GIMT_Encode4(14683), // Rule ID 141 //
3823 /* 14677 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
3824 /* 14680 */ // Combiner Rule #103: simplify_add_to_sub; wip_match_opcode 'G_ADD'
3825 /* 14680 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
3826 /* 14683 */ // Label 104: @14683
3827 /* 14683 */ GIM_Try, /*On fail goto*//*Label 105*/ GIMT_Encode4(14694), // Rule ID 231 //
3828 /* 14688 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
3829 /* 14691 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_ADD'
3830 /* 14691 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
3831 /* 14694 */ // Label 105: @14694
3832 /* 14694 */ GIM_Try, /*On fail goto*//*Label 106*/ GIMT_Encode4(14705), // Rule ID 279 //
3833 /* 14699 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
3834 /* 14702 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_ADD'
3835 /* 14702 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
3836 /* 14705 */ // Label 106: @14705
3837 /* 14705 */ GIM_Try, /*On fail goto*//*Label 107*/ GIMT_Encode4(14716), // Rule ID 309 //
3838 /* 14710 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
3839 /* 14713 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_ADD'
3840 /* 14713 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
3841 /* 14716 */ // Label 107: @14716
3842 /* 14716 */ GIM_Try, /*On fail goto*//*Label 108*/ GIMT_Encode4(14750), // Rule ID 0 //
3843 /* 14721 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
3844 /* 14724 */ // MIs[0] root
3845 /* 14724 */ // No operand predicates
3846 /* 14724 */ // MIs[0] sub
3847 /* 14724 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3848 /* 14728 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
3849 /* 14732 */ // MIs[1] Operand 1
3850 /* 14732 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
3851 /* 14736 */ // MIs[1] A
3852 /* 14736 */ // No operand predicates
3853 /* 14736 */ // MIs[0] B
3854 /* 14736 */ // No operand predicates
3855 /* 14736 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
3856 /* 14738 */ // Combiner Rule #0: ZeroMinusAPlusB
3857 /* 14738 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
3858 /* 14741 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
3859 /* 14743 */ GIR_RootToRootCopy, /*OpIdx*/2, // B
3860 /* 14745 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // A
3861 /* 14749 */ GIR_EraseRootFromParent_Done,
3862 /* 14750 */ // Label 108: @14750
3863 /* 14750 */ GIM_Try, /*On fail goto*//*Label 109*/ GIMT_Encode4(14787), // Rule ID 12 //
3864 /* 14755 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
3865 /* 14758 */ // MIs[0] root
3866 /* 14758 */ // No operand predicates
3867 /* 14758 */ // MIs[0] sub
3868 /* 14758 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3869 /* 14762 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
3870 /* 14766 */ // MIs[1] A
3871 /* 14766 */ // No operand predicates
3872 /* 14766 */ // MIs[1] c1
3873 /* 14766 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
3874 /* 14770 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
3875 /* 14774 */ // MIs[2] imm1
3876 /* 14774 */ // No operand predicates
3877 /* 14774 */ // MIs[0] c2
3878 /* 14774 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
3879 /* 14778 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
3880 /* 14782 */ // MIs[3] imm2
3881 /* 14782 */ // No operand predicates
3882 /* 14782 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
3883 /* 14784 */ // Combiner Rule #12: AMinusC1PlusC2
3884 /* 14784 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
3885 /* 14787 */ // Label 109: @14787
3886 /* 14787 */ GIM_Try, /*On fail goto*//*Label 110*/ GIMT_Encode4(14821), // Rule ID 3 //
3887 /* 14792 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
3888 /* 14795 */ // MIs[0] root
3889 /* 14795 */ // No operand predicates
3890 /* 14795 */ // MIs[0] sub
3891 /* 14795 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3892 /* 14799 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
3893 /* 14803 */ // MIs[1] B
3894 /* 14803 */ // No operand predicates
3895 /* 14803 */ // MIs[1] A
3896 /* 14803 */ // No operand predicates
3897 /* 14803 */ // MIs[0] A
3898 /* 14803 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
3899 /* 14808 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
3900 /* 14813 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
3901 /* 14815 */ // Combiner Rule #3: BMinusAPlusA
3902 /* 14815 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
3903 /* 14820 */ GIR_EraseRootFromParent_Done,
3904 /* 14821 */ // Label 110: @14821
3905 /* 14821 */ GIM_Try, /*On fail goto*//*Label 111*/ GIMT_Encode4(14855), // Rule ID 131 //
3906 /* 14826 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
3907 /* 14829 */ // MIs[0] dst
3908 /* 14829 */ // No operand predicates
3909 /* 14829 */ // MIs[0] __add_sub_reg_match_0.tmp
3910 /* 14829 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3911 /* 14833 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
3912 /* 14837 */ // MIs[1] src
3913 /* 14837 */ // No operand predicates
3914 /* 14837 */ // MIs[1] __add_sub_reg_match_0.x
3915 /* 14837 */ // No operand predicates
3916 /* 14837 */ // MIs[0] __add_sub_reg_match_0.x
3917 /* 14837 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
3918 /* 14842 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
3919 /* 14847 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
3920 /* 14849 */ // Combiner Rule #94: add_sub_reg @ [__add_sub_reg_match_0[1]]
3921 /* 14849 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
3922 /* 14854 */ GIR_EraseRootFromParent_Done,
3923 /* 14855 */ // Label 111: @14855
3924 /* 14855 */ GIM_Try, /*On fail goto*//*Label 112*/ GIMT_Encode4(14900), // Rule ID 5 //
3925 /* 14860 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
3926 /* 14863 */ // MIs[0] root
3927 /* 14863 */ // No operand predicates
3928 /* 14863 */ // MIs[0] sub1
3929 /* 14863 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3930 /* 14867 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
3931 /* 14871 */ // MIs[1] A
3932 /* 14871 */ // No operand predicates
3933 /* 14871 */ // MIs[1] B
3934 /* 14871 */ // No operand predicates
3935 /* 14871 */ // MIs[0] sub2
3936 /* 14871 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3937 /* 14875 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
3938 /* 14879 */ // MIs[2] B
3939 /* 14879 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
3940 /* 14884 */ // MIs[2] C
3941 /* 14884 */ // No operand predicates
3942 /* 14884 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
3943 /* 14886 */ // Combiner Rule #5: AMinusBPlusBMinusC
3944 /* 14886 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
3945 /* 14889 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
3946 /* 14891 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
3947 /* 14895 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
3948 /* 14899 */ GIR_EraseRootFromParent_Done,
3949 /* 14900 */ // Label 112: @14900
3950 /* 14900 */ GIM_Try, /*On fail goto*//*Label 113*/ GIMT_Encode4(14945), // Rule ID 4 //
3951 /* 14905 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
3952 /* 14908 */ // MIs[0] root
3953 /* 14908 */ // No operand predicates
3954 /* 14908 */ // MIs[0] sub1
3955 /* 14908 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3956 /* 14912 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
3957 /* 14916 */ // MIs[1] A
3958 /* 14916 */ // No operand predicates
3959 /* 14916 */ // MIs[1] B
3960 /* 14916 */ // No operand predicates
3961 /* 14916 */ // MIs[0] sub2
3962 /* 14916 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3963 /* 14920 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
3964 /* 14924 */ // MIs[2] C
3965 /* 14924 */ // No operand predicates
3966 /* 14924 */ // MIs[2] A
3967 /* 14924 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
3968 /* 14929 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
3969 /* 14931 */ // Combiner Rule #4: AMinusBPlusCMinusA
3970 /* 14931 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
3971 /* 14934 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
3972 /* 14936 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
3973 /* 14940 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
3974 /* 14944 */ GIR_EraseRootFromParent_Done,
3975 /* 14945 */ // Label 113: @14945
3976 /* 14945 */ GIM_Try, /*On fail goto*//*Label 114*/ GIMT_Encode4(14980), // Rule ID 39 //
3977 /* 14950 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
3978 /* 14953 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
3979 /* 14959 */ // MIs[0] root
3980 /* 14959 */ // No operand predicates
3981 /* 14959 */ // MIs[0] left
3982 /* 14959 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
3983 /* 14963 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
3984 /* 14967 */ // MIs[1] imm1
3985 /* 14967 */ // No operand predicates
3986 /* 14967 */ // MIs[0] right
3987 /* 14967 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
3988 /* 14971 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_VSCALE),
3989 /* 14975 */ // MIs[2] imm2
3990 /* 14975 */ // No operand predicates
3991 /* 14975 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
3992 /* 14977 */ // Combiner Rule #37: add_of_vscale
3993 /* 14977 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
3994 /* 14980 */ // Label 114: @14980
3995 /* 14980 */ GIM_Try, /*On fail goto*//*Label 115*/ GIMT_Encode4(15014), // Rule ID 1 //
3996 /* 14985 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
3997 /* 14988 */ // MIs[0] root
3998 /* 14988 */ // No operand predicates
3999 /* 14988 */ // MIs[0] A
4000 /* 14988 */ // No operand predicates
4001 /* 14988 */ // MIs[0] sub
4002 /* 14988 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4003 /* 14992 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4004 /* 14996 */ // MIs[1] Operand 1
4005 /* 14996 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
4006 /* 15000 */ // MIs[1] B
4007 /* 15000 */ // No operand predicates
4008 /* 15000 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4009 /* 15002 */ // Combiner Rule #1: APlusZeroMinusB
4010 /* 15002 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4011 /* 15005 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4012 /* 15007 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
4013 /* 15009 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
4014 /* 15013 */ GIR_EraseRootFromParent_Done,
4015 /* 15014 */ // Label 115: @15014
4016 /* 15014 */ GIM_Try, /*On fail goto*//*Label 116*/ GIMT_Encode4(15048), // Rule ID 2 //
4017 /* 15019 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
4018 /* 15022 */ // MIs[0] root
4019 /* 15022 */ // No operand predicates
4020 /* 15022 */ // MIs[0] A
4021 /* 15022 */ // No operand predicates
4022 /* 15022 */ // MIs[0] sub
4023 /* 15022 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4024 /* 15026 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4025 /* 15030 */ // MIs[1] B
4026 /* 15030 */ // No operand predicates
4027 /* 15030 */ // MIs[1] A
4028 /* 15030 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4029 /* 15035 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4030 /* 15040 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4031 /* 15042 */ // Combiner Rule #2: APlusBMinusB
4032 /* 15042 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4033 /* 15047 */ GIR_EraseRootFromParent_Done,
4034 /* 15048 */ // Label 116: @15048
4035 /* 15048 */ GIM_Try, /*On fail goto*//*Label 117*/ GIMT_Encode4(15082), // Rule ID 130 //
4036 /* 15053 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
4037 /* 15056 */ // MIs[0] dst
4038 /* 15056 */ // No operand predicates
4039 /* 15056 */ // MIs[0] __add_sub_reg_match_0.x
4040 /* 15056 */ // No operand predicates
4041 /* 15056 */ // MIs[0] __add_sub_reg_match_0.tmp
4042 /* 15056 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4043 /* 15060 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4044 /* 15064 */ // MIs[1] src
4045 /* 15064 */ // No operand predicates
4046 /* 15064 */ // MIs[1] __add_sub_reg_match_0.x
4047 /* 15064 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4048 /* 15069 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4049 /* 15074 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4050 /* 15076 */ // Combiner Rule #94: add_sub_reg @ [__add_sub_reg_match_0[0]]
4051 /* 15076 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4052 /* 15081 */ GIR_EraseRootFromParent_Done,
4053 /* 15082 */ // Label 117: @15082
4054 /* 15082 */ GIM_Try, /*On fail goto*//*Label 118*/ GIMT_Encode4(15127), // Rule ID 6 //
4055 /* 15087 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
4056 /* 15090 */ // MIs[0] root
4057 /* 15090 */ // No operand predicates
4058 /* 15090 */ // MIs[0] A
4059 /* 15090 */ // No operand predicates
4060 /* 15090 */ // MIs[0] sub1
4061 /* 15090 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4062 /* 15094 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4063 /* 15098 */ // MIs[1] B
4064 /* 15098 */ // No operand predicates
4065 /* 15098 */ // MIs[1] add1
4066 /* 15098 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4067 /* 15102 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
4068 /* 15106 */ // MIs[2] A
4069 /* 15106 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
4070 /* 15111 */ // MIs[2] C
4071 /* 15111 */ // No operand predicates
4072 /* 15111 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4073 /* 15113 */ // Combiner Rule #6: APlusBMinusAplusC
4074 /* 15113 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4075 /* 15116 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4076 /* 15118 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
4077 /* 15122 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
4078 /* 15126 */ GIR_EraseRootFromParent_Done,
4079 /* 15127 */ // Label 118: @15127
4080 /* 15127 */ GIM_Try, /*On fail goto*//*Label 119*/ GIMT_Encode4(15172), // Rule ID 7 //
4081 /* 15132 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
4082 /* 15135 */ // MIs[0] root
4083 /* 15135 */ // No operand predicates
4084 /* 15135 */ // MIs[0] A
4085 /* 15135 */ // No operand predicates
4086 /* 15135 */ // MIs[0] sub1
4087 /* 15135 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4088 /* 15139 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4089 /* 15143 */ // MIs[1] B
4090 /* 15143 */ // No operand predicates
4091 /* 15143 */ // MIs[1] add1
4092 /* 15143 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4093 /* 15147 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
4094 /* 15151 */ // MIs[2] C
4095 /* 15151 */ // No operand predicates
4096 /* 15151 */ // MIs[2] A
4097 /* 15151 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4098 /* 15156 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4099 /* 15158 */ // Combiner Rule #7: APlusBMinusCPlusA
4100 /* 15158 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4101 /* 15161 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4102 /* 15163 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
4103 /* 15167 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
4104 /* 15171 */ GIR_EraseRootFromParent_Done,
4105 /* 15172 */ // Label 119: @15172
4106 /* 15172 */ GIM_Try, /*On fail goto*//*Label 120*/ GIMT_Encode4(15195), // Rule ID 105 //
4107 /* 15177 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
4108 /* 15180 */ // MIs[0] dst
4109 /* 15180 */ // No operand predicates
4110 /* 15180 */ // MIs[0] lhs
4111 /* 15180 */ // No operand predicates
4112 /* 15180 */ // MIs[0] Operand 2
4113 /* 15180 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4114 /* 15184 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4115 /* 15189 */ // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[1]]
4116 /* 15189 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4117 /* 15194 */ GIR_EraseRootFromParent_Done,
4118 /* 15195 */ // Label 120: @15195
4119 /* 15195 */ GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(15206), // Rule ID 149 //
4120 /* 15200 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule107Enabled),
4121 /* 15203 */ // MIs[0] root
4122 /* 15203 */ // No operand predicates
4123 /* 15203 */ // MIs[0] src1
4124 /* 15203 */ // No operand predicates
4125 /* 15203 */ // MIs[0] src2
4126 /* 15203 */ // No operand predicates
4127 /* 15203 */ // Combiner Rule #107: reassoc_comm_binops
4128 /* 15203 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner58),
4129 /* 15206 */ // Label 121: @15206
4130 /* 15206 */ GIM_Reject,
4131 /* 15207 */ // Label 2: @15207
4132 /* 15207 */ GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(15218), // Rule ID 95 //
4133 /* 15212 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
4134 /* 15215 */ // Combiner Rule #78: propagate_undef_any_op; wip_match_opcode 'G_SUB'
4135 /* 15215 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
4136 /* 15218 */ // Label 122: @15218
4137 /* 15218 */ GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(15229), // Rule ID 239 //
4138 /* 15223 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
4139 /* 15226 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_SUB'
4140 /* 15226 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
4141 /* 15229 */ // Label 123: @15229
4142 /* 15229 */ GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(15240), // Rule ID 280 //
4143 /* 15234 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
4144 /* 15237 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SUB'
4145 /* 15237 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
4146 /* 15240 */ // Label 124: @15240
4147 /* 15240 */ GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(15251), // Rule ID 306 //
4148 /* 15245 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
4149 /* 15248 */ // Combiner Rule #188: sub_add_reg; wip_match_opcode 'G_SUB'
4150 /* 15248 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner124),
4151 /* 15251 */ // Label 125: @15251
4152 /* 15251 */ GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(15262), // Rule ID 340 //
4153 /* 15256 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
4154 /* 15259 */ // Combiner Rule #195: simplify_neg_minmax; wip_match_opcode 'G_SUB'
4155 /* 15259 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
4156 /* 15262 */ // Label 126: @15262
4157 /* 15262 */ GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(15299), // Rule ID 8 //
4158 /* 15267 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
4159 /* 15270 */ // MIs[0] root
4160 /* 15270 */ // No operand predicates
4161 /* 15270 */ // MIs[0] add
4162 /* 15270 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4163 /* 15274 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
4164 /* 15278 */ // MIs[1] A
4165 /* 15278 */ // No operand predicates
4166 /* 15278 */ // MIs[1] c1
4167 /* 15278 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4168 /* 15282 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4169 /* 15286 */ // MIs[2] imm1
4170 /* 15286 */ // No operand predicates
4171 /* 15286 */ // MIs[0] c2
4172 /* 15286 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4173 /* 15290 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4174 /* 15294 */ // MIs[3] imm2
4175 /* 15294 */ // No operand predicates
4176 /* 15294 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4177 /* 15296 */ // Combiner Rule #8: APlusC1MinusC2
4178 /* 15296 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
4179 /* 15299 */ // Label 127: @15299
4180 /* 15299 */ GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(15336), // Rule ID 11 //
4181 /* 15304 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
4182 /* 15307 */ // MIs[0] root
4183 /* 15307 */ // No operand predicates
4184 /* 15307 */ // MIs[0] sub1
4185 /* 15307 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4186 /* 15311 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4187 /* 15315 */ // MIs[1] c1
4188 /* 15315 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4189 /* 15319 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4190 /* 15323 */ // MIs[2] imm1
4191 /* 15323 */ // No operand predicates
4192 /* 15323 */ // MIs[1] A
4193 /* 15323 */ // No operand predicates
4194 /* 15323 */ // MIs[0] c2
4195 /* 15323 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4196 /* 15327 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4197 /* 15331 */ // MIs[3] imm2
4198 /* 15331 */ // No operand predicates
4199 /* 15331 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4200 /* 15333 */ // Combiner Rule #11: C1Minus2MinusC2
4201 /* 15333 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner3),
4202 /* 15336 */ // Label 128: @15336
4203 /* 15336 */ GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(15373), // Rule ID 10 //
4204 /* 15341 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
4205 /* 15344 */ // MIs[0] root
4206 /* 15344 */ // No operand predicates
4207 /* 15344 */ // MIs[0] sub1
4208 /* 15344 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4209 /* 15348 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4210 /* 15352 */ // MIs[1] A
4211 /* 15352 */ // No operand predicates
4212 /* 15352 */ // MIs[1] c1
4213 /* 15352 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4214 /* 15356 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4215 /* 15360 */ // MIs[2] imm1
4216 /* 15360 */ // No operand predicates
4217 /* 15360 */ // MIs[0] c2
4218 /* 15360 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4219 /* 15364 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4220 /* 15368 */ // MIs[3] imm2
4221 /* 15368 */ // No operand predicates
4222 /* 15368 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4223 /* 15370 */ // Combiner Rule #10: AMinusC1MinusC2
4224 /* 15370 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
4225 /* 15373 */ // Label 129: @15373
4226 /* 15373 */ GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(15416), // Rule ID 159 //
4227 /* 15378 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule117Enabled),
4228 /* 15381 */ // MIs[0] dst
4229 /* 15381 */ // No operand predicates
4230 /* 15381 */ // MIs[0] Operand 1
4231 /* 15381 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
4232 /* 15385 */ // MIs[0] and
4233 /* 15385 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4234 /* 15389 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
4235 /* 15393 */ // MIs[1] x
4236 /* 15393 */ // No operand predicates
4237 /* 15393 */ // MIs[1] Operand 2
4238 /* 15393 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
4239 /* 15397 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner7),
4240 /* 15401 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4241 /* 15403 */ // Combiner Rule #117: neg_and_one_to_sext_inreg
4242 /* 15403 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
4243 /* 15406 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
4244 /* 15408 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
4245 /* 15412 */ GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
4246 /* 15415 */ GIR_EraseRootFromParent_Done,
4247 /* 15416 */ // Label 130: @15416
4248 /* 15416 */ GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(15453), // Rule ID 9 //
4249 /* 15421 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
4250 /* 15424 */ // MIs[0] root
4251 /* 15424 */ // No operand predicates
4252 /* 15424 */ // MIs[0] c2
4253 /* 15424 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4254 /* 15428 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4255 /* 15432 */ // MIs[1] imm2
4256 /* 15432 */ // No operand predicates
4257 /* 15432 */ // MIs[0] add
4258 /* 15432 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4259 /* 15436 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
4260 /* 15440 */ // MIs[2] A
4261 /* 15440 */ // No operand predicates
4262 /* 15440 */ // MIs[2] c1
4263 /* 15440 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
4264 /* 15444 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4265 /* 15448 */ // MIs[3] imm1
4266 /* 15448 */ // No operand predicates
4267 /* 15448 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4268 /* 15450 */ // Combiner Rule #9: C2MinusAPlusC1
4269 /* 15450 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
4270 /* 15453 */ // Label 131: @15453
4271 /* 15453 */ GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(15480), // Rule ID 42 //
4272 /* 15458 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
4273 /* 15461 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
4274 /* 15467 */ // MIs[0] root
4275 /* 15467 */ // No operand predicates
4276 /* 15467 */ // MIs[0] x
4277 /* 15467 */ // No operand predicates
4278 /* 15467 */ // MIs[0] right
4279 /* 15467 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4280 /* 15471 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
4281 /* 15475 */ // MIs[1] imm
4282 /* 15475 */ // No operand predicates
4283 /* 15475 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4284 /* 15477 */ // Combiner Rule #40: sub_of_vscale
4285 /* 15477 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
4286 /* 15480 */ // Label 132: @15480
4287 /* 15480 */ GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(15503), // Rule ID 104 //
4288 /* 15485 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
4289 /* 15488 */ // MIs[0] dst
4290 /* 15488 */ // No operand predicates
4291 /* 15488 */ // MIs[0] lhs
4292 /* 15488 */ // No operand predicates
4293 /* 15488 */ // MIs[0] Operand 2
4294 /* 15488 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4295 /* 15492 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4296 /* 15497 */ // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[0]]
4297 /* 15497 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4298 /* 15502 */ GIR_EraseRootFromParent_Done,
4299 /* 15503 */ // Label 133: @15503
4300 /* 15503 */ GIM_Try, /*On fail goto*//*Label 134*/ GIMT_Encode4(15524), // Rule ID 15 //
4301 /* 15508 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
4302 /* 15511 */ // MIs[0] d
4303 /* 15511 */ // No operand predicates
4304 /* 15511 */ // MIs[0] op1
4305 /* 15511 */ // No operand predicates
4306 /* 15511 */ // MIs[0] c
4307 /* 15511 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4308 /* 15515 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4309 /* 15519 */ // MIs[1] imm
4310 /* 15519 */ // No operand predicates
4311 /* 15519 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4312 /* 15521 */ // Combiner Rule #15: sub_to_add
4313 /* 15521 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
4314 /* 15524 */ // Label 134: @15524
4315 /* 15524 */ GIM_Reject,
4316 /* 15525 */ // Label 3: @15525
4317 /* 15525 */ GIM_Try, /*On fail goto*//*Label 135*/ GIMT_Encode4(15536), // Rule ID 78 //
4318 /* 15530 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled),
4319 /* 15533 */ // Combiner Rule #72: undef_to_int_zero; wip_match_opcode 'G_MUL'
4320 /* 15533 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
4321 /* 15536 */ // Label 135: @15536
4322 /* 15536 */ GIM_Try, /*On fail goto*//*Label 136*/ GIMT_Encode4(15547), // Rule ID 236 //
4323 /* 15541 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
4324 /* 15544 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_MUL'
4325 /* 15544 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
4326 /* 15547 */ // Label 136: @15547
4327 /* 15547 */ GIM_Try, /*On fail goto*//*Label 137*/ GIMT_Encode4(15558), // Rule ID 310 //
4328 /* 15552 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
4329 /* 15555 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_MUL'
4330 /* 15555 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
4331 /* 15558 */ // Label 137: @15558
4332 /* 15558 */ GIM_Try, /*On fail goto*//*Label 138*/ GIMT_Encode4(15569), // Rule ID 377 //
4333 /* 15563 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule225Enabled),
4334 /* 15566 */ // Combiner Rule #225: smulu64; wip_match_opcode 'G_MUL'
4335 /* 15566 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner161),
4336 /* 15569 */ // Label 138: @15569
4337 /* 15569 */ GIM_Try, /*On fail goto*//*Label 139*/ GIMT_Encode4(15609), // Rule ID 17 //
4338 /* 15574 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
4339 /* 15577 */ // MIs[0] dst
4340 /* 15577 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/uint8_t(-1),
4341 /* 15581 */ // MIs[0] x
4342 /* 15581 */ // No operand predicates
4343 /* 15581 */ // MIs[0] Operand 2
4344 /* 15581 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, uint8_t(-1),
4345 /* 15585 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/uint8_t(-1),
4346 /* 15588 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
4347 /* 15598 */ // Combiner Rule #17: mul_by_neg_one
4348 /* 15598 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4349 /* 15601 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
4350 /* 15603 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
4351 /* 15606 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
4352 /* 15608 */ GIR_EraseRootFromParent_Done,
4353 /* 15609 */ // Label 139: @15609
4354 /* 15609 */ GIM_Try, /*On fail goto*//*Label 140*/ GIMT_Encode4(15644), // Rule ID 40 //
4355 /* 15614 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
4356 /* 15617 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
4357 /* 15623 */ // MIs[0] root
4358 /* 15623 */ // No operand predicates
4359 /* 15623 */ // MIs[0] left
4360 /* 15623 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4361 /* 15627 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
4362 /* 15631 */ // MIs[1] scale
4363 /* 15631 */ // No operand predicates
4364 /* 15631 */ // MIs[0] x
4365 /* 15631 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4366 /* 15635 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4367 /* 15639 */ // MIs[2] imm1
4368 /* 15639 */ // No operand predicates
4369 /* 15639 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4370 /* 15641 */ // Combiner Rule #38: mul_of_vscale
4371 /* 15641 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
4372 /* 15644 */ // Label 140: @15644
4373 /* 15644 */ GIM_Try, /*On fail goto*//*Label 141*/ GIMT_Encode4(15667), // Rule ID 123 //
4374 /* 15649 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
4375 /* 15652 */ // MIs[0] dst
4376 /* 15652 */ // No operand predicates
4377 /* 15652 */ // MIs[0] lhs
4378 /* 15652 */ // No operand predicates
4379 /* 15652 */ // MIs[0] zero
4380 /* 15652 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4381 /* 15656 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
4382 /* 15661 */ // Combiner Rule #87: binop_right_to_zero
4383 /* 15661 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
4384 /* 15666 */ GIR_EraseRootFromParent_Done,
4385 /* 15667 */ // Label 141: @15667
4386 /* 15667 */ GIM_Try, /*On fail goto*//*Label 142*/ GIMT_Encode4(15690), // Rule ID 128 //
4387 /* 15672 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
4388 /* 15675 */ // MIs[0] dst
4389 /* 15675 */ // No operand predicates
4390 /* 15675 */ // MIs[0] x
4391 /* 15675 */ // No operand predicates
4392 /* 15675 */ // MIs[0] Operand 2
4393 /* 15675 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
4394 /* 15679 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4395 /* 15684 */ // Combiner Rule #92: right_identity_one_int
4396 /* 15684 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4397 /* 15689 */ GIR_EraseRootFromParent_Done,
4398 /* 15690 */ // Label 142: @15690
4399 /* 15690 */ GIM_Try, /*On fail goto*//*Label 143*/ GIMT_Encode4(15701), // Rule ID 14 //
4400 /* 15695 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
4401 /* 15698 */ // MIs[0] d
4402 /* 15698 */ // No operand predicates
4403 /* 15698 */ // MIs[0] op1
4404 /* 15698 */ // No operand predicates
4405 /* 15698 */ // MIs[0] op2
4406 /* 15698 */ // No operand predicates
4407 /* 15698 */ // Combiner Rule #14: mul_to_shl
4408 /* 15698 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
4409 /* 15701 */ // Label 143: @15701
4410 /* 15701 */ GIM_Reject,
4411 /* 15702 */ // Label 4: @15702
4412 /* 15702 */ GIM_Try, /*On fail goto*//*Label 144*/ GIMT_Encode4(15713), // Rule ID 119 //
4413 /* 15707 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
4414 /* 15710 */ // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_SDIV'
4415 /* 15710 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
4416 /* 15713 */ // Label 144: @15713
4417 /* 15713 */ GIM_Try, /*On fail goto*//*Label 145*/ GIMT_Encode4(15724), // Rule ID 211 //
4418 /* 15718 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
4419 /* 15721 */ // Combiner Rule #153: div_rem_to_divrem; wip_match_opcode 'G_SDIV'
4420 /* 15721 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
4421 /* 15724 */ // Label 145: @15724
4422 /* 15724 */ GIM_Try, /*On fail goto*//*Label 146*/ GIMT_Encode4(15735), // Rule ID 242 //
4423 /* 15729 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
4424 /* 15732 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_SDIV'
4425 /* 15732 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
4426 /* 15735 */ // Label 146: @15735
4427 /* 15735 */ GIM_Try, /*On fail goto*//*Label 147*/ GIMT_Encode4(15746), // Rule ID 260 //
4428 /* 15740 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
4429 /* 15743 */ // Combiner Rule #172: sdiv_by_const; wip_match_opcode 'G_SDIV'
4430 /* 15743 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
4431 /* 15746 */ // Label 147: @15746
4432 /* 15746 */ GIM_Try, /*On fail goto*//*Label 148*/ GIMT_Encode4(15757), // Rule ID 285 //
4433 /* 15751 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
4434 /* 15754 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SDIV'
4435 /* 15754 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
4436 /* 15757 */ // Label 148: @15757
4437 /* 15757 */ GIM_Try, /*On fail goto*//*Label 149*/ GIMT_Encode4(15774), // Rule ID 261 //
4438 /* 15762 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
4439 /* 15765 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
4440 /* 15771 */ // MIs[0] dst
4441 /* 15771 */ // No operand predicates
4442 /* 15771 */ // MIs[0] x
4443 /* 15771 */ // No operand predicates
4444 /* 15771 */ // MIs[0] y
4445 /* 15771 */ // No operand predicates
4446 /* 15771 */ // Combiner Rule #173: sdiv_by_pow2
4447 /* 15771 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
4448 /* 15774 */ // Label 149: @15774
4449 /* 15774 */ GIM_Reject,
4450 /* 15775 */ // Label 5: @15775
4451 /* 15775 */ GIM_Try, /*On fail goto*//*Label 150*/ GIMT_Encode4(15786), // Rule ID 81 //
4452 /* 15780 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
4453 /* 15783 */ // Combiner Rule #74: binop_left_undef_to_zero; wip_match_opcode 'G_UDIV'
4454 /* 15783 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
4455 /* 15786 */ // Label 150: @15786
4456 /* 15786 */ GIM_Try, /*On fail goto*//*Label 151*/ GIMT_Encode4(15797), // Rule ID 120 //
4457 /* 15791 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
4458 /* 15794 */ // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_UDIV'
4459 /* 15794 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
4460 /* 15797 */ // Label 151: @15797
4461 /* 15797 */ GIM_Try, /*On fail goto*//*Label 152*/ GIMT_Encode4(15808), // Rule ID 212 //
4462 /* 15802 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
4463 /* 15805 */ // Combiner Rule #153: div_rem_to_divrem; wip_match_opcode 'G_UDIV'
4464 /* 15805 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
4465 /* 15808 */ // Label 152: @15808
4466 /* 15808 */ GIM_Try, /*On fail goto*//*Label 153*/ GIMT_Encode4(15819), // Rule ID 241 //
4467 /* 15813 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
4468 /* 15816 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_UDIV'
4469 /* 15816 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
4470 /* 15819 */ // Label 153: @15819
4471 /* 15819 */ GIM_Try, /*On fail goto*//*Label 154*/ GIMT_Encode4(15830), // Rule ID 259 //
4472 /* 15824 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
4473 /* 15827 */ // Combiner Rule #171: udiv_by_const; wip_match_opcode 'G_UDIV'
4474 /* 15827 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
4475 /* 15830 */ // Label 154: @15830
4476 /* 15830 */ GIM_Try, /*On fail goto*//*Label 155*/ GIMT_Encode4(15841), // Rule ID 287 //
4477 /* 15835 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
4478 /* 15838 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_UDIV'
4479 /* 15838 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
4480 /* 15841 */ // Label 155: @15841
4481 /* 15841 */ GIM_Try, /*On fail goto*//*Label 156*/ GIMT_Encode4(15858), // Rule ID 262 //
4482 /* 15846 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
4483 /* 15849 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
4484 /* 15855 */ // MIs[0] dst
4485 /* 15855 */ // No operand predicates
4486 /* 15855 */ // MIs[0] x
4487 /* 15855 */ // No operand predicates
4488 /* 15855 */ // MIs[0] y
4489 /* 15855 */ // No operand predicates
4490 /* 15855 */ // Combiner Rule #174: udiv_by_pow2
4491 /* 15855 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner111),
4492 /* 15858 */ // Label 156: @15858
4493 /* 15858 */ GIM_Reject,
4494 /* 15859 */ // Label 6: @15859
4495 /* 15859 */ GIM_Try, /*On fail goto*//*Label 157*/ GIMT_Encode4(15870), // Rule ID 121 //
4496 /* 15864 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
4497 /* 15867 */ // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_SREM'
4498 /* 15867 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
4499 /* 15870 */ // Label 157: @15870
4500 /* 15870 */ GIM_Try, /*On fail goto*//*Label 158*/ GIMT_Encode4(15881), // Rule ID 213 //
4501 /* 15875 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
4502 /* 15878 */ // Combiner Rule #153: div_rem_to_divrem; wip_match_opcode 'G_SREM'
4503 /* 15878 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
4504 /* 15881 */ // Label 158: @15881
4505 /* 15881 */ GIM_Try, /*On fail goto*//*Label 159*/ GIMT_Encode4(15892), // Rule ID 244 //
4506 /* 15886 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
4507 /* 15889 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_SREM'
4508 /* 15889 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
4509 /* 15892 */ // Label 159: @15892
4510 /* 15892 */ GIM_Try, /*On fail goto*//*Label 160*/ GIMT_Encode4(15903), // Rule ID 286 //
4511 /* 15897 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
4512 /* 15900 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SREM'
4513 /* 15900 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
4514 /* 15903 */ // Label 160: @15903
4515 /* 15903 */ GIM_Reject,
4516 /* 15904 */ // Label 7: @15904
4517 /* 15904 */ GIM_Try, /*On fail goto*//*Label 161*/ GIMT_Encode4(15915), // Rule ID 82 //
4518 /* 15909 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
4519 /* 15912 */ // Combiner Rule #74: binop_left_undef_to_zero; wip_match_opcode 'G_UREM'
4520 /* 15912 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
4521 /* 15915 */ // Label 161: @15915
4522 /* 15915 */ GIM_Try, /*On fail goto*//*Label 162*/ GIMT_Encode4(15926), // Rule ID 122 //
4523 /* 15920 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
4524 /* 15923 */ // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_UREM'
4525 /* 15923 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
4526 /* 15926 */ // Label 162: @15926
4527 /* 15926 */ GIM_Try, /*On fail goto*//*Label 163*/ GIMT_Encode4(15937), // Rule ID 170 //
4528 /* 15931 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule128Enabled),
4529 /* 15934 */ // Combiner Rule #128: urem_pow2_to_mask; wip_match_opcode 'G_UREM'
4530 /* 15934 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner75),
4531 /* 15937 */ // Label 163: @15937
4532 /* 15937 */ GIM_Try, /*On fail goto*//*Label 164*/ GIMT_Encode4(15948), // Rule ID 214 //
4533 /* 15942 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
4534 /* 15945 */ // Combiner Rule #153: div_rem_to_divrem; wip_match_opcode 'G_UREM'
4535 /* 15945 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
4536 /* 15948 */ // Label 164: @15948
4537 /* 15948 */ GIM_Try, /*On fail goto*//*Label 165*/ GIMT_Encode4(15959), // Rule ID 243 //
4538 /* 15953 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
4539 /* 15956 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_UREM'
4540 /* 15956 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
4541 /* 15959 */ // Label 165: @15959
4542 /* 15959 */ GIM_Try, /*On fail goto*//*Label 166*/ GIMT_Encode4(15970), // Rule ID 288 //
4543 /* 15964 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
4544 /* 15967 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_UREM'
4545 /* 15967 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
4546 /* 15970 */ // Label 166: @15970
4547 /* 15970 */ GIM_Try, /*On fail goto*//*Label 167*/ GIMT_Encode4(15981), // Rule ID 305 //
4548 /* 15975 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
4549 /* 15978 */ // MIs[0] dst
4550 /* 15978 */ // No operand predicates
4551 /* 15978 */ // MIs[0] x
4552 /* 15978 */ // No operand predicates
4553 /* 15978 */ // MIs[0] y
4554 /* 15978 */ // No operand predicates
4555 /* 15978 */ // Combiner Rule #187: urem_by_const
4556 /* 15978 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
4557 /* 15981 */ // Label 167: @15981
4558 /* 15981 */ GIM_Reject,
4559 /* 15982 */ // Label 8: @15982
4560 /* 15982 */ GIM_Try, /*On fail goto*//*Label 168*/ GIMT_Encode4(15993), // Rule ID 73 //
4561 /* 15987 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled),
4562 /* 15990 */ // Combiner Rule #69: load_and_mask; wip_match_opcode 'G_AND'
4563 /* 15990 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
4564 /* 15993 */ // Label 168: @15993
4565 /* 15993 */ GIM_Try, /*On fail goto*//*Label 169*/ GIMT_Encode4(16004), // Rule ID 77 //
4566 /* 15998 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled),
4567 /* 16001 */ // Combiner Rule #72: undef_to_int_zero; wip_match_opcode 'G_AND'
4568 /* 16001 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
4569 /* 16004 */ // Label 169: @16004
4570 /* 16004 */ GIM_Try, /*On fail goto*//*Label 170*/ GIMT_Encode4(16015), // Rule ID 142 //
4571 /* 16009 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
4572 /* 16012 */ // Combiner Rule #104: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_AND'
4573 /* 16012 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
4574 /* 16015 */ // Label 170: @16015
4575 /* 16015 */ GIM_Try, /*On fail goto*//*Label 171*/ GIMT_Encode4(16026), // Rule ID 162 //
4576 /* 16020 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule120Enabled),
4577 /* 16023 */ // Combiner Rule #120: narrow_binop_feeding_and; wip_match_opcode 'G_AND'
4578 /* 16023 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner68),
4579 /* 16026 */ // Label 171: @16026
4580 /* 16026 */ GIM_Try, /*On fail goto*//*Label 172*/ GIMT_Encode4(16037), // Rule ID 167 //
4581 /* 16031 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule125Enabled),
4582 /* 16034 */ // Combiner Rule #125: redundant_and; wip_match_opcode 'G_AND'
4583 /* 16034 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
4584 /* 16037 */ // Label 172: @16037
4585 /* 16037 */ GIM_Try, /*On fail goto*//*Label 173*/ GIMT_Encode4(16048), // Rule ID 184 //
4586 /* 16042 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule142Enabled),
4587 /* 16045 */ // Combiner Rule #142: overlapping_and; wip_match_opcode 'G_AND'
4588 /* 16045 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
4589 /* 16048 */ // Label 173: @16048
4590 /* 16048 */ GIM_Try, /*On fail goto*//*Label 174*/ GIMT_Encode4(16059), // Rule ID 233 //
4591 /* 16053 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
4592 /* 16056 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_AND'
4593 /* 16056 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
4594 /* 16059 */ // Label 174: @16059
4595 /* 16059 */ GIM_Try, /*On fail goto*//*Label 175*/ GIMT_Encode4(16070), // Rule ID 270 //
4596 /* 16064 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled),
4597 /* 16067 */ // Combiner Rule #177: and_or_disjoint_mask; wip_match_opcode 'G_AND'
4598 /* 16067 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114),
4599 /* 16070 */ // Label 175: @16070
4600 /* 16070 */ GIM_Try, /*On fail goto*//*Label 176*/ GIMT_Encode4(16081), // Rule ID 282 //
4601 /* 16075 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
4602 /* 16078 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_AND'
4603 /* 16078 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
4604 /* 16081 */ // Label 176: @16081
4605 /* 16081 */ GIM_Try, /*On fail goto*//*Label 177*/ GIMT_Encode4(16092), // Rule ID 311 //
4606 /* 16086 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
4607 /* 16089 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_AND'
4608 /* 16089 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
4609 /* 16092 */ // Label 177: @16092
4610 /* 16092 */ GIM_Try, /*On fail goto*//*Label 178*/ GIMT_Encode4(16103), // Rule ID 338 //
4611 /* 16097 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
4612 /* 16100 */ // Combiner Rule #193: match_ands; wip_match_opcode 'G_AND'
4613 /* 16100 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
4614 /* 16103 */ // Label 178: @16103
4615 /* 16103 */ GIM_Try, /*On fail goto*//*Label 179*/ GIMT_Encode4(16201), // Rule ID 155 //
4616 /* 16108 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
4617 /* 16111 */ // MIs[0] root
4618 /* 16111 */ // No operand predicates
4619 /* 16111 */ // MIs[0] d1
4620 /* 16111 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4621 /* 16115 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
4622 /* 16119 */ // MIs[1] p
4623 /* 16119 */ // No operand predicates
4624 /* 16119 */ // MIs[1] s1
4625 /* 16119 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/uint8_t(-1),
4626 /* 16123 */ // MIs[1] Operand 3
4627 /* 16123 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
4628 /* 16127 */ // MIs[0] d2
4629 /* 16127 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4630 /* 16131 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
4631 /* 16135 */ // MIs[2] p
4632 /* 16135 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
4633 /* 16140 */ // MIs[2] s2
4634 /* 16140 */ // No operand predicates
4635 /* 16140 */ // MIs[2] Operand 3
4636 /* 16140 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
4637 /* 16144 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner5),
4638 /* 16148 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4639 /* 16150 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/uint8_t(-1),
4640 /* 16153 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
4641 /* 16163 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/uint8_t(-1),
4642 /* 16166 */ // Combiner Rule #113: double_icmp_zero_and_combine
4643 /* 16166 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
4644 /* 16169 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
4645 /* 16174 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
4646 /* 16178 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
4647 /* 16182 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
4648 /* 16186 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
4649 /* 16190 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
4650 /* 16194 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4651 /* 16197 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
4652 /* 16200 */ GIR_EraseRootFromParent_Done,
4653 /* 16201 */ // Label 179: @16201
4654 /* 16201 */ GIM_Try, /*On fail goto*//*Label 180*/ GIMT_Encode4(16238), // Rule ID 226 //
4655 /* 16206 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled),
4656 /* 16209 */ // MIs[0] root
4657 /* 16209 */ // No operand predicates
4658 /* 16209 */ // MIs[0] shift
4659 /* 16209 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4660 /* 16213 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
4661 /* 16217 */ // MIs[1] x
4662 /* 16217 */ // No operand predicates
4663 /* 16217 */ // MIs[1] lsb
4664 /* 16217 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4665 /* 16221 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4666 /* 16225 */ // MIs[2] imm1
4667 /* 16225 */ // No operand predicates
4668 /* 16225 */ // MIs[0] mask
4669 /* 16225 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4670 /* 16229 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4671 /* 16233 */ // MIs[3] imm2
4672 /* 16233 */ // No operand predicates
4673 /* 16233 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4674 /* 16235 */ // Combiner Rule #163: bitfield_extract_from_and
4675 /* 16235 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
4676 /* 16238 */ // Label 180: @16238
4677 /* 16238 */ GIM_Try, /*On fail goto*//*Label 181*/ GIMT_Encode4(16262), // Rule ID 114 //
4678 /* 16243 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
4679 /* 16246 */ // MIs[0] dst
4680 /* 16246 */ // No operand predicates
4681 /* 16246 */ // MIs[0] src
4682 /* 16246 */ // No operand predicates
4683 /* 16246 */ // MIs[0] src
4684 /* 16246 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4685 /* 16251 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4686 /* 16256 */ // Combiner Rule #85: binop_same_val @ [__binop_same_val_match_0[0]]
4687 /* 16256 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4688 /* 16261 */ GIR_EraseRootFromParent_Done,
4689 /* 16262 */ // Label 181: @16262
4690 /* 16262 */ GIM_Reject,
4691 /* 16263 */ // Label 9: @16263
4692 /* 16263 */ GIM_Try, /*On fail goto*//*Label 182*/ GIMT_Encode4(16274), // Rule ID 79 //
4693 /* 16268 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
4694 /* 16271 */ // Combiner Rule #73: undef_to_negative_one; wip_match_opcode 'G_OR'
4695 /* 16271 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
4696 /* 16274 */ // Label 182: @16274
4697 /* 16274 */ GIM_Try, /*On fail goto*//*Label 183*/ GIMT_Encode4(16285), // Rule ID 143 //
4698 /* 16279 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
4699 /* 16282 */ // Combiner Rule #104: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_OR'
4700 /* 16282 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
4701 /* 16285 */ // Label 183: @16285
4702 /* 16285 */ GIM_Try, /*On fail goto*//*Label 184*/ GIMT_Encode4(16296), // Rule ID 169 //
4703 /* 16290 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule127Enabled),
4704 /* 16293 */ // Combiner Rule #127: redundant_or; wip_match_opcode 'G_OR'
4705 /* 16293 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner74),
4706 /* 16296 */ // Label 184: @16296
4707 /* 16296 */ GIM_Try, /*On fail goto*//*Label 185*/ GIMT_Encode4(16307), // Rule ID 210 //
4708 /* 16301 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
4709 /* 16304 */ // Combiner Rule #152: load_or_combine; wip_match_opcode 'G_OR'
4710 /* 16304 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
4711 /* 16307 */ // Label 185: @16307
4712 /* 16307 */ GIM_Try, /*On fail goto*//*Label 186*/ GIMT_Encode4(16318), // Rule ID 215 //
4713 /* 16312 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule154Enabled),
4714 /* 16315 */ // Combiner Rule #154: funnel_shift_from_or_shift; wip_match_opcode 'G_OR'
4715 /* 16315 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
4716 /* 16318 */ // Label 186: @16318
4717 /* 16318 */ GIM_Try, /*On fail goto*//*Label 187*/ GIMT_Encode4(16329), // Rule ID 237 //
4718 /* 16323 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
4719 /* 16326 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_OR'
4720 /* 16326 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
4721 /* 16329 */ // Label 187: @16329
4722 /* 16329 */ GIM_Try, /*On fail goto*//*Label 188*/ GIMT_Encode4(16340), // Rule ID 283 //
4723 /* 16334 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
4724 /* 16337 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_OR'
4725 /* 16337 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
4726 /* 16340 */ // Label 188: @16340
4727 /* 16340 */ GIM_Try, /*On fail goto*//*Label 189*/ GIMT_Encode4(16351), // Rule ID 312 //
4728 /* 16345 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
4729 /* 16348 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_OR'
4730 /* 16348 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
4731 /* 16351 */ // Label 189: @16351
4732 /* 16351 */ GIM_Try, /*On fail goto*//*Label 190*/ GIMT_Encode4(16362), // Rule ID 339 //
4733 /* 16356 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
4734 /* 16359 */ // Combiner Rule #194: match_ors; wip_match_opcode 'G_OR'
4735 /* 16359 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
4736 /* 16362 */ // Label 190: @16362
4737 /* 16362 */ GIM_Try, /*On fail goto*//*Label 191*/ GIMT_Encode4(16460), // Rule ID 156 //
4738 /* 16367 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
4739 /* 16370 */ // MIs[0] root
4740 /* 16370 */ // No operand predicates
4741 /* 16370 */ // MIs[0] d1
4742 /* 16370 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4743 /* 16374 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
4744 /* 16378 */ // MIs[1] p
4745 /* 16378 */ // No operand predicates
4746 /* 16378 */ // MIs[1] s1
4747 /* 16378 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/uint8_t(-1),
4748 /* 16382 */ // MIs[1] Operand 3
4749 /* 16382 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
4750 /* 16386 */ // MIs[0] d2
4751 /* 16386 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4752 /* 16390 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
4753 /* 16394 */ // MIs[2] p
4754 /* 16394 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
4755 /* 16399 */ // MIs[2] s2
4756 /* 16399 */ // No operand predicates
4757 /* 16399 */ // MIs[2] Operand 3
4758 /* 16399 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
4759 /* 16403 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner6),
4760 /* 16407 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4761 /* 16409 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/uint8_t(-1),
4762 /* 16412 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
4763 /* 16422 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/uint8_t(-1),
4764 /* 16425 */ // Combiner Rule #114: double_icmp_zero_or_combine
4765 /* 16425 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
4766 /* 16428 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(RegState::Define),
4767 /* 16433 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
4768 /* 16437 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
4769 /* 16441 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
4770 /* 16445 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
4771 /* 16449 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
4772 /* 16453 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4773 /* 16456 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
4774 /* 16459 */ GIR_EraseRootFromParent_Done,
4775 /* 16460 */ // Label 191: @16460
4776 /* 16460 */ GIM_Try, /*On fail goto*//*Label 192*/ GIMT_Encode4(16484), // Rule ID 115 //
4777 /* 16465 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
4778 /* 16468 */ // MIs[0] dst
4779 /* 16468 */ // No operand predicates
4780 /* 16468 */ // MIs[0] src
4781 /* 16468 */ // No operand predicates
4782 /* 16468 */ // MIs[0] src
4783 /* 16468 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4784 /* 16473 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4785 /* 16478 */ // Combiner Rule #85: binop_same_val @ [__binop_same_val_match_0[1]]
4786 /* 16478 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4787 /* 16483 */ GIR_EraseRootFromParent_Done,
4788 /* 16484 */ // Label 192: @16484
4789 /* 16484 */ GIM_Try, /*On fail goto*//*Label 193*/ GIMT_Encode4(16507), // Rule ID 106 //
4790 /* 16489 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
4791 /* 16492 */ // MIs[0] dst
4792 /* 16492 */ // No operand predicates
4793 /* 16492 */ // MIs[0] lhs
4794 /* 16492 */ // No operand predicates
4795 /* 16492 */ // MIs[0] Operand 2
4796 /* 16492 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4797 /* 16496 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4798 /* 16501 */ // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[2]]
4799 /* 16501 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4800 /* 16506 */ GIR_EraseRootFromParent_Done,
4801 /* 16507 */ // Label 193: @16507
4802 /* 16507 */ GIM_Reject,
4803 /* 16508 */ // Label 10: @16508
4804 /* 16508 */ GIM_Try, /*On fail goto*//*Label 194*/ GIMT_Encode4(16519), // Rule ID 96 //
4805 /* 16513 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
4806 /* 16516 */ // Combiner Rule #78: propagate_undef_any_op; wip_match_opcode 'G_XOR'
4807 /* 16516 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
4808 /* 16519 */ // Label 194: @16519
4809 /* 16519 */ GIM_Try, /*On fail goto*//*Label 195*/ GIMT_Encode4(16530), // Rule ID 144 //
4810 /* 16524 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
4811 /* 16527 */ // Combiner Rule #104: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_XOR'
4812 /* 16527 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
4813 /* 16530 */ // Label 195: @16530
4814 /* 16530 */ GIM_Try, /*On fail goto*//*Label 196*/ GIMT_Encode4(16541), // Rule ID 174 //
4815 /* 16535 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule132Enabled),
4816 /* 16538 */ // Combiner Rule #132: not_cmp_fold; wip_match_opcode 'G_XOR'
4817 /* 16538 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
4818 /* 16541 */ // Label 196: @16541
4819 /* 16541 */ GIM_Try, /*On fail goto*//*Label 197*/ GIMT_Encode4(16552), // Rule ID 198 //
4820 /* 16546 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
4821 /* 16549 */ // Combiner Rule #148: xor_of_and_with_same_reg; wip_match_opcode 'G_XOR'
4822 /* 16549 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner90),
4823 /* 16552 */ // Label 197: @16552
4824 /* 16552 */ GIM_Try, /*On fail goto*//*Label 198*/ GIMT_Encode4(16563), // Rule ID 240 //
4825 /* 16557 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
4826 /* 16560 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_XOR'
4827 /* 16560 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
4828 /* 16563 */ // Label 198: @16563
4829 /* 16563 */ GIM_Try, /*On fail goto*//*Label 199*/ GIMT_Encode4(16574), // Rule ID 284 //
4830 /* 16568 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
4831 /* 16571 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_XOR'
4832 /* 16571 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
4833 /* 16574 */ // Label 199: @16574
4834 /* 16574 */ GIM_Try, /*On fail goto*//*Label 200*/ GIMT_Encode4(16585), // Rule ID 313 //
4835 /* 16579 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
4836 /* 16582 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_XOR'
4837 /* 16582 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
4838 /* 16585 */ // Label 200: @16585
4839 /* 16585 */ GIM_Try, /*On fail goto*//*Label 201*/ GIMT_Encode4(16608), // Rule ID 107 //
4840 /* 16590 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
4841 /* 16593 */ // MIs[0] dst
4842 /* 16593 */ // No operand predicates
4843 /* 16593 */ // MIs[0] lhs
4844 /* 16593 */ // No operand predicates
4845 /* 16593 */ // MIs[0] Operand 2
4846 /* 16593 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4847 /* 16597 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4848 /* 16602 */ // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[3]]
4849 /* 16602 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4850 /* 16607 */ GIR_EraseRootFromParent_Done,
4851 /* 16608 */ // Label 201: @16608
4852 /* 16608 */ GIM_Reject,
4853 /* 16609 */ // Label 11: @16609
4854 /* 16609 */ GIM_Try, /*On fail goto*//*Label 202*/ GIMT_Encode4(16620), // Rule ID 140 //
4855 /* 16614 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
4856 /* 16617 */ // Combiner Rule #102: extend_through_phis; wip_match_opcode 'G_PHI'
4857 /* 16617 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner53),
4858 /* 16620 */ // Label 202: @16620
4859 /* 16620 */ GIM_Reject,
4860 /* 16621 */ // Label 12: @16621
4861 /* 16621 */ GIM_Try, /*On fail goto*//*Label 203*/ GIMT_Encode4(16632), // Rule ID 349 //
4862 /* 16626 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
4863 /* 16629 */ // Combiner Rule #204: unmerge_anyext_build_vector; wip_match_opcode 'G_UNMERGE_VALUES'
4864 /* 16629 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner140),
4865 /* 16632 */ // Label 203: @16632
4866 /* 16632 */ GIM_Try, /*On fail goto*//*Label 204*/ GIMT_Encode4(16643), // Rule ID 350 //
4867 /* 16637 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule205Enabled),
4868 /* 16640 */ // Combiner Rule #205: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES'
4869 /* 16640 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner141),
4870 /* 16643 */ // Label 204: @16643
4871 /* 16643 */ GIM_Try, /*On fail goto*//*Label 205*/ GIMT_Encode4(16654), // Rule ID 352 //
4872 /* 16648 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
4873 /* 16651 */ // Combiner Rule #207: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES'
4874 /* 16651 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner143),
4875 /* 16654 */ // Label 205: @16654
4876 /* 16654 */ GIM_Try, /*On fail goto*//*Label 206*/ GIMT_Encode4(16665), // Rule ID 353 //
4877 /* 16659 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
4878 /* 16662 */ // Combiner Rule #208: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES'
4879 /* 16662 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner144),
4880 /* 16665 */ // Label 206: @16665
4881 /* 16665 */ GIM_Try, /*On fail goto*//*Label 207*/ GIMT_Encode4(16676), // Rule ID 354 //
4882 /* 16670 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
4883 /* 16673 */ // Combiner Rule #209: unmerge_dead_to_trunc; wip_match_opcode 'G_UNMERGE_VALUES'
4884 /* 16673 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner145),
4885 /* 16676 */ // Label 207: @16676
4886 /* 16676 */ GIM_Try, /*On fail goto*//*Label 208*/ GIMT_Encode4(16687), // Rule ID 355 //
4887 /* 16681 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
4888 /* 16684 */ // Combiner Rule #210: unmerge_zext_to_zext; wip_match_opcode 'G_UNMERGE_VALUES'
4889 /* 16684 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner146),
4890 /* 16687 */ // Label 208: @16687
4891 /* 16687 */ GIM_Reject,
4892 /* 16688 */ // Label 13: @16688
4893 /* 16688 */ GIM_Try, /*On fail goto*//*Label 209*/ GIMT_Encode4(16699), // Rule ID 351 //
4894 /* 16693 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
4895 /* 16696 */ // Combiner Rule #206: merge_unmerge; wip_match_opcode 'G_MERGE_VALUES'
4896 /* 16696 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner142),
4897 /* 16699 */ // Label 209: @16699
4898 /* 16699 */ GIM_Try, /*On fail goto*//*Label 210*/ GIMT_Encode4(16761),
4899 /* 16704 */ GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
4900 /* 16707 */ GIM_Try, /*On fail goto*//*Label 211*/ GIMT_Encode4(16728), // Rule ID 356 //
4901 /* 16712 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
4902 /* 16715 */ // MIs[0] root
4903 /* 16715 */ // No operand predicates
4904 /* 16715 */ // MIs[0] x
4905 /* 16715 */ // No operand predicates
4906 /* 16715 */ // MIs[0] undef
4907 /* 16715 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4908 /* 16719 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
4909 /* 16723 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4910 /* 16725 */ // Combiner Rule #211: merge_of_x_and_undef
4911 /* 16725 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner147),
4912 /* 16728 */ // Label 211: @16728
4913 /* 16728 */ GIM_Try, /*On fail goto*//*Label 212*/ GIMT_Encode4(16760), // Rule ID 357 //
4914 /* 16733 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
4915 /* 16736 */ // MIs[0] root
4916 /* 16736 */ // No operand predicates
4917 /* 16736 */ // MIs[0] x
4918 /* 16736 */ // No operand predicates
4919 /* 16736 */ // MIs[0] zero
4920 /* 16736 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4921 /* 16740 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4922 /* 16744 */ // MIs[1] Operand 1
4923 /* 16744 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
4924 /* 16755 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4925 /* 16757 */ // Combiner Rule #212: merge_of_x_and_zero
4926 /* 16757 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner148),
4927 /* 16760 */ // Label 212: @16760
4928 /* 16760 */ GIM_Reject,
4929 /* 16761 */ // Label 210: @16761
4930 /* 16761 */ GIM_Reject,
4931 /* 16762 */ // Label 14: @16762
4932 /* 16762 */ GIM_Try, /*On fail goto*//*Label 213*/ GIMT_Encode4(16773), // Rule ID 69 //
4933 /* 16767 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule67Enabled),
4934 /* 16770 */ // Combiner Rule #67: extract_all_elts_from_build_vector; wip_match_opcode 'G_BUILD_VECTOR'
4935 /* 16770 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29),
4936 /* 16773 */ // Label 213: @16773
4937 /* 16773 */ GIM_Try, /*On fail goto*//*Label 214*/ GIMT_Encode4(16784), // Rule ID 98 //
4938 /* 16778 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
4939 /* 16781 */ // Combiner Rule #79: propagate_undef_all_ops; wip_match_opcode 'G_BUILD_VECTOR'
4940 /* 16781 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
4941 /* 16784 */ // Label 214: @16784
4942 /* 16784 */ GIM_Try, /*On fail goto*//*Label 215*/ GIMT_Encode4(16795), // Rule ID 133 //
4943 /* 16789 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
4944 /* 16792 */ // Combiner Rule #95: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR'
4945 /* 16792 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner49),
4946 /* 16795 */ // Label 215: @16795
4947 /* 16795 */ GIM_Try, /*On fail goto*//*Label 216*/ GIMT_Encode4(16809), // Rule ID 348 //
4948 /* 16800 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule203Enabled),
4949 /* 16803 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
4950 /* 16806 */ // MIs[0] dst
4951 /* 16806 */ // No operand predicates
4952 /* 16806 */ // MIs[0] unused
4953 /* 16806 */ // No operand predicates
4954 /* 16806 */ // Combiner Rule #203: combine_use_vector_truncate
4955 /* 16806 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner139),
4956 /* 16809 */ // Label 216: @16809
4957 /* 16809 */ GIM_Reject,
4958 /* 16810 */ // Label 15: @16810
4959 /* 16810 */ GIM_Try, /*On fail goto*//*Label 217*/ GIMT_Encode4(16821), // Rule ID 132 //
4960 /* 16815 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
4961 /* 16818 */ // Combiner Rule #95: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR_TRUNC'
4962 /* 16818 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner49),
4963 /* 16821 */ // Label 217: @16821
4964 /* 16821 */ GIM_Reject,
4965 /* 16822 */ // Label 16: @16822
4966 /* 16822 */ GIM_Try, /*On fail goto*//*Label 218*/ GIMT_Encode4(16833), // Rule ID 341 //
4967 /* 16827 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule196Enabled),
4968 /* 16830 */ // Combiner Rule #196: combine_concat_vector; wip_match_opcode 'G_CONCAT_VECTORS'
4969 /* 16830 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132),
4970 /* 16833 */ // Label 218: @16833
4971 /* 16833 */ GIM_Reject,
4972 /* 16834 */ // Label 17: @16834
4973 /* 16834 */ GIM_Try, /*On fail goto*//*Label 219*/ GIMT_Encode4(16855), // Rule ID 125 //
4974 /* 16839 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled),
4975 /* 16842 */ // MIs[0] dst
4976 /* 16842 */ // No operand predicates
4977 /* 16842 */ // MIs[0] t
4978 /* 16842 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4979 /* 16846 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
4980 /* 16850 */ // MIs[1] ptr
4981 /* 16850 */ // No operand predicates
4982 /* 16850 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4983 /* 16852 */ // Combiner Rule #89: i2p_to_p2i
4984 /* 16852 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47),
4985 /* 16855 */ // Label 219: @16855
4986 /* 16855 */ GIM_Try, /*On fail goto*//*Label 220*/ GIMT_Encode4(16876), // Rule ID 90 //
4987 /* 16860 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
4988 /* 16863 */ // MIs[0] dst
4989 /* 16863 */ // No operand predicates
4990 /* 16863 */ // MIs[0] __unary_undef_to_undef_match_0.x
4991 /* 16863 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4992 /* 16867 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
4993 /* 16871 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4994 /* 16873 */ // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[3]]
4995 /* 16873 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
4996 /* 16876 */ // Label 220: @16876
4997 /* 16876 */ GIM_Reject,
4998 /* 16877 */ // Label 18: @16877
4999 /* 16877 */ GIM_Try, /*On fail goto*//*Label 221*/ GIMT_Encode4(16888), // Rule ID 124 //
5000 /* 16882 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
5001 /* 16885 */ // Combiner Rule #88: p2i_to_i2p; wip_match_opcode 'G_INTTOPTR'
5002 /* 16885 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46),
5003 /* 16888 */ // Label 221: @16888
5004 /* 16888 */ GIM_Try, /*On fail goto*//*Label 222*/ GIMT_Encode4(16909), // Rule ID 91 //
5005 /* 16893 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
5006 /* 16896 */ // MIs[0] dst
5007 /* 16896 */ // No operand predicates
5008 /* 16896 */ // MIs[0] __unary_undef_to_undef_match_0.x
5009 /* 16896 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5010 /* 16900 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5011 /* 16904 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5012 /* 16906 */ // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[4]]
5013 /* 16906 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
5014 /* 16909 */ // Label 222: @16909
5015 /* 16909 */ GIM_Reject,
5016 /* 16910 */ // Label 19: @16910
5017 /* 16910 */ GIM_Try, /*On fail goto*//*Label 223*/ GIMT_Encode4(16931), // Rule ID 136 //
5018 /* 16915 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule98Enabled),
5019 /* 16918 */ // MIs[0] dst
5020 /* 16918 */ // No operand predicates
5021 /* 16918 */ // MIs[0] src1
5022 /* 16918 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5023 /* 16922 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
5024 /* 16926 */ // MIs[1] src0
5025 /* 16926 */ // No operand predicates
5026 /* 16926 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5027 /* 16928 */ // Combiner Rule #98: bitcast_bitcast_fold
5028 /* 16928 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner52),
5029 /* 16931 */ // Label 223: @16931
5030 /* 16931 */ GIM_Try, /*On fail goto*//*Label 224*/ GIMT_Encode4(16952), // Rule ID 88 //
5031 /* 16936 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
5032 /* 16939 */ // MIs[0] dst
5033 /* 16939 */ // No operand predicates
5034 /* 16939 */ // MIs[0] __unary_undef_to_undef_match_0.x
5035 /* 16939 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5036 /* 16943 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5037 /* 16947 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5038 /* 16949 */ // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[1]]
5039 /* 16949 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
5040 /* 16952 */ // Label 224: @16952
5041 /* 16952 */ GIM_Reject,
5042 /* 16953 */ // Label 20: @16953
5043 /* 16953 */ GIM_Try, /*On fail goto*//*Label 225*/ GIMT_Encode4(16982), // Rule ID 18 //
5044 /* 16958 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
5045 /* 16961 */ // MIs[0] dst
5046 /* 16961 */ // No operand predicates
5047 /* 16961 */ // MIs[0] src
5048 /* 16961 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5049 /* 16965 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREEZE),
5050 /* 16969 */ // MIs[1] __idempotent_prop_match_0.x
5051 /* 16969 */ // No operand predicates
5052 /* 16969 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5053 /* 16974 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5054 /* 16976 */ // Combiner Rule #18: idempotent_prop @ [__idempotent_prop_match_0[0]]
5055 /* 16976 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5056 /* 16981 */ GIR_EraseRootFromParent_Done,
5057 /* 16982 */ // Label 225: @16982
5058 /* 16982 */ GIM_Try, /*On fail goto*//*Label 226*/ GIMT_Encode4(17005), // Rule ID 43 //
5059 /* 16987 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
5060 /* 16990 */ // MIs[0] root
5061 /* 16990 */ // No operand predicates
5062 /* 16990 */ // MIs[0] src
5063 /* 16990 */ // No operand predicates
5064 /* 16990 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
5065 /* 16994 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5066 /* 16999 */ // Combiner Rule #41: freeze_of_non_undef_non_poison
5067 /* 16999 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5068 /* 17004 */ GIR_EraseRootFromParent_Done,
5069 /* 17005 */ // Label 226: @17005
5070 /* 17005 */ GIM_Try, /*On fail goto*//*Label 227*/ GIMT_Encode4(17016), // Rule ID 44 //
5071 /* 17010 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
5072 /* 17013 */ // MIs[0] dst
5073 /* 17013 */ // No operand predicates
5074 /* 17013 */ // MIs[0] src
5075 /* 17013 */ // No operand predicates
5076 /* 17013 */ // Combiner Rule #42: push_freeze_to_prevent_poison_from_propagating
5077 /* 17013 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
5078 /* 17016 */ // Label 227: @17016
5079 /* 17016 */ GIM_Reject,
5080 /* 17017 */ // Label 21: @17017
5081 /* 17017 */ GIM_Try, /*On fail goto*//*Label 228*/ GIMT_Encode4(17028), // Rule ID 70 //
5082 /* 17022 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
5083 /* 17025 */ // Combiner Rule #68: extending_loads; wip_match_opcode 'G_LOAD'
5084 /* 17025 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
5085 /* 17028 */ // Label 228: @17028
5086 /* 17028 */ GIM_Reject,
5087 /* 17029 */ // Label 22: @17029
5088 /* 17029 */ GIM_Try, /*On fail goto*//*Label 229*/ GIMT_Encode4(17040), // Rule ID 71 //
5089 /* 17034 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
5090 /* 17037 */ // Combiner Rule #68: extending_loads; wip_match_opcode 'G_SEXTLOAD'
5091 /* 17037 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
5092 /* 17040 */ // Label 229: @17040
5093 /* 17040 */ GIM_Reject,
5094 /* 17041 */ // Label 23: @17041
5095 /* 17041 */ GIM_Try, /*On fail goto*//*Label 230*/ GIMT_Encode4(17052), // Rule ID 72 //
5096 /* 17046 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
5097 /* 17049 */ // Combiner Rule #68: extending_loads; wip_match_opcode 'G_ZEXTLOAD'
5098 /* 17049 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
5099 /* 17052 */ // Label 230: @17052
5100 /* 17052 */ GIM_Reject,
5101 /* 17053 */ // Label 24: @17053
5102 /* 17053 */ GIM_Try, /*On fail goto*//*Label 231*/ GIMT_Encode4(17064), // Rule ID 100 //
5103 /* 17058 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
5104 /* 17061 */ // Combiner Rule #81: erase_undef_store; wip_match_opcode 'G_STORE'
5105 /* 17061 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner42),
5106 /* 17064 */ // Label 231: @17064
5107 /* 17064 */ GIM_Reject,
5108 /* 17065 */ // Label 25: @17065
5109 /* 17065 */ GIM_Try, /*On fail goto*//*Label 232*/ GIMT_Encode4(17076), // Rule ID 373 //
5110 /* 17070 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule222Enabled),
5111 /* 17073 */ // Combiner Rule #222: rcp_sqrt_to_rsq; wip_match_opcode 'G_INTRINSIC'
5112 /* 17073 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner158),
5113 /* 17076 */ // Label 232: @17076
5114 /* 17076 */ GIM_Reject,
5115 /* 17077 */ // Label 26: @17077
5116 /* 17077 */ GIM_Try, /*On fail goto*//*Label 233*/ GIMT_Encode4(17088), // Rule ID 126 //
5117 /* 17082 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
5118 /* 17085 */ // Combiner Rule #90: anyext_trunc_fold; wip_match_opcode 'G_ANYEXT'
5119 /* 17085 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
5120 /* 17088 */ // Label 233: @17088
5121 /* 17088 */ GIM_Try, /*On fail goto*//*Label 234*/ GIMT_Encode4(17099), // Rule ID 257 //
5122 /* 17093 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
5123 /* 17096 */ // Combiner Rule #169: constant_fold_cast_op; wip_match_opcode 'G_ANYEXT'
5124 /* 17096 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
5125 /* 17099 */ // Label 234: @17099
5126 /* 17099 */ GIM_Try, /*On fail goto*//*Label 235*/ GIMT_Encode4(17120), // Rule ID 57 //
5127 /* 17104 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
5128 /* 17107 */ // MIs[0] root
5129 /* 17107 */ // No operand predicates
5130 /* 17107 */ // MIs[0] select
5131 /* 17107 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5132 /* 17111 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
5133 /* 17115 */ // MIs[1] cond
5134 /* 17115 */ // No operand predicates
5135 /* 17115 */ // MIs[1] true
5136 /* 17115 */ // No operand predicates
5137 /* 17115 */ // MIs[1] false
5138 /* 17115 */ // No operand predicates
5139 /* 17115 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5140 /* 17117 */ // Combiner Rule #55: select_of_anyext
5141 /* 17117 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
5142 /* 17120 */ // Label 235: @17120
5143 /* 17120 */ GIM_Try, /*On fail goto*//*Label 236*/ GIMT_Encode4(17141), // Rule ID 52 //
5144 /* 17125 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
5145 /* 17128 */ // MIs[0] root
5146 /* 17128 */ // No operand predicates
5147 /* 17128 */ // MIs[0] second
5148 /* 17128 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5149 /* 17132 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
5150 /* 17136 */ // MIs[1] src
5151 /* 17136 */ // No operand predicates
5152 /* 17136 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5153 /* 17138 */ // Combiner Rule #50: anyext_of_anyext
5154 /* 17138 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
5155 /* 17141 */ // Label 236: @17141
5156 /* 17141 */ GIM_Try, /*On fail goto*//*Label 237*/ GIMT_Encode4(17162), // Rule ID 54 //
5157 /* 17146 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
5158 /* 17149 */ // MIs[0] root
5159 /* 17149 */ // No operand predicates
5160 /* 17149 */ // MIs[0] second
5161 /* 17149 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5162 /* 17153 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
5163 /* 17157 */ // MIs[1] src
5164 /* 17157 */ // No operand predicates
5165 /* 17157 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5166 /* 17159 */ // Combiner Rule #52: anyext_of_sext
5167 /* 17159 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
5168 /* 17162 */ // Label 237: @17162
5169 /* 17162 */ GIM_Try, /*On fail goto*//*Label 238*/ GIMT_Encode4(17183), // Rule ID 53 //
5170 /* 17167 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled),
5171 /* 17170 */ // MIs[0] root
5172 /* 17170 */ // No operand predicates
5173 /* 17170 */ // MIs[0] second
5174 /* 17170 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5175 /* 17174 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
5176 /* 17178 */ // MIs[1] src
5177 /* 17178 */ // No operand predicates
5178 /* 17178 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5179 /* 17180 */ // Combiner Rule #51: anyext_of_zext
5180 /* 17180 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
5181 /* 17183 */ // Label 238: @17183
5182 /* 17183 */ GIM_Try, /*On fail goto*//*Label 239*/ GIMT_Encode4(17204), // Rule ID 89 //
5183 /* 17188 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
5184 /* 17191 */ // MIs[0] dst
5185 /* 17191 */ // No operand predicates
5186 /* 17191 */ // MIs[0] __unary_undef_to_undef_match_0.x
5187 /* 17191 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5188 /* 17195 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5189 /* 17199 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5190 /* 17201 */ // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[2]]
5191 /* 17201 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
5192 /* 17204 */ // Label 239: @17204
5193 /* 17204 */ GIM_Reject,
5194 /* 17205 */ // Label 27: @17205
5195 /* 17205 */ GIM_Try, /*On fail goto*//*Label 240*/ GIMT_Encode4(17216), // Rule ID 134 //
5196 /* 17210 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule96Enabled),
5197 /* 17213 */ // Combiner Rule #96: trunc_buildvector_fold; wip_match_opcode 'G_TRUNC'
5198 /* 17213 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner50),
5199 /* 17216 */ // Label 240: @17216
5200 /* 17216 */ GIM_Try, /*On fail goto*//*Label 241*/ GIMT_Encode4(17227), // Rule ID 135 //
5201 /* 17221 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule97Enabled),
5202 /* 17224 */ // Combiner Rule #97: trunc_lshr_buildvector_fold; wip_match_opcode 'G_TRUNC'
5203 /* 17224 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
5204 /* 17227 */ // Label 241: @17227
5205 /* 17227 */ GIM_Try, /*On fail goto*//*Label 242*/ GIMT_Encode4(17238), // Rule ID 173 //
5206 /* 17232 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled),
5207 /* 17235 */ // Combiner Rule #131: trunc_shift; wip_match_opcode 'G_TRUNC'
5208 /* 17235 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
5209 /* 17238 */ // Label 242: @17238
5210 /* 17238 */ GIM_Try, /*On fail goto*//*Label 243*/ GIMT_Encode4(17259), // Rule ID 58 //
5211 /* 17243 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled),
5212 /* 17246 */ // MIs[0] root
5213 /* 17246 */ // No operand predicates
5214 /* 17246 */ // MIs[0] select
5215 /* 17246 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5216 /* 17250 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
5217 /* 17254 */ // MIs[1] cond
5218 /* 17254 */ // No operand predicates
5219 /* 17254 */ // MIs[1] true
5220 /* 17254 */ // No operand predicates
5221 /* 17254 */ // MIs[1] false
5222 /* 17254 */ // No operand predicates
5223 /* 17254 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5224 /* 17256 */ // Combiner Rule #56: select_of_truncate
5225 /* 17256 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
5226 /* 17259 */ // Label 243: @17259
5227 /* 17259 */ GIM_Try, /*On fail goto*//*Label 244*/ GIMT_Encode4(17288), // Rule ID 60 //
5228 /* 17264 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled),
5229 /* 17267 */ // MIs[0] root
5230 /* 17267 */ // No operand predicates
5231 /* 17267 */ // MIs[0] binop
5232 /* 17267 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5233 /* 17271 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5234 /* 17275 */ // MIs[1] x
5235 /* 17275 */ // No operand predicates
5236 /* 17275 */ // MIs[1] const
5237 /* 17275 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5238 /* 17279 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5239 /* 17283 */ // MIs[2] imm
5240 /* 17283 */ // No operand predicates
5241 /* 17283 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5242 /* 17285 */ // Combiner Rule #58: narrow_binop_add
5243 /* 17285 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
5244 /* 17288 */ // Label 244: @17288
5245 /* 17288 */ GIM_Try, /*On fail goto*//*Label 245*/ GIMT_Encode4(17317), // Rule ID 63 //
5246 /* 17293 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule61Enabled),
5247 /* 17296 */ // MIs[0] root
5248 /* 17296 */ // No operand predicates
5249 /* 17296 */ // MIs[0] binop
5250 /* 17296 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5251 /* 17300 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
5252 /* 17304 */ // MIs[1] x
5253 /* 17304 */ // No operand predicates
5254 /* 17304 */ // MIs[1] const
5255 /* 17304 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5256 /* 17308 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5257 /* 17312 */ // MIs[2] imm
5258 /* 17312 */ // No operand predicates
5259 /* 17312 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5260 /* 17314 */ // Combiner Rule #61: narrow_binop_and
5261 /* 17314 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
5262 /* 17317 */ // Label 245: @17317
5263 /* 17317 */ GIM_Try, /*On fail goto*//*Label 246*/ GIMT_Encode4(17346), // Rule ID 62 //
5264 /* 17322 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled),
5265 /* 17325 */ // MIs[0] root
5266 /* 17325 */ // No operand predicates
5267 /* 17325 */ // MIs[0] binop
5268 /* 17325 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5269 /* 17329 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
5270 /* 17333 */ // MIs[1] x
5271 /* 17333 */ // No operand predicates
5272 /* 17333 */ // MIs[1] const
5273 /* 17333 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5274 /* 17337 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5275 /* 17341 */ // MIs[2] imm
5276 /* 17341 */ // No operand predicates
5277 /* 17341 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5278 /* 17343 */ // Combiner Rule #60: narrow_binop_mul
5279 /* 17343 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
5280 /* 17346 */ // Label 246: @17346
5281 /* 17346 */ GIM_Try, /*On fail goto*//*Label 247*/ GIMT_Encode4(17375), // Rule ID 64 //
5282 /* 17351 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled),
5283 /* 17354 */ // MIs[0] root
5284 /* 17354 */ // No operand predicates
5285 /* 17354 */ // MIs[0] binop
5286 /* 17354 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5287 /* 17358 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
5288 /* 17362 */ // MIs[1] x
5289 /* 17362 */ // No operand predicates
5290 /* 17362 */ // MIs[1] const
5291 /* 17362 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5292 /* 17366 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5293 /* 17370 */ // MIs[2] imm
5294 /* 17370 */ // No operand predicates
5295 /* 17370 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5296 /* 17372 */ // Combiner Rule #62: narrow_binop_or
5297 /* 17372 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
5298 /* 17375 */ // Label 247: @17375
5299 /* 17375 */ GIM_Try, /*On fail goto*//*Label 248*/ GIMT_Encode4(17404), // Rule ID 61 //
5300 /* 17380 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled),
5301 /* 17383 */ // MIs[0] root
5302 /* 17383 */ // No operand predicates
5303 /* 17383 */ // MIs[0] binop
5304 /* 17383 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5305 /* 17387 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5306 /* 17391 */ // MIs[1] x
5307 /* 17391 */ // No operand predicates
5308 /* 17391 */ // MIs[1] const
5309 /* 17391 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5310 /* 17395 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5311 /* 17399 */ // MIs[2] imm
5312 /* 17399 */ // No operand predicates
5313 /* 17399 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5314 /* 17401 */ // Combiner Rule #59: narrow_binop_sub
5315 /* 17401 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
5316 /* 17404 */ // Label 248: @17404
5317 /* 17404 */ GIM_Try, /*On fail goto*//*Label 249*/ GIMT_Encode4(17433), // Rule ID 65 //
5318 /* 17409 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule63Enabled),
5319 /* 17412 */ // MIs[0] root
5320 /* 17412 */ // No operand predicates
5321 /* 17412 */ // MIs[0] binop
5322 /* 17412 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5323 /* 17416 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
5324 /* 17420 */ // MIs[1] x
5325 /* 17420 */ // No operand predicates
5326 /* 17420 */ // MIs[1] const
5327 /* 17420 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5328 /* 17424 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5329 /* 17428 */ // MIs[2] imm
5330 /* 17428 */ // No operand predicates
5331 /* 17428 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5332 /* 17430 */ // Combiner Rule #63: narrow_binop_xor
5333 /* 17430 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
5334 /* 17433 */ // Label 249: @17433
5335 /* 17433 */ GIM_Try, /*On fail goto*//*Label 250*/ GIMT_Encode4(17454), // Rule ID 47 //
5336 /* 17438 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
5337 /* 17441 */ // MIs[0] root
5338 /* 17441 */ // No operand predicates
5339 /* 17441 */ // MIs[0] ext
5340 /* 17441 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5341 /* 17445 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
5342 /* 17449 */ // MIs[1] src
5343 /* 17449 */ // No operand predicates
5344 /* 17449 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5345 /* 17451 */ // Combiner Rule #45: truncate_of_anyext
5346 /* 17451 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
5347 /* 17454 */ // Label 250: @17454
5348 /* 17454 */ GIM_Try, /*On fail goto*//*Label 251*/ GIMT_Encode4(17478), // Rule ID 59 //
5349 /* 17459 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled),
5350 /* 17462 */ // MIs[0] root
5351 /* 17462 */ // No operand predicates
5352 /* 17462 */ // MIs[0] bv
5353 /* 17462 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5354 /* 17466 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
5355 /* 17470 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
5356 /* 17473 */ // MIs[1] unused
5357 /* 17473 */ // No operand predicates
5358 /* 17473 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5359 /* 17475 */ // Combiner Rule #57: buildvector_of_truncate
5360 /* 17475 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
5361 /* 17478 */ // Label 251: @17478
5362 /* 17478 */ GIM_Try, /*On fail goto*//*Label 252*/ GIMT_Encode4(17499), // Rule ID 46 //
5363 /* 17483 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
5364 /* 17486 */ // MIs[0] root
5365 /* 17486 */ // No operand predicates
5366 /* 17486 */ // MIs[0] ext
5367 /* 17486 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5368 /* 17490 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
5369 /* 17494 */ // MIs[1] src
5370 /* 17494 */ // No operand predicates
5371 /* 17494 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5372 /* 17496 */ // Combiner Rule #44: truncate_of_sext
5373 /* 17496 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
5374 /* 17499 */ // Label 252: @17499
5375 /* 17499 */ GIM_Try, /*On fail goto*//*Label 253*/ GIMT_Encode4(17520), // Rule ID 45 //
5376 /* 17504 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
5377 /* 17507 */ // MIs[0] root
5378 /* 17507 */ // No operand predicates
5379 /* 17507 */ // MIs[0] ext
5380 /* 17507 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5381 /* 17511 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
5382 /* 17515 */ // MIs[1] src
5383 /* 17515 */ // No operand predicates
5384 /* 17515 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5385 /* 17517 */ // Combiner Rule #43: truncate_of_zext
5386 /* 17517 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
5387 /* 17520 */ // Label 253: @17520
5388 /* 17520 */ GIM_Try, /*On fail goto*//*Label 254*/ GIMT_Encode4(17541), // Rule ID 87 //
5389 /* 17525 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
5390 /* 17528 */ // MIs[0] dst
5391 /* 17528 */ // No operand predicates
5392 /* 17528 */ // MIs[0] __unary_undef_to_undef_match_0.x
5393 /* 17528 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5394 /* 17532 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5395 /* 17536 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5396 /* 17538 */ // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[0]]
5397 /* 17538 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
5398 /* 17541 */ // Label 254: @17541
5399 /* 17541 */ GIM_Try, /*On fail goto*//*Label 255*/ GIMT_Encode4(17562), // Rule ID 66 //
5400 /* 17546 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
5401 /* 17549 */ // MIs[0] root
5402 /* 17549 */ // No operand predicates
5403 /* 17549 */ // MIs[0] int
5404 /* 17549 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5405 /* 17553 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5406 /* 17557 */ // MIs[1] imm
5407 /* 17557 */ // No operand predicates
5408 /* 17557 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5409 /* 17559 */ // Combiner Rule #64: integer_of_truncate
5410 /* 17559 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner26),
5411 /* 17562 */ // Label 255: @17562
5412 /* 17562 */ GIM_Reject,
5413 /* 17563 */ // Label 28: @17563
5414 /* 17563 */ GIM_Try, /*On fail goto*//*Label 256*/ GIMT_Encode4(17574), // Rule ID 256 //
5415 /* 17568 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
5416 /* 17571 */ // Combiner Rule #169: constant_fold_cast_op; wip_match_opcode 'G_SEXT'
5417 /* 17571 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
5418 /* 17574 */ // Label 256: @17574
5419 /* 17574 */ GIM_Try, /*On fail goto*//*Label 257*/ GIMT_Encode4(17595), // Rule ID 51 //
5420 /* 17579 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
5421 /* 17582 */ // MIs[0] root
5422 /* 17582 */ // No operand predicates
5423 /* 17582 */ // MIs[0] second
5424 /* 17582 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5425 /* 17586 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
5426 /* 17590 */ // MIs[1] src
5427 /* 17590 */ // No operand predicates
5428 /* 17590 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5429 /* 17592 */ // Combiner Rule #49: sext_of_anyext
5430 /* 17592 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
5431 /* 17595 */ // Label 257: @17595
5432 /* 17595 */ GIM_Try, /*On fail goto*//*Label 258*/ GIMT_Encode4(17616), // Rule ID 50 //
5433 /* 17600 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled),
5434 /* 17603 */ // MIs[0] root
5435 /* 17603 */ // No operand predicates
5436 /* 17603 */ // MIs[0] second
5437 /* 17603 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5438 /* 17607 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
5439 /* 17611 */ // MIs[1] src
5440 /* 17611 */ // No operand predicates
5441 /* 17611 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5442 /* 17613 */ // Combiner Rule #48: sext_of_sext
5443 /* 17613 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
5444 /* 17616 */ // Label 258: @17616
5445 /* 17616 */ GIM_Try, /*On fail goto*//*Label 259*/ GIMT_Encode4(17637), // Rule ID 342 //
5446 /* 17621 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
5447 /* 17624 */ // MIs[0] root
5448 /* 17624 */ // No operand predicates
5449 /* 17624 */ // MIs[0] src
5450 /* 17624 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5451 /* 17628 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
5452 /* 17632 */ // MIs[1] x
5453 /* 17632 */ // No operand predicates
5454 /* 17632 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5455 /* 17634 */ // Combiner Rule #197: sext_trunc
5456 /* 17634 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner133),
5457 /* 17637 */ // Label 259: @17637
5458 /* 17637 */ GIM_Reject,
5459 /* 17638 */ // Label 29: @17638
5460 /* 17638 */ GIM_Try, /*On fail goto*//*Label 260*/ GIMT_Encode4(17649), // Rule ID 160 //
5461 /* 17643 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
5462 /* 17646 */ // Combiner Rule #118: sext_inreg_of_load; wip_match_opcode 'G_SEXT_INREG'
5463 /* 17646 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner66),
5464 /* 17649 */ // Label 260: @17649
5465 /* 17649 */ GIM_Try, /*On fail goto*//*Label 261*/ GIMT_Encode4(17660), // Rule ID 168 //
5466 /* 17654 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule126Enabled),
5467 /* 17657 */ // Combiner Rule #126: redundant_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
5468 /* 17657 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner73),
5469 /* 17660 */ // Label 261: @17660
5470 /* 17660 */ GIM_Try, /*On fail goto*//*Label 262*/ GIMT_Encode4(17671), // Rule ID 225 //
5471 /* 17665 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
5472 /* 17668 */ // Combiner Rule #162: bitfield_extract_from_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
5473 /* 17668 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner100),
5474 /* 17671 */ // Label 262: @17671
5475 /* 17671 */ GIM_Try, /*On fail goto*//*Label 263*/ GIMT_Encode4(17682), // Rule ID 376 //
5476 /* 17676 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule224Enabled),
5477 /* 17679 */ // Combiner Rule #224: sign_extension_in_reg; wip_match_opcode 'G_SEXT_INREG'
5478 /* 17679 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
5479 /* 17682 */ // Label 263: @17682
5480 /* 17682 */ GIM_Try, /*On fail goto*//*Label 264*/ GIMT_Encode4(17703), // Rule ID 55 //
5481 /* 17687 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
5482 /* 17690 */ // MIs[0] dst
5483 /* 17690 */ // No operand predicates
5484 /* 17690 */ // MIs[0] x
5485 /* 17690 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5486 /* 17694 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
5487 /* 17698 */ // MIs[1] src
5488 /* 17698 */ // No operand predicates
5489 /* 17698 */ // MIs[1] a
5490 /* 17698 */ // No operand predicates
5491 /* 17698 */ // MIs[0] b
5492 /* 17698 */ // No operand predicates
5493 /* 17698 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5494 /* 17700 */ // Combiner Rule #53: sext_inreg_of_sext_inreg
5495 /* 17700 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
5496 /* 17703 */ // Label 264: @17703
5497 /* 17703 */ GIM_Try, /*On fail goto*//*Label 265*/ GIMT_Encode4(17714), // Rule ID 172 //
5498 /* 17708 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule130Enabled),
5499 /* 17711 */ // MIs[0] dst
5500 /* 17711 */ // No operand predicates
5501 /* 17711 */ // MIs[0] src
5502 /* 17711 */ // No operand predicates
5503 /* 17711 */ // MIs[0] imm
5504 /* 17711 */ // No operand predicates
5505 /* 17711 */ // Combiner Rule #130: sext_inreg_to_zext_inreg
5506 /* 17711 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
5507 /* 17714 */ // Label 265: @17714
5508 /* 17714 */ GIM_Reject,
5509 /* 17715 */ // Label 30: @17715
5510 /* 17715 */ GIM_Try, /*On fail goto*//*Label 266*/ GIMT_Encode4(17726), // Rule ID 171 //
5511 /* 17720 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule129Enabled),
5512 /* 17723 */ // Combiner Rule #129: zext_trunc_fold; wip_match_opcode 'G_ZEXT'
5513 /* 17723 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner76),
5514 /* 17726 */ // Label 266: @17726
5515 /* 17726 */ GIM_Try, /*On fail goto*//*Label 267*/ GIMT_Encode4(17737), // Rule ID 255 //
5516 /* 17731 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
5517 /* 17734 */ // Combiner Rule #169: constant_fold_cast_op; wip_match_opcode 'G_ZEXT'
5518 /* 17734 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
5519 /* 17737 */ // Label 267: @17737
5520 /* 17737 */ GIM_Try, /*On fail goto*//*Label 268*/ GIMT_Encode4(17758), // Rule ID 56 //
5521 /* 17742 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled),
5522 /* 17745 */ // MIs[0] root
5523 /* 17745 */ // No operand predicates
5524 /* 17745 */ // MIs[0] select
5525 /* 17745 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5526 /* 17749 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
5527 /* 17753 */ // MIs[1] cond
5528 /* 17753 */ // No operand predicates
5529 /* 17753 */ // MIs[1] true
5530 /* 17753 */ // No operand predicates
5531 /* 17753 */ // MIs[1] false
5532 /* 17753 */ // No operand predicates
5533 /* 17753 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5534 /* 17755 */ // Combiner Rule #54: select_of_zext
5535 /* 17755 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
5536 /* 17758 */ // Label 268: @17758
5537 /* 17758 */ GIM_Try, /*On fail goto*//*Label 269*/ GIMT_Encode4(17779), // Rule ID 49 //
5538 /* 17763 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled),
5539 /* 17766 */ // MIs[0] root
5540 /* 17766 */ // No operand predicates
5541 /* 17766 */ // MIs[0] second
5542 /* 17766 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5543 /* 17770 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
5544 /* 17774 */ // MIs[1] src
5545 /* 17774 */ // No operand predicates
5546 /* 17774 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5547 /* 17776 */ // Combiner Rule #47: zext_of_anyext
5548 /* 17776 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
5549 /* 17779 */ // Label 269: @17779
5550 /* 17779 */ GIM_Try, /*On fail goto*//*Label 270*/ GIMT_Encode4(17806), // Rule ID 343 //
5551 /* 17784 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
5552 /* 17787 */ // MIs[0] root
5553 /* 17787 */ // No operand predicates
5554 /* 17787 */ // MIs[0] src
5555 /* 17787 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5556 /* 17791 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
5557 /* 17795 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::NoUWrap),
5558 /* 17801 */ // MIs[1] x
5559 /* 17801 */ // No operand predicates
5560 /* 17801 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5561 /* 17803 */ // Combiner Rule #198: zext_trunc
5562 /* 17803 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner134),
5563 /* 17806 */ // Label 270: @17806
5564 /* 17806 */ GIM_Try, /*On fail goto*//*Label 271*/ GIMT_Encode4(17827), // Rule ID 48 //
5565 /* 17811 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
5566 /* 17814 */ // MIs[0] root
5567 /* 17814 */ // No operand predicates
5568 /* 17814 */ // MIs[0] second
5569 /* 17814 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5570 /* 17818 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
5571 /* 17822 */ // MIs[1] src
5572 /* 17822 */ // No operand predicates
5573 /* 17822 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5574 /* 17824 */ // Combiner Rule #46: zext_of_zext
5575 /* 17824 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
5576 /* 17827 */ // Label 271: @17827
5577 /* 17827 */ GIM_Try, /*On fail goto*//*Label 272*/ GIMT_Encode4(17844), // Rule ID 344 //
5578 /* 17832 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule199Enabled),
5579 /* 17835 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NonNeg),
5580 /* 17841 */ // MIs[0] root
5581 /* 17841 */ // No operand predicates
5582 /* 17841 */ // MIs[0] x
5583 /* 17841 */ // No operand predicates
5584 /* 17841 */ // Combiner Rule #199: nneg_zext
5585 /* 17841 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner135),
5586 /* 17844 */ // Label 272: @17844
5587 /* 17844 */ GIM_Reject,
5588 /* 17845 */ // Label 31: @17845
5589 /* 17845 */ GIM_Try, /*On fail goto*//*Label 273*/ GIMT_Encode4(17856), // Rule ID 80 //
5590 /* 17850 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
5591 /* 17853 */ // Combiner Rule #74: binop_left_undef_to_zero; wip_match_opcode 'G_SHL'
5592 /* 17853 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
5593 /* 17856 */ // Label 273: @17856
5594 /* 17856 */ GIM_Try, /*On fail goto*//*Label 274*/ GIMT_Encode4(17867), // Rule ID 83 //
5595 /* 17861 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
5596 /* 17864 */ // Combiner Rule #75: binop_right_undef_to_undef; wip_match_opcode 'G_SHL'
5597 /* 17864 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
5598 /* 17867 */ // Label 274: @17867
5599 /* 17867 */ GIM_Try, /*On fail goto*//*Label 275*/ GIMT_Encode4(17878), // Rule ID 116 //
5600 /* 17872 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
5601 /* 17875 */ // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_SHL'
5602 /* 17875 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
5603 /* 17878 */ // Label 275: @17878
5604 /* 17878 */ GIM_Try, /*On fail goto*//*Label 276*/ GIMT_Encode4(17889), // Rule ID 200 //
5605 /* 17883 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
5606 /* 17886 */ // Combiner Rule #150: shift_immed_chain; wip_match_opcode 'G_SHL'
5607 /* 17886 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
5608 /* 17889 */ // Label 276: @17889
5609 /* 17889 */ GIM_Try, /*On fail goto*//*Label 277*/ GIMT_Encode4(17900), // Rule ID 205 //
5610 /* 17894 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
5611 /* 17897 */ // Combiner Rule #151: shift_of_shifted_logic_chain; wip_match_opcode 'G_SHL'
5612 /* 17897 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
5613 /* 17900 */ // Label 277: @17900
5614 /* 17900 */ GIM_Try, /*On fail goto*//*Label 278*/ GIMT_Encode4(17911), // Rule ID 224 //
5615 /* 17905 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
5616 /* 17908 */ // Combiner Rule #161: commute_shift; wip_match_opcode 'G_SHL'
5617 /* 17908 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner99),
5618 /* 17911 */ // Label 278: @17911
5619 /* 17911 */ GIM_Try, /*On fail goto*//*Label 279*/ GIMT_Encode4(17922), // Rule ID 238 //
5620 /* 17916 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
5621 /* 17919 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_SHL'
5622 /* 17919 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
5623 /* 17922 */ // Label 279: @17922
5624 /* 17922 */ GIM_Try, /*On fail goto*//*Label 280*/ GIMT_Encode4(17933), // Rule ID 291 //
5625 /* 17927 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
5626 /* 17930 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SHL'
5627 /* 17930 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
5628 /* 17933 */ // Label 280: @17933
5629 /* 17933 */ GIM_Try, /*On fail goto*//*Label 281*/ GIMT_Encode4(17968), // Rule ID 41 //
5630 /* 17938 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
5631 /* 17941 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
5632 /* 17947 */ // MIs[0] root
5633 /* 17947 */ // No operand predicates
5634 /* 17947 */ // MIs[0] left
5635 /* 17947 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5636 /* 17951 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
5637 /* 17955 */ // MIs[1] imm
5638 /* 17955 */ // No operand predicates
5639 /* 17955 */ // MIs[0] x
5640 /* 17955 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5641 /* 17959 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5642 /* 17963 */ // MIs[2] imm1
5643 /* 17963 */ // No operand predicates
5644 /* 17963 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5645 /* 17965 */ // Combiner Rule #39: shl_of_vscale
5646 /* 17965 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
5647 /* 17968 */ // Label 281: @17968
5648 /* 17968 */ GIM_Try, /*On fail goto*//*Label 282*/ GIMT_Encode4(17991), // Rule ID 108 //
5649 /* 17973 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
5650 /* 17976 */ // MIs[0] dst
5651 /* 17976 */ // No operand predicates
5652 /* 17976 */ // MIs[0] lhs
5653 /* 17976 */ // No operand predicates
5654 /* 17976 */ // MIs[0] Operand 2
5655 /* 17976 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5656 /* 17980 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5657 /* 17985 */ // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[4]]
5658 /* 17985 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5659 /* 17990 */ GIR_EraseRootFromParent_Done,
5660 /* 17991 */ // Label 282: @17991
5661 /* 17991 */ GIM_Try, /*On fail goto*//*Label 283*/ GIMT_Encode4(18002), // Rule ID 145 //
5662 /* 17996 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
5663 /* 17999 */ // MIs[0] root
5664 /* 17999 */ // No operand predicates
5665 /* 17999 */ // MIs[0] mi.shifted
5666 /* 17999 */ // No operand predicates
5667 /* 17999 */ // MIs[0] mi.amt
5668 /* 17999 */ // No operand predicates
5669 /* 17999 */ // Combiner Rule #105: shifts_too_big @ [mi[0]]
5670 /* 17999 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
5671 /* 18002 */ // Label 283: @18002
5672 /* 18002 */ GIM_Try, /*On fail goto*//*Label 284*/ GIMT_Encode4(18013), // Rule ID 161 //
5673 /* 18007 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
5674 /* 18010 */ // MIs[0] dst
5675 /* 18010 */ // No operand predicates
5676 /* 18010 */ // MIs[0] src0
5677 /* 18010 */ // No operand predicates
5678 /* 18010 */ // MIs[0] src1
5679 /* 18010 */ // No operand predicates
5680 /* 18010 */ // Combiner Rule #119: reduce_shl_of_extend
5681 /* 18010 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner67),
5682 /* 18013 */ // Label 284: @18013
5683 /* 18013 */ GIM_Reject,
5684 /* 18014 */ // Label 32: @18014
5685 /* 18014 */ GIM_Try, /*On fail goto*//*Label 285*/ GIMT_Encode4(18025), // Rule ID 85 //
5686 /* 18019 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
5687 /* 18022 */ // Combiner Rule #75: binop_right_undef_to_undef; wip_match_opcode 'G_LSHR'
5688 /* 18022 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
5689 /* 18025 */ // Label 285: @18025
5690 /* 18025 */ GIM_Try, /*On fail goto*//*Label 286*/ GIMT_Encode4(18036), // Rule ID 117 //
5691 /* 18030 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
5692 /* 18033 */ // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_LSHR'
5693 /* 18033 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
5694 /* 18036 */ // Label 286: @18036
5695 /* 18036 */ GIM_Try, /*On fail goto*//*Label 287*/ GIMT_Encode4(18047), // Rule ID 202 //
5696 /* 18041 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
5697 /* 18044 */ // Combiner Rule #150: shift_immed_chain; wip_match_opcode 'G_LSHR'
5698 /* 18044 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
5699 /* 18047 */ // Label 287: @18047
5700 /* 18047 */ GIM_Try, /*On fail goto*//*Label 288*/ GIMT_Encode4(18058), // Rule ID 207 //
5701 /* 18052 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
5702 /* 18055 */ // Combiner Rule #151: shift_of_shifted_logic_chain; wip_match_opcode 'G_LSHR'
5703 /* 18055 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
5704 /* 18058 */ // Label 288: @18058
5705 /* 18058 */ GIM_Try, /*On fail goto*//*Label 289*/ GIMT_Encode4(18069), // Rule ID 228 //
5706 /* 18063 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
5707 /* 18066 */ // Combiner Rule #164: bitfield_extract_from_shr; wip_match_opcode 'G_LSHR'
5708 /* 18066 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
5709 /* 18069 */ // Label 289: @18069
5710 /* 18069 */ GIM_Try, /*On fail goto*//*Label 290*/ GIMT_Encode4(18080), // Rule ID 230 //
5711 /* 18074 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
5712 /* 18077 */ // Combiner Rule #165: bitfield_extract_from_shr_and; wip_match_opcode 'G_LSHR'
5713 /* 18077 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5714 /* 18080 */ // Label 290: @18080
5715 /* 18080 */ GIM_Try, /*On fail goto*//*Label 291*/ GIMT_Encode4(18091), // Rule ID 235 //
5716 /* 18085 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
5717 /* 18088 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_LSHR'
5718 /* 18088 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
5719 /* 18091 */ // Label 291: @18091
5720 /* 18091 */ GIM_Try, /*On fail goto*//*Label 292*/ GIMT_Encode4(18102), // Rule ID 289 //
5721 /* 18096 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
5722 /* 18099 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_LSHR'
5723 /* 18099 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
5724 /* 18102 */ // Label 292: @18102
5725 /* 18102 */ GIM_Try, /*On fail goto*//*Label 293*/ GIMT_Encode4(18125), // Rule ID 110 //
5726 /* 18107 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
5727 /* 18110 */ // MIs[0] dst
5728 /* 18110 */ // No operand predicates
5729 /* 18110 */ // MIs[0] lhs
5730 /* 18110 */ // No operand predicates
5731 /* 18110 */ // MIs[0] Operand 2
5732 /* 18110 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5733 /* 18114 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5734 /* 18119 */ // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[6]]
5735 /* 18119 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5736 /* 18124 */ GIR_EraseRootFromParent_Done,
5737 /* 18125 */ // Label 293: @18125
5738 /* 18125 */ GIM_Try, /*On fail goto*//*Label 294*/ GIMT_Encode4(18136), // Rule ID 147 //
5739 /* 18130 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
5740 /* 18133 */ // MIs[0] root
5741 /* 18133 */ // No operand predicates
5742 /* 18133 */ // MIs[0] mi.shifted
5743 /* 18133 */ // No operand predicates
5744 /* 18133 */ // MIs[0] mi.amt
5745 /* 18133 */ // No operand predicates
5746 /* 18133 */ // Combiner Rule #105: shifts_too_big @ [mi[2]]
5747 /* 18133 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
5748 /* 18136 */ // Label 294: @18136
5749 /* 18136 */ GIM_Reject,
5750 /* 18137 */ // Label 33: @18137
5751 /* 18137 */ GIM_Try, /*On fail goto*//*Label 295*/ GIMT_Encode4(18148), // Rule ID 84 //
5752 /* 18142 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
5753 /* 18145 */ // Combiner Rule #75: binop_right_undef_to_undef; wip_match_opcode 'G_ASHR'
5754 /* 18145 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
5755 /* 18148 */ // Label 295: @18148
5756 /* 18148 */ GIM_Try, /*On fail goto*//*Label 296*/ GIMT_Encode4(18159), // Rule ID 118 //
5757 /* 18153 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
5758 /* 18156 */ // Combiner Rule #86: binop_left_to_zero; wip_match_opcode 'G_ASHR'
5759 /* 18156 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
5760 /* 18159 */ // Label 296: @18159
5761 /* 18159 */ GIM_Try, /*On fail goto*//*Label 297*/ GIMT_Encode4(18170), // Rule ID 158 //
5762 /* 18164 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule116Enabled),
5763 /* 18167 */ // Combiner Rule #116: shl_ashr_to_sext_inreg; wip_match_opcode 'G_ASHR'
5764 /* 18167 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner65),
5765 /* 18170 */ // Label 297: @18170
5766 /* 18170 */ GIM_Try, /*On fail goto*//*Label 298*/ GIMT_Encode4(18181), // Rule ID 201 //
5767 /* 18175 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
5768 /* 18178 */ // Combiner Rule #150: shift_immed_chain; wip_match_opcode 'G_ASHR'
5769 /* 18178 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
5770 /* 18181 */ // Label 298: @18181
5771 /* 18181 */ GIM_Try, /*On fail goto*//*Label 299*/ GIMT_Encode4(18192), // Rule ID 206 //
5772 /* 18186 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
5773 /* 18189 */ // Combiner Rule #151: shift_of_shifted_logic_chain; wip_match_opcode 'G_ASHR'
5774 /* 18189 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
5775 /* 18192 */ // Label 299: @18192
5776 /* 18192 */ GIM_Try, /*On fail goto*//*Label 300*/ GIMT_Encode4(18203), // Rule ID 227 //
5777 /* 18197 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
5778 /* 18200 */ // Combiner Rule #164: bitfield_extract_from_shr; wip_match_opcode 'G_ASHR'
5779 /* 18200 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
5780 /* 18203 */ // Label 300: @18203
5781 /* 18203 */ GIM_Try, /*On fail goto*//*Label 301*/ GIMT_Encode4(18214), // Rule ID 229 //
5782 /* 18208 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
5783 /* 18211 */ // Combiner Rule #165: bitfield_extract_from_shr_and; wip_match_opcode 'G_ASHR'
5784 /* 18211 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5785 /* 18214 */ // Label 301: @18214
5786 /* 18214 */ GIM_Try, /*On fail goto*//*Label 302*/ GIMT_Encode4(18225), // Rule ID 234 //
5787 /* 18219 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
5788 /* 18222 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_ASHR'
5789 /* 18222 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
5790 /* 18225 */ // Label 302: @18225
5791 /* 18225 */ GIM_Try, /*On fail goto*//*Label 303*/ GIMT_Encode4(18236), // Rule ID 290 //
5792 /* 18230 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
5793 /* 18233 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_ASHR'
5794 /* 18233 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
5795 /* 18236 */ // Label 303: @18236
5796 /* 18236 */ GIM_Try, /*On fail goto*//*Label 304*/ GIMT_Encode4(18259), // Rule ID 109 //
5797 /* 18241 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
5798 /* 18244 */ // MIs[0] dst
5799 /* 18244 */ // No operand predicates
5800 /* 18244 */ // MIs[0] lhs
5801 /* 18244 */ // No operand predicates
5802 /* 18244 */ // MIs[0] Operand 2
5803 /* 18244 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5804 /* 18248 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5805 /* 18253 */ // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[5]]
5806 /* 18253 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5807 /* 18258 */ GIR_EraseRootFromParent_Done,
5808 /* 18259 */ // Label 304: @18259
5809 /* 18259 */ GIM_Try, /*On fail goto*//*Label 305*/ GIMT_Encode4(18270), // Rule ID 146 //
5810 /* 18264 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
5811 /* 18267 */ // MIs[0] root
5812 /* 18267 */ // No operand predicates
5813 /* 18267 */ // MIs[0] mi.shifted
5814 /* 18267 */ // No operand predicates
5815 /* 18267 */ // MIs[0] mi.amt
5816 /* 18267 */ // No operand predicates
5817 /* 18267 */ // Combiner Rule #105: shifts_too_big @ [mi[1]]
5818 /* 18267 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
5819 /* 18270 */ // Label 305: @18270
5820 /* 18270 */ GIM_Reject,
5821 /* 18271 */ // Label 34: @18271
5822 /* 18271 */ GIM_Try, /*On fail goto*//*Label 306*/ GIMT_Encode4(18282), // Rule ID 216 //
5823 /* 18276 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
5824 /* 18279 */ // Combiner Rule #155: funnel_shift_to_rotate; wip_match_opcode 'G_FSHL'
5825 /* 18279 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
5826 /* 18282 */ // Label 306: @18282
5827 /* 18282 */ GIM_Try, /*On fail goto*//*Label 307*/ GIMT_Encode4(18293), // Rule ID 220 //
5828 /* 18287 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule158Enabled),
5829 /* 18290 */ // Combiner Rule #158: funnel_shift_overshift; wip_match_opcode 'G_FSHL'
5830 /* 18290 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
5831 /* 18293 */ // Label 307: @18293
5832 /* 18293 */ GIM_Try, /*On fail goto*//*Label 308*/ GIMT_Encode4(18313), // Rule ID 219 //
5833 /* 18298 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
5834 /* 18301 */ // MIs[0] x
5835 /* 18301 */ // No operand predicates
5836 /* 18301 */ // MIs[0] y
5837 /* 18301 */ // No operand predicates
5838 /* 18301 */ // MIs[0] z
5839 /* 18301 */ // No operand predicates
5840 /* 18301 */ // MIs[0] Operand 3
5841 /* 18301 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
5842 /* 18305 */ // Combiner Rule #157: funnel_shift_left_zero
5843 /* 18305 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
5844 /* 18308 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
5845 /* 18310 */ GIR_RootToRootCopy, /*OpIdx*/1, // y
5846 /* 18312 */ GIR_EraseRootFromParent_Done,
5847 /* 18313 */ // Label 308: @18313
5848 /* 18313 */ GIM_Reject,
5849 /* 18314 */ // Label 35: @18314
5850 /* 18314 */ GIM_Try, /*On fail goto*//*Label 309*/ GIMT_Encode4(18325), // Rule ID 217 //
5851 /* 18319 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
5852 /* 18322 */ // Combiner Rule #155: funnel_shift_to_rotate; wip_match_opcode 'G_FSHR'
5853 /* 18322 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
5854 /* 18325 */ // Label 309: @18325
5855 /* 18325 */ GIM_Try, /*On fail goto*//*Label 310*/ GIMT_Encode4(18336), // Rule ID 221 //
5856 /* 18330 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule158Enabled),
5857 /* 18333 */ // Combiner Rule #158: funnel_shift_overshift; wip_match_opcode 'G_FSHR'
5858 /* 18333 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
5859 /* 18336 */ // Label 310: @18336
5860 /* 18336 */ GIM_Try, /*On fail goto*//*Label 311*/ GIMT_Encode4(18356), // Rule ID 218 //
5861 /* 18341 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
5862 /* 18344 */ // MIs[0] x
5863 /* 18344 */ // No operand predicates
5864 /* 18344 */ // MIs[0] y
5865 /* 18344 */ // No operand predicates
5866 /* 18344 */ // MIs[0] z
5867 /* 18344 */ // No operand predicates
5868 /* 18344 */ // MIs[0] Operand 3
5869 /* 18344 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
5870 /* 18348 */ // Combiner Rule #156: funnel_shift_right_zero
5871 /* 18348 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
5872 /* 18351 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
5873 /* 18353 */ GIR_RootToRootCopy, /*OpIdx*/2, // z
5874 /* 18355 */ GIR_EraseRootFromParent_Done,
5875 /* 18356 */ // Label 311: @18356
5876 /* 18356 */ GIM_Reject,
5877 /* 18357 */ // Label 36: @18357
5878 /* 18357 */ GIM_Try, /*On fail goto*//*Label 312*/ GIMT_Encode4(18380), // Rule ID 113 //
5879 /* 18362 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
5880 /* 18365 */ // MIs[0] dst
5881 /* 18365 */ // No operand predicates
5882 /* 18365 */ // MIs[0] lhs
5883 /* 18365 */ // No operand predicates
5884 /* 18365 */ // MIs[0] Operand 2
5885 /* 18365 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5886 /* 18369 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5887 /* 18374 */ // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[9]]
5888 /* 18374 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5889 /* 18379 */ GIR_EraseRootFromParent_Done,
5890 /* 18380 */ // Label 312: @18380
5891 /* 18380 */ GIM_Reject,
5892 /* 18381 */ // Label 37: @18381
5893 /* 18381 */ GIM_Try, /*On fail goto*//*Label 313*/ GIMT_Encode4(18404), // Rule ID 112 //
5894 /* 18386 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
5895 /* 18389 */ // MIs[0] dst
5896 /* 18389 */ // No operand predicates
5897 /* 18389 */ // MIs[0] lhs
5898 /* 18389 */ // No operand predicates
5899 /* 18389 */ // MIs[0] Operand 2
5900 /* 18389 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5901 /* 18393 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5902 /* 18398 */ // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[8]]
5903 /* 18398 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5904 /* 18403 */ GIR_EraseRootFromParent_Done,
5905 /* 18404 */ // Label 313: @18404
5906 /* 18404 */ GIM_Reject,
5907 /* 18405 */ // Label 38: @18405
5908 /* 18405 */ GIM_Try, /*On fail goto*//*Label 314*/ GIMT_Encode4(18416), // Rule ID 153 //
5909 /* 18410 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled),
5910 /* 18413 */ // Combiner Rule #111: icmp_to_true_false_known_bits; wip_match_opcode 'G_ICMP'
5911 /* 18413 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner62),
5912 /* 18416 */ // Label 314: @18416
5913 /* 18416 */ GIM_Try, /*On fail goto*//*Label 315*/ GIMT_Encode4(18427), // Rule ID 154 //
5914 /* 18421 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
5915 /* 18424 */ // Combiner Rule #112: icmp_to_lhs_known_bits; wip_match_opcode 'G_ICMP'
5916 /* 18424 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
5917 /* 18427 */ // Label 315: @18427
5918 /* 18427 */ GIM_Try, /*On fail goto*//*Label 316*/ GIMT_Encode4(18438), // Rule ID 157 //
5919 /* 18432 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule115Enabled),
5920 /* 18435 */ // Combiner Rule #115: redundant_binop_in_equality; wip_match_opcode 'G_ICMP'
5921 /* 18435 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner64),
5922 /* 18438 */ // Label 316: @18438
5923 /* 18438 */ GIM_Try, /*On fail goto*//*Label 317*/ GIMT_Encode4(18449), // Rule ID 151 //
5924 /* 18443 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule109Enabled),
5925 /* 18446 */ // MIs[0] root
5926 /* 18446 */ // No operand predicates
5927 /* 18446 */ // MIs[0] pred
5928 /* 18446 */ // No operand predicates
5929 /* 18446 */ // MIs[0] lhs
5930 /* 18446 */ // No operand predicates
5931 /* 18446 */ // MIs[0] rhs
5932 /* 18446 */ // No operand predicates
5933 /* 18446 */ // Combiner Rule #109: canonicalize_icmp
5934 /* 18446 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner60),
5935 /* 18449 */ // Label 317: @18449
5936 /* 18449 */ GIM_Reject,
5937 /* 18450 */ // Label 39: @18450
5938 /* 18450 */ GIM_Try, /*On fail goto*//*Label 318*/ GIMT_Encode4(18461), // Rule ID 152 //
5939 /* 18455 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule110Enabled),
5940 /* 18458 */ // MIs[0] root
5941 /* 18458 */ // No operand predicates
5942 /* 18458 */ // MIs[0] pred
5943 /* 18458 */ // No operand predicates
5944 /* 18458 */ // MIs[0] lhs
5945 /* 18458 */ // No operand predicates
5946 /* 18458 */ // MIs[0] rhs
5947 /* 18458 */ // No operand predicates
5948 /* 18458 */ // Combiner Rule #110: canonicalize_fcmp
5949 /* 18458 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner61),
5950 /* 18461 */ // Label 318: @18461
5951 /* 18461 */ GIM_Reject,
5952 /* 18462 */ // Label 40: @18462
5953 /* 18462 */ GIM_Try, /*On fail goto*//*Label 319*/ GIMT_Encode4(18473), // Rule ID 103 //
5954 /* 18467 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
5955 /* 18470 */ // Combiner Rule #83: select_same_val; wip_match_opcode 'G_SELECT'
5956 /* 18470 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner44),
5957 /* 18473 */ // Label 319: @18473
5958 /* 18473 */ GIM_Try, /*On fail goto*//*Label 320*/ GIMT_Encode4(18484), // Rule ID 164 //
5959 /* 18478 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule122Enabled),
5960 /* 18481 */ // Combiner Rule #122: select_constant_cmp; wip_match_opcode 'G_SELECT'
5961 /* 18481 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
5962 /* 18484 */ // Label 320: @18484
5963 /* 18484 */ GIM_Try, /*On fail goto*//*Label 321*/ GIMT_Encode4(18495), // Rule ID 166 //
5964 /* 18489 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule124Enabled),
5965 /* 18492 */ // Combiner Rule #124: match_selects; wip_match_opcode 'G_SELECT'
5966 /* 18492 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner71),
5967 /* 18495 */ // Label 321: @18495
5968 /* 18495 */ GIM_Try, /*On fail goto*//*Label 322*/ GIMT_Encode4(18506), // Rule ID 307 //
5969 /* 18500 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule189Enabled),
5970 /* 18503 */ // Combiner Rule #189: select_to_minmax; wip_match_opcode 'G_SELECT'
5971 /* 18503 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner125),
5972 /* 18506 */ // Label 322: @18506
5973 /* 18506 */ GIM_Try, /*On fail goto*//*Label 323*/ GIMT_Encode4(18533), // Rule ID 362 //
5974 /* 18511 */ GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFminFmaxLegacy),
5975 /* 18514 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
5976 /* 18517 */ GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
5977 /* 18520 */ // MIs[0] cond
5978 /* 18520 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5979 /* 18524 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCMP),
5980 /* 18528 */ // MIs[1] pred
5981 /* 18528 */ // No operand predicates
5982 /* 18528 */ // MIs[1] lhs
5983 /* 18528 */ // No operand predicates
5984 /* 18528 */ // MIs[1] rhs
5985 /* 18528 */ // No operand predicates
5986 /* 18528 */ // MIs[0] true
5987 /* 18528 */ // No operand predicates
5988 /* 18528 */ // MIs[0] false
5989 /* 18528 */ // No operand predicates
5990 /* 18528 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5991 /* 18530 */ // Combiner Rule #215: fcmp_select_to_fmin_fmax_legacy
5992 /* 18530 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner151),
5993 /* 18533 */ // Label 323: @18533
5994 /* 18533 */ GIM_Try, /*On fail goto*//*Label 324*/ GIMT_Encode4(18554), // Rule ID 165 //
5995 /* 18538 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule123Enabled),
5996 /* 18541 */ // MIs[0] root
5997 /* 18541 */ // No operand predicates
5998 /* 18541 */ // MIs[0] tst
5999 /* 18541 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6000 /* 18545 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
6001 /* 18549 */ // MIs[1] tst1
6002 /* 18549 */ // No operand predicates
6003 /* 18549 */ // MIs[1] a
6004 /* 18549 */ // No operand predicates
6005 /* 18549 */ // MIs[1] b
6006 /* 18549 */ // No operand predicates
6007 /* 18549 */ // MIs[0] x
6008 /* 18549 */ // No operand predicates
6009 /* 18549 */ // MIs[0] y
6010 /* 18549 */ // No operand predicates
6011 /* 18549 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6012 /* 18551 */ // Combiner Rule #123: select_to_iminmax
6013 /* 18551 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
6014 /* 18554 */ // Label 324: @18554
6015 /* 18554 */ GIM_Try, /*On fail goto*//*Label 325*/ GIMT_Encode4(18583), // Rule ID 163 //
6016 /* 18559 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
6017 /* 18562 */ // MIs[0] dst
6018 /* 18562 */ // No operand predicates
6019 /* 18562 */ // MIs[0] undef
6020 /* 18562 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6021 /* 18566 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6022 /* 18570 */ // MIs[0] x
6023 /* 18570 */ // No operand predicates
6024 /* 18570 */ // MIs[0] y
6025 /* 18570 */ // No operand predicates
6026 /* 18570 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
6027 /* 18575 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6028 /* 18577 */ // Combiner Rule #121: select_undef_cmp
6029 /* 18577 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
6030 /* 18582 */ GIR_EraseRootFromParent_Done,
6031 /* 18583 */ // Label 325: @18583
6032 /* 18583 */ GIM_Reject,
6033 /* 18584 */ // Label 41: @18584
6034 /* 18584 */ GIM_Try, /*On fail goto*//*Label 326*/ GIMT_Encode4(18595), // Rule ID 318 //
6035 /* 18589 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6036 /* 18592 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDO'
6037 /* 18592 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6038 /* 18595 */ // Label 326: @18595
6039 /* 18595 */ GIM_Try, /*On fail goto*//*Label 327*/ GIMT_Encode4(18606), // Rule ID 359 //
6040 /* 18600 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
6041 /* 18603 */ // Combiner Rule #213: match_addos; wip_match_opcode 'G_UADDO'
6042 /* 18603 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner149),
6043 /* 18606 */ // Label 327: @18606
6044 /* 18606 */ GIM_Reject,
6045 /* 18607 */ // Label 42: @18607
6046 /* 18607 */ GIM_Try, /*On fail goto*//*Label 328*/ GIMT_Encode4(18618), // Rule ID 189 //
6047 /* 18612 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
6048 /* 18615 */ // Combiner Rule #145: adde_to_addo; wip_match_opcode 'G_UADDE'
6049 /* 18615 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
6050 /* 18618 */ // Label 328: @18618
6051 /* 18618 */ GIM_Reject,
6052 /* 18619 */ // Label 43: @18619
6053 /* 18619 */ GIM_Try, /*On fail goto*//*Label 329*/ GIMT_Encode4(18630), // Rule ID 361 //
6054 /* 18624 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
6055 /* 18627 */ // Combiner Rule #214: match_subo_no_overflow; wip_match_opcode 'G_USUBO'
6056 /* 18627 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner150),
6057 /* 18630 */ // Label 329: @18630
6058 /* 18630 */ GIM_Reject,
6059 /* 18631 */ // Label 44: @18631
6060 /* 18631 */ GIM_Try, /*On fail goto*//*Label 330*/ GIMT_Encode4(18642), // Rule ID 191 //
6061 /* 18636 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
6062 /* 18639 */ // Combiner Rule #145: adde_to_addo; wip_match_opcode 'G_USUBE'
6063 /* 18639 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
6064 /* 18642 */ // Label 330: @18642
6065 /* 18642 */ GIM_Reject,
6066 /* 18643 */ // Label 45: @18643
6067 /* 18643 */ GIM_Try, /*On fail goto*//*Label 331*/ GIMT_Encode4(18654), // Rule ID 319 //
6068 /* 18648 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6069 /* 18651 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDO'
6070 /* 18651 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6071 /* 18654 */ // Label 331: @18654
6072 /* 18654 */ GIM_Try, /*On fail goto*//*Label 332*/ GIMT_Encode4(18665), // Rule ID 358 //
6073 /* 18659 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
6074 /* 18662 */ // Combiner Rule #213: match_addos; wip_match_opcode 'G_SADDO'
6075 /* 18662 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner149),
6076 /* 18665 */ // Label 332: @18665
6077 /* 18665 */ GIM_Reject,
6078 /* 18666 */ // Label 46: @18666
6079 /* 18666 */ GIM_Try, /*On fail goto*//*Label 333*/ GIMT_Encode4(18677), // Rule ID 190 //
6080 /* 18671 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
6081 /* 18674 */ // Combiner Rule #145: adde_to_addo; wip_match_opcode 'G_SADDE'
6082 /* 18674 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
6083 /* 18677 */ // Label 333: @18677
6084 /* 18677 */ GIM_Reject,
6085 /* 18678 */ // Label 47: @18678
6086 /* 18678 */ GIM_Try, /*On fail goto*//*Label 334*/ GIMT_Encode4(18689), // Rule ID 360 //
6087 /* 18683 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
6088 /* 18686 */ // Combiner Rule #214: match_subo_no_overflow; wip_match_opcode 'G_SSUBO'
6089 /* 18686 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner150),
6090 /* 18689 */ // Label 334: @18689
6091 /* 18689 */ GIM_Reject,
6092 /* 18690 */ // Label 48: @18690
6093 /* 18690 */ GIM_Try, /*On fail goto*//*Label 335*/ GIMT_Encode4(18701), // Rule ID 192 //
6094 /* 18695 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
6095 /* 18698 */ // Combiner Rule #145: adde_to_addo; wip_match_opcode 'G_SSUBE'
6096 /* 18698 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
6097 /* 18701 */ // Label 335: @18701
6098 /* 18701 */ GIM_Reject,
6099 /* 18702 */ // Label 49: @18702
6100 /* 18702 */ GIM_Try, /*On fail goto*//*Label 336*/ GIMT_Encode4(18713), // Rule ID 185 //
6101 /* 18707 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule143Enabled),
6102 /* 18710 */ // Combiner Rule #143: mulo_by_2; wip_match_opcode 'G_UMULO'
6103 /* 18710 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
6104 /* 18713 */ // Label 336: @18713
6105 /* 18713 */ GIM_Try, /*On fail goto*//*Label 337*/ GIMT_Encode4(18724), // Rule ID 187 //
6106 /* 18718 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule144Enabled),
6107 /* 18721 */ // Combiner Rule #144: mulo_by_0; wip_match_opcode 'G_UMULO'
6108 /* 18721 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
6109 /* 18724 */ // Label 337: @18724
6110 /* 18724 */ GIM_Try, /*On fail goto*//*Label 338*/ GIMT_Encode4(18735), // Rule ID 320 //
6111 /* 18729 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6112 /* 18732 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULO'
6113 /* 18732 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6114 /* 18735 */ // Label 338: @18735
6115 /* 18735 */ GIM_Reject,
6116 /* 18736 */ // Label 50: @18736
6117 /* 18736 */ GIM_Try, /*On fail goto*//*Label 339*/ GIMT_Encode4(18747), // Rule ID 186 //
6118 /* 18741 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule143Enabled),
6119 /* 18744 */ // Combiner Rule #143: mulo_by_2; wip_match_opcode 'G_SMULO'
6120 /* 18744 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
6121 /* 18747 */ // Label 339: @18747
6122 /* 18747 */ GIM_Try, /*On fail goto*//*Label 340*/ GIMT_Encode4(18758), // Rule ID 188 //
6123 /* 18752 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule144Enabled),
6124 /* 18755 */ // Combiner Rule #144: mulo_by_0; wip_match_opcode 'G_SMULO'
6125 /* 18755 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
6126 /* 18758 */ // Label 340: @18758
6127 /* 18758 */ GIM_Try, /*On fail goto*//*Label 341*/ GIMT_Encode4(18769), // Rule ID 321 //
6128 /* 18763 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6129 /* 18766 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULO'
6130 /* 18766 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6131 /* 18769 */ // Label 341: @18769
6132 /* 18769 */ GIM_Reject,
6133 /* 18770 */ // Label 51: @18770
6134 /* 18770 */ GIM_Try, /*On fail goto*//*Label 342*/ GIMT_Encode4(18781), // Rule ID 263 //
6135 /* 18775 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
6136 /* 18778 */ // Combiner Rule #175: mulh_to_lshr; wip_match_opcode 'G_UMULH'
6137 /* 18778 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner112),
6138 /* 18781 */ // Label 342: @18781
6139 /* 18781 */ GIM_Try, /*On fail goto*//*Label 343*/ GIMT_Encode4(18792), // Rule ID 322 //
6140 /* 18786 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6141 /* 18789 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULH'
6142 /* 18789 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6143 /* 18792 */ // Label 343: @18792
6144 /* 18792 */ GIM_Reject,
6145 /* 18793 */ // Label 52: @18793
6146 /* 18793 */ GIM_Try, /*On fail goto*//*Label 344*/ GIMT_Encode4(18804), // Rule ID 323 //
6147 /* 18798 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6148 /* 18801 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULH'
6149 /* 18801 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6150 /* 18804 */ // Label 344: @18804
6151 /* 18804 */ GIM_Reject,
6152 /* 18805 */ // Label 53: @18805
6153 /* 18805 */ GIM_Try, /*On fail goto*//*Label 345*/ GIMT_Encode4(18816), // Rule ID 324 //
6154 /* 18810 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6155 /* 18813 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDSAT'
6156 /* 18813 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6157 /* 18816 */ // Label 345: @18816
6158 /* 18816 */ GIM_Reject,
6159 /* 18817 */ // Label 54: @18817
6160 /* 18817 */ GIM_Try, /*On fail goto*//*Label 346*/ GIMT_Encode4(18828), // Rule ID 325 //
6161 /* 18822 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6162 /* 18825 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDSAT'
6163 /* 18825 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6164 /* 18828 */ // Label 346: @18828
6165 /* 18828 */ GIM_Reject,
6166 /* 18829 */ // Label 55: @18829
6167 /* 18829 */ GIM_Try, /*On fail goto*//*Label 347*/ GIMT_Encode4(18840), // Rule ID 204 //
6168 /* 18834 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
6169 /* 18837 */ // Combiner Rule #150: shift_immed_chain; wip_match_opcode 'G_USHLSAT'
6170 /* 18837 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6171 /* 18840 */ // Label 347: @18840
6172 /* 18840 */ GIM_Try, /*On fail goto*//*Label 348*/ GIMT_Encode4(18851), // Rule ID 208 //
6173 /* 18845 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
6174 /* 18848 */ // Combiner Rule #151: shift_of_shifted_logic_chain; wip_match_opcode 'G_USHLSAT'
6175 /* 18848 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
6176 /* 18851 */ // Label 348: @18851
6177 /* 18851 */ GIM_Reject,
6178 /* 18852 */ // Label 56: @18852
6179 /* 18852 */ GIM_Try, /*On fail goto*//*Label 349*/ GIMT_Encode4(18863), // Rule ID 203 //
6180 /* 18857 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
6181 /* 18860 */ // Combiner Rule #150: shift_immed_chain; wip_match_opcode 'G_SSHLSAT'
6182 /* 18860 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6183 /* 18863 */ // Label 349: @18863
6184 /* 18863 */ GIM_Try, /*On fail goto*//*Label 350*/ GIMT_Encode4(18874), // Rule ID 209 //
6185 /* 18868 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
6186 /* 18871 */ // Combiner Rule #151: shift_of_shifted_logic_chain; wip_match_opcode 'G_SSHLSAT'
6187 /* 18871 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
6188 /* 18874 */ // Label 350: @18874
6189 /* 18874 */ GIM_Reject,
6190 /* 18875 */ // Label 57: @18875
6191 /* 18875 */ GIM_Try, /*On fail goto*//*Label 351*/ GIMT_Encode4(18886), // Rule ID 326 //
6192 /* 18880 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6193 /* 18883 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIX'
6194 /* 18883 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6195 /* 18886 */ // Label 351: @18886
6196 /* 18886 */ GIM_Reject,
6197 /* 18887 */ // Label 58: @18887
6198 /* 18887 */ GIM_Try, /*On fail goto*//*Label 352*/ GIMT_Encode4(18898), // Rule ID 327 //
6199 /* 18892 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6200 /* 18895 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIX'
6201 /* 18895 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6202 /* 18898 */ // Label 352: @18898
6203 /* 18898 */ GIM_Reject,
6204 /* 18899 */ // Label 59: @18899
6205 /* 18899 */ GIM_Try, /*On fail goto*//*Label 353*/ GIMT_Encode4(18910), // Rule ID 328 //
6206 /* 18904 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6207 /* 18907 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIXSAT'
6208 /* 18907 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6209 /* 18910 */ // Label 353: @18910
6210 /* 18910 */ GIM_Reject,
6211 /* 18911 */ // Label 60: @18911
6212 /* 18911 */ GIM_Try, /*On fail goto*//*Label 354*/ GIMT_Encode4(18922), // Rule ID 329 //
6213 /* 18916 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6214 /* 18919 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIXSAT'
6215 /* 18919 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6216 /* 18922 */ // Label 354: @18922
6217 /* 18922 */ GIM_Reject,
6218 /* 18923 */ // Label 61: @18923
6219 /* 18923 */ GIM_Try, /*On fail goto*//*Label 355*/ GIMT_Encode4(18934), // Rule ID 249 //
6220 /* 18928 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
6221 /* 18931 */ // Combiner Rule #167: constant_fold_fp_binop; wip_match_opcode 'G_FADD'
6222 /* 18931 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
6223 /* 18934 */ // Label 355: @18934
6224 /* 18934 */ GIM_Try, /*On fail goto*//*Label 356*/ GIMT_Encode4(18945), // Rule ID 264 //
6225 /* 18939 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
6226 /* 18942 */ // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FADD'
6227 /* 18942 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
6228 /* 18945 */ // Label 356: @18945
6229 /* 18945 */ GIM_Try, /*On fail goto*//*Label 357*/ GIMT_Encode4(18956), // Rule ID 271 //
6230 /* 18950 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
6231 /* 18953 */ // Combiner Rule #178: combine_fadd_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
6232 /* 18953 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner115),
6233 /* 18956 */ // Label 357: @18956
6234 /* 18956 */ GIM_Try, /*On fail goto*//*Label 358*/ GIMT_Encode4(18967), // Rule ID 272 //
6235 /* 18961 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
6236 /* 18964 */ // Combiner Rule #179: combine_fadd_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
6237 /* 18964 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner116),
6238 /* 18967 */ // Label 358: @18967
6239 /* 18967 */ GIM_Try, /*On fail goto*//*Label 359*/ GIMT_Encode4(18978), // Rule ID 273 //
6240 /* 18972 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
6241 /* 18975 */ // Combiner Rule #180: combine_fadd_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
6242 /* 18975 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner117),
6243 /* 18978 */ // Label 359: @18978
6244 /* 18978 */ GIM_Try, /*On fail goto*//*Label 360*/ GIMT_Encode4(18989), // Rule ID 274 //
6245 /* 18983 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
6246 /* 18986 */ // Combiner Rule #181: combine_fadd_fpext_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
6247 /* 18986 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
6248 /* 18989 */ // Label 360: @18989
6249 /* 18989 */ GIM_Try, /*On fail goto*//*Label 361*/ GIMT_Encode4(19000), // Rule ID 297 //
6250 /* 18994 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6251 /* 18997 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FADD'
6252 /* 18997 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6253 /* 19000 */ // Label 361: @19000
6254 /* 19000 */ GIM_Try, /*On fail goto*//*Label 362*/ GIMT_Encode4(19011), // Rule ID 330 //
6255 /* 19005 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
6256 /* 19008 */ // Combiner Rule #192: commute_fp_constant_to_rhs; wip_match_opcode 'G_FADD'
6257 /* 19008 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
6258 /* 19011 */ // Label 362: @19011
6259 /* 19011 */ GIM_Try, /*On fail goto*//*Label 363*/ GIMT_Encode4(19034), // Rule ID 138 //
6260 /* 19016 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule100Enabled),
6261 /* 19019 */ // MIs[0] dst
6262 /* 19019 */ // No operand predicates
6263 /* 19019 */ // MIs[0] x
6264 /* 19019 */ // No operand predicates
6265 /* 19019 */ // MIs[0] y
6266 /* 19019 */ // No operand predicates
6267 /* 19019 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3),
6268 /* 19023 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6269 /* 19028 */ // Combiner Rule #100: right_identity_neg_zero_fp
6270 /* 19028 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6271 /* 19033 */ GIR_EraseRootFromParent_Done,
6272 /* 19034 */ // Label 363: @19034
6273 /* 19034 */ GIM_Reject,
6274 /* 19035 */ // Label 62: @19035
6275 /* 19035 */ GIM_Try, /*On fail goto*//*Label 364*/ GIMT_Encode4(19046), // Rule ID 250 //
6276 /* 19040 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
6277 /* 19043 */ // Combiner Rule #167: constant_fold_fp_binop; wip_match_opcode 'G_FSUB'
6278 /* 19043 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
6279 /* 19046 */ // Label 364: @19046
6280 /* 19046 */ GIM_Try, /*On fail goto*//*Label 365*/ GIMT_Encode4(19057), // Rule ID 265 //
6281 /* 19051 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
6282 /* 19054 */ // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FSUB'
6283 /* 19054 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
6284 /* 19057 */ // Label 365: @19057
6285 /* 19057 */ GIM_Try, /*On fail goto*//*Label 366*/ GIMT_Encode4(19068), // Rule ID 275 //
6286 /* 19062 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
6287 /* 19065 */ // Combiner Rule #182: combine_fsub_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
6288 /* 19065 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
6289 /* 19068 */ // Label 366: @19068
6290 /* 19068 */ GIM_Try, /*On fail goto*//*Label 367*/ GIMT_Encode4(19079), // Rule ID 276 //
6291 /* 19073 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
6292 /* 19076 */ // Combiner Rule #183: combine_fsub_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
6293 /* 19076 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
6294 /* 19079 */ // Label 367: @19079
6295 /* 19079 */ GIM_Try, /*On fail goto*//*Label 368*/ GIMT_Encode4(19090), // Rule ID 277 //
6296 /* 19084 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
6297 /* 19087 */ // Combiner Rule #184: combine_fsub_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
6298 /* 19087 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
6299 /* 19090 */ // Label 368: @19090
6300 /* 19090 */ GIM_Try, /*On fail goto*//*Label 369*/ GIMT_Encode4(19101), // Rule ID 278 //
6301 /* 19095 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
6302 /* 19098 */ // Combiner Rule #185: combine_fsub_fpext_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
6303 /* 19098 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122),
6304 /* 19101 */ // Label 369: @19101
6305 /* 19101 */ GIM_Try, /*On fail goto*//*Label 370*/ GIMT_Encode4(19112), // Rule ID 298 //
6306 /* 19106 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6307 /* 19109 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FSUB'
6308 /* 19109 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6309 /* 19112 */ // Label 370: @19112
6310 /* 19112 */ GIM_Try, /*On fail goto*//*Label 371*/ GIMT_Encode4(19123), // Rule ID 308 //
6311 /* 19117 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
6312 /* 19120 */ // Combiner Rule #190: fsub_to_fneg; wip_match_opcode 'G_FSUB'
6313 /* 19120 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner126),
6314 /* 19123 */ // Label 371: @19123
6315 /* 19123 */ GIM_Reject,
6316 /* 19124 */ // Label 63: @19124
6317 /* 19124 */ GIM_Try, /*On fail goto*//*Label 372*/ GIMT_Encode4(19135), // Rule ID 251 //
6318 /* 19129 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
6319 /* 19132 */ // Combiner Rule #167: constant_fold_fp_binop; wip_match_opcode 'G_FMUL'
6320 /* 19132 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
6321 /* 19135 */ // Label 372: @19135
6322 /* 19135 */ GIM_Try, /*On fail goto*//*Label 373*/ GIMT_Encode4(19146), // Rule ID 266 //
6323 /* 19140 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
6324 /* 19143 */ // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FMUL'
6325 /* 19143 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
6326 /* 19146 */ // Label 373: @19146
6327 /* 19146 */ GIM_Try, /*On fail goto*//*Label 374*/ GIMT_Encode4(19157), // Rule ID 296 //
6328 /* 19151 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6329 /* 19154 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FMUL'
6330 /* 19154 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6331 /* 19157 */ // Label 374: @19157
6332 /* 19157 */ GIM_Try, /*On fail goto*//*Label 375*/ GIMT_Encode4(19168), // Rule ID 331 //
6333 /* 19162 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
6334 /* 19165 */ // Combiner Rule #192: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMUL'
6335 /* 19165 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
6336 /* 19168 */ // Label 375: @19168
6337 /* 19168 */ GIM_Try, /*On fail goto*//*Label 376*/ GIMT_Encode4(19189), // Rule ID 364 //
6338 /* 19173 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
6339 /* 19176 */ // MIs[0] dst
6340 /* 19176 */ // No operand predicates
6341 /* 19176 */ // MIs[0] x
6342 /* 19176 */ // No operand predicates
6343 /* 19176 */ // MIs[0] select
6344 /* 19176 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6345 /* 19180 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
6346 /* 19184 */ // MIs[1] y
6347 /* 19184 */ // No operand predicates
6348 /* 19184 */ // MIs[1] A
6349 /* 19184 */ // No operand predicates
6350 /* 19184 */ // MIs[1] B
6351 /* 19184 */ // No operand predicates
6352 /* 19184 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6353 /* 19186 */ // Combiner Rule #217: combine_fmul_with_select_to_fldexp
6354 /* 19186 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner153),
6355 /* 19189 */ // Label 376: @19189
6356 /* 19189 */ GIM_Try, /*On fail goto*//*Label 377*/ GIMT_Encode4(19212), // Rule ID 129 //
6357 /* 19194 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
6358 /* 19197 */ // MIs[0] dst
6359 /* 19197 */ // No operand predicates
6360 /* 19197 */ // MIs[0] x
6361 /* 19197 */ // No operand predicates
6362 /* 19197 */ // MIs[0] y
6363 /* 19197 */ // No operand predicates
6364 /* 19197 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
6365 /* 19201 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6366 /* 19206 */ // Combiner Rule #93: right_identity_one_fp
6367 /* 19206 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6368 /* 19211 */ GIR_EraseRootFromParent_Done,
6369 /* 19212 */ // Label 377: @19212
6370 /* 19212 */ GIM_Try, /*On fail goto*//*Label 378*/ GIMT_Encode4(19232), // Rule ID 139 //
6371 /* 19217 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
6372 /* 19220 */ // MIs[0] dst
6373 /* 19220 */ // No operand predicates
6374 /* 19220 */ // MIs[0] x
6375 /* 19220 */ // No operand predicates
6376 /* 19220 */ // MIs[0] y
6377 /* 19220 */ // No operand predicates
6378 /* 19220 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner4),
6379 /* 19224 */ // Combiner Rule #101: right_identity_neg_one_fp
6380 /* 19224 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
6381 /* 19227 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6382 /* 19229 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
6383 /* 19231 */ GIR_EraseRootFromParent_Done,
6384 /* 19232 */ // Label 378: @19232
6385 /* 19232 */ GIM_Reject,
6386 /* 19233 */ // Label 64: @19233
6387 /* 19233 */ GIM_Try, /*On fail goto*//*Label 379*/ GIMT_Encode4(19244), // Rule ID 254 //
6388 /* 19238 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
6389 /* 19241 */ // Combiner Rule #168: constant_fold_fma; wip_match_opcode 'G_FMA'
6390 /* 19241 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
6391 /* 19244 */ // Label 379: @19244
6392 /* 19244 */ GIM_Try, /*On fail goto*//*Label 380*/ GIMT_Encode4(19255), // Rule ID 269 //
6393 /* 19249 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
6394 /* 19252 */ // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FMA'
6395 /* 19252 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
6396 /* 19255 */ // Label 380: @19255
6397 /* 19255 */ GIM_Reject,
6398 /* 19256 */ // Label 65: @19256
6399 /* 19256 */ GIM_Try, /*On fail goto*//*Label 381*/ GIMT_Encode4(19267), // Rule ID 253 //
6400 /* 19261 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
6401 /* 19264 */ // Combiner Rule #168: constant_fold_fma; wip_match_opcode 'G_FMAD'
6402 /* 19264 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
6403 /* 19267 */ // Label 381: @19267
6404 /* 19267 */ GIM_Try, /*On fail goto*//*Label 382*/ GIMT_Encode4(19278), // Rule ID 268 //
6405 /* 19272 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
6406 /* 19275 */ // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FMAD'
6407 /* 19275 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
6408 /* 19278 */ // Label 382: @19278
6409 /* 19278 */ GIM_Reject,
6410 /* 19279 */ // Label 66: @19279
6411 /* 19279 */ GIM_Try, /*On fail goto*//*Label 383*/ GIMT_Encode4(19290), // Rule ID 252 //
6412 /* 19284 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
6413 /* 19287 */ // Combiner Rule #167: constant_fold_fp_binop; wip_match_opcode 'G_FDIV'
6414 /* 19287 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
6415 /* 19290 */ // Label 383: @19290
6416 /* 19290 */ GIM_Try, /*On fail goto*//*Label 384*/ GIMT_Encode4(19301), // Rule ID 267 //
6417 /* 19295 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
6418 /* 19298 */ // Combiner Rule #176: redundant_neg_operands; wip_match_opcode 'G_FDIV'
6419 /* 19298 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
6420 /* 19301 */ // Label 384: @19301
6421 /* 19301 */ GIM_Try, /*On fail goto*//*Label 385*/ GIMT_Encode4(19312), // Rule ID 299 //
6422 /* 19306 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6423 /* 19309 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FDIV'
6424 /* 19309 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6425 /* 19312 */ // Label 385: @19312
6426 /* 19312 */ GIM_Try, /*On fail goto*//*Label 386*/ GIMT_Encode4(19351), // Rule ID 375 //
6427 /* 19317 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule223Enabled),
6428 /* 19320 */ GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s16,
6429 /* 19323 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s16,
6430 /* 19326 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmContract),
6431 /* 19332 */ // MIs[0] y
6432 /* 19332 */ // No operand predicates
6433 /* 19332 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6434 /* 19336 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSQRT),
6435 /* 19340 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::FmContract),
6436 /* 19346 */ // MIs[1] x
6437 /* 19346 */ // No operand predicates
6438 /* 19346 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6439 /* 19348 */ // Combiner Rule #223: fdiv_by_sqrt_to_rsq_f16
6440 /* 19348 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner159),
6441 /* 19351 */ // Label 386: @19351
6442 /* 19351 */ GIM_Reject,
6443 /* 19352 */ // Label 67: @19352
6444 /* 19352 */ GIM_Try, /*On fail goto*//*Label 387*/ GIMT_Encode4(19363), // Rule ID 300 //
6445 /* 19357 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6446 /* 19360 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FREM'
6447 /* 19360 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6448 /* 19363 */ // Label 387: @19363
6449 /* 19363 */ GIM_Reject,
6450 /* 19364 */ // Label 68: @19364
6451 /* 19364 */ GIM_Try, /*On fail goto*//*Label 388*/ GIMT_Encode4(19385), // Rule ID 197 //
6452 /* 19369 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
6453 /* 19372 */ // MIs[0] dst
6454 /* 19372 */ // No operand predicates
6455 /* 19372 */ // MIs[0] float
6456 /* 19372 */ // No operand predicates
6457 /* 19372 */ // MIs[0] int
6458 /* 19372 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6459 /* 19376 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6460 /* 19380 */ // MIs[1] imm
6461 /* 19380 */ // No operand predicates
6462 /* 19380 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6463 /* 19382 */ // Combiner Rule #147: expand_const_fpowi
6464 /* 19382 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner89),
6465 /* 19385 */ // Label 388: @19385
6466 /* 19385 */ GIM_Reject,
6467 /* 19386 */ // Label 69: @19386
6468 /* 19386 */ GIM_Try, /*On fail goto*//*Label 389*/ GIMT_Encode4(19407), // Rule ID 179 //
6469 /* 19391 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule137Enabled),
6470 /* 19394 */ // MIs[0] dst
6471 /* 19394 */ // No operand predicates
6472 /* 19394 */ // MIs[0] src0
6473 /* 19394 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6474 /* 19398 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
6475 /* 19402 */ // MIs[1] cst
6476 /* 19402 */ // No operand predicates
6477 /* 19402 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6478 /* 19404 */ // Combiner Rule #137: constant_fold_flog2
6479 /* 19404 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
6480 /* 19407 */ // Label 389: @19407
6481 /* 19407 */ GIM_Reject,
6482 /* 19408 */ // Label 70: @19408
6483 /* 19408 */ GIM_Try, /*On fail goto*//*Label 390*/ GIMT_Encode4(19419), // Rule ID 372 //
6484 /* 19413 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
6485 /* 19416 */ // Combiner Rule #221: foldable_fneg; wip_match_opcode 'G_FNEG'
6486 /* 19416 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner157),
6487 /* 19419 */ // Label 390: @19419
6488 /* 19419 */ GIM_Try, /*On fail goto*//*Label 391*/ GIMT_Encode4(19440), // Rule ID 176 //
6489 /* 19424 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule134Enabled),
6490 /* 19427 */ // MIs[0] dst
6491 /* 19427 */ // No operand predicates
6492 /* 19427 */ // MIs[0] src0
6493 /* 19427 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6494 /* 19431 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
6495 /* 19435 */ // MIs[1] cst
6496 /* 19435 */ // No operand predicates
6497 /* 19435 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6498 /* 19437 */ // Combiner Rule #134: constant_fold_fneg
6499 /* 19437 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
6500 /* 19440 */ // Label 391: @19440
6501 /* 19440 */ GIM_Try, /*On fail goto*//*Label 392*/ GIMT_Encode4(19469), // Rule ID 127 //
6502 /* 19445 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
6503 /* 19448 */ // MIs[0] dst
6504 /* 19448 */ // No operand predicates
6505 /* 19448 */ // MIs[0] t
6506 /* 19448 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6507 /* 19452 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
6508 /* 19456 */ // MIs[1] src
6509 /* 19456 */ // No operand predicates
6510 /* 19456 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
6511 /* 19461 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6512 /* 19463 */ // Combiner Rule #91: fneg_fneg_fold
6513 /* 19463 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
6514 /* 19468 */ GIR_EraseRootFromParent_Done,
6515 /* 19469 */ // Label 392: @19469
6516 /* 19469 */ GIM_Reject,
6517 /* 19470 */ // Label 71: @19470
6518 /* 19470 */ GIM_Try, /*On fail goto*//*Label 393*/ GIMT_Encode4(19494), // Rule ID 363 //
6519 /* 19475 */ GIM_CheckFeatures, GIMT_Encode2(GIFBS_Has16BitInsts_NotHasMed3_16),
6520 /* 19478 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
6521 /* 19481 */ // MIs[0] fptrunc_dst
6522 /* 19481 */ // No operand predicates
6523 /* 19481 */ // MIs[0] fmed3_dst
6524 /* 19481 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6525 /* 19485 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(AMDGPU::G_AMDGPU_FMED3),
6526 /* 19489 */ // MIs[1] src0
6527 /* 19489 */ // No operand predicates
6528 /* 19489 */ // MIs[1] src1
6529 /* 19489 */ // No operand predicates
6530 /* 19489 */ // MIs[1] src2
6531 /* 19489 */ // No operand predicates
6532 /* 19489 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6533 /* 19491 */ // Combiner Rule #216: expand_promoted_fmed3
6534 /* 19491 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner152),
6535 /* 19494 */ // Label 393: @19494
6536 /* 19494 */ GIM_Try, /*On fail goto*//*Label 394*/ GIMT_Encode4(19515), // Rule ID 180 //
6537 /* 19499 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule138Enabled),
6538 /* 19502 */ // MIs[0] dst
6539 /* 19502 */ // No operand predicates
6540 /* 19502 */ // MIs[0] src0
6541 /* 19502 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6542 /* 19506 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
6543 /* 19510 */ // MIs[1] cst
6544 /* 19510 */ // No operand predicates
6545 /* 19510 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6546 /* 19512 */ // Combiner Rule #138: constant_fold_fptrunc
6547 /* 19512 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
6548 /* 19515 */ // Label 394: @19515
6549 /* 19515 */ GIM_Try, /*On fail goto*//*Label 395*/ GIMT_Encode4(19536), // Rule ID 137 //
6550 /* 19520 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule99Enabled),
6551 /* 19523 */ // MIs[0] dst
6552 /* 19523 */ // No operand predicates
6553 /* 19523 */ // MIs[0] src1
6554 /* 19523 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6555 /* 19527 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT),
6556 /* 19531 */ // MIs[1] src0
6557 /* 19531 */ // No operand predicates
6558 /* 19531 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6559 /* 19533 */ // Combiner Rule #99: fptrunc_fpext_fold
6560 /* 19533 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner52),
6561 /* 19536 */ // Label 395: @19536
6562 /* 19536 */ GIM_Reject,
6563 /* 19537 */ // Label 72: @19537
6564 /* 19537 */ GIM_Try, /*On fail goto*//*Label 396*/ GIMT_Encode4(19558), // Rule ID 92 //
6565 /* 19542 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6566 /* 19545 */ // MIs[0] dst
6567 /* 19545 */ // No operand predicates
6568 /* 19545 */ // MIs[0] __unary_undef_to_undef_match_0.x
6569 /* 19545 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6570 /* 19549 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6571 /* 19553 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6572 /* 19555 */ // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[5]]
6573 /* 19555 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6574 /* 19558 */ // Label 396: @19558
6575 /* 19558 */ GIM_Reject,
6576 /* 19559 */ // Label 73: @19559
6577 /* 19559 */ GIM_Try, /*On fail goto*//*Label 397*/ GIMT_Encode4(19580), // Rule ID 93 //
6578 /* 19564 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6579 /* 19567 */ // MIs[0] dst
6580 /* 19567 */ // No operand predicates
6581 /* 19567 */ // MIs[0] __unary_undef_to_undef_match_0.x
6582 /* 19567 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6583 /* 19571 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6584 /* 19575 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6585 /* 19577 */ // Combiner Rule #77: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[6]]
6586 /* 19577 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6587 /* 19580 */ // Label 397: @19580
6588 /* 19580 */ GIM_Reject,
6589 /* 19581 */ // Label 74: @19581
6590 /* 19581 */ GIM_Try, /*On fail goto*//*Label 398*/ GIMT_Encode4(19592), // Rule ID 76 //
6591 /* 19586 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
6592 /* 19589 */ // Combiner Rule #71: undef_to_fp_zero; wip_match_opcode 'G_SITOFP'
6593 /* 19589 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
6594 /* 19592 */ // Label 398: @19592
6595 /* 19592 */ GIM_Try, /*On fail goto*//*Label 399*/ GIMT_Encode4(19603), // Rule ID 366 //
6596 /* 19597 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule218Enabled),
6597 /* 19600 */ // Combiner Rule #218: uchar_to_float; wip_match_opcode 'G_SITOFP'
6598 /* 19600 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner154),
6599 /* 19603 */ // Label 399: @19603
6600 /* 19603 */ GIM_Try, /*On fail goto*//*Label 400*/ GIMT_Encode4(19618), // Rule ID 181 //
6601 /* 19608 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule139Enabled),
6602 /* 19611 */ // MIs[0] dst
6603 /* 19611 */ // No operand predicates
6604 /* 19611 */ // MIs[0] Operand 1
6605 /* 19611 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
6606 /* 19615 */ // Combiner Rule #139: itof_const_zero_fold_si
6607 /* 19615 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
6608 /* 19618 */ // Label 400: @19618
6609 /* 19618 */ GIM_Reject,
6610 /* 19619 */ // Label 75: @19619
6611 /* 19619 */ GIM_Try, /*On fail goto*//*Label 401*/ GIMT_Encode4(19630), // Rule ID 75 //
6612 /* 19624 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
6613 /* 19627 */ // Combiner Rule #71: undef_to_fp_zero; wip_match_opcode 'G_UITOFP'
6614 /* 19627 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
6615 /* 19630 */ // Label 401: @19630
6616 /* 19630 */ GIM_Try, /*On fail goto*//*Label 402*/ GIMT_Encode4(19641), // Rule ID 365 //
6617 /* 19635 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule218Enabled),
6618 /* 19638 */ // Combiner Rule #218: uchar_to_float; wip_match_opcode 'G_UITOFP'
6619 /* 19638 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner154),
6620 /* 19641 */ // Label 402: @19641
6621 /* 19641 */ GIM_Try, /*On fail goto*//*Label 403*/ GIMT_Encode4(19656), // Rule ID 182 //
6622 /* 19646 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule140Enabled),
6623 /* 19649 */ // MIs[0] dst
6624 /* 19649 */ // No operand predicates
6625 /* 19649 */ // MIs[0] Operand 1
6626 /* 19649 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
6627 /* 19653 */ // Combiner Rule #140: itof_const_zero_fold_ui
6628 /* 19653 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
6629 /* 19656 */ // Label 403: @19656
6630 /* 19656 */ GIM_Reject,
6631 /* 19657 */ // Label 76: @19657
6632 /* 19657 */ GIM_Try, /*On fail goto*//*Label 404*/ GIMT_Encode4(19686), // Rule ID 19 //
6633 /* 19662 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
6634 /* 19665 */ // MIs[0] dst
6635 /* 19665 */ // No operand predicates
6636 /* 19665 */ // MIs[0] src
6637 /* 19665 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6638 /* 19669 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FABS),
6639 /* 19673 */ // MIs[1] __idempotent_prop_match_0.x
6640 /* 19673 */ // No operand predicates
6641 /* 19673 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6642 /* 19678 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6643 /* 19680 */ // Combiner Rule #18: idempotent_prop @ [__idempotent_prop_match_0[1]]
6644 /* 19680 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6645 /* 19685 */ GIR_EraseRootFromParent_Done,
6646 /* 19686 */ // Label 404: @19686
6647 /* 19686 */ GIM_Try, /*On fail goto*//*Label 405*/ GIMT_Encode4(19707), // Rule ID 177 //
6648 /* 19691 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule135Enabled),
6649 /* 19694 */ // MIs[0] dst
6650 /* 19694 */ // No operand predicates
6651 /* 19694 */ // MIs[0] src0
6652 /* 19694 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6653 /* 19698 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
6654 /* 19702 */ // MIs[1] cst
6655 /* 19702 */ // No operand predicates
6656 /* 19702 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6657 /* 19704 */ // Combiner Rule #135: constant_fold_fabs
6658 /* 19704 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
6659 /* 19707 */ // Label 405: @19707
6660 /* 19707 */ GIM_Try, /*On fail goto*//*Label 406*/ GIMT_Encode4(19735), // Rule ID 258 //
6661 /* 19712 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
6662 /* 19715 */ // MIs[0] dst
6663 /* 19715 */ // No operand predicates
6664 /* 19715 */ // MIs[0] tmp
6665 /* 19715 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6666 /* 19719 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
6667 /* 19723 */ // MIs[1] x
6668 /* 19723 */ // No operand predicates
6669 /* 19723 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6670 /* 19725 */ // Combiner Rule #170: fabs_fneg_fold
6671 /* 19725 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FABS),
6672 /* 19728 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6673 /* 19730 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6674 /* 19734 */ GIR_EraseRootFromParent_Done,
6675 /* 19735 */ // Label 406: @19735
6676 /* 19735 */ GIM_Reject,
6677 /* 19736 */ // Label 77: @19736
6678 /* 19736 */ GIM_Try, /*On fail goto*//*Label 407*/ GIMT_Encode4(19747), // Rule ID 371 //
6679 /* 19741 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
6680 /* 19744 */ // Combiner Rule #220: remove_fcanonicalize; wip_match_opcode 'G_FCANONICALIZE'
6681 /* 19744 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner156),
6682 /* 19747 */ // Label 407: @19747
6683 /* 19747 */ GIM_Try, /*On fail goto*//*Label 408*/ GIMT_Encode4(19776), // Rule ID 20 //
6684 /* 19752 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
6685 /* 19755 */ // MIs[0] dst
6686 /* 19755 */ // No operand predicates
6687 /* 19755 */ // MIs[0] src
6688 /* 19755 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6689 /* 19759 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCANONICALIZE),
6690 /* 19763 */ // MIs[1] __idempotent_prop_match_0.x
6691 /* 19763 */ // No operand predicates
6692 /* 19763 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6693 /* 19768 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6694 /* 19770 */ // Combiner Rule #18: idempotent_prop @ [__idempotent_prop_match_0[2]]
6695 /* 19770 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6696 /* 19775 */ GIR_EraseRootFromParent_Done,
6697 /* 19776 */ // Label 408: @19776
6698 /* 19776 */ GIM_Reject,
6699 /* 19777 */ // Label 78: @19777
6700 /* 19777 */ GIM_Try, /*On fail goto*//*Label 409*/ GIMT_Encode4(19788), // Rule ID 193 //
6701 /* 19782 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
6702 /* 19785 */ // Combiner Rule #146: combine_minmax_nan; wip_match_opcode 'G_FMINNUM'
6703 /* 19785 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
6704 /* 19788 */ // Label 409: @19788
6705 /* 19788 */ GIM_Try, /*On fail goto*//*Label 410*/ GIMT_Encode4(19799), // Rule ID 301 //
6706 /* 19793 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6707 /* 19796 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FMINNUM'
6708 /* 19796 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6709 /* 19799 */ // Label 410: @19799
6710 /* 19799 */ GIM_Try, /*On fail goto*//*Label 411*/ GIMT_Encode4(19810), // Rule ID 332 //
6711 /* 19804 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
6712 /* 19807 */ // Combiner Rule #192: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM'
6713 /* 19807 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
6714 /* 19810 */ // Label 411: @19810
6715 /* 19810 */ GIM_Reject,
6716 /* 19811 */ // Label 79: @19811
6717 /* 19811 */ GIM_Try, /*On fail goto*//*Label 412*/ GIMT_Encode4(19822), // Rule ID 194 //
6718 /* 19816 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
6719 /* 19819 */ // Combiner Rule #146: combine_minmax_nan; wip_match_opcode 'G_FMAXNUM'
6720 /* 19819 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
6721 /* 19822 */ // Label 412: @19822
6722 /* 19822 */ GIM_Try, /*On fail goto*//*Label 413*/ GIMT_Encode4(19833), // Rule ID 302 //
6723 /* 19827 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6724 /* 19830 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FMAXNUM'
6725 /* 19830 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6726 /* 19833 */ // Label 413: @19833
6727 /* 19833 */ GIM_Try, /*On fail goto*//*Label 414*/ GIMT_Encode4(19844), // Rule ID 333 //
6728 /* 19838 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
6729 /* 19841 */ // Combiner Rule #192: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM'
6730 /* 19841 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
6731 /* 19844 */ // Label 414: @19844
6732 /* 19844 */ GIM_Reject,
6733 /* 19845 */ // Label 80: @19845
6734 /* 19845 */ GIM_Try, /*On fail goto*//*Label 415*/ GIMT_Encode4(19856), // Rule ID 334 //
6735 /* 19850 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
6736 /* 19853 */ // Combiner Rule #192: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM_IEEE'
6737 /* 19853 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
6738 /* 19856 */ // Label 415: @19856
6739 /* 19856 */ GIM_Reject,
6740 /* 19857 */ // Label 81: @19857
6741 /* 19857 */ GIM_Try, /*On fail goto*//*Label 416*/ GIMT_Encode4(19868), // Rule ID 335 //
6742 /* 19862 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
6743 /* 19865 */ // Combiner Rule #192: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM_IEEE'
6744 /* 19865 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
6745 /* 19868 */ // Label 416: @19868
6746 /* 19868 */ GIM_Reject,
6747 /* 19869 */ // Label 82: @19869
6748 /* 19869 */ GIM_Try, /*On fail goto*//*Label 417*/ GIMT_Encode4(19880), // Rule ID 195 //
6749 /* 19874 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
6750 /* 19877 */ // Combiner Rule #146: combine_minmax_nan; wip_match_opcode 'G_FMINIMUM'
6751 /* 19877 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
6752 /* 19880 */ // Label 417: @19880
6753 /* 19880 */ GIM_Try, /*On fail goto*//*Label 418*/ GIMT_Encode4(19891), // Rule ID 303 //
6754 /* 19885 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6755 /* 19888 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FMINIMUM'
6756 /* 19888 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6757 /* 19891 */ // Label 418: @19891
6758 /* 19891 */ GIM_Try, /*On fail goto*//*Label 419*/ GIMT_Encode4(19902), // Rule ID 336 //
6759 /* 19896 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
6760 /* 19899 */ // Combiner Rule #192: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINIMUM'
6761 /* 19899 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
6762 /* 19902 */ // Label 419: @19902
6763 /* 19902 */ GIM_Reject,
6764 /* 19903 */ // Label 83: @19903
6765 /* 19903 */ GIM_Try, /*On fail goto*//*Label 420*/ GIMT_Encode4(19914), // Rule ID 196 //
6766 /* 19908 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
6767 /* 19911 */ // Combiner Rule #146: combine_minmax_nan; wip_match_opcode 'G_FMAXIMUM'
6768 /* 19911 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
6769 /* 19914 */ // Label 420: @19914
6770 /* 19914 */ GIM_Try, /*On fail goto*//*Label 421*/ GIMT_Encode4(19925), // Rule ID 304 //
6771 /* 19919 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6772 /* 19922 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_FMAXIMUM'
6773 /* 19922 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6774 /* 19925 */ // Label 421: @19925
6775 /* 19925 */ GIM_Try, /*On fail goto*//*Label 422*/ GIMT_Encode4(19936), // Rule ID 337 //
6776 /* 19930 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
6777 /* 19933 */ // Combiner Rule #192: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXIMUM'
6778 /* 19933 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
6779 /* 19936 */ // Label 422: @19936
6780 /* 19936 */ GIM_Reject,
6781 /* 19937 */ // Label 84: @19937
6782 /* 19937 */ GIM_Try, /*On fail goto*//*Label 423*/ GIMT_Encode4(19948), // Rule ID 148 //
6783 /* 19942 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
6784 /* 19945 */ // Combiner Rule #106: reassoc_ptradd; wip_match_opcode 'G_PTR_ADD'
6785 /* 19945 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner57),
6786 /* 19948 */ // Label 423: @19948
6787 /* 19948 */ GIM_Try, /*On fail goto*//*Label 424*/ GIMT_Encode4(19959), // Rule ID 150 //
6788 /* 19953 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule108Enabled),
6789 /* 19956 */ // Combiner Rule #108: ptr_add_immed_chain; wip_match_opcode 'G_PTR_ADD'
6790 /* 19956 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner59),
6791 /* 19959 */ // Label 424: @19959
6792 /* 19959 */ GIM_Try, /*On fail goto*//*Label 425*/ GIMT_Encode4(19970), // Rule ID 183 //
6793 /* 19964 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule141Enabled),
6794 /* 19967 */ // Combiner Rule #141: const_ptradd_to_i2p; wip_match_opcode 'G_PTR_ADD'
6795 /* 19967 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
6796 /* 19970 */ // Label 425: @19970
6797 /* 19970 */ GIM_Try, /*On fail goto*//*Label 426*/ GIMT_Encode4(19981), // Rule ID 199 //
6798 /* 19975 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule149Enabled),
6799 /* 19978 */ // Combiner Rule #149: ptr_add_with_zero; wip_match_opcode 'G_PTR_ADD'
6800 /* 19978 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
6801 /* 19981 */ // Label 426: @19981
6802 /* 19981 */ GIM_Try, /*On fail goto*//*Label 427*/ GIMT_Encode4(19992), // Rule ID 232 //
6803 /* 19986 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
6804 /* 19989 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_PTR_ADD'
6805 /* 19989 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
6806 /* 19992 */ // Label 427: @19992
6807 /* 19992 */ GIM_Try, /*On fail goto*//*Label 428*/ GIMT_Encode4(20003), // Rule ID 281 //
6808 /* 19997 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6809 /* 20000 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_PTR_ADD'
6810 /* 20000 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6811 /* 20003 */ // Label 428: @20003
6812 /* 20003 */ GIM_Try, /*On fail goto*//*Label 429*/ GIMT_Encode4(20026), // Rule ID 111 //
6813 /* 20008 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
6814 /* 20011 */ // MIs[0] dst
6815 /* 20011 */ // No operand predicates
6816 /* 20011 */ // MIs[0] lhs
6817 /* 20011 */ // No operand predicates
6818 /* 20011 */ // MIs[0] Operand 2
6819 /* 20011 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6820 /* 20015 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6821 /* 20020 */ // Combiner Rule #84: right_identity_zero @ [__right_identity_zero_match_0[7]]
6822 /* 20020 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6823 /* 20025 */ GIR_EraseRootFromParent_Done,
6824 /* 20026 */ // Label 429: @20026
6825 /* 20026 */ GIM_Reject,
6826 /* 20027 */ // Label 85: @20027
6827 /* 20027 */ GIM_Try, /*On fail goto*//*Label 430*/ GIMT_Encode4(20038), // Rule ID 245 //
6828 /* 20032 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
6829 /* 20035 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_SMIN'
6830 /* 20035 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
6831 /* 20038 */ // Label 430: @20038
6832 /* 20038 */ GIM_Try, /*On fail goto*//*Label 431*/ GIMT_Encode4(20049), // Rule ID 292 //
6833 /* 20043 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6834 /* 20046 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SMIN'
6835 /* 20046 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6836 /* 20049 */ // Label 431: @20049
6837 /* 20049 */ GIM_Try, /*On fail goto*//*Label 432*/ GIMT_Encode4(20060), // Rule ID 314 //
6838 /* 20054 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6839 /* 20057 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_SMIN'
6840 /* 20057 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6841 /* 20060 */ // Label 432: @20060
6842 /* 20060 */ GIM_Reject,
6843 /* 20061 */ // Label 86: @20061
6844 /* 20061 */ GIM_Try, /*On fail goto*//*Label 433*/ GIMT_Encode4(20072), // Rule ID 246 //
6845 /* 20066 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
6846 /* 20069 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_SMAX'
6847 /* 20069 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
6848 /* 20072 */ // Label 433: @20072
6849 /* 20072 */ GIM_Try, /*On fail goto*//*Label 434*/ GIMT_Encode4(20083), // Rule ID 293 //
6850 /* 20077 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6851 /* 20080 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_SMAX'
6852 /* 20080 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6853 /* 20083 */ // Label 434: @20083
6854 /* 20083 */ GIM_Try, /*On fail goto*//*Label 435*/ GIMT_Encode4(20094), // Rule ID 315 //
6855 /* 20088 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6856 /* 20091 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_SMAX'
6857 /* 20091 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6858 /* 20094 */ // Label 435: @20094
6859 /* 20094 */ GIM_Reject,
6860 /* 20095 */ // Label 87: @20095
6861 /* 20095 */ GIM_Try, /*On fail goto*//*Label 436*/ GIMT_Encode4(20106), // Rule ID 247 //
6862 /* 20100 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
6863 /* 20103 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_UMIN'
6864 /* 20103 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
6865 /* 20106 */ // Label 436: @20106
6866 /* 20106 */ GIM_Try, /*On fail goto*//*Label 437*/ GIMT_Encode4(20117), // Rule ID 294 //
6867 /* 20111 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6868 /* 20114 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_UMIN'
6869 /* 20114 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6870 /* 20117 */ // Label 437: @20117
6871 /* 20117 */ GIM_Try, /*On fail goto*//*Label 438*/ GIMT_Encode4(20128), // Rule ID 316 //
6872 /* 20122 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6873 /* 20125 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_UMIN'
6874 /* 20125 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6875 /* 20128 */ // Label 438: @20128
6876 /* 20128 */ GIM_Reject,
6877 /* 20129 */ // Label 88: @20129
6878 /* 20129 */ GIM_Try, /*On fail goto*//*Label 439*/ GIMT_Encode4(20140), // Rule ID 248 //
6879 /* 20134 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
6880 /* 20137 */ // Combiner Rule #166: constant_fold_binop; wip_match_opcode 'G_UMAX'
6881 /* 20137 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
6882 /* 20140 */ // Label 439: @20140
6883 /* 20140 */ GIM_Try, /*On fail goto*//*Label 440*/ GIMT_Encode4(20151), // Rule ID 295 //
6884 /* 20145 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
6885 /* 20148 */ // Combiner Rule #186: fold_binop_into_select; wip_match_opcode 'G_UMAX'
6886 /* 20148 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
6887 /* 20151 */ // Label 440: @20151
6888 /* 20151 */ GIM_Try, /*On fail goto*//*Label 441*/ GIMT_Encode4(20162), // Rule ID 317 //
6889 /* 20156 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
6890 /* 20159 */ // Combiner Rule #191: commute_int_constant_to_rhs; wip_match_opcode 'G_UMAX'
6891 /* 20159 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6892 /* 20162 */ // Label 441: @20162
6893 /* 20162 */ GIM_Reject,
6894 /* 20163 */ // Label 89: @20163
6895 /* 20163 */ GIM_Try, /*On fail goto*//*Label 442*/ GIMT_Encode4(20174), // Rule ID 86 //
6896 /* 20168 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
6897 /* 20171 */ // Combiner Rule #76: unary_undef_to_zero; wip_match_opcode 'G_ABS'
6898 /* 20171 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
6899 /* 20174 */ // Label 442: @20174
6900 /* 20174 */ GIM_Reject,
6901 /* 20175 */ // Label 90: @20175
6902 /* 20175 */ GIM_Try, /*On fail goto*//*Label 443*/ GIMT_Encode4(20186), // Rule ID 175 //
6903 /* 20180 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule133Enabled),
6904 /* 20183 */ // Combiner Rule #133: opt_brcond_by_inverting_cond; wip_match_opcode 'G_BR'
6905 /* 20183 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
6906 /* 20186 */ // Label 443: @20186
6907 /* 20186 */ GIM_Reject,
6908 /* 20187 */ // Label 91: @20187
6909 /* 20187 */ GIM_Try, /*On fail goto*//*Label 444*/ GIMT_Encode4(20198), // Rule ID 26 //
6910 /* 20192 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
6911 /* 20195 */ // Combiner Rule #24: insert_vector_elt_oob; wip_match_opcode 'G_INSERT_VECTOR_ELT'
6912 /* 20195 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
6913 /* 20198 */ // Label 444: @20198
6914 /* 20198 */ GIM_Try, /*On fail goto*//*Label 445*/ GIMT_Encode4(20209), // Rule ID 67 //
6915 /* 20203 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
6916 /* 20206 */ // Combiner Rule #65: combine_insert_vec_elts_build_vector; wip_match_opcode 'G_INSERT_VECTOR_ELT'
6917 /* 20206 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27),
6918 /* 20209 */ // Label 445: @20209
6919 /* 20209 */ GIM_Try, /*On fail goto*//*Label 446*/ GIMT_Encode4(20220), // Rule ID 101 //
6920 /* 20214 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
6921 /* 20217 */ // Combiner Rule #82: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_INSERT_VECTOR_ELT'
6922 /* 20217 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
6923 /* 20220 */ // Label 446: @20220
6924 /* 20220 */ GIM_Try, /*On fail goto*//*Label 447*/ GIMT_Encode4(20259), // Rule ID 38 //
6925 /* 20225 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
6926 /* 20228 */ // MIs[0] root
6927 /* 20228 */ // No operand predicates
6928 /* 20228 */ // MIs[0] src
6929 /* 20228 */ // No operand predicates
6930 /* 20228 */ // MIs[0] elt
6931 /* 20228 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6932 /* 20232 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_EXTRACT_VECTOR_ELT),
6933 /* 20236 */ // MIs[1] src
6934 /* 20236 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
6935 /* 20241 */ // MIs[1] idx
6936 /* 20241 */ // No operand predicates
6937 /* 20241 */ // MIs[0] idx
6938 /* 20241 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
6939 /* 20246 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6940 /* 20251 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6941 /* 20253 */ // Combiner Rule #36: insert_vector_element_extract_vector_element
6942 /* 20253 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6943 /* 20258 */ GIR_EraseRootFromParent_Done,
6944 /* 20259 */ // Label 447: @20259
6945 /* 20259 */ GIM_Try, /*On fail goto*//*Label 448*/ GIMT_Encode4(20292), // Rule ID 24 //
6946 /* 20264 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
6947 /* 20267 */ // MIs[0] root
6948 /* 20267 */ // No operand predicates
6949 /* 20267 */ // MIs[0] src
6950 /* 20267 */ // No operand predicates
6951 /* 20267 */ // MIs[0] elt
6952 /* 20267 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6953 /* 20271 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6954 /* 20275 */ // MIs[0] idx
6955 /* 20275 */ // No operand predicates
6956 /* 20275 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
6957 /* 20279 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6958 /* 20284 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6959 /* 20286 */ // Combiner Rule #22: insert_vector_element_elt_undef
6960 /* 20286 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6961 /* 20291 */ GIR_EraseRootFromParent_Done,
6962 /* 20292 */ // Label 448: @20292
6963 /* 20292 */ GIM_Try, /*On fail goto*//*Label 449*/ GIMT_Encode4(20316), // Rule ID 23 //
6964 /* 20297 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
6965 /* 20300 */ // MIs[0] root
6966 /* 20300 */ // No operand predicates
6967 /* 20300 */ // MIs[0] src
6968 /* 20300 */ // No operand predicates
6969 /* 20300 */ // MIs[0] elt
6970 /* 20300 */ // No operand predicates
6971 /* 20300 */ // MIs[0] idx
6972 /* 20300 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
6973 /* 20304 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6974 /* 20308 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6975 /* 20310 */ // Combiner Rule #21: insert_vector_element_idx_undef
6976 /* 20310 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6977 /* 20313 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6978 /* 20315 */ GIR_EraseRootFromParent_Done,
6979 /* 20316 */ // Label 449: @20316
6980 /* 20316 */ GIM_Reject,
6981 /* 20317 */ // Label 92: @20317
6982 /* 20317 */ GIM_Try, /*On fail goto*//*Label 450*/ GIMT_Encode4(20328), // Rule ID 25 //
6983 /* 20322 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
6984 /* 20325 */ // Combiner Rule #23: match_extract_of_element; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
6985 /* 20325 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner9),
6986 /* 20328 */ // Label 450: @20328
6987 /* 20328 */ GIM_Try, /*On fail goto*//*Label 451*/ GIMT_Encode4(20339), // Rule ID 68 //
6988 /* 20333 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule66Enabled),
6989 /* 20336 */ // Combiner Rule #66: extract_vec_elt_build_vec; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
6990 /* 20336 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner28),
6991 /* 20339 */ // Label 451: @20339
6992 /* 20339 */ GIM_Try, /*On fail goto*//*Label 452*/ GIMT_Encode4(20350), // Rule ID 74 //
6993 /* 20344 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled),
6994 /* 20347 */ // Combiner Rule #70: combine_extracted_vector_load; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
6995 /* 20347 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
6996 /* 20350 */ // Label 452: @20350
6997 /* 20350 */ GIM_Try, /*On fail goto*//*Label 453*/ GIMT_Encode4(20361), // Rule ID 102 //
6998 /* 20355 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
6999 /* 20358 */ // Combiner Rule #82: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
7000 /* 20358 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
7001 /* 20361 */ // Label 453: @20361
7002 /* 20361 */ GIM_Try, /*On fail goto*//*Label 454*/ GIMT_Encode4(20385), // Rule ID 36 //
7003 /* 20366 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
7004 /* 20369 */ // MIs[0] root
7005 /* 20369 */ // No operand predicates
7006 /* 20369 */ // MIs[0] src
7007 /* 20369 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7008 /* 20373 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
7009 /* 20377 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/9,
7010 /* 20380 */ // MIs[1] x
7011 /* 20380 */ // No operand predicates
7012 /* 20380 */ // MIs[1] y
7013 /* 20380 */ // No operand predicates
7014 /* 20380 */ // MIs[1] z
7015 /* 20380 */ // No operand predicates
7016 /* 20380 */ // MIs[1] a
7017 /* 20380 */ // No operand predicates
7018 /* 20380 */ // MIs[1] b
7019 /* 20380 */ // No operand predicates
7020 /* 20380 */ // MIs[1] c
7021 /* 20380 */ // No operand predicates
7022 /* 20380 */ // MIs[1] d
7023 /* 20380 */ // No operand predicates
7024 /* 20380 */ // MIs[1] e
7025 /* 20380 */ // No operand predicates
7026 /* 20380 */ // MIs[0] idx
7027 /* 20380 */ // No operand predicates
7028 /* 20380 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7029 /* 20382 */ // Combiner Rule #34: extract_vector_element_build_vector_trunc8
7030 /* 20382 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
7031 /* 20385 */ // Label 454: @20385
7032 /* 20385 */ GIM_Try, /*On fail goto*//*Label 455*/ GIMT_Encode4(20409), // Rule ID 35 //
7033 /* 20390 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
7034 /* 20393 */ // MIs[0] root
7035 /* 20393 */ // No operand predicates
7036 /* 20393 */ // MIs[0] src
7037 /* 20393 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7038 /* 20397 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
7039 /* 20401 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/8,
7040 /* 20404 */ // MIs[1] x
7041 /* 20404 */ // No operand predicates
7042 /* 20404 */ // MIs[1] y
7043 /* 20404 */ // No operand predicates
7044 /* 20404 */ // MIs[1] z
7045 /* 20404 */ // No operand predicates
7046 /* 20404 */ // MIs[1] a
7047 /* 20404 */ // No operand predicates
7048 /* 20404 */ // MIs[1] b
7049 /* 20404 */ // No operand predicates
7050 /* 20404 */ // MIs[1] c
7051 /* 20404 */ // No operand predicates
7052 /* 20404 */ // MIs[1] d
7053 /* 20404 */ // No operand predicates
7054 /* 20404 */ // MIs[0] idx
7055 /* 20404 */ // No operand predicates
7056 /* 20404 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7057 /* 20406 */ // Combiner Rule #33: extract_vector_element_build_vector_trunc7
7058 /* 20406 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
7059 /* 20409 */ // Label 455: @20409
7060 /* 20409 */ GIM_Try, /*On fail goto*//*Label 456*/ GIMT_Encode4(20433), // Rule ID 34 //
7061 /* 20414 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
7062 /* 20417 */ // MIs[0] root
7063 /* 20417 */ // No operand predicates
7064 /* 20417 */ // MIs[0] src
7065 /* 20417 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7066 /* 20421 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
7067 /* 20425 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/7,
7068 /* 20428 */ // MIs[1] x
7069 /* 20428 */ // No operand predicates
7070 /* 20428 */ // MIs[1] y
7071 /* 20428 */ // No operand predicates
7072 /* 20428 */ // MIs[1] z
7073 /* 20428 */ // No operand predicates
7074 /* 20428 */ // MIs[1] a
7075 /* 20428 */ // No operand predicates
7076 /* 20428 */ // MIs[1] b
7077 /* 20428 */ // No operand predicates
7078 /* 20428 */ // MIs[1] c
7079 /* 20428 */ // No operand predicates
7080 /* 20428 */ // MIs[0] idx
7081 /* 20428 */ // No operand predicates
7082 /* 20428 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7083 /* 20430 */ // Combiner Rule #32: extract_vector_element_build_vector_trunc6
7084 /* 20430 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
7085 /* 20433 */ // Label 456: @20433
7086 /* 20433 */ GIM_Try, /*On fail goto*//*Label 457*/ GIMT_Encode4(20457), // Rule ID 33 //
7087 /* 20438 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
7088 /* 20441 */ // MIs[0] root
7089 /* 20441 */ // No operand predicates
7090 /* 20441 */ // MIs[0] src
7091 /* 20441 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7092 /* 20445 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
7093 /* 20449 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/6,
7094 /* 20452 */ // MIs[1] x
7095 /* 20452 */ // No operand predicates
7096 /* 20452 */ // MIs[1] y
7097 /* 20452 */ // No operand predicates
7098 /* 20452 */ // MIs[1] z
7099 /* 20452 */ // No operand predicates
7100 /* 20452 */ // MIs[1] a
7101 /* 20452 */ // No operand predicates
7102 /* 20452 */ // MIs[1] b
7103 /* 20452 */ // No operand predicates
7104 /* 20452 */ // MIs[0] idx
7105 /* 20452 */ // No operand predicates
7106 /* 20452 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7107 /* 20454 */ // Combiner Rule #31: extract_vector_element_build_vector_trunc5
7108 /* 20454 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
7109 /* 20457 */ // Label 457: @20457
7110 /* 20457 */ GIM_Try, /*On fail goto*//*Label 458*/ GIMT_Encode4(20481), // Rule ID 32 //
7111 /* 20462 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
7112 /* 20465 */ // MIs[0] root
7113 /* 20465 */ // No operand predicates
7114 /* 20465 */ // MIs[0] src
7115 /* 20465 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7116 /* 20469 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
7117 /* 20473 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/5,
7118 /* 20476 */ // MIs[1] x
7119 /* 20476 */ // No operand predicates
7120 /* 20476 */ // MIs[1] y
7121 /* 20476 */ // No operand predicates
7122 /* 20476 */ // MIs[1] z
7123 /* 20476 */ // No operand predicates
7124 /* 20476 */ // MIs[1] a
7125 /* 20476 */ // No operand predicates
7126 /* 20476 */ // MIs[0] idx
7127 /* 20476 */ // No operand predicates
7128 /* 20476 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7129 /* 20478 */ // Combiner Rule #30: extract_vector_element_build_vector_trunc4
7130 /* 20478 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
7131 /* 20481 */ // Label 458: @20481
7132 /* 20481 */ GIM_Try, /*On fail goto*//*Label 459*/ GIMT_Encode4(20505), // Rule ID 31 //
7133 /* 20486 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
7134 /* 20489 */ // MIs[0] root
7135 /* 20489 */ // No operand predicates
7136 /* 20489 */ // MIs[0] src
7137 /* 20489 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7138 /* 20493 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
7139 /* 20497 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
7140 /* 20500 */ // MIs[1] x
7141 /* 20500 */ // No operand predicates
7142 /* 20500 */ // MIs[1] y
7143 /* 20500 */ // No operand predicates
7144 /* 20500 */ // MIs[1] z
7145 /* 20500 */ // No operand predicates
7146 /* 20500 */ // MIs[0] idx
7147 /* 20500 */ // No operand predicates
7148 /* 20500 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7149 /* 20502 */ // Combiner Rule #29: extract_vector_element_build_vector_trunc3
7150 /* 20502 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
7151 /* 20505 */ // Label 459: @20505
7152 /* 20505 */ GIM_Try, /*On fail goto*//*Label 460*/ GIMT_Encode4(20539), // Rule ID 27 //
7153 /* 20510 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
7154 /* 20513 */ // MIs[0] root
7155 /* 20513 */ // No operand predicates
7156 /* 20513 */ // MIs[0] src
7157 /* 20513 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7158 /* 20517 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
7159 /* 20521 */ // MIs[1] x
7160 /* 20521 */ // No operand predicates
7161 /* 20521 */ // MIs[1] value
7162 /* 20521 */ // No operand predicates
7163 /* 20521 */ // MIs[1] idx
7164 /* 20521 */ // No operand predicates
7165 /* 20521 */ // MIs[0] idx
7166 /* 20521 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
7167 /* 20526 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
7168 /* 20531 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7169 /* 20533 */ // Combiner Rule #25: extract_vector_element_not_const
7170 /* 20533 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
7171 /* 20538 */ GIR_EraseRootFromParent_Done,
7172 /* 20539 */ // Label 460: @20539
7173 /* 20539 */ GIM_Try, /*On fail goto*//*Label 461*/ GIMT_Encode4(20560), // Rule ID 28 //
7174 /* 20544 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
7175 /* 20547 */ // MIs[0] root
7176 /* 20547 */ // No operand predicates
7177 /* 20547 */ // MIs[0] src
7178 /* 20547 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7179 /* 20551 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
7180 /* 20555 */ // MIs[1] x
7181 /* 20555 */ // No operand predicates
7182 /* 20555 */ // MIs[1] value
7183 /* 20555 */ // No operand predicates
7184 /* 20555 */ // MIs[1] idx2
7185 /* 20555 */ // No operand predicates
7186 /* 20555 */ // MIs[0] idx1
7187 /* 20555 */ // No operand predicates
7188 /* 20555 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7189 /* 20557 */ // Combiner Rule #26: extract_vector_element_different_indices
7190 /* 20557 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11),
7191 /* 20560 */ // Label 461: @20560
7192 /* 20560 */ GIM_Try, /*On fail goto*//*Label 462*/ GIMT_Encode4(20589), // Rule ID 37 //
7193 /* 20565 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
7194 /* 20568 */ // MIs[0] root
7195 /* 20568 */ // No operand predicates
7196 /* 20568 */ // MIs[0] src
7197 /* 20568 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7198 /* 20572 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHUFFLE_VECTOR),
7199 /* 20576 */ // MIs[1] src1
7200 /* 20576 */ // No operand predicates
7201 /* 20576 */ // MIs[1] src2
7202 /* 20576 */ // No operand predicates
7203 /* 20576 */ // MIs[1] mask
7204 /* 20576 */ // No operand predicates
7205 /* 20576 */ // MIs[0] idx
7206 /* 20576 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7207 /* 20580 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7208 /* 20584 */ // MIs[2] imm
7209 /* 20584 */ // No operand predicates
7210 /* 20584 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7211 /* 20586 */ // Combiner Rule #35: extract_vector_element_shuffle_vector
7212 /* 20586 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
7213 /* 20589 */ // Label 462: @20589
7214 /* 20589 */ GIM_Try, /*On fail goto*//*Label 463*/ GIMT_Encode4(20613), // Rule ID 30 //
7215 /* 20594 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
7216 /* 20597 */ // MIs[0] root
7217 /* 20597 */ // No operand predicates
7218 /* 20597 */ // MIs[0] src
7219 /* 20597 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7220 /* 20601 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
7221 /* 20605 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
7222 /* 20608 */ // MIs[1] x
7223 /* 20608 */ // No operand predicates
7224 /* 20608 */ // MIs[1] y
7225 /* 20608 */ // No operand predicates
7226 /* 20608 */ // MIs[0] idx
7227 /* 20608 */ // No operand predicates
7228 /* 20608 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7229 /* 20610 */ // Combiner Rule #28: extract_vector_element_build_vector_trunc2
7230 /* 20610 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
7231 /* 20613 */ // Label 463: @20613
7232 /* 20613 */ GIM_Try, /*On fail goto*//*Label 464*/ GIMT_Encode4(20645), // Rule ID 29 //
7233 /* 20618 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
7234 /* 20621 */ // MIs[0] root
7235 /* 20621 */ // No operand predicates
7236 /* 20621 */ // MIs[0] src
7237 /* 20621 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7238 /* 20625 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
7239 /* 20629 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
7240 /* 20632 */ // MIs[1] unused
7241 /* 20632 */ // No operand predicates
7242 /* 20632 */ // MIs[0] idx
7243 /* 20632 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7244 /* 20636 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7245 /* 20640 */ // MIs[2] imm
7246 /* 20640 */ // No operand predicates
7247 /* 20640 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7248 /* 20642 */ // Combiner Rule #27: extract_vector_element_build_vector
7249 /* 20642 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
7250 /* 20645 */ // Label 464: @20645
7251 /* 20645 */ GIM_Try, /*On fail goto*//*Label 465*/ GIMT_Encode4(20669), // Rule ID 21 //
7252 /* 20650 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
7253 /* 20653 */ // MIs[0] root
7254 /* 20653 */ // No operand predicates
7255 /* 20653 */ // MIs[0] vector
7256 /* 20653 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7257 /* 20657 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7258 /* 20661 */ // MIs[0] idx
7259 /* 20661 */ // No operand predicates
7260 /* 20661 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7261 /* 20663 */ // Combiner Rule #19: match_extract_of_element_undef_vector
7262 /* 20663 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7263 /* 20666 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7264 /* 20668 */ GIR_EraseRootFromParent_Done,
7265 /* 20669 */ // Label 465: @20669
7266 /* 20669 */ GIM_Try, /*On fail goto*//*Label 466*/ GIMT_Encode4(20693), // Rule ID 22 //
7267 /* 20674 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
7268 /* 20677 */ // MIs[0] root
7269 /* 20677 */ // No operand predicates
7270 /* 20677 */ // MIs[0] vector
7271 /* 20677 */ // No operand predicates
7272 /* 20677 */ // MIs[0] idx
7273 /* 20677 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7274 /* 20681 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7275 /* 20685 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7276 /* 20687 */ // Combiner Rule #20: match_extract_of_element_undef_index
7277 /* 20687 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7278 /* 20690 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7279 /* 20692 */ GIR_EraseRootFromParent_Done,
7280 /* 20693 */ // Label 466: @20693
7281 /* 20693 */ GIM_Reject,
7282 /* 20694 */ // Label 93: @20694
7283 /* 20694 */ GIM_Try, /*On fail goto*//*Label 467*/ GIMT_Encode4(20705), // Rule ID 97 //
7284 /* 20699 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
7285 /* 20702 */ // Combiner Rule #79: propagate_undef_all_ops; wip_match_opcode 'G_SHUFFLE_VECTOR'
7286 /* 20702 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
7287 /* 20705 */ // Label 467: @20705
7288 /* 20705 */ GIM_Try, /*On fail goto*//*Label 468*/ GIMT_Encode4(20716), // Rule ID 99 //
7289 /* 20710 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
7290 /* 20713 */ // Combiner Rule #80: propagate_undef_shuffle_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
7291 /* 20713 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner41),
7292 /* 20716 */ // Label 468: @20716
7293 /* 20716 */ GIM_Try, /*On fail goto*//*Label 469*/ GIMT_Encode4(20727), // Rule ID 345 //
7294 /* 20721 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7295 /* 20724 */ // Combiner Rule #200: combine_shuffle_concat; wip_match_opcode 'G_SHUFFLE_VECTOR'
7296 /* 20724 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner136),
7297 /* 20727 */ // Label 469: @20727
7298 /* 20727 */ GIM_Try, /*On fail goto*//*Label 470*/ GIMT_Encode4(20738), // Rule ID 347 //
7299 /* 20732 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule202Enabled),
7300 /* 20735 */ // Combiner Rule #202: combine_shuffle_disjoint_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
7301 /* 20735 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner138),
7302 /* 20738 */ // Label 470: @20738
7303 /* 20738 */ GIM_Try, /*On fail goto*//*Label 471*/ GIMT_Encode4(20759), // Rule ID 346 //
7304 /* 20743 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule201Enabled),
7305 /* 20746 */ // MIs[0] root
7306 /* 20746 */ // No operand predicates
7307 /* 20746 */ // MIs[0] src1
7308 /* 20746 */ // No operand predicates
7309 /* 20746 */ // MIs[0] undef
7310 /* 20746 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7311 /* 20750 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7312 /* 20754 */ // MIs[0] mask
7313 /* 20754 */ // No operand predicates
7314 /* 20754 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7315 /* 20756 */ // Combiner Rule #201: combine_shuffle_undef_rhs
7316 /* 20756 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner137),
7317 /* 20759 */ // Label 471: @20759
7318 /* 20759 */ GIM_Reject,
7319 /* 20760 */ // Label 94: @20760
7320 /* 20760 */ GIM_Try, /*On fail goto*//*Label 472*/ GIMT_Encode4(20804), // Rule ID 223 //
7321 /* 20765 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule160Enabled),
7322 /* 20768 */ // MIs[0] d
7323 /* 20768 */ // No operand predicates
7324 /* 20768 */ // MIs[0] src
7325 /* 20768 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7326 /* 20772 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
7327 /* 20776 */ // MIs[1] rev
7328 /* 20776 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
7329 /* 20780 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
7330 /* 20784 */ // MIs[2] val
7331 /* 20784 */ // No operand predicates
7332 /* 20784 */ // MIs[1] amt
7333 /* 20784 */ // No operand predicates
7334 /* 20784 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
7335 /* 20788 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7336 /* 20790 */ // Combiner Rule #160: bitreverse_lshr
7337 /* 20790 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
7338 /* 20793 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
7339 /* 20795 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
7340 /* 20799 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
7341 /* 20803 */ GIR_EraseRootFromParent_Done,
7342 /* 20804 */ // Label 472: @20804
7343 /* 20804 */ GIM_Try, /*On fail goto*//*Label 473*/ GIMT_Encode4(20848), // Rule ID 222 //
7344 /* 20809 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule159Enabled),
7345 /* 20812 */ // MIs[0] d
7346 /* 20812 */ // No operand predicates
7347 /* 20812 */ // MIs[0] src
7348 /* 20812 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7349 /* 20816 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
7350 /* 20820 */ // MIs[1] rev
7351 /* 20820 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
7352 /* 20824 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
7353 /* 20828 */ // MIs[2] val
7354 /* 20828 */ // No operand predicates
7355 /* 20828 */ // MIs[1] amt
7356 /* 20828 */ // No operand predicates
7357 /* 20828 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner8),
7358 /* 20832 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7359 /* 20834 */ // Combiner Rule #159: bitreverse_shl
7360 /* 20834 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_LSHR),
7361 /* 20837 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
7362 /* 20839 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
7363 /* 20843 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
7364 /* 20847 */ GIR_EraseRootFromParent_Done,
7365 /* 20848 */ // Label 473: @20848
7366 /* 20848 */ GIM_Reject,
7367 /* 20849 */ // Label 95: @20849
7368 /* 20849 */ GIM_Try, /*On fail goto*//*Label 474*/ GIMT_Encode4(20860), // Rule ID 374 //
7369 /* 20854 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule222Enabled),
7370 /* 20857 */ // Combiner Rule #222: rcp_sqrt_to_rsq; wip_match_opcode 'G_FSQRT'
7371 /* 20857 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner158),
7372 /* 20860 */ // Label 474: @20860
7373 /* 20860 */ GIM_Try, /*On fail goto*//*Label 475*/ GIMT_Encode4(20881), // Rule ID 178 //
7374 /* 20865 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule136Enabled),
7375 /* 20868 */ // MIs[0] dst
7376 /* 20868 */ // No operand predicates
7377 /* 20868 */ // MIs[0] src0
7378 /* 20868 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7379 /* 20872 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7380 /* 20876 */ // MIs[1] cst
7381 /* 20876 */ // No operand predicates
7382 /* 20876 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7383 /* 20878 */ // Combiner Rule #136: constant_fold_fsqrt
7384 /* 20878 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
7385 /* 20881 */ // Label 475: @20881
7386 /* 20881 */ GIM_Reject,
7387 /* 20882 */ // Label 96: @20882
7388 /* 20882 */ GIM_Try, /*On fail goto*//*Label 476*/ GIMT_Encode4(20893), // Rule ID 367 //
7389 /* 20887 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule219Enabled),
7390 /* 20890 */ // Combiner Rule #219: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE0'
7391 /* 20890 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner155),
7392 /* 20893 */ // Label 476: @20893
7393 /* 20893 */ GIM_Reject,
7394 /* 20894 */ // Label 97: @20894
7395 /* 20894 */ GIM_Try, /*On fail goto*//*Label 477*/ GIMT_Encode4(20905), // Rule ID 368 //
7396 /* 20899 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule219Enabled),
7397 /* 20902 */ // Combiner Rule #219: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE1'
7398 /* 20902 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner155),
7399 /* 20905 */ // Label 477: @20905
7400 /* 20905 */ GIM_Reject,
7401 /* 20906 */ // Label 98: @20906
7402 /* 20906 */ GIM_Try, /*On fail goto*//*Label 478*/ GIMT_Encode4(20917), // Rule ID 369 //
7403 /* 20911 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule219Enabled),
7404 /* 20914 */ // Combiner Rule #219: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE2'
7405 /* 20914 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner155),
7406 /* 20917 */ // Label 478: @20917
7407 /* 20917 */ GIM_Reject,
7408 /* 20918 */ // Label 99: @20918
7409 /* 20918 */ GIM_Try, /*On fail goto*//*Label 479*/ GIMT_Encode4(20929), // Rule ID 370 //
7410 /* 20923 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule219Enabled),
7411 /* 20926 */ // Combiner Rule #219: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE3'
7412 /* 20926 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner155),
7413 /* 20929 */ // Label 479: @20929
7414 /* 20929 */ GIM_Reject,
7415 /* 20930 */ // Label 100: @20930
7416 /* 20930 */ GIM_Reject,
7417 /* 20931 */ }; // Size: 20931 bytes
7418 return MatchTable0;
7419}
7420#undef GIMT_Encode2
7421#undef GIMT_Encode4
7422#undef GIMT_Encode8
7423
7424#endif // ifdef GET_GICOMBINER_IMPL
7425
7426#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
7427AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
7428AvailableFunctionFeatures()
7429#endif // ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
7430#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
7431, State(0),
7432ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
7433#endif // ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
7434
7435