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 249; // "smulu64"
40 case 9: // 6 strings to match.
41 switch (RuleIdentifier[0]) {
42 default: break;
43 case 'a': // 1 string to match.
44 if (memcmp(RuleIdentifier.data()+1, "dd_shift", 8) != 0)
45 break;
46 return 238; // "add_shift"
47 case 'c': // 1 string to match.
48 if (memcmp(RuleIdentifier.data()+1, "opy_prop", 8) != 0)
49 break;
50 return 15; // "copy_prop"
51 case 'm': // 3 strings to match.
52 switch (RuleIdentifier[1]) {
53 default: break;
54 case 'a': // 1 string to match.
55 if (memcmp(RuleIdentifier.data()+2, "tch_ors", 7) != 0)
56 break;
57 return 209; // "match_ors"
58 case 'u': // 2 strings to match.
59 if (memcmp(RuleIdentifier.data()+2, "lo_by_", 6) != 0)
60 break;
61 switch (RuleIdentifier[8]) {
62 default: break;
63 case '0': // 1 string to match.
64 return 155; // "mulo_by_0"
65 case '2': // 1 string to match.
66 return 154; // "mulo_by_2"
67 }
68 break;
69 }
70 break;
71 case 'n': // 1 string to match.
72 if (memcmp(RuleIdentifier.data()+1, "neg_zext", 8) != 0)
73 break;
74 return 214; // "nneg_zext"
75 }
76 break;
77 case 10: // 7 strings to match.
78 switch (RuleIdentifier[0]) {
79 default: break;
80 case 'i': // 1 string to match.
81 if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i", 9) != 0)
82 break;
83 return 91; // "i2p_to_p2i"
84 case 'm': // 2 strings to match.
85 switch (RuleIdentifier[1]) {
86 default: break;
87 case 'a': // 1 string to match.
88 if (memcmp(RuleIdentifier.data()+2, "tch_ands", 8) != 0)
89 break;
90 return 208; // "match_ands"
91 case 'u': // 1 string to match.
92 if (memcmp(RuleIdentifier.data()+2, "l_to_shl", 8) != 0)
93 break;
94 return 16; // "mul_to_shl"
95 }
96 break;
97 case 'p': // 1 string to match.
98 if (memcmp(RuleIdentifier.data()+1, "2i_to_i2p", 9) != 0)
99 break;
100 return 90; // "p2i_to_i2p"
101 case 's': // 2 strings to match.
102 switch (RuleIdentifier[1]) {
103 default: break;
104 case 'e': // 1 string to match.
105 if (memcmp(RuleIdentifier.data()+2, "xt_trunc", 8) != 0)
106 break;
107 return 212; // "sext_trunc"
108 case 'u': // 1 string to match.
109 if (memcmp(RuleIdentifier.data()+2, "b_to_add", 8) != 0)
110 break;
111 return 17; // "sub_to_add"
112 }
113 break;
114 case 'z': // 1 string to match.
115 if (memcmp(RuleIdentifier.data()+1, "ext_trunc", 9) != 0)
116 break;
117 return 213; // "zext_trunc"
118 }
119 break;
120 case 11: // 8 strings to match.
121 switch (RuleIdentifier[0]) {
122 default: break;
123 case 'a': // 1 string to match.
124 if (memcmp(RuleIdentifier.data()+1, "dd_sub_reg", 10) != 0)
125 break;
126 return 96; // "add_sub_reg"
127 case 'm': // 1 string to match.
128 if (memcmp(RuleIdentifier.data()+1, "atch_addos", 10) != 0)
129 break;
130 return 229; // "match_addos"
131 case 's': // 1 string to match.
132 if (memcmp(RuleIdentifier.data()+1, "ub_add_reg", 10) != 0)
133 break;
134 return 203; // "sub_add_reg"
135 case 't': // 4 strings to match.
136 if (memcmp(RuleIdentifier.data()+1, "runc_", 5) != 0)
137 break;
138 switch (RuleIdentifier[6]) {
139 default: break;
140 case 's': // 3 strings to match.
141 switch (RuleIdentifier[7]) {
142 default: break;
143 case 'h': // 1 string to match.
144 if (memcmp(RuleIdentifier.data()+8, "ift", 3) != 0)
145 break;
146 return 134; // "trunc_shift"
147 case 's': // 2 strings to match.
148 if (memcmp(RuleIdentifier.data()+8, "at", 2) != 0)
149 break;
150 switch (RuleIdentifier[10]) {
151 default: break;
152 case 's': // 1 string to match.
153 return 231; // "trunc_ssats"
154 case 'u': // 1 string to match.
155 return 232; // "trunc_ssatu"
156 }
157 break;
158 }
159 break;
160 case 'u': // 1 string to match.
161 if (memcmp(RuleIdentifier.data()+7, "satu", 4) != 0)
162 break;
163 return 233; // "trunc_usatu"
164 }
165 break;
166 case 'u': // 1 string to match.
167 if (memcmp(RuleIdentifier.data()+1, "nmerge_cst", 10) != 0)
168 break;
169 return 222; // "unmerge_cst"
170 }
171 break;
172 case 12: // 12 strings to match.
173 switch (RuleIdentifier[0]) {
174 default: break;
175 case 'A': // 1 string to match.
176 if (memcmp(RuleIdentifier.data()+1, "PlusBMinusB", 11) != 0)
177 break;
178 return 4; // "APlusBMinusB"
179 case 'B': // 1 string to match.
180 if (memcmp(RuleIdentifier.data()+1, "MinusAPlusA", 11) != 0)
181 break;
182 return 5; // "BMinusAPlusA"
183 case 'a': // 1 string to match.
184 if (memcmp(RuleIdentifier.data()+1, "dde_to_addo", 11) != 0)
185 break;
186 return 156; // "adde_to_addo"
187 case 'c': // 1 string to match.
188 if (memcmp(RuleIdentifier.data()+1, "tlz_to_ctls", 11) != 0)
189 break;
190 return 236; // "ctlz_to_ctls"
191 case 'f': // 1 string to match.
192 if (memcmp(RuleIdentifier.data()+1, "sub_to_fneg", 11) != 0)
193 break;
194 return 205; // "fsub_to_fneg"
195 case 'm': // 1 string to match.
196 if (memcmp(RuleIdentifier.data()+1, "ulh_to_lshr", 11) != 0)
197 break;
198 return 184; // "mulh_to_lshr"
199 case 'n': // 1 string to match.
200 if (memcmp(RuleIdentifier.data()+1, "ot_cmp_fold", 11) != 0)
201 break;
202 return 135; // "not_cmp_fold"
203 case 'r': // 1 string to match.
204 if (memcmp(RuleIdentifier.data()+1, "edundant_or", 11) != 0)
205 break;
206 return 130; // "redundant_or"
207 case 's': // 2 strings to match.
208 switch (RuleIdentifier[1]) {
209 default: break;
210 case 'd': // 1 string to match.
211 if (memcmp(RuleIdentifier.data()+2, "iv_by_pow2", 10) != 0)
212 break;
213 return 199; // "sdiv_by_pow2"
214 case 'e': // 1 string to match.
215 if (memcmp(RuleIdentifier.data()+2, "xt_of_sext", 10) != 0)
216 break;
217 return 50; // "sext_of_sext"
218 }
219 break;
220 case 'u': // 1 string to match.
221 if (memcmp(RuleIdentifier.data()+1, "div_by_pow2", 11) != 0)
222 break;
223 return 198; // "udiv_by_pow2"
224 case 'z': // 1 string to match.
225 if (memcmp(RuleIdentifier.data()+1, "ext_of_zext", 11) != 0)
226 break;
227 return 48; // "zext_of_zext"
228 }
229 break;
230 case 13: // 16 strings to match.
231 switch (RuleIdentifier[0]) {
232 default: break;
233 case 'a': // 1 string to match.
234 if (memcmp(RuleIdentifier.data()+1, "dd_of_vscale", 12) != 0)
235 break;
236 return 39; // "add_of_vscale"
237 case 'c': // 1 string to match.
238 if (memcmp(RuleIdentifier.data()+1, "ommute_shift", 12) != 0)
239 break;
240 return 174; // "commute_shift"
241 case 'f': // 1 string to match.
242 if (memcmp(RuleIdentifier.data()+1, "oldable_fneg", 12) != 0)
243 break;
244 return 245; // "foldable_fneg"
245 case 'l': // 1 string to match.
246 if (memcmp(RuleIdentifier.data()+1, "oad_and_mask", 12) != 0)
247 break;
248 return 71; // "load_and_mask"
249 case 'm': // 3 strings to match.
250 switch (RuleIdentifier[1]) {
251 default: break;
252 case 'a': // 1 string to match.
253 if (memcmp(RuleIdentifier.data()+2, "tch_selects", 11) != 0)
254 break;
255 return 127; // "match_selects"
256 case 'e': // 1 string to match.
257 if (memcmp(RuleIdentifier.data()+2, "rge_unmerge", 11) != 0)
258 break;
259 return 221; // "merge_unmerge"
260 case 'u': // 1 string to match.
261 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
262 break;
263 return 40; // "mul_of_vscale"
264 }
265 break;
266 case 'r': // 1 string to match.
267 if (memcmp(RuleIdentifier.data()+1, "edundant_and", 12) != 0)
268 break;
269 return 128; // "redundant_and"
270 case 's': // 4 strings to match.
271 switch (RuleIdentifier[1]) {
272 default: break;
273 case 'd': // 1 string to match.
274 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
275 break;
276 return 201; // "sdiv_by_const"
277 case 'h': // 1 string to match.
278 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
279 break;
280 return 41; // "shl_of_vscale"
281 case 'r': // 1 string to match.
282 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
283 break;
284 return 197; // "srem_by_const"
285 case 'u': // 1 string to match.
286 if (memcmp(RuleIdentifier.data()+2, "b_of_vscale", 11) != 0)
287 break;
288 return 42; // "sub_of_vscale"
289 }
290 break;
291 case 'u': // 4 strings to match.
292 switch (RuleIdentifier[1]) {
293 default: break;
294 case 'd': // 1 string to match.
295 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
296 break;
297 return 200; // "udiv_by_const"
298 case 'n': // 2 strings to match.
299 if (memcmp(RuleIdentifier.data()+2, "merge_", 6) != 0)
300 break;
301 switch (RuleIdentifier[8]) {
302 default: break;
303 case 'm': // 1 string to match.
304 if (memcmp(RuleIdentifier.data()+9, "erge", 4) != 0)
305 break;
306 return 220; // "unmerge_merge"
307 case 'u': // 1 string to match.
308 if (memcmp(RuleIdentifier.data()+9, "ndef", 4) != 0)
309 break;
310 return 223; // "unmerge_undef"
311 }
312 break;
313 case 'r': // 1 string to match.
314 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
315 break;
316 return 196; // "urem_by_const"
317 }
318 break;
319 }
320 break;
321 case 14: // 17 strings to match.
322 switch (RuleIdentifier[0]) {
323 default: break;
324 case 'A': // 2 strings to match.
325 switch (RuleIdentifier[1]) {
326 default: break;
327 case 'M': // 1 string to match.
328 if (memcmp(RuleIdentifier.data()+2, "inusC1PlusC2", 12) != 0)
329 break;
330 return 14; // "AMinusC1PlusC2"
331 case 'P': // 1 string to match.
332 if (memcmp(RuleIdentifier.data()+2, "lusC1MinusC2", 12) != 0)
333 break;
334 return 10; // "APlusC1MinusC2"
335 }
336 break;
337 case 'C': // 1 string to match.
338 if (memcmp(RuleIdentifier.data()+1, "2MinusAPlusC1", 13) != 0)
339 break;
340 return 11; // "C2MinusAPlusC1"
341 case 'a': // 2 strings to match.
342 if (memcmp(RuleIdentifier.data()+1, "nyext_of_", 9) != 0)
343 break;
344 switch (RuleIdentifier[10]) {
345 default: break;
346 case 's': // 1 string to match.
347 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
348 break;
349 return 54; // "anyext_of_sext"
350 case 'z': // 1 string to match.
351 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
352 break;
353 return 53; // "anyext_of_zext"
354 }
355 break;
356 case 'b': // 2 strings to match.
357 if (RuleIdentifier[1] != 'i')
358 break;
359 switch (RuleIdentifier[2]) {
360 default: break;
361 case 'n': // 1 string to match.
362 if (memcmp(RuleIdentifier.data()+3, "op_same_val", 11) != 0)
363 break;
364 return 87; // "binop_same_val"
365 case 't': // 1 string to match.
366 if (memcmp(RuleIdentifier.data()+3, "reverse_shl", 11) != 0)
367 break;
368 return 172; // "bitreverse_shl"
369 }
370 break;
371 case 'c': // 1 string to match.
372 if (memcmp(RuleIdentifier.data()+1, "vt_f32_ubyteN", 13) != 0)
373 break;
374 return 243; // "cvt_f32_ubyteN"
375 case 'f': // 2 strings to match.
376 switch (RuleIdentifier[1]) {
377 default: break;
378 case 'a': // 1 string to match.
379 if (memcmp(RuleIdentifier.data()+2, "bs_fneg_fold", 12) != 0)
380 break;
381 return 183; // "fabs_fneg_fold"
382 case 'n': // 1 string to match.
383 if (memcmp(RuleIdentifier.data()+2, "eg_fneg_fold", 12) != 0)
384 break;
385 return 93; // "fneg_fneg_fold"
386 }
387 break;
388 case 'm': // 1 string to match.
389 if (memcmp(RuleIdentifier.data()+1, "ul_by_neg_one", 13) != 0)
390 break;
391 return 19; // "mul_by_neg_one"
392 case 'r': // 1 string to match.
393 if (memcmp(RuleIdentifier.data()+1, "eassoc_ptradd", 13) != 0)
394 break;
395 return 109; // "reassoc_ptradd"
396 case 's': // 3 strings to match.
397 switch (RuleIdentifier[1]) {
398 default: break;
399 case 'e': // 2 strings to match.
400 switch (RuleIdentifier[2]) {
401 default: break;
402 case 'l': // 1 string to match.
403 if (memcmp(RuleIdentifier.data()+3, "ect_of_zext", 11) != 0)
404 break;
405 return 56; // "select_of_zext"
406 case 'x': // 1 string to match.
407 if (memcmp(RuleIdentifier.data()+3, "t_of_anyext", 11) != 0)
408 break;
409 return 51; // "sext_of_anyext"
410 }
411 break;
412 case 'h': // 1 string to match.
413 if (memcmp(RuleIdentifier.data()+2, "ifts_too_big", 12) != 0)
414 break;
415 return 108; // "shifts_too_big"
416 }
417 break;
418 case 'u': // 1 string to match.
419 if (memcmp(RuleIdentifier.data()+1, "char_to_float", 13) != 0)
420 break;
421 return 242; // "uchar_to_float"
422 case 'z': // 1 string to match.
423 if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
424 break;
425 return 49; // "zext_of_anyext"
426 }
427 break;
428 case 15: // 13 strings to match.
429 switch (RuleIdentifier[0]) {
430 default: break;
431 case 'A': // 2 strings to match.
432 switch (RuleIdentifier[1]) {
433 default: break;
434 case 'M': // 1 string to match.
435 if (memcmp(RuleIdentifier.data()+2, "inusC1MinusC2", 13) != 0)
436 break;
437 return 12; // "AMinusC1MinusC2"
438 case 'P': // 1 string to match.
439 if (memcmp(RuleIdentifier.data()+2, "lusZeroMinusB", 13) != 0)
440 break;
441 return 3; // "APlusZeroMinusB"
442 }
443 break;
444 case 'C': // 1 string to match.
445 if (memcmp(RuleIdentifier.data()+1, "1Minus2MinusC2", 14) != 0)
446 break;
447 return 13; // "C1Minus2MinusC2"
448 case 'Z': // 1 string to match.
449 if (memcmp(RuleIdentifier.data()+1, "eroMinusAPlusB", 14) != 0)
450 break;
451 return 2; // "ZeroMinusAPlusB"
452 case 'b': // 1 string to match.
453 if (memcmp(RuleIdentifier.data()+1, "itreverse_lshr", 14) != 0)
454 break;
455 return 173; // "bitreverse_lshr"
456 case 'e': // 1 string to match.
457 if (memcmp(RuleIdentifier.data()+1, "xtending_loads", 14) != 0)
458 break;
459 return 70; // "extending_loads"
460 case 'i': // 1 string to match.
461 if (memcmp(RuleIdentifier.data()+1, "dempotent_prop", 14) != 0)
462 break;
463 return 20; // "idempotent_prop"
464 case 'l': // 1 string to match.
465 if (memcmp(RuleIdentifier.data()+1, "oad_or_combine", 14) != 0)
466 break;
467 return 163; // "load_or_combine"
468 case 'n': // 1 string to match.
469 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_or", 14) != 0)
470 break;
471 return 64; // "narrow_binop_or"
472 case 'o': // 1 string to match.
473 if (memcmp(RuleIdentifier.data()+1, "verlapping_and", 14) != 0)
474 break;
475 return 153; // "overlapping_and"
476 case 'r': // 1 string to match.
477 if (memcmp(RuleIdentifier.data()+1, "cp_sqrt_to_rsq", 14) != 0)
478 break;
479 return 246; // "rcp_sqrt_to_rsq"
480 case 's': // 1 string to match.
481 if (memcmp(RuleIdentifier.data()+1, "elect_same_val", 14) != 0)
482 break;
483 return 85; // "select_same_val"
484 case 'z': // 1 string to match.
485 if (memcmp(RuleIdentifier.data()+1, "ext_trunc_fold", 14) != 0)
486 break;
487 return 132; // "zext_trunc_fold"
488 }
489 break;
490 case 16: // 12 strings to match.
491 switch (RuleIdentifier[0]) {
492 default: break;
493 case 'a': // 1 string to match.
494 if (memcmp(RuleIdentifier.data()+1, "nyext_of_anyext", 15) != 0)
495 break;
496 return 52; // "anyext_of_anyext"
497 case 'n': // 5 strings to match.
498 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_", 12) != 0)
499 break;
500 switch (RuleIdentifier[13]) {
501 default: break;
502 case 'a': // 2 strings to match.
503 switch (RuleIdentifier[14]) {
504 default: break;
505 case 'd': // 1 string to match.
506 if (RuleIdentifier[15] != 'd')
507 break;
508 return 60; // "narrow_binop_add"
509 case 'n': // 1 string to match.
510 if (RuleIdentifier[15] != 'd')
511 break;
512 return 63; // "narrow_binop_and"
513 }
514 break;
515 case 'm': // 1 string to match.
516 if (memcmp(RuleIdentifier.data()+14, "ul", 2) != 0)
517 break;
518 return 62; // "narrow_binop_mul"
519 case 's': // 1 string to match.
520 if (memcmp(RuleIdentifier.data()+14, "ub", 2) != 0)
521 break;
522 return 61; // "narrow_binop_sub"
523 case 'x': // 1 string to match.
524 if (memcmp(RuleIdentifier.data()+14, "or", 2) != 0)
525 break;
526 return 65; // "narrow_binop_xor"
527 }
528 break;
529 case 's': // 3 strings to match.
530 if (memcmp(RuleIdentifier.data()+1, "elect_", 6) != 0)
531 break;
532 switch (RuleIdentifier[7]) {
533 default: break;
534 case 'o': // 1 string to match.
535 if (memcmp(RuleIdentifier.data()+8, "f_anyext", 8) != 0)
536 break;
537 return 57; // "select_of_anyext"
538 case 't': // 1 string to match.
539 if (memcmp(RuleIdentifier.data()+8, "o_minmax", 8) != 0)
540 break;
541 return 204; // "select_to_minmax"
542 case 'u': // 1 string to match.
543 if (memcmp(RuleIdentifier.data()+8, "ndef_cmp", 8) != 0)
544 break;
545 return 124; // "select_undef_cmp"
546 }
547 break;
548 case 't': // 2 strings to match.
549 if (memcmp(RuleIdentifier.data()+1, "runcate_of_", 11) != 0)
550 break;
551 switch (RuleIdentifier[12]) {
552 default: break;
553 case 's': // 1 string to match.
554 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
555 break;
556 return 46; // "truncate_of_sext"
557 case 'z': // 1 string to match.
558 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
559 break;
560 return 45; // "truncate_of_zext"
561 }
562 break;
563 case 'u': // 1 string to match.
564 if (memcmp(RuleIdentifier.data()+1, "ndef_to_fp_zero", 15) != 0)
565 break;
566 return 73; // "undef_to_fp_zero"
567 }
568 break;
569 case 17: // 14 strings to match.
570 switch (RuleIdentifier[0]) {
571 default: break;
572 case 'A': // 2 strings to match.
573 if (memcmp(RuleIdentifier.data()+1, "PlusBMinus", 10) != 0)
574 break;
575 switch (RuleIdentifier[11]) {
576 default: break;
577 case 'A': // 1 string to match.
578 if (memcmp(RuleIdentifier.data()+12, "plusC", 5) != 0)
579 break;
580 return 8; // "APlusBMinusAplusC"
581 case 'C': // 1 string to match.
582 if (memcmp(RuleIdentifier.data()+12, "PlusA", 5) != 0)
583 break;
584 return 9; // "APlusBMinusCPlusA"
585 }
586 break;
587 case 'a': // 2 strings to match.
588 switch (RuleIdentifier[1]) {
589 default: break;
590 case 'd': // 1 string to match.
591 if (memcmp(RuleIdentifier.data()+2, "d_p2i_to_ptradd", 15) != 0)
592 break;
593 return 18; // "add_p2i_to_ptradd"
594 case 'n': // 1 string to match.
595 if (memcmp(RuleIdentifier.data()+2, "yext_trunc_fold", 15) != 0)
596 break;
597 return 92; // "anyext_trunc_fold"
598 }
599 break;
600 case 'c': // 3 strings to match.
601 switch (RuleIdentifier[1]) {
602 default: break;
603 case 'a': // 2 strings to match.
604 if (memcmp(RuleIdentifier.data()+2, "nonicalize_", 11) != 0)
605 break;
606 switch (RuleIdentifier[13]) {
607 default: break;
608 case 'f': // 1 string to match.
609 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
610 break;
611 return 113; // "canonicalize_fcmp"
612 case 'i': // 1 string to match.
613 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
614 break;
615 return 112; // "canonicalize_icmp"
616 }
617 break;
618 case 'o': // 1 string to match.
619 if (memcmp(RuleIdentifier.data()+2, "nstant_fold_fma", 15) != 0)
620 break;
621 return 181; // "constant_fold_fma"
622 }
623 break;
624 case 'd': // 1 string to match.
625 if (memcmp(RuleIdentifier.data()+1, "iv_rem_to_divrem", 16) != 0)
626 break;
627 return 164; // "div_rem_to_divrem"
628 case 'e': // 1 string to match.
629 if (memcmp(RuleIdentifier.data()+1, "rase_undef_store", 16) != 0)
630 break;
631 return 83; // "erase_undef_store"
632 case 'p': // 1 string to match.
633 if (memcmp(RuleIdentifier.data()+1, "tr_add_with_zero", 16) != 0)
634 break;
635 return 160; // "ptr_add_with_zero"
636 case 's': // 2 strings to match.
637 switch (RuleIdentifier[1]) {
638 default: break;
639 case 'e': // 1 string to match.
640 if (memcmp(RuleIdentifier.data()+2, "lect_to_iminmax", 15) != 0)
641 break;
642 return 126; // "select_to_iminmax"
643 case 'h': // 1 string to match.
644 if (memcmp(RuleIdentifier.data()+2, "ift_immed_chain", 15) != 0)
645 break;
646 return 161; // "shift_immed_chain"
647 }
648 break;
649 case 'u': // 2 strings to match.
650 switch (RuleIdentifier[1]) {
651 default: break;
652 case 'n': // 1 string to match.
653 if (memcmp(RuleIdentifier.data()+2, "def_to_int_zero", 15) != 0)
654 break;
655 return 74; // "undef_to_int_zero"
656 case 'r': // 1 string to match.
657 if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
658 break;
659 return 131; // "urem_pow2_to_mask"
660 }
661 break;
662 }
663 break;
664 case 18: // 13 strings to match.
665 switch (RuleIdentifier[0]) {
666 default: break;
667 case 'A': // 3 strings to match.
668 switch (RuleIdentifier[1]) {
669 default: break;
670 case 'M': // 2 strings to match.
671 if (memcmp(RuleIdentifier.data()+2, "inusBPlus", 9) != 0)
672 break;
673 switch (RuleIdentifier[11]) {
674 default: break;
675 case 'B': // 1 string to match.
676 if (memcmp(RuleIdentifier.data()+12, "MinusC", 6) != 0)
677 break;
678 return 7; // "AMinusBPlusBMinusC"
679 case 'C': // 1 string to match.
680 if (memcmp(RuleIdentifier.data()+12, "MinusA", 6) != 0)
681 break;
682 return 6; // "AMinusBPlusCMinusA"
683 }
684 break;
685 case 'P': // 1 string to match.
686 if (memcmp(RuleIdentifier.data()+2, "lusBMinusCMinusB", 16) != 0)
687 break;
688 return 0; // "APlusBMinusCMinusB"
689 }
690 break;
691 case 'b': // 1 string to match.
692 if (memcmp(RuleIdentifier.data()+1, "inop_left_to_zero", 17) != 0)
693 break;
694 return 88; // "binop_left_to_zero"
695 case 'c': // 4 strings to match.
696 if (RuleIdentifier[1] != 'o')
697 break;
698 switch (RuleIdentifier[2]) {
699 default: break;
700 case 'm': // 2 strings to match.
701 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
702 break;
703 switch (RuleIdentifier[8]) {
704 default: break;
705 case 'm': // 1 string to match.
706 if (memcmp(RuleIdentifier.data()+9, "inmax_nan", 9) != 0)
707 break;
708 return 157; // "combine_minmax_nan"
709 case 'o': // 1 string to match.
710 if (memcmp(RuleIdentifier.data()+9, "r_s64_s32", 9) != 0)
711 break;
712 return 252; // "combine_or_s64_s32"
713 }
714 break;
715 case 'n': // 2 strings to match.
716 if (memcmp(RuleIdentifier.data()+3, "stant_fold_f", 12) != 0)
717 break;
718 switch (RuleIdentifier[15]) {
719 default: break;
720 case 'a': // 1 string to match.
721 if (memcmp(RuleIdentifier.data()+16, "bs", 2) != 0)
722 break;
723 return 138; // "constant_fold_fabs"
724 case 'n': // 1 string to match.
725 if (memcmp(RuleIdentifier.data()+16, "eg", 2) != 0)
726 break;
727 return 137; // "constant_fold_fneg"
728 }
729 break;
730 }
731 break;
732 case 'e': // 1 string to match.
733 if (memcmp(RuleIdentifier.data()+1, "xpand_const_fpowi", 17) != 0)
734 break;
735 return 158; // "expand_const_fpowi"
736 case 'f': // 1 string to match.
737 if (memcmp(RuleIdentifier.data()+1, "ptrunc_fpext_fold", 17) != 0)
738 break;
739 return 101; // "fptrunc_fpext_fold"
740 case 's': // 2 strings to match.
741 if (RuleIdentifier[1] != 'e')
742 break;
743 switch (RuleIdentifier[2]) {
744 default: break;
745 case 'l': // 1 string to match.
746 if (memcmp(RuleIdentifier.data()+3, "ect_of_truncate", 15) != 0)
747 break;
748 return 58; // "select_of_truncate"
749 case 'x': // 1 string to match.
750 if (memcmp(RuleIdentifier.data()+3, "t_inreg_of_load", 15) != 0)
751 break;
752 return 121; // "sext_inreg_of_load"
753 }
754 break;
755 case 't': // 1 string to match.
756 if (memcmp(RuleIdentifier.data()+1, "runcate_of_anyext", 17) != 0)
757 break;
758 return 47; // "truncate_of_anyext"
759 }
760 break;
761 case 19: // 19 strings to match.
762 switch (RuleIdentifier[0]) {
763 default: break;
764 case 'A': // 1 string to match.
765 if (memcmp(RuleIdentifier.data()+1, "MinusBMinusCMinusC", 18) != 0)
766 break;
767 return 1; // "AMinusBMinusCMinusC"
768 case 'b': // 1 string to match.
769 if (memcmp(RuleIdentifier.data()+1, "inop_right_to_zero", 18) != 0)
770 break;
771 return 89; // "binop_right_to_zero"
772 case 'c': // 7 strings to match.
773 if (memcmp(RuleIdentifier.data()+1, "onst", 4) != 0)
774 break;
775 switch (RuleIdentifier[5]) {
776 default: break;
777 case '_': // 1 string to match.
778 if (memcmp(RuleIdentifier.data()+6, "ptradd_to_i2p", 13) != 0)
779 break;
780 return 152; // "const_ptradd_to_i2p"
781 case 'a': // 6 strings to match.
782 if (memcmp(RuleIdentifier.data()+6, "nt_fold_", 8) != 0)
783 break;
784 switch (RuleIdentifier[14]) {
785 default: break;
786 case 'b': // 1 string to match.
787 if (memcmp(RuleIdentifier.data()+15, "inop", 4) != 0)
788 break;
789 return 179; // "constant_fold_binop"
790 case 'f': // 5 strings to match.
791 switch (RuleIdentifier[15]) {
792 default: break;
793 case 'c': // 1 string to match.
794 if (memcmp(RuleIdentifier.data()+16, "eil", 3) != 0)
795 break;
796 return 143; // "constant_fold_fceil"
797 case 'l': // 1 string to match.
798 if (memcmp(RuleIdentifier.data()+16, "og2", 3) != 0)
799 break;
800 return 140; // "constant_fold_flog2"
801 case 'p': // 1 string to match.
802 if (memcmp(RuleIdentifier.data()+16, "ext", 3) != 0)
803 break;
804 return 142; // "constant_fold_fpext"
805 case 'r': // 1 string to match.
806 if (memcmp(RuleIdentifier.data()+16, "int", 3) != 0)
807 break;
808 return 148; // "constant_fold_frint"
809 case 's': // 1 string to match.
810 if (memcmp(RuleIdentifier.data()+16, "qrt", 3) != 0)
811 break;
812 return 139; // "constant_fold_fsqrt"
813 }
814 break;
815 }
816 break;
817 }
818 break;
819 case 'e': // 1 string to match.
820 if (memcmp(RuleIdentifier.data()+1, "xtend_through_phis", 18) != 0)
821 break;
822 return 105; // "extend_through_phis"
823 case 'i': // 1 string to match.
824 if (memcmp(RuleIdentifier.data()+1, "nteger_of_truncate", 18) != 0)
825 break;
826 return 66; // "integer_of_truncate"
827 case 'm': // 1 string to match.
828 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_zero", 18) != 0)
829 break;
830 return 227; // "merge_of_x_and_zero"
831 case 'p': // 1 string to match.
832 if (memcmp(RuleIdentifier.data()+1, "tr_add_immed_chain", 18) != 0)
833 break;
834 return 111; // "ptr_add_immed_chain"
835 case 'r': // 2 strings to match.
836 switch (RuleIdentifier[1]) {
837 default: break;
838 case 'e': // 1 string to match.
839 if (memcmp(RuleIdentifier.data()+2, "assoc_comm_binops", 17) != 0)
840 break;
841 return 110; // "reassoc_comm_binops"
842 case 'i': // 1 string to match.
843 if (memcmp(RuleIdentifier.data()+2, "ght_identity_zero", 17) != 0)
844 break;
845 return 86; // "right_identity_zero"
846 }
847 break;
848 case 's': // 3 strings to match.
849 switch (RuleIdentifier[1]) {
850 default: break;
851 case 'e': // 1 string to match.
852 if (memcmp(RuleIdentifier.data()+2, "lect_constant_cmp", 17) != 0)
853 break;
854 return 125; // "select_constant_cmp"
855 case 'i': // 2 strings to match.
856 if (memcmp(RuleIdentifier.data()+2, "mplify_", 7) != 0)
857 break;
858 switch (RuleIdentifier[9]) {
859 default: break;
860 case 'a': // 1 string to match.
861 if (memcmp(RuleIdentifier.data()+10, "dd_to_sub", 9) != 0)
862 break;
863 return 106; // "simplify_add_to_sub"
864 case 'n': // 1 string to match.
865 if (memcmp(RuleIdentifier.data()+10, "eg_minmax", 9) != 0)
866 break;
867 return 210; // "simplify_neg_minmax"
868 }
869 break;
870 }
871 break;
872 case 'u': // 1 string to match.
873 if (memcmp(RuleIdentifier.data()+1, "nary_undef_to_zero", 18) != 0)
874 break;
875 return 78; // "unary_undef_to_zero"
876 }
877 break;
878 case 20: // 9 strings to match.
879 switch (RuleIdentifier[0]) {
880 default: break;
881 case 'a': // 1 string to match.
882 if (memcmp(RuleIdentifier.data()+1, "nd_or_disjoint_mask", 19) != 0)
883 break;
884 return 186; // "and_or_disjoint_mask"
885 case 'b': // 1 string to match.
886 if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_fold", 19) != 0)
887 break;
888 return 100; // "bitcast_bitcast_fold"
889 case 'c': // 1 string to match.
890 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_ffloor", 19) != 0)
891 break;
892 return 144; // "constant_fold_ffloor"
893 case 'm': // 1 string to match.
894 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_undef", 19) != 0)
895 break;
896 return 226; // "merge_of_x_and_undef"
897 case 'r': // 3 strings to match.
898 if (RuleIdentifier[1] != 'e')
899 break;
900 switch (RuleIdentifier[2]) {
901 default: break;
902 case 'd': // 2 strings to match.
903 if (RuleIdentifier[3] != 'u')
904 break;
905 switch (RuleIdentifier[4]) {
906 default: break;
907 case 'c': // 1 string to match.
908 if (memcmp(RuleIdentifier.data()+5, "e_shl_of_extend", 15) != 0)
909 break;
910 return 122; // "reduce_shl_of_extend"
911 case 'n': // 1 string to match.
912 if (memcmp(RuleIdentifier.data()+5, "dant_sext_inreg", 15) != 0)
913 break;
914 return 129; // "redundant_sext_inreg"
915 }
916 break;
917 case 'm': // 1 string to match.
918 if (memcmp(RuleIdentifier.data()+3, "ove_fcanonicalize", 17) != 0)
919 break;
920 return 244; // "remove_fcanonicalize"
921 }
922 break;
923 case 'u': // 2 strings to match.
924 if (RuleIdentifier[1] != 'n')
925 break;
926 switch (RuleIdentifier[2]) {
927 default: break;
928 case 'a': // 1 string to match.
929 if (memcmp(RuleIdentifier.data()+3, "ry_undef_to_undef", 17) != 0)
930 break;
931 return 79; // "unary_undef_to_undef"
932 case 'm': // 1 string to match.
933 if (memcmp(RuleIdentifier.data()+3, "erge_zext_to_zext", 17) != 0)
934 break;
935 return 225; // "unmerge_zext_to_zext"
936 }
937 break;
938 }
939 break;
940 case 21: // 12 strings to match.
941 switch (RuleIdentifier[0]) {
942 default: break;
943 case 'c': // 4 strings to match.
944 if (RuleIdentifier[1] != 'o')
945 break;
946 switch (RuleIdentifier[2]) {
947 default: break;
948 case 'm': // 2 strings to match.
949 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
950 break;
951 switch (RuleIdentifier[8]) {
952 default: break;
953 case 'b': // 1 string to match.
954 if (memcmp(RuleIdentifier.data()+9, "uild_unmerge", 12) != 0)
955 break;
956 return 228; // "combine_build_unmerge"
957 case 'c': // 1 string to match.
958 if (memcmp(RuleIdentifier.data()+9, "oncat_vector", 12) != 0)
959 break;
960 return 211; // "combine_concat_vector"
961 }
962 break;
963 case 'n': // 2 strings to match.
964 if (memcmp(RuleIdentifier.data()+3, "stant_fold_", 11) != 0)
965 break;
966 switch (RuleIdentifier[14]) {
967 default: break;
968 case 'c': // 1 string to match.
969 if (memcmp(RuleIdentifier.data()+15, "ast_op", 6) != 0)
970 break;
971 return 182; // "constant_fold_cast_op"
972 case 'f': // 1 string to match.
973 if (memcmp(RuleIdentifier.data()+15, "ptrunc", 6) != 0)
974 break;
975 return 141; // "constant_fold_fptrunc"
976 }
977 break;
978 }
979 break;
980 case 'e': // 1 string to match.
981 if (memcmp(RuleIdentifier.data()+1, "xpand_promoted_fmed3", 20) != 0)
982 break;
983 return 240; // "expand_promoted_fmed3"
984 case 'f': // 1 string to match.
985 if (memcmp(RuleIdentifier.data()+1, "div_repeated_divison", 20) != 0)
986 break;
987 return 202; // "fdiv_repeated_divison"
988 case 'i': // 1 string to match.
989 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_elt_oob", 20) != 0)
990 break;
991 return 26; // "insert_vector_elt_oob"
992 case 'l': // 1 string to match.
993 if (memcmp(RuleIdentifier.data()+1, "shr_of_trunc_of_lshr", 20) != 0)
994 break;
995 return 235; // "lshr_of_trunc_of_lshr"
996 case 'r': // 1 string to match.
997 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_fp", 20) != 0)
998 break;
999 return 95; // "right_identity_one_fp"
1000 case 's': // 1 string to match.
1001 if (memcmp(RuleIdentifier.data()+1, "ign_extension_in_reg", 20) != 0)
1002 break;
1003 return 248; // "sign_extension_in_reg"
1004 case 'u': // 2 strings to match.
1005 if (RuleIdentifier[1] != 'n')
1006 break;
1007 switch (RuleIdentifier[2]) {
1008 default: break;
1009 case 'd': // 1 string to match.
1010 if (memcmp(RuleIdentifier.data()+3, "ef_to_negative_one", 18) != 0)
1011 break;
1012 return 75; // "undef_to_negative_one"
1013 case 'm': // 1 string to match.
1014 if (memcmp(RuleIdentifier.data()+3, "erge_dead_to_trunc", 18) != 0)
1015 break;
1016 return 224; // "unmerge_dead_to_trunc"
1017 }
1018 break;
1019 }
1020 break;
1021 case 22: // 13 strings to match.
1022 switch (RuleIdentifier[0]) {
1023 default: break;
1024 case 'c': // 2 strings to match.
1025 if (RuleIdentifier[1] != 'o')
1026 break;
1027 switch (RuleIdentifier[2]) {
1028 default: break;
1029 case 'm': // 1 string to match.
1030 if (memcmp(RuleIdentifier.data()+3, "bine_shuffle_concat", 19) != 0)
1031 break;
1032 return 215; // "combine_shuffle_concat"
1033 case 'n': // 1 string to match.
1034 if (memcmp(RuleIdentifier.data()+3, "stant_fold_fp_binop", 19) != 0)
1035 break;
1036 return 180; // "constant_fold_fp_binop"
1037 }
1038 break;
1039 case 'f': // 4 strings to match.
1040 switch (RuleIdentifier[1]) {
1041 default: break;
1042 case 'o': // 1 string to match.
1043 if (memcmp(RuleIdentifier.data()+2, "ld_binop_into_select", 20) != 0)
1044 break;
1045 return 195; // "fold_binop_into_select"
1046 case 'u': // 3 strings to match.
1047 if (memcmp(RuleIdentifier.data()+2, "nnel_shift_", 11) != 0)
1048 break;
1049 switch (RuleIdentifier[13]) {
1050 default: break;
1051 case 'l': // 1 string to match.
1052 if (memcmp(RuleIdentifier.data()+14, "eft_zero", 8) != 0)
1053 break;
1054 return 168; // "funnel_shift_left_zero"
1055 case 'o': // 1 string to match.
1056 if (memcmp(RuleIdentifier.data()+14, "vershift", 8) != 0)
1057 break;
1058 return 169; // "funnel_shift_overshift"
1059 case 't': // 1 string to match.
1060 if (memcmp(RuleIdentifier.data()+14, "o_rotate", 8) != 0)
1061 break;
1062 return 166; // "funnel_shift_to_rotate"
1063 }
1064 break;
1065 }
1066 break;
1067 case 'i': // 1 string to match.
1068 if (memcmp(RuleIdentifier.data()+1, "cmp_to_lhs_known_bits", 21) != 0)
1069 break;
1070 return 115; // "icmp_to_lhs_known_bits"
1071 case 'm': // 1 string to match.
1072 if (memcmp(RuleIdentifier.data()+1, "atch_subo_no_overflow", 21) != 0)
1073 break;
1074 return 230; // "match_subo_no_overflow"
1075 case 'p': // 1 string to match.
1076 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_any_op", 21) != 0)
1077 break;
1078 return 80; // "propagate_undef_any_op"
1079 case 'r': // 2 strings to match.
1080 switch (RuleIdentifier[1]) {
1081 default: break;
1082 case 'e': // 1 string to match.
1083 if (memcmp(RuleIdentifier.data()+2, "dundant_neg_operands", 20) != 0)
1084 break;
1085 return 185; // "redundant_neg_operands"
1086 case 'i': // 1 string to match.
1087 if (memcmp(RuleIdentifier.data()+2, "ght_identity_one_int", 20) != 0)
1088 break;
1089 return 94; // "right_identity_one_int"
1090 }
1091 break;
1092 case 's': // 1 string to match.
1093 if (memcmp(RuleIdentifier.data()+1, "hl_ashr_to_sext_inreg", 21) != 0)
1094 break;
1095 return 119; // "shl_ashr_to_sext_inreg"
1096 case 't': // 1 string to match.
1097 if (memcmp(RuleIdentifier.data()+1, "runc_buildvector_fold", 21) != 0)
1098 break;
1099 return 98; // "trunc_buildvector_fold"
1100 }
1101 break;
1102 case 23: // 8 strings to match.
1103 switch (RuleIdentifier[0]) {
1104 default: break;
1105 case 'b': // 1 string to match.
1106 if (memcmp(RuleIdentifier.data()+1, "uildvector_of_truncate", 22) != 0)
1107 break;
1108 return 59; // "buildvector_of_truncate"
1109 case 'c': // 1 string to match.
1110 if (memcmp(RuleIdentifier.data()+1, "tlz_zero_undef_to_ctls", 22) != 0)
1111 break;
1112 return 237; // "ctlz_zero_undef_to_ctls"
1113 case 'f': // 2 strings to match.
1114 switch (RuleIdentifier[1]) {
1115 default: break;
1116 case 'd': // 1 string to match.
1117 if (memcmp(RuleIdentifier.data()+2, "iv_by_sqrt_to_rsq_f16", 21) != 0)
1118 break;
1119 return 247; // "fdiv_by_sqrt_to_rsq_f16"
1120 case 'u': // 1 string to match.
1121 if (memcmp(RuleIdentifier.data()+2, "nnel_shift_right_zero", 21) != 0)
1122 break;
1123 return 167; // "funnel_shift_right_zero"
1124 }
1125 break;
1126 case 'i': // 2 strings to match.
1127 if (memcmp(RuleIdentifier.data()+1, "tof_const_zero_fold_", 20) != 0)
1128 break;
1129 switch (RuleIdentifier[21]) {
1130 default: break;
1131 case 's': // 1 string to match.
1132 if (RuleIdentifier[22] != 'i')
1133 break;
1134 return 150; // "itof_const_zero_fold_si"
1135 case 'u': // 1 string to match.
1136 if (RuleIdentifier[22] != 'i')
1137 break;
1138 return 151; // "itof_const_zero_fold_ui"
1139 }
1140 break;
1141 case 'p': // 1 string to match.
1142 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_all_ops", 22) != 0)
1143 break;
1144 return 81; // "propagate_undef_all_ops"
1145 case 't': // 1 string to match.
1146 if (memcmp(RuleIdentifier.data()+1, "runcusatu_to_fptouisat", 22) != 0)
1147 break;
1148 return 234; // "truncusatu_to_fptouisat"
1149 }
1150 break;
1151 case 24: // 7 strings to match.
1152 switch (RuleIdentifier[0]) {
1153 default: break;
1154 case 'b': // 1 string to match.
1155 if (memcmp(RuleIdentifier.data()+1, "inop_left_undef_to_zero", 23) != 0)
1156 break;
1157 return 76; // "binop_left_undef_to_zero"
1158 case 'c': // 1 string to match.
1159 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_fnearbyint", 23) != 0)
1160 break;
1161 return 149; // "constant_fold_fnearbyint"
1162 case 'm': // 1 string to match.
1163 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element", 23) != 0)
1164 break;
1165 return 25; // "match_extract_of_element"
1166 case 'n': // 1 string to match.
1167 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_feeding_and", 23) != 0)
1168 break;
1169 return 123; // "narrow_binop_feeding_and"
1170 case 's': // 2 strings to match.
1171 if (memcmp(RuleIdentifier.data()+1, "ext_inreg_", 10) != 0)
1172 break;
1173 switch (RuleIdentifier[11]) {
1174 default: break;
1175 case 'o': // 1 string to match.
1176 if (memcmp(RuleIdentifier.data()+12, "f_sext_inreg", 12) != 0)
1177 break;
1178 return 55; // "sext_inreg_of_sext_inreg"
1179 case 't': // 1 string to match.
1180 if (memcmp(RuleIdentifier.data()+12, "o_zext_inreg", 12) != 0)
1181 break;
1182 return 133; // "sext_inreg_to_zext_inreg"
1183 }
1184 break;
1185 case 'x': // 1 string to match.
1186 if (memcmp(RuleIdentifier.data()+1, "or_of_and_with_same_reg", 23) != 0)
1187 break;
1188 return 159; // "xor_of_and_with_same_reg"
1189 }
1190 break;
1191 case 25: // 7 strings to match.
1192 switch (RuleIdentifier[0]) {
1193 default: break;
1194 case 'b': // 3 strings to match.
1195 switch (RuleIdentifier[1]) {
1196 default: break;
1197 case 'i': // 2 strings to match.
1198 if (memcmp(RuleIdentifier.data()+2, "tfield_extract_from_", 20) != 0)
1199 break;
1200 switch (RuleIdentifier[22]) {
1201 default: break;
1202 case 'a': // 1 string to match.
1203 if (memcmp(RuleIdentifier.data()+23, "nd", 2) != 0)
1204 break;
1205 return 176; // "bitfield_extract_from_and"
1206 case 's': // 1 string to match.
1207 if (memcmp(RuleIdentifier.data()+23, "hr", 2) != 0)
1208 break;
1209 return 177; // "bitfield_extract_from_shr"
1210 }
1211 break;
1212 case 'u': // 1 string to match.
1213 if (memcmp(RuleIdentifier.data()+2, "ildvector_identity_fold", 23) != 0)
1214 break;
1215 return 97; // "buildvector_identity_fold"
1216 }
1217 break;
1218 case 'c': // 1 string to match.
1219 if (memcmp(RuleIdentifier.data()+1, "ombine_shuffle_undef_rhs", 24) != 0)
1220 break;
1221 return 216; // "combine_shuffle_undef_rhs"
1222 case 'e': // 1 string to match.
1223 if (memcmp(RuleIdentifier.data()+1, "xtract_vec_elt_build_vec", 24) != 0)
1224 break;
1225 return 68; // "extract_vec_elt_build_vec"
1226 case 'n': // 1 string to match.
1227 if (memcmp(RuleIdentifier.data()+1, "eg_and_one_to_sext_inreg", 24) != 0)
1228 break;
1229 return 120; // "neg_and_one_to_sext_inreg"
1230 case 'r': // 1 string to match.
1231 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_one_fp", 24) != 0)
1232 break;
1233 return 104; // "right_identity_neg_one_fp"
1234 }
1235 break;
1236 case 26: // 4 strings to match.
1237 switch (RuleIdentifier[0]) {
1238 default: break;
1239 case 'b': // 1 string to match.
1240 if (memcmp(RuleIdentifier.data()+1, "inop_right_undef_to_undef", 25) != 0)
1241 break;
1242 return 77; // "binop_right_undef_to_undef"
1243 case 'c': // 1 string to match.
1244 if (memcmp(RuleIdentifier.data()+1, "ommute_fp_constant_to_rhs", 25) != 0)
1245 break;
1246 return 207; // "commute_fp_constant_to_rhs"
1247 case 'f': // 1 string to match.
1248 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_from_or_shift", 25) != 0)
1249 break;
1250 return 165; // "funnel_shift_from_or_shift"
1251 case 'r': // 1 string to match.
1252 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp", 25) != 0)
1253 break;
1254 return 102; // "right_identity_neg_zero_fp"
1255 }
1256 break;
1257 case 27: // 6 strings to match.
1258 switch (RuleIdentifier[0]) {
1259 default: break;
1260 case 'c': // 2 strings to match.
1261 if (memcmp(RuleIdentifier.data()+1, "om", 2) != 0)
1262 break;
1263 switch (RuleIdentifier[3]) {
1264 default: break;
1265 case 'b': // 1 string to match.
1266 if (memcmp(RuleIdentifier.data()+4, "ine_use_vector_truncate", 23) != 0)
1267 break;
1268 return 218; // "combine_use_vector_truncate"
1269 case 'm': // 1 string to match.
1270 if (memcmp(RuleIdentifier.data()+4, "ute_int_constant_to_rhs", 23) != 0)
1271 break;
1272 return 206; // "commute_int_constant_to_rhs"
1273 }
1274 break;
1275 case 'd': // 1 string to match.
1276 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_or_combine", 26) != 0)
1277 break;
1278 return 117; // "double_icmp_zero_or_combine"
1279 case 'r': // 1 string to match.
1280 if (memcmp(RuleIdentifier.data()+1, "edundant_binop_in_equality", 26) != 0)
1281 break;
1282 return 118; // "redundant_binop_in_equality"
1283 case 't': // 1 string to match.
1284 if (memcmp(RuleIdentifier.data()+1, "runc_lshr_buildvector_fold", 26) != 0)
1285 break;
1286 return 99; // "trunc_lshr_buildvector_fold"
1287 case 'u': // 1 string to match.
1288 if (memcmp(RuleIdentifier.data()+1, "nmerge_anyext_build_vector", 26) != 0)
1289 break;
1290 return 219; // "unmerge_anyext_build_vector"
1291 }
1292 break;
1293 case 28: // 5 strings to match.
1294 switch (RuleIdentifier[0]) {
1295 default: break;
1296 case 'c': // 1 string to match.
1297 if (memcmp(RuleIdentifier.data()+1, "ombine_or_s64_with_s32_mask", 27) != 0)
1298 break;
1299 return 250; // "combine_or_s64_with_s32_mask"
1300 case 'd': // 1 string to match.
1301 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_and_combine", 27) != 0)
1302 break;
1303 return 116; // "double_icmp_zero_and_combine"
1304 case 'o': // 1 string to match.
1305 if (memcmp(RuleIdentifier.data()+1, "pt_brcond_by_inverting_cond", 27) != 0)
1306 break;
1307 return 136; // "opt_brcond_by_inverting_cond"
1308 case 'p': // 1 string to match.
1309 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_shuffle_mask", 27) != 0)
1310 break;
1311 return 82; // "propagate_undef_shuffle_mask"
1312 case 's': // 1 string to match.
1313 if (memcmp(RuleIdentifier.data()+1, "hift_of_shifted_logic_chain", 27) != 0)
1314 break;
1315 return 162; // "shift_of_shifted_logic_chain"
1316 }
1317 break;
1318 case 29: // 7 strings to match.
1319 switch (RuleIdentifier[0]) {
1320 default: break;
1321 case 'b': // 1 string to match.
1322 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_shr_and", 28) != 0)
1323 break;
1324 return 178; // "bitfield_extract_from_shr_and"
1325 case 'c': // 5 strings to match.
1326 if (RuleIdentifier[1] != 'o')
1327 break;
1328 switch (RuleIdentifier[2]) {
1329 default: break;
1330 case 'm': // 3 strings to match.
1331 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
1332 break;
1333 switch (RuleIdentifier[8]) {
1334 default: break;
1335 case 'a': // 1 string to match.
1336 if (memcmp(RuleIdentifier.data()+9, "nd_s64_with_s32_mask", 20) != 0)
1337 break;
1338 return 251; // "combine_and_s64_with_s32_mask"
1339 case 'e': // 1 string to match.
1340 if (memcmp(RuleIdentifier.data()+9, "xtracted_vector_load", 20) != 0)
1341 break;
1342 return 72; // "combine_extracted_vector_load"
1343 case 's': // 1 string to match.
1344 if (memcmp(RuleIdentifier.data()+9, "huffle_disjoint_mask", 20) != 0)
1345 break;
1346 return 217; // "combine_shuffle_disjoint_mask"
1347 }
1348 break;
1349 case 'n': // 2 strings to match.
1350 if (memcmp(RuleIdentifier.data()+3, "stant_fold_intrinsic_", 21) != 0)
1351 break;
1352 switch (RuleIdentifier[24]) {
1353 default: break;
1354 case 'r': // 1 string to match.
1355 if (memcmp(RuleIdentifier.data()+25, "ound", 4) != 0)
1356 break;
1357 return 146; // "constant_fold_intrinsic_round"
1358 case 't': // 1 string to match.
1359 if (memcmp(RuleIdentifier.data()+25, "runc", 4) != 0)
1360 break;
1361 return 145; // "constant_fold_intrinsic_trunc"
1362 }
1363 break;
1364 }
1365 break;
1366 case 'i': // 1 string to match.
1367 if (memcmp(RuleIdentifier.data()+1, "cmp_to_true_false_known_bits", 28) != 0)
1368 break;
1369 return 114; // "icmp_to_true_false_known_bits"
1370 }
1371 break;
1372 case 30: // 2 strings to match.
1373 switch (RuleIdentifier[0]) {
1374 default: break;
1375 case 'f': // 1 string to match.
1376 if (memcmp(RuleIdentifier.data()+1, "reeze_of_non_undef_non_poison", 29) != 0)
1377 break;
1378 return 43; // "freeze_of_non_undef_non_poison"
1379 case 'r': // 1 string to match.
1380 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp_nsz", 29) != 0)
1381 break;
1382 return 103; // "right_identity_neg_zero_fp_nsz"
1383 }
1384 break;
1385 case 31: // 3 strings to match.
1386 switch (RuleIdentifier[0]) {
1387 default: break;
1388 case 'f': // 1 string to match.
1389 if (memcmp(RuleIdentifier.data()+1, "cmp_select_to_fmin_fmax_legacy", 30) != 0)
1390 break;
1391 return 239; // "fcmp_select_to_fmin_fmax_legacy"
1392 case 'i': // 2 strings to match.
1393 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_element_", 21) != 0)
1394 break;
1395 switch (RuleIdentifier[22]) {
1396 default: break;
1397 case 'e': // 1 string to match.
1398 if (memcmp(RuleIdentifier.data()+23, "lt_undef", 8) != 0)
1399 break;
1400 return 24; // "insert_vector_element_elt_undef"
1401 case 'i': // 1 string to match.
1402 if (memcmp(RuleIdentifier.data()+23, "dx_undef", 8) != 0)
1403 break;
1404 return 23; // "insert_vector_element_idx_undef"
1405 }
1406 break;
1407 }
1408 break;
1409 case 32: // 4 strings to match.
1410 switch (RuleIdentifier[0]) {
1411 default: break;
1412 case 'b': // 1 string to match.
1413 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_sext_inreg", 31) != 0)
1414 break;
1415 return 175; // "bitfield_extract_from_sext_inreg"
1416 case 'c': // 2 strings to match.
1417 if (memcmp(RuleIdentifier.data()+1, "ombine_f", 8) != 0)
1418 break;
1419 switch (RuleIdentifier[9]) {
1420 default: break;
1421 case 'a': // 1 string to match.
1422 if (memcmp(RuleIdentifier.data()+10, "dd_fmul_to_fmad_or_fma", 22) != 0)
1423 break;
1424 return 187; // "combine_fadd_fmul_to_fmad_or_fma"
1425 case 's': // 1 string to match.
1426 if (memcmp(RuleIdentifier.data()+10, "ub_fmul_to_fmad_or_fma", 22) != 0)
1427 break;
1428 return 191; // "combine_fsub_fmul_to_fmad_or_fma"
1429 }
1430 break;
1431 case 'e': // 1 string to match.
1432 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_not_const", 31) != 0)
1433 break;
1434 return 27; // "extract_vector_element_not_const"
1435 }
1436 break;
1437 case 33: // 1 string to match.
1438 if (memcmp(RuleIdentifier.data()+0, "constant_fold_intrinsic_roundeven", 33) != 0)
1439 break;
1440 return 147; // "constant_fold_intrinsic_roundeven"
1441 case 34: // 2 strings to match.
1442 switch (RuleIdentifier[0]) {
1443 default: break;
1444 case 'c': // 1 string to match.
1445 if (memcmp(RuleIdentifier.data()+1, "ombine_fmul_with_select_to_fldexp", 33) != 0)
1446 break;
1447 return 241; // "combine_fmul_with_select_to_fldexp"
1448 case 'e': // 1 string to match.
1449 if (memcmp(RuleIdentifier.data()+1, "xtract_all_elts_from_build_vector", 33) != 0)
1450 break;
1451 return 69; // "extract_all_elts_from_build_vector"
1452 }
1453 break;
1454 case 35: // 1 string to match.
1455 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_build_vector", 35) != 0)
1456 break;
1457 return 29; // "extract_vector_element_build_vector"
1458 case 36: // 4 strings to match.
1459 switch (RuleIdentifier[0]) {
1460 default: break;
1461 case 'c': // 2 strings to match.
1462 if (memcmp(RuleIdentifier.data()+1, "ombine_", 7) != 0)
1463 break;
1464 switch (RuleIdentifier[8]) {
1465 default: break;
1466 case 'f': // 1 string to match.
1467 if (memcmp(RuleIdentifier.data()+9, "add_fma_fmul_to_fmad_or_fma", 27) != 0)
1468 break;
1469 return 189; // "combine_fadd_fma_fmul_to_fmad_or_fma"
1470 case 'i': // 1 string to match.
1471 if (memcmp(RuleIdentifier.data()+9, "nsert_vec_elts_build_vector", 27) != 0)
1472 break;
1473 return 67; // "combine_insert_vec_elts_build_vector"
1474 }
1475 break;
1476 case 'i': // 1 string to match.
1477 if (memcmp(RuleIdentifier.data()+1, "nsert_extract_vec_elt_out_of_bounds", 35) != 0)
1478 break;
1479 return 84; // "insert_extract_vec_elt_out_of_bounds"
1480 case 'm': // 1 string to match.
1481 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_index", 35) != 0)
1482 break;
1483 return 22; // "match_extract_of_element_undef_index"
1484 }
1485 break;
1486 case 37: // 4 strings to match.
1487 switch (RuleIdentifier[0]) {
1488 default: break;
1489 case 'c': // 1 string to match.
1490 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fneg_fmul_to_fmad_or_fma", 36) != 0)
1491 break;
1492 return 192; // "combine_fsub_fneg_fmul_to_fmad_or_fma"
1493 case 'e': // 1 string to match.
1494 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_shuffle_vector", 36) != 0)
1495 break;
1496 return 37; // "extract_vector_element_shuffle_vector"
1497 case 'h': // 1 string to match.
1498 if (memcmp(RuleIdentifier.data()+1, "oist_logic_op_with_same_opcode_hands", 36) != 0)
1499 break;
1500 return 107; // "hoist_logic_op_with_same_opcode_hands"
1501 case 'm': // 1 string to match.
1502 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_vector", 36) != 0)
1503 break;
1504 return 21; // "match_extract_of_element_undef_vector"
1505 }
1506 break;
1507 case 38: // 2 strings to match.
1508 if (memcmp(RuleIdentifier.data()+0, "combine_f", 9) != 0)
1509 break;
1510 switch (RuleIdentifier[9]) {
1511 default: break;
1512 case 'a': // 1 string to match.
1513 if (memcmp(RuleIdentifier.data()+10, "dd_fpext_fmul_to_fmad_or_fma", 28) != 0)
1514 break;
1515 return 188; // "combine_fadd_fpext_fmul_to_fmad_or_fma"
1516 case 's': // 1 string to match.
1517 if (memcmp(RuleIdentifier.data()+10, "ub_fpext_fmul_to_fmad_or_fma", 28) != 0)
1518 break;
1519 return 193; // "combine_fsub_fpext_fmul_to_fmad_or_fma"
1520 }
1521 break;
1522 case 40: // 1 string to match.
1523 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_different_indices", 40) != 0)
1524 break;
1525 return 28; // "extract_vector_element_different_indices"
1526 case 42: // 9 strings to match.
1527 switch (RuleIdentifier[0]) {
1528 default: break;
1529 case 'c': // 1 string to match.
1530 if (memcmp(RuleIdentifier.data()+1, "ombine_fadd_fpext_fma_fmul_to_fmad_or_fma", 41) != 0)
1531 break;
1532 return 190; // "combine_fadd_fpext_fma_fmul_to_fmad_or_fma"
1533 case 'e': // 7 strings to match.
1534 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_build_vector_trunc", 40) != 0)
1535 break;
1536 switch (RuleIdentifier[41]) {
1537 default: break;
1538 case '2': // 1 string to match.
1539 return 30; // "extract_vector_element_build_vector_trunc2"
1540 case '3': // 1 string to match.
1541 return 31; // "extract_vector_element_build_vector_trunc3"
1542 case '4': // 1 string to match.
1543 return 32; // "extract_vector_element_build_vector_trunc4"
1544 case '5': // 1 string to match.
1545 return 33; // "extract_vector_element_build_vector_trunc5"
1546 case '6': // 1 string to match.
1547 return 34; // "extract_vector_element_build_vector_trunc6"
1548 case '7': // 1 string to match.
1549 return 35; // "extract_vector_element_build_vector_trunc7"
1550 case '8': // 1 string to match.
1551 return 36; // "extract_vector_element_build_vector_trunc8"
1552 }
1553 break;
1554 case 'f': // 1 string to match.
1555 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_left", 41) != 0)
1556 break;
1557 return 170; // "funnel_shift_or_shift_to_funnel_shift_left"
1558 }
1559 break;
1560 case 43: // 2 strings to match.
1561 switch (RuleIdentifier[0]) {
1562 default: break;
1563 case 'c': // 1 string to match.
1564 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fpext_fneg_fmul_to_fmad_or_fma", 42) != 0)
1565 break;
1566 return 194; // "combine_fsub_fpext_fneg_fmul_to_fmad_or_fma"
1567 case 'f': // 1 string to match.
1568 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_right", 42) != 0)
1569 break;
1570 return 171; // "funnel_shift_or_shift_to_funnel_shift_right"
1571 }
1572 break;
1573 case 44: // 1 string to match.
1574 if (memcmp(RuleIdentifier.data()+0, "insert_vector_element_extract_vector_element", 44) != 0)
1575 break;
1576 return 38; // "insert_vector_element_extract_vector_element"
1577 case 46: // 1 string to match.
1578 if (memcmp(RuleIdentifier.data()+0, "push_freeze_to_prevent_poison_from_propagating", 46) != 0)
1579 break;
1580 return 44; // "push_freeze_to_prevent_poison_from_propagating"
1581 }
1582#endif // ifndef NDEBUG
1583
1584 return std::nullopt;
1585}
1586static std::optional<std::pair<uint64_t, uint64_t>> getRuleRangeForIdentifier(StringRef RuleIdentifier) {
1587 std::pair<StringRef, StringRef> RangePair = RuleIdentifier.split(Separator: '-');
1588 if (!RangePair.second.empty()) {
1589 const auto First = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
1590 const auto Last = getRuleIdxForIdentifier(RuleIdentifier: RangePair.second);
1591 if (!First || !Last)
1592 return std::nullopt;
1593 if (First >= Last)
1594 report_fatal_error(reason: "Beginning of range should be before end of range");
1595 return {{*First, *Last + 1}};
1596 }
1597 if (RangePair.first == "*") {
1598 return {{0, 253}};
1599 }
1600 const auto I = getRuleIdxForIdentifier(RuleIdentifier: RangePair.first);
1601 if (!I)
1602 return std::nullopt;
1603 return {{*I, *I + 1}};
1604}
1605
1606bool AMDGPUPostLegalizerCombinerImplRuleConfig::setRuleEnabled(StringRef RuleIdentifier) {
1607 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1608 if (!MaybeRange)
1609 return false;
1610 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1611 DisabledRules.reset(Idx: I);
1612 return true;
1613}
1614
1615bool AMDGPUPostLegalizerCombinerImplRuleConfig::setRuleDisabled(StringRef RuleIdentifier) {
1616 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1617 if (!MaybeRange)
1618 return false;
1619 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1620 DisabledRules.set(I);
1621 return true;
1622}
1623
1624static std::vector<std::string> AMDGPUPostLegalizerCombinerOption;
1625static cl::list<std::string> AMDGPUPostLegalizerCombinerDisableOption(
1626 "amdgpupostlegalizercombiner-disable-rule",
1627 cl::desc("Disable one or more combiner rules temporarily in the AMDGPUPostLegalizerCombiner pass"),
1628 cl::CommaSeparated,
1629 cl::Hidden,
1630 cl::cat(GICombinerOptionCategory),
1631 cl::callback(CB: [](const std::string &Str) {
1632 AMDGPUPostLegalizerCombinerOption.push_back(x: Str);
1633 }));
1634static cl::list<std::string> AMDGPUPostLegalizerCombinerOnlyEnableOption(
1635 "amdgpupostlegalizercombiner-only-enable-rule",
1636 cl::desc("Disable all rules in the AMDGPUPostLegalizerCombiner pass then re-enable the specified ones"),
1637 cl::Hidden,
1638 cl::cat(GICombinerOptionCategory),
1639 cl::callback(CB: [](const std::string &CommaSeparatedArg) {
1640 StringRef Str = CommaSeparatedArg;
1641 AMDGPUPostLegalizerCombinerOption.push_back(x: "*");
1642 do {
1643 auto X = Str.split(Separator: ",");
1644 AMDGPUPostLegalizerCombinerOption.push_back(x: ("!" + X.first).str());
1645 Str = X.second;
1646 } while (!Str.empty());
1647 }));
1648
1649
1650bool AMDGPUPostLegalizerCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const {
1651 return !DisabledRules.test(Idx: RuleID);
1652}
1653bool AMDGPUPostLegalizerCombinerImplRuleConfig::parseCommandLineOption() {
1654 for (StringRef Identifier : AMDGPUPostLegalizerCombinerOption) {
1655 bool Enabled = Identifier.consume_front(Prefix: "!");
1656 if (Enabled && !setRuleEnabled(Identifier))
1657 return false;
1658 if (!Enabled && !setRuleDisabled(Identifier))
1659 return false;
1660 }
1661 return true;
1662}
1663
1664#endif // ifdef GET_GICOMBINER_TYPES
1665
1666#ifdef GET_GICOMBINER_TYPES
1667const unsigned MAX_SUBTARGET_PREDICATES = 3;
1668using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
1669#endif // ifdef GET_GICOMBINER_TYPES
1670
1671#ifdef GET_GICOMBINER_CLASS_MEMBERS
1672PredicateBitset AvailableModuleFeatures;
1673mutable PredicateBitset AvailableFunctionFeatures;
1674PredicateBitset getAvailableFeatures() const {
1675 return AvailableModuleFeatures | AvailableFunctionFeatures;
1676}
1677PredicateBitset
1678computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const;
1679PredicateBitset
1680computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget,
1681 const MachineFunction *MF) const;
1682void setupGeneratedPerFunctionState(MachineFunction &MF) override;
1683#endif // ifdef GET_GICOMBINER_CLASS_MEMBERS
1684#ifdef GET_GICOMBINER_CLASS_MEMBERS
1685 mutable MatcherState State;
1686 typedef ComplexRendererFns(AMDGPUPostLegalizerCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const;
1687 typedef void(AMDGPUPostLegalizerCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
1688 const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
1689 static AMDGPUPostLegalizerCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[];
1690 static AMDGPUPostLegalizerCombinerImpl::CustomRendererFn CustomRenderers[];
1691 bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
1692 bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
1693 bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
1694 const uint8_t *getMatchTable() const override;
1695 bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
1696 bool testMOPredicate_MO(unsigned PredicateID, const MachineOperand &MO, const MatcherState &State) const override;
1697 bool testSimplePredicate(unsigned PredicateID) const override;
1698 bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
1699#endif // ifdef GET_GICOMBINER_CLASS_MEMBERS
1700
1701#ifdef GET_GICOMBINER_IMPL
1702// LLT Objects.
1703enum {
1704 GILLT_s16,
1705 GILLT_s32,
1706 GILLT_s64,
1707};
1708const static size_t NumTypeObjects = 3;
1709const static LLT TypeObjects[] = {
1710 LLT::scalar(16),
1711 LLT::scalar(32),
1712 LLT::scalar(64),
1713};
1714
1715// Bits for subtarget features that participate in instruction matching.
1716enum SubtargetFeatureBits : uint8_t {
1717 Feature_Has16BitInstsBit = 1,
1718 Feature_NotHasMed3_16Bit = 2,
1719 Feature_HasFminFmaxLegacyBit = 0,
1720};
1721
1722PredicateBitset AMDGPUPostLegalizerCombinerImpl::
1723computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const {
1724 PredicateBitset Features{};
1725 if (Subtarget->has16BitInsts())
1726 Features.set(Feature_Has16BitInstsBit);
1727 if (!Subtarget->hasMed3_16())
1728 Features.set(Feature_NotHasMed3_16Bit);
1729 if (Subtarget->hasFminFmaxLegacy())
1730 Features.set(Feature_HasFminFmaxLegacyBit);
1731 return Features;
1732}
1733
1734void AMDGPUPostLegalizerCombinerImpl::setupGeneratedPerFunctionState(MachineFunction &MF) {
1735 AvailableFunctionFeatures = computeAvailableFunctionFeatures((const AMDGPUSubtarget *)&MF.getSubtarget(), &MF);
1736}
1737PredicateBitset AMDGPUPostLegalizerCombinerImpl::
1738computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget, const MachineFunction *MF) const {
1739 PredicateBitset Features{};
1740 return Features;
1741}
1742
1743// Feature bitsets.
1744enum {
1745 GIFBS_Invalid,
1746 GIFBS_HasFminFmaxLegacy,
1747 GIFBS_Has16BitInsts_NotHasMed3_16,
1748};
1749constexpr static PredicateBitset FeatureBitsets[] {
1750 {}, // GIFBS_Invalid
1751 {Feature_HasFminFmaxLegacyBit, },
1752 {Feature_Has16BitInstsBit, Feature_NotHasMed3_16Bit, },
1753};
1754
1755// ComplexPattern predicates.
1756enum {
1757 GICP_Invalid,
1758};
1759// See constructor for table contents
1760
1761AMDGPUPostLegalizerCombinerImpl::ComplexMatcherMemFn
1762AMDGPUPostLegalizerCombinerImpl::ComplexPredicateFns[] = {
1763 nullptr, // GICP_Invalid
1764};
1765
1766enum {
1767 GICXXPred_MI_Predicate_GICombiner0 = GICXXPred_Invalid + 1,
1768 GICXXPred_MI_Predicate_GICombiner1,
1769 GICXXPred_MI_Predicate_GICombiner2,
1770 GICXXPred_MI_Predicate_GICombiner3,
1771 GICXXPred_MI_Predicate_GICombiner4,
1772 GICXXPred_MI_Predicate_GICombiner5,
1773 GICXXPred_MI_Predicate_GICombiner6,
1774 GICXXPred_MI_Predicate_GICombiner7,
1775 GICXXPred_MI_Predicate_GICombiner8,
1776 GICXXPred_MI_Predicate_GICombiner9,
1777 GICXXPred_MI_Predicate_GICombiner10,
1778 GICXXPred_MI_Predicate_GICombiner11,
1779 GICXXPred_MI_Predicate_GICombiner12,
1780 GICXXPred_MI_Predicate_GICombiner13,
1781 GICXXPred_MI_Predicate_GICombiner14,
1782 GICXXPred_MI_Predicate_GICombiner15,
1783};
1784bool AMDGPUPostLegalizerCombinerImpl::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
1785 switch (PredicateID) {
1786 case GICXXPred_MI_Predicate_GICombiner0: {
1787 return isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI);
1788 }
1789 case GICXXPred_MI_Predicate_GICombiner1: {
1790 return isGuaranteedNotToBeUndefOrPoison(State.MIs[0]->getOperand(1).getReg(), MRI);
1791 }
1792 case GICXXPred_MI_Predicate_GICombiner2: {
1793 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 1.0);
1794 }
1795 case GICXXPred_MI_Predicate_GICombiner3: {
1796 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -0.0);
1797 }
1798 case GICXXPred_MI_Predicate_GICombiner4: {
1799 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 0.0);
1800 }
1801 case GICXXPred_MI_Predicate_GICombiner5: {
1802 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -1.0);
1803 }
1804 case GICXXPred_MI_Predicate_GICombiner6: {
1805 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_EQ &&
1806 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
1807 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
1808 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
1809 }
1810 case GICXXPred_MI_Predicate_GICombiner7: {
1811 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_NE &&
1812 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
1813 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
1814 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
1815 }
1816 case GICXXPred_MI_Predicate_GICombiner8: {
1817 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
1818 Helper.isLegalOrBeforeLegalizer(
1819 {TargetOpcode::G_SEXT_INREG, {MRI.getType(State.MIs[1]->getOperand(1).getReg())}});
1820 }
1821 case GICXXPred_MI_Predicate_GICombiner9: {
1822 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_LSHR,
1823 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
1824 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
1825 }
1826 case GICXXPred_MI_Predicate_GICombiner10: {
1827 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_SHL,
1828 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
1829 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
1830 }
1831 case GICXXPred_MI_Predicate_GICombiner11: {
1832 return Helper.matchTruncUSatU(*State.MIs[0], *State.MIs[1]);
1833 }
1834 case GICXXPred_MI_Predicate_GICombiner12: {
1835 return Helper.matchTruncUSatUToFPTOUISat(*State.MIs[0], *State.MIs[1]);
1836 }
1837 case GICXXPred_MI_Predicate_GICombiner13: {
1838 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
1839 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
1840 }
1841 case GICXXPred_MI_Predicate_GICombiner14: {
1842 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
1843 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
1844 }
1845 case GICXXPred_MI_Predicate_GICombiner15: {
1846 return Helper.matchConstantIs32BitMask(State.MIs[0]->getOperand(1).getReg()) ||
1847 Helper.matchConstantIs32BitMask(State.MIs[0]->getOperand(2).getReg());
1848 }
1849 }
1850 llvm_unreachable("Unknown predicate");
1851 return false;
1852}
1853bool AMDGPUPostLegalizerCombinerImpl::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
1854 llvm_unreachable("Unknown predicate");
1855 return false;
1856}
1857bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
1858 llvm_unreachable("Unknown predicate");
1859 return false;
1860}
1861bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
1862 llvm_unreachable("Unknown predicate");
1863 return false;
1864}
1865bool AMDGPUPostLegalizerCombinerImpl::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
1866 llvm_unreachable("Unknown predicate");
1867 return false;
1868}
1869enum {
1870 GICXXPred_Simple_IsRule0Enabled = GICXXPred_Invalid + 1,
1871 GICXXPred_Simple_IsRule1Enabled,
1872 GICXXPred_Simple_IsRule2Enabled,
1873 GICXXPred_Simple_IsRule3Enabled,
1874 GICXXPred_Simple_IsRule4Enabled,
1875 GICXXPred_Simple_IsRule5Enabled,
1876 GICXXPred_Simple_IsRule6Enabled,
1877 GICXXPred_Simple_IsRule7Enabled,
1878 GICXXPred_Simple_IsRule8Enabled,
1879 GICXXPred_Simple_IsRule9Enabled,
1880 GICXXPred_Simple_IsRule10Enabled,
1881 GICXXPred_Simple_IsRule11Enabled,
1882 GICXXPred_Simple_IsRule12Enabled,
1883 GICXXPred_Simple_IsRule13Enabled,
1884 GICXXPred_Simple_IsRule14Enabled,
1885 GICXXPred_Simple_IsRule15Enabled,
1886 GICXXPred_Simple_IsRule16Enabled,
1887 GICXXPred_Simple_IsRule17Enabled,
1888 GICXXPred_Simple_IsRule18Enabled,
1889 GICXXPred_Simple_IsRule19Enabled,
1890 GICXXPred_Simple_IsRule20Enabled,
1891 GICXXPred_Simple_IsRule21Enabled,
1892 GICXXPred_Simple_IsRule22Enabled,
1893 GICXXPred_Simple_IsRule23Enabled,
1894 GICXXPred_Simple_IsRule24Enabled,
1895 GICXXPred_Simple_IsRule25Enabled,
1896 GICXXPred_Simple_IsRule26Enabled,
1897 GICXXPred_Simple_IsRule27Enabled,
1898 GICXXPred_Simple_IsRule28Enabled,
1899 GICXXPred_Simple_IsRule29Enabled,
1900 GICXXPred_Simple_IsRule30Enabled,
1901 GICXXPred_Simple_IsRule31Enabled,
1902 GICXXPred_Simple_IsRule32Enabled,
1903 GICXXPred_Simple_IsRule33Enabled,
1904 GICXXPred_Simple_IsRule34Enabled,
1905 GICXXPred_Simple_IsRule35Enabled,
1906 GICXXPred_Simple_IsRule36Enabled,
1907 GICXXPred_Simple_IsRule37Enabled,
1908 GICXXPred_Simple_IsRule38Enabled,
1909 GICXXPred_Simple_IsRule39Enabled,
1910 GICXXPred_Simple_IsRule40Enabled,
1911 GICXXPred_Simple_IsRule41Enabled,
1912 GICXXPred_Simple_IsRule42Enabled,
1913 GICXXPred_Simple_IsRule43Enabled,
1914 GICXXPred_Simple_IsRule44Enabled,
1915 GICXXPred_Simple_IsRule45Enabled,
1916 GICXXPred_Simple_IsRule46Enabled,
1917 GICXXPred_Simple_IsRule47Enabled,
1918 GICXXPred_Simple_IsRule48Enabled,
1919 GICXXPred_Simple_IsRule49Enabled,
1920 GICXXPred_Simple_IsRule50Enabled,
1921 GICXXPred_Simple_IsRule51Enabled,
1922 GICXXPred_Simple_IsRule52Enabled,
1923 GICXXPred_Simple_IsRule53Enabled,
1924 GICXXPred_Simple_IsRule54Enabled,
1925 GICXXPred_Simple_IsRule55Enabled,
1926 GICXXPred_Simple_IsRule56Enabled,
1927 GICXXPred_Simple_IsRule57Enabled,
1928 GICXXPred_Simple_IsRule58Enabled,
1929 GICXXPred_Simple_IsRule59Enabled,
1930 GICXXPred_Simple_IsRule60Enabled,
1931 GICXXPred_Simple_IsRule61Enabled,
1932 GICXXPred_Simple_IsRule62Enabled,
1933 GICXXPred_Simple_IsRule63Enabled,
1934 GICXXPred_Simple_IsRule64Enabled,
1935 GICXXPred_Simple_IsRule65Enabled,
1936 GICXXPred_Simple_IsRule66Enabled,
1937 GICXXPred_Simple_IsRule67Enabled,
1938 GICXXPred_Simple_IsRule68Enabled,
1939 GICXXPred_Simple_IsRule69Enabled,
1940 GICXXPred_Simple_IsRule70Enabled,
1941 GICXXPred_Simple_IsRule71Enabled,
1942 GICXXPred_Simple_IsRule72Enabled,
1943 GICXXPred_Simple_IsRule73Enabled,
1944 GICXXPred_Simple_IsRule74Enabled,
1945 GICXXPred_Simple_IsRule75Enabled,
1946 GICXXPred_Simple_IsRule76Enabled,
1947 GICXXPred_Simple_IsRule77Enabled,
1948 GICXXPred_Simple_IsRule78Enabled,
1949 GICXXPred_Simple_IsRule79Enabled,
1950 GICXXPred_Simple_IsRule80Enabled,
1951 GICXXPred_Simple_IsRule81Enabled,
1952 GICXXPred_Simple_IsRule82Enabled,
1953 GICXXPred_Simple_IsRule83Enabled,
1954 GICXXPred_Simple_IsRule84Enabled,
1955 GICXXPred_Simple_IsRule85Enabled,
1956 GICXXPred_Simple_IsRule86Enabled,
1957 GICXXPred_Simple_IsRule87Enabled,
1958 GICXXPred_Simple_IsRule88Enabled,
1959 GICXXPred_Simple_IsRule89Enabled,
1960 GICXXPred_Simple_IsRule90Enabled,
1961 GICXXPred_Simple_IsRule91Enabled,
1962 GICXXPred_Simple_IsRule92Enabled,
1963 GICXXPred_Simple_IsRule93Enabled,
1964 GICXXPred_Simple_IsRule94Enabled,
1965 GICXXPred_Simple_IsRule95Enabled,
1966 GICXXPred_Simple_IsRule96Enabled,
1967 GICXXPred_Simple_IsRule97Enabled,
1968 GICXXPred_Simple_IsRule98Enabled,
1969 GICXXPred_Simple_IsRule99Enabled,
1970 GICXXPred_Simple_IsRule100Enabled,
1971 GICXXPred_Simple_IsRule101Enabled,
1972 GICXXPred_Simple_IsRule102Enabled,
1973 GICXXPred_Simple_IsRule103Enabled,
1974 GICXXPred_Simple_IsRule104Enabled,
1975 GICXXPred_Simple_IsRule105Enabled,
1976 GICXXPred_Simple_IsRule106Enabled,
1977 GICXXPred_Simple_IsRule107Enabled,
1978 GICXXPred_Simple_IsRule108Enabled,
1979 GICXXPred_Simple_IsRule109Enabled,
1980 GICXXPred_Simple_IsRule110Enabled,
1981 GICXXPred_Simple_IsRule111Enabled,
1982 GICXXPred_Simple_IsRule112Enabled,
1983 GICXXPred_Simple_IsRule113Enabled,
1984 GICXXPred_Simple_IsRule114Enabled,
1985 GICXXPred_Simple_IsRule115Enabled,
1986 GICXXPred_Simple_IsRule116Enabled,
1987 GICXXPred_Simple_IsRule117Enabled,
1988 GICXXPred_Simple_IsRule118Enabled,
1989 GICXXPred_Simple_IsRule119Enabled,
1990 GICXXPred_Simple_IsRule120Enabled,
1991 GICXXPred_Simple_IsRule121Enabled,
1992 GICXXPred_Simple_IsRule122Enabled,
1993 GICXXPred_Simple_IsRule123Enabled,
1994 GICXXPred_Simple_IsRule124Enabled,
1995 GICXXPred_Simple_IsRule125Enabled,
1996 GICXXPred_Simple_IsRule126Enabled,
1997 GICXXPred_Simple_IsRule127Enabled,
1998 GICXXPred_Simple_IsRule128Enabled,
1999 GICXXPred_Simple_IsRule129Enabled,
2000 GICXXPred_Simple_IsRule130Enabled,
2001 GICXXPred_Simple_IsRule131Enabled,
2002 GICXXPred_Simple_IsRule132Enabled,
2003 GICXXPred_Simple_IsRule133Enabled,
2004 GICXXPred_Simple_IsRule134Enabled,
2005 GICXXPred_Simple_IsRule135Enabled,
2006 GICXXPred_Simple_IsRule136Enabled,
2007 GICXXPred_Simple_IsRule137Enabled,
2008 GICXXPred_Simple_IsRule138Enabled,
2009 GICXXPred_Simple_IsRule139Enabled,
2010 GICXXPred_Simple_IsRule140Enabled,
2011 GICXXPred_Simple_IsRule141Enabled,
2012 GICXXPred_Simple_IsRule142Enabled,
2013 GICXXPred_Simple_IsRule143Enabled,
2014 GICXXPred_Simple_IsRule144Enabled,
2015 GICXXPred_Simple_IsRule145Enabled,
2016 GICXXPred_Simple_IsRule146Enabled,
2017 GICXXPred_Simple_IsRule147Enabled,
2018 GICXXPred_Simple_IsRule148Enabled,
2019 GICXXPred_Simple_IsRule149Enabled,
2020 GICXXPred_Simple_IsRule150Enabled,
2021 GICXXPred_Simple_IsRule151Enabled,
2022 GICXXPred_Simple_IsRule152Enabled,
2023 GICXXPred_Simple_IsRule153Enabled,
2024 GICXXPred_Simple_IsRule154Enabled,
2025 GICXXPred_Simple_IsRule155Enabled,
2026 GICXXPred_Simple_IsRule156Enabled,
2027 GICXXPred_Simple_IsRule157Enabled,
2028 GICXXPred_Simple_IsRule158Enabled,
2029 GICXXPred_Simple_IsRule159Enabled,
2030 GICXXPred_Simple_IsRule160Enabled,
2031 GICXXPred_Simple_IsRule161Enabled,
2032 GICXXPred_Simple_IsRule162Enabled,
2033 GICXXPred_Simple_IsRule163Enabled,
2034 GICXXPred_Simple_IsRule164Enabled,
2035 GICXXPred_Simple_IsRule165Enabled,
2036 GICXXPred_Simple_IsRule166Enabled,
2037 GICXXPred_Simple_IsRule167Enabled,
2038 GICXXPred_Simple_IsRule168Enabled,
2039 GICXXPred_Simple_IsRule169Enabled,
2040 GICXXPred_Simple_IsRule170Enabled,
2041 GICXXPred_Simple_IsRule171Enabled,
2042 GICXXPred_Simple_IsRule172Enabled,
2043 GICXXPred_Simple_IsRule173Enabled,
2044 GICXXPred_Simple_IsRule174Enabled,
2045 GICXXPred_Simple_IsRule175Enabled,
2046 GICXXPred_Simple_IsRule176Enabled,
2047 GICXXPred_Simple_IsRule177Enabled,
2048 GICXXPred_Simple_IsRule178Enabled,
2049 GICXXPred_Simple_IsRule179Enabled,
2050 GICXXPred_Simple_IsRule180Enabled,
2051 GICXXPred_Simple_IsRule181Enabled,
2052 GICXXPred_Simple_IsRule182Enabled,
2053 GICXXPred_Simple_IsRule183Enabled,
2054 GICXXPred_Simple_IsRule184Enabled,
2055 GICXXPred_Simple_IsRule185Enabled,
2056 GICXXPred_Simple_IsRule186Enabled,
2057 GICXXPred_Simple_IsRule187Enabled,
2058 GICXXPred_Simple_IsRule188Enabled,
2059 GICXXPred_Simple_IsRule189Enabled,
2060 GICXXPred_Simple_IsRule190Enabled,
2061 GICXXPred_Simple_IsRule191Enabled,
2062 GICXXPred_Simple_IsRule192Enabled,
2063 GICXXPred_Simple_IsRule193Enabled,
2064 GICXXPred_Simple_IsRule194Enabled,
2065 GICXXPred_Simple_IsRule195Enabled,
2066 GICXXPred_Simple_IsRule196Enabled,
2067 GICXXPred_Simple_IsRule197Enabled,
2068 GICXXPred_Simple_IsRule198Enabled,
2069 GICXXPred_Simple_IsRule199Enabled,
2070 GICXXPred_Simple_IsRule200Enabled,
2071 GICXXPred_Simple_IsRule201Enabled,
2072 GICXXPred_Simple_IsRule202Enabled,
2073 GICXXPred_Simple_IsRule203Enabled,
2074 GICXXPred_Simple_IsRule204Enabled,
2075 GICXXPred_Simple_IsRule205Enabled,
2076 GICXXPred_Simple_IsRule206Enabled,
2077 GICXXPred_Simple_IsRule207Enabled,
2078 GICXXPred_Simple_IsRule208Enabled,
2079 GICXXPred_Simple_IsRule209Enabled,
2080 GICXXPred_Simple_IsRule210Enabled,
2081 GICXXPred_Simple_IsRule211Enabled,
2082 GICXXPred_Simple_IsRule212Enabled,
2083 GICXXPred_Simple_IsRule213Enabled,
2084 GICXXPred_Simple_IsRule214Enabled,
2085 GICXXPred_Simple_IsRule215Enabled,
2086 GICXXPred_Simple_IsRule216Enabled,
2087 GICXXPred_Simple_IsRule217Enabled,
2088 GICXXPred_Simple_IsRule218Enabled,
2089 GICXXPred_Simple_IsRule219Enabled,
2090 GICXXPred_Simple_IsRule220Enabled,
2091 GICXXPred_Simple_IsRule221Enabled,
2092 GICXXPred_Simple_IsRule222Enabled,
2093 GICXXPred_Simple_IsRule223Enabled,
2094 GICXXPred_Simple_IsRule224Enabled,
2095 GICXXPred_Simple_IsRule225Enabled,
2096 GICXXPred_Simple_IsRule226Enabled,
2097 GICXXPred_Simple_IsRule227Enabled,
2098 GICXXPred_Simple_IsRule228Enabled,
2099 GICXXPred_Simple_IsRule229Enabled,
2100 GICXXPred_Simple_IsRule230Enabled,
2101 GICXXPred_Simple_IsRule231Enabled,
2102 GICXXPred_Simple_IsRule232Enabled,
2103 GICXXPred_Simple_IsRule233Enabled,
2104 GICXXPred_Simple_IsRule234Enabled,
2105 GICXXPred_Simple_IsRule235Enabled,
2106 GICXXPred_Simple_IsRule236Enabled,
2107 GICXXPred_Simple_IsRule237Enabled,
2108 GICXXPred_Simple_IsRule238Enabled,
2109 GICXXPred_Simple_IsRule239Enabled,
2110 GICXXPred_Simple_IsRule240Enabled,
2111 GICXXPred_Simple_IsRule241Enabled,
2112 GICXXPred_Simple_IsRule242Enabled,
2113 GICXXPred_Simple_IsRule243Enabled,
2114 GICXXPred_Simple_IsRule244Enabled,
2115 GICXXPred_Simple_IsRule245Enabled,
2116 GICXXPred_Simple_IsRule246Enabled,
2117 GICXXPred_Simple_IsRule247Enabled,
2118 GICXXPred_Simple_IsRule248Enabled,
2119 GICXXPred_Simple_IsRule249Enabled,
2120 GICXXPred_Simple_IsRule250Enabled,
2121 GICXXPred_Simple_IsRule251Enabled,
2122 GICXXPred_Simple_IsRule252Enabled,
2123};
2124
2125bool AMDGPUPostLegalizerCombinerImpl::testSimplePredicate(unsigned Predicate) const {
2126 return RuleConfig.isRuleEnabled(Predicate - GICXXPred_Invalid - 1);
2127}
2128// Custom renderers.
2129enum {
2130 GICR_Invalid,
2131};
2132AMDGPUPostLegalizerCombinerImpl::CustomRendererFn
2133AMDGPUPostLegalizerCombinerImpl::CustomRenderers[] = {
2134 nullptr, // GICR_Invalid
2135};
2136
2137bool AMDGPUPostLegalizerCombinerImpl::tryCombineAllImpl(MachineInstr &I) const {
2138 const TargetSubtargetInfo &ST = MF.getSubtarget();
2139 const PredicateBitset AvailableFeatures = getAvailableFeatures();
2140 B.setInstrAndDebugLoc(I);
2141 State.MIs.clear();
2142 State.MIs.push_back(&I);
2143 if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), *ST.getInstrInfo(), MRI, *MRI.getTargetRegisterInfo(), *ST.getRegBankInfo(), AvailableFeatures, /*CoverageInfo*/ nullptr)) {
2144 return true;
2145 }
2146
2147 return false;
2148}
2149
2150enum {
2151 GICXXCustomAction_GICombiner0 = GICXXCustomAction_Invalid + 1,
2152 GICXXCustomAction_GICombiner1,
2153 GICXXCustomAction_GICombiner2,
2154 GICXXCustomAction_GICombiner3,
2155 GICXXCustomAction_GICombiner4,
2156 GICXXCustomAction_GICombiner5,
2157 GICXXCustomAction_GICombiner6,
2158 GICXXCustomAction_GICombiner7,
2159 GICXXCustomAction_GICombiner8,
2160 GICXXCustomAction_GICombiner9,
2161 GICXXCustomAction_GICombiner10,
2162 GICXXCustomAction_GICombiner11,
2163 GICXXCustomAction_GICombiner12,
2164 GICXXCustomAction_GICombiner13,
2165 GICXXCustomAction_GICombiner14,
2166 GICXXCustomAction_GICombiner15,
2167 GICXXCustomAction_GICombiner16,
2168 GICXXCustomAction_GICombiner17,
2169 GICXXCustomAction_GICombiner18,
2170 GICXXCustomAction_GICombiner19,
2171 GICXXCustomAction_GICombiner20,
2172 GICXXCustomAction_GICombiner21,
2173 GICXXCustomAction_GICombiner22,
2174 GICXXCustomAction_GICombiner23,
2175 GICXXCustomAction_GICombiner24,
2176 GICXXCustomAction_GICombiner25,
2177 GICXXCustomAction_GICombiner26,
2178 GICXXCustomAction_GICombiner27,
2179 GICXXCustomAction_GICombiner28,
2180 GICXXCustomAction_GICombiner29,
2181 GICXXCustomAction_GICombiner30,
2182 GICXXCustomAction_GICombiner31,
2183 GICXXCustomAction_GICombiner32,
2184 GICXXCustomAction_GICombiner33,
2185 GICXXCustomAction_GICombiner34,
2186 GICXXCustomAction_GICombiner35,
2187 GICXXCustomAction_GICombiner36,
2188 GICXXCustomAction_GICombiner37,
2189 GICXXCustomAction_GICombiner38,
2190 GICXXCustomAction_GICombiner39,
2191 GICXXCustomAction_GICombiner40,
2192 GICXXCustomAction_GICombiner41,
2193 GICXXCustomAction_GICombiner42,
2194 GICXXCustomAction_GICombiner43,
2195 GICXXCustomAction_GICombiner44,
2196 GICXXCustomAction_GICombiner45,
2197 GICXXCustomAction_GICombiner46,
2198 GICXXCustomAction_GICombiner47,
2199 GICXXCustomAction_GICombiner48,
2200 GICXXCustomAction_GICombiner49,
2201 GICXXCustomAction_GICombiner50,
2202 GICXXCustomAction_GICombiner51,
2203 GICXXCustomAction_GICombiner52,
2204 GICXXCustomAction_GICombiner53,
2205 GICXXCustomAction_GICombiner54,
2206 GICXXCustomAction_GICombiner55,
2207 GICXXCustomAction_GICombiner56,
2208 GICXXCustomAction_GICombiner57,
2209 GICXXCustomAction_GICombiner58,
2210 GICXXCustomAction_GICombiner59,
2211 GICXXCustomAction_GICombiner60,
2212 GICXXCustomAction_GICombiner61,
2213 GICXXCustomAction_GICombiner62,
2214 GICXXCustomAction_GICombiner63,
2215 GICXXCustomAction_GICombiner64,
2216 GICXXCustomAction_GICombiner65,
2217 GICXXCustomAction_GICombiner66,
2218 GICXXCustomAction_GICombiner67,
2219 GICXXCustomAction_GICombiner68,
2220 GICXXCustomAction_GICombiner69,
2221 GICXXCustomAction_GICombiner70,
2222 GICXXCustomAction_GICombiner71,
2223 GICXXCustomAction_GICombiner72,
2224 GICXXCustomAction_GICombiner73,
2225 GICXXCustomAction_GICombiner74,
2226 GICXXCustomAction_GICombiner75,
2227 GICXXCustomAction_GICombiner76,
2228 GICXXCustomAction_GICombiner77,
2229 GICXXCustomAction_GICombiner78,
2230 GICXXCustomAction_GICombiner79,
2231 GICXXCustomAction_GICombiner80,
2232 GICXXCustomAction_GICombiner81,
2233 GICXXCustomAction_GICombiner82,
2234 GICXXCustomAction_GICombiner83,
2235 GICXXCustomAction_GICombiner84,
2236 GICXXCustomAction_GICombiner85,
2237 GICXXCustomAction_GICombiner86,
2238 GICXXCustomAction_GICombiner87,
2239 GICXXCustomAction_GICombiner88,
2240 GICXXCustomAction_GICombiner89,
2241 GICXXCustomAction_GICombiner90,
2242 GICXXCustomAction_GICombiner91,
2243 GICXXCustomAction_GICombiner92,
2244 GICXXCustomAction_GICombiner93,
2245 GICXXCustomAction_GICombiner94,
2246 GICXXCustomAction_GICombiner95,
2247 GICXXCustomAction_GICombiner96,
2248 GICXXCustomAction_GICombiner97,
2249 GICXXCustomAction_GICombiner98,
2250 GICXXCustomAction_GICombiner99,
2251 GICXXCustomAction_GICombiner100,
2252 GICXXCustomAction_GICombiner101,
2253 GICXXCustomAction_GICombiner102,
2254 GICXXCustomAction_GICombiner103,
2255 GICXXCustomAction_GICombiner104,
2256 GICXXCustomAction_GICombiner105,
2257 GICXXCustomAction_GICombiner106,
2258 GICXXCustomAction_GICombiner107,
2259 GICXXCustomAction_GICombiner108,
2260 GICXXCustomAction_GICombiner109,
2261 GICXXCustomAction_GICombiner110,
2262 GICXXCustomAction_GICombiner111,
2263 GICXXCustomAction_GICombiner112,
2264 GICXXCustomAction_GICombiner113,
2265 GICXXCustomAction_GICombiner114,
2266 GICXXCustomAction_GICombiner115,
2267 GICXXCustomAction_GICombiner116,
2268 GICXXCustomAction_GICombiner117,
2269 GICXXCustomAction_GICombiner118,
2270 GICXXCustomAction_GICombiner119,
2271 GICXXCustomAction_GICombiner120,
2272 GICXXCustomAction_GICombiner121,
2273 GICXXCustomAction_GICombiner122,
2274 GICXXCustomAction_GICombiner123,
2275 GICXXCustomAction_GICombiner124,
2276 GICXXCustomAction_GICombiner125,
2277 GICXXCustomAction_GICombiner126,
2278 GICXXCustomAction_GICombiner127,
2279 GICXXCustomAction_GICombiner128,
2280 GICXXCustomAction_GICombiner129,
2281 GICXXCustomAction_GICombiner130,
2282 GICXXCustomAction_GICombiner131,
2283 GICXXCustomAction_GICombiner132,
2284 GICXXCustomAction_GICombiner133,
2285 GICXXCustomAction_GICombiner134,
2286 GICXXCustomAction_GICombiner135,
2287 GICXXCustomAction_GICombiner136,
2288 GICXXCustomAction_GICombiner137,
2289 GICXXCustomAction_GICombiner138,
2290 GICXXCustomAction_GICombiner139,
2291 GICXXCustomAction_GICombiner140,
2292 GICXXCustomAction_GICombiner141,
2293 GICXXCustomAction_GICombiner142,
2294 GICXXCustomAction_GICombiner143,
2295 GICXXCustomAction_GICombiner144,
2296 GICXXCustomAction_GICombiner145,
2297 GICXXCustomAction_GICombiner146,
2298 GICXXCustomAction_GICombiner147,
2299 GICXXCustomAction_GICombiner148,
2300 GICXXCustomAction_GICombiner149,
2301 GICXXCustomAction_GICombiner150,
2302 GICXXCustomAction_GICombiner151,
2303 GICXXCustomAction_GICombiner152,
2304 GICXXCustomAction_GICombiner153,
2305 GICXXCustomAction_GICombiner154,
2306 GICXXCustomAction_GICombiner155,
2307 GICXXCustomAction_GICombiner156,
2308 GICXXCustomAction_GICombiner157,
2309 GICXXCustomAction_GICombiner158,
2310 GICXXCustomAction_GICombiner159,
2311 GICXXCustomAction_GICombiner160,
2312 GICXXCustomAction_GICombiner161,
2313 GICXXCustomAction_GICombiner162,
2314 GICXXCustomAction_GICombiner163,
2315 GICXXCustomAction_GICombiner164,
2316 GICXXCustomAction_GICombiner165,
2317 GICXXCustomAction_GICombiner166,
2318};
2319bool AMDGPUPostLegalizerCombinerImpl::runCustomAction(unsigned ApplyID, const MatcherState &State, NewMIVector &OutMIs) const {
2320 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
2321 switch(ApplyID) {
2322 case GICXXCustomAction_GICombiner0:{
2323 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2324 // Match Patterns
2325 if(![&](){return Helper.matchFoldAPlusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2326 return false;
2327 }
2328 // Apply Patterns
2329 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2330 return true;
2331 }
2332 case GICXXCustomAction_GICombiner1:{
2333 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2334 // Match Patterns
2335 if(![&](){return Helper.matchFoldC2MinusAPlusC1(*State.MIs[0], GIMatchData_matchinfo);}()) {
2336 return false;
2337 }
2338 // Apply Patterns
2339 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2340 return true;
2341 }
2342 case GICXXCustomAction_GICombiner2:{
2343 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2344 // Match Patterns
2345 if(![&](){return Helper.matchFoldAMinusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2346 return false;
2347 }
2348 // Apply Patterns
2349 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2350 return true;
2351 }
2352 case GICXXCustomAction_GICombiner3:{
2353 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2354 // Match Patterns
2355 if(![&](){return Helper.matchFoldC1Minus2MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2356 return false;
2357 }
2358 // Apply Patterns
2359 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2360 return true;
2361 }
2362 case GICXXCustomAction_GICombiner4:{
2363 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2364 // Match Patterns
2365 if(![&](){return Helper.matchFoldAMinusC1PlusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2366 return false;
2367 }
2368 // Apply Patterns
2369 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2370 return true;
2371 }
2372 case GICXXCustomAction_GICombiner5:{
2373 // Match Patterns
2374 if(![&](){return Helper.matchCombineCopy(*State.MIs[0]);}()) {
2375 return false;
2376 }
2377 // Apply Patterns
2378 Helper.applyCombineCopy(*State.MIs[0]);
2379 return true;
2380 }
2381 case GICXXCustomAction_GICombiner6:{
2382 unsigned GIMatchData_matchinfo;
2383 // Match Patterns
2384 if(![&](){return Helper.matchCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);}()) {
2385 return false;
2386 }
2387 // Apply Patterns
2388 Helper.applyCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);
2389 return true;
2390 }
2391 case GICXXCustomAction_GICombiner7:{
2392 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2393 // Match Patterns
2394 if(![&](){return Helper.matchCombineSubToAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2395 return false;
2396 }
2397 // Apply Patterns
2398 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2399 return true;
2400 }
2401 case GICXXCustomAction_GICombiner8:{
2402 std::pair<Register, bool> GIMatchData_info;
2403 // Match Patterns
2404 if(![&](){return Helper.matchCombineAddP2IToPtrAdd(*State.MIs[0], GIMatchData_info);}()) {
2405 return false;
2406 }
2407 // Apply Patterns
2408 Helper.applyCombineAddP2IToPtrAdd(*State.MIs[0], GIMatchData_info);
2409 return true;
2410 }
2411 case GICXXCustomAction_GICombiner9:{
2412 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2413 // Match Patterns
2414 if(![&](){return Helper.matchExtractVectorElement(*State.MIs[0], GIMatchData_matchinfo);}()) {
2415 return false;
2416 }
2417 // Apply Patterns
2418 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2419 return true;
2420 }
2421 case GICXXCustomAction_GICombiner10:{
2422 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2423 // Match Patterns
2424 if(![&](){return Helper.matchInsertVectorElementOOB(*State.MIs[0], GIMatchData_matchinfo);}()) {
2425 return false;
2426 }
2427 // Apply Patterns
2428 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2429 return true;
2430 }
2431 case GICXXCustomAction_GICombiner11:{
2432 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2433 // Match Patterns
2434 if(![&](){return Helper.matchExtractVectorElementWithDifferentIndices(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2435 return false;
2436 }
2437 // Apply Patterns
2438 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2439 return true;
2440 }
2441 case GICXXCustomAction_GICombiner12:{
2442 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2443 // Match Patterns
2444 if(![&](){return Helper.matchExtractVectorElementWithBuildVector(*State.MIs[0], *State.MIs[1],
2445 GIMatchData_matchinfo);}()) {
2446 return false;
2447 }
2448 // Apply Patterns
2449 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2450 return true;
2451 }
2452 case GICXXCustomAction_GICombiner13:{
2453 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2454 // Match Patterns
2455 if(![&](){return Helper.matchExtractVectorElementWithBuildVectorTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2456 return false;
2457 }
2458 // Apply Patterns
2459 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2460 return true;
2461 }
2462 case GICXXCustomAction_GICombiner14:{
2463 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2464 // Match Patterns
2465 if(![&](){return Helper.matchExtractVectorElementWithShuffleVector(*State.MIs[0], *State.MIs[1],
2466 GIMatchData_matchinfo);}()) {
2467 return false;
2468 }
2469 // Apply Patterns
2470 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2471 return true;
2472 }
2473 case GICXXCustomAction_GICombiner15:{
2474 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2475 // Match Patterns
2476 if(![&](){return Helper.matchAddOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2477 return false;
2478 }
2479 // Apply Patterns
2480 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2481 return true;
2482 }
2483 case GICXXCustomAction_GICombiner16:{
2484 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2485 // Match Patterns
2486 if(![&](){return Helper.matchMulOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2487 return false;
2488 }
2489 // Apply Patterns
2490 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2491 return true;
2492 }
2493 case GICXXCustomAction_GICombiner17:{
2494 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2495 // Match Patterns
2496 if(![&](){return Helper.matchShlOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2497 return false;
2498 }
2499 // Apply Patterns
2500 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2501 return true;
2502 }
2503 case GICXXCustomAction_GICombiner18:{
2504 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2505 // Match Patterns
2506 if(![&](){return Helper.matchSubOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2507 return false;
2508 }
2509 // Apply Patterns
2510 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2511 return true;
2512 }
2513 case GICXXCustomAction_GICombiner19:{
2514 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2515 // Match Patterns
2516 if(![&](){return !isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI) && Helper.matchFreezeOfSingleMaybePoisonOperand(*State.MIs[0], GIMatchData_matchinfo);}()) {
2517 return false;
2518 }
2519 // Apply Patterns
2520 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2521 return true;
2522 }
2523 case GICXXCustomAction_GICombiner20:{
2524 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2525 // Match Patterns
2526 if(![&](){return Helper.matchTruncateOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2527 return false;
2528 }
2529 // Apply Patterns
2530 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2531 return true;
2532 }
2533 case GICXXCustomAction_GICombiner21:{
2534 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2535 // Match Patterns
2536 if(![&](){return Helper.matchExtOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2537 return false;
2538 }
2539 // Apply Patterns
2540 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2541 return true;
2542 }
2543 case GICXXCustomAction_GICombiner22:{
2544 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2545 // Match Patterns
2546 if(![&](){return Helper.matchRedundantSextInReg(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2547 return false;
2548 }
2549 // Apply Patterns
2550 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2551 return true;
2552 }
2553 case GICXXCustomAction_GICombiner23:{
2554 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2555 // Match Patterns
2556 if(![&](){return Helper.matchCastOfSelect(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2557 return false;
2558 }
2559 // Apply Patterns
2560 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2561 return true;
2562 }
2563 case GICXXCustomAction_GICombiner24:{
2564 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2565 // Match Patterns
2566 if(![&](){return Helper.matchCastOfBuildVector(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2567 return false;
2568 }
2569 // Apply Patterns
2570 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2571 return true;
2572 }
2573 case GICXXCustomAction_GICombiner25:{
2574 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2575 // Match Patterns
2576 if(![&](){return Helper.matchNarrowBinop(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2577 return false;
2578 }
2579 // Apply Patterns
2580 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2581 return true;
2582 }
2583 case GICXXCustomAction_GICombiner26:{
2584 APInt GIMatchData_matchinfo;
2585 // Match Patterns
2586 if(![&](){return Helper.matchCastOfInteger(*State.MIs[0], GIMatchData_matchinfo);}()) {
2587 return false;
2588 }
2589 // Apply Patterns
2590 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
2591 return true;
2592 }
2593 case GICXXCustomAction_GICombiner27:{
2594 SmallVector<Register> GIMatchData_info;
2595 // Match Patterns
2596 if(![&](){return Helper.matchCombineInsertVecElts(*State.MIs[0], GIMatchData_info);}()) {
2597 return false;
2598 }
2599 // Apply Patterns
2600 Helper.applyCombineInsertVecElts(*State.MIs[0], GIMatchData_info);
2601 return true;
2602 }
2603 case GICXXCustomAction_GICombiner28:{
2604 Register GIMatchData_matchinfo;
2605 // Match Patterns
2606 if(![&](){return Helper.matchExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);}()) {
2607 return false;
2608 }
2609 // Apply Patterns
2610 Helper.applyExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);
2611 return true;
2612 }
2613 case GICXXCustomAction_GICombiner29:{
2614 SmallVector<std::pair<Register, MachineInstr*>> GIMatchData_matchinfo;
2615 // Match Patterns
2616 if(![&](){return Helper.matchExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
2617 return false;
2618 }
2619 // Apply Patterns
2620 Helper.applyExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);
2621 return true;
2622 }
2623 case GICXXCustomAction_GICombiner30:{
2624 PreferredTuple GIMatchData_matchinfo;
2625 // Match Patterns
2626 if(![&](){return Helper.matchCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);}()) {
2627 return false;
2628 }
2629 // Apply Patterns
2630 Helper.applyCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);
2631 return true;
2632 }
2633 case GICXXCustomAction_GICombiner31:{
2634 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2635 // Match Patterns
2636 if(![&](){return Helper.matchCombineLoadWithAndMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
2637 return false;
2638 }
2639 // Apply Patterns
2640 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2641 return true;
2642 }
2643 case GICXXCustomAction_GICombiner32:{
2644 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2645 // Match Patterns
2646 if(![&](){return Helper.matchCombineExtractedVectorLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
2647 return false;
2648 }
2649 // Apply Patterns
2650 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2651 return true;
2652 }
2653 case GICXXCustomAction_GICombiner33:{
2654 // Match Patterns
2655 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2656 return false;
2657 }
2658 // Apply Patterns
2659 Helper.replaceInstWithFConstant(*State.MIs[0], 0.0);
2660 return true;
2661 }
2662 case GICXXCustomAction_GICombiner34:{
2663 // Match Patterns
2664 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2665 return false;
2666 }
2667 // Apply Patterns
2668 Helper.replaceInstWithConstant(*State.MIs[0], 0);
2669 return true;
2670 }
2671 case GICXXCustomAction_GICombiner35:{
2672 // Match Patterns
2673 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2674 return false;
2675 }
2676 // Apply Patterns
2677 Helper.replaceInstWithConstant(*State.MIs[0], -1);
2678 return true;
2679 }
2680 case GICXXCustomAction_GICombiner36:{
2681 // Match Patterns
2682 if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 1);}()) {
2683 return false;
2684 }
2685 // Apply Patterns
2686 Helper.replaceInstWithConstant(*State.MIs[0], 0);
2687 return true;
2688 }
2689 case GICXXCustomAction_GICombiner37:{
2690 // Match Patterns
2691 if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 2);}()) {
2692 return false;
2693 }
2694 // Apply Patterns
2695 Helper.replaceInstWithUndef(*State.MIs[0]);
2696 return true;
2697 }
2698 case GICXXCustomAction_GICombiner38:{
2699 // Apply Patterns
2700 Helper.replaceInstWithUndef(*State.MIs[0]->getOperand(0).getParent());
2701 return true;
2702 }
2703 case GICXXCustomAction_GICombiner39:{
2704 // Match Patterns
2705 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2706 return false;
2707 }
2708 // Apply Patterns
2709 Helper.replaceInstWithUndef(*State.MIs[0]);
2710 return true;
2711 }
2712 case GICXXCustomAction_GICombiner40:{
2713 // Match Patterns
2714 if(![&](){return Helper.matchAllExplicitUsesAreUndef(*State.MIs[0]);}()) {
2715 return false;
2716 }
2717 // Apply Patterns
2718 Helper.replaceInstWithUndef(*State.MIs[0]);
2719 return true;
2720 }
2721 case GICXXCustomAction_GICombiner41:{
2722 // Match Patterns
2723 if(![&](){return Helper.matchUndefShuffleVectorMask(*State.MIs[0]);}()) {
2724 return false;
2725 }
2726 // Apply Patterns
2727 Helper.replaceInstWithUndef(*State.MIs[0]);
2728 return true;
2729 }
2730 case GICXXCustomAction_GICombiner42:{
2731 // Match Patterns
2732 if(![&](){return Helper.matchUndefStore(*State.MIs[0]);}()) {
2733 return false;
2734 }
2735 // Apply Patterns
2736 Helper.eraseInst(*State.MIs[0]);
2737 return true;
2738 }
2739 case GICXXCustomAction_GICombiner43:{
2740 // Match Patterns
2741 if(![&](){return Helper.matchInsertExtractVecEltOutOfBounds(*State.MIs[0]);}()) {
2742 return false;
2743 }
2744 // Apply Patterns
2745 Helper.replaceInstWithUndef(*State.MIs[0]);
2746 return true;
2747 }
2748 case GICXXCustomAction_GICombiner44:{
2749 // Match Patterns
2750 if(![&](){return Helper.matchSelectSameVal(*State.MIs[0]);}()) {
2751 return false;
2752 }
2753 // Apply Patterns
2754 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 2);
2755 return true;
2756 }
2757 case GICXXCustomAction_GICombiner45:{
2758 Register GIMatchData_info;
2759 // Match Patterns
2760 if(![&](){return Helper.matchCombineI2PToP2I(*State.MIs[0], GIMatchData_info);}()) {
2761 return false;
2762 }
2763 // Apply Patterns
2764 Helper.applyCombineI2PToP2I(*State.MIs[0], GIMatchData_info);
2765 return true;
2766 }
2767 case GICXXCustomAction_GICombiner46:{
2768 Register GIMatchData_info;
2769 // Match Patterns
2770 if(![&](){GIMatchData_info = State.MIs[1]->getOperand(1).getReg(); return true;}()) {
2771 return false;
2772 }
2773 // Apply Patterns
2774 Helper.applyCombineP2IToI2P(*State.MIs[0], GIMatchData_info);
2775 return true;
2776 }
2777 case GICXXCustomAction_GICombiner47:{
2778 Register GIMatchData_matchinfo;
2779 // Match Patterns
2780 if(![&](){return Helper.matchCombineAnyExtTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
2781 return false;
2782 }
2783 // Apply Patterns
2784 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2785 return true;
2786 }
2787 case GICXXCustomAction_GICombiner48:{
2788 Register GIMatchData_matchinfo;
2789 // Match Patterns
2790 if(![&](){return Helper.matchBuildVectorIdentityFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
2791 return false;
2792 }
2793 // Apply Patterns
2794 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2795 return true;
2796 }
2797 case GICXXCustomAction_GICombiner49:{
2798 Register GIMatchData_matchinfo;
2799 // Match Patterns
2800 if(![&](){return Helper.matchTruncBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
2801 return false;
2802 }
2803 // Apply Patterns
2804 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2805 return true;
2806 }
2807 case GICXXCustomAction_GICombiner50:{
2808 Register GIMatchData_matchinfo;
2809 // Match Patterns
2810 if(![&](){return Helper.matchTruncLshrBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
2811 return false;
2812 }
2813 // Apply Patterns
2814 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2815 return true;
2816 }
2817 case GICXXCustomAction_GICombiner51:{
2818 // Match Patterns
2819 if(![&](){return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());}()) {
2820 return false;
2821 }
2822 // Apply Patterns
2823 Helper.replaceSingleDefInstWithReg(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
2824 return true;
2825 }
2826 case GICXXCustomAction_GICombiner52:{
2827 MachineInstr* GIMatchData_matchinfo;
2828 // Match Patterns
2829 if(![&](){return Helper.matchExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);}()) {
2830 return false;
2831 }
2832 // Apply Patterns
2833 Helper.applyExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);
2834 return true;
2835 }
2836 case GICXXCustomAction_GICombiner53:{
2837 std::tuple<Register, Register> GIMatchData_info;
2838 // Match Patterns
2839 if(![&](){return Helper.matchSimplifyAddToSub(*State.MIs[0], GIMatchData_info);}()) {
2840 return false;
2841 }
2842 // Apply Patterns
2843 Helper.applySimplifyAddToSub(*State.MIs[0], GIMatchData_info);
2844 return true;
2845 }
2846 case GICXXCustomAction_GICombiner54:{
2847 InstructionStepsMatchInfo GIMatchData_info;
2848 // Match Patterns
2849 if(![&](){return Helper.matchHoistLogicOpWithSameOpcodeHands(*State.MIs[0], GIMatchData_info);}()) {
2850 return false;
2851 }
2852 // Apply Patterns
2853 Helper.applyBuildInstructionSteps(*State.MIs[0], GIMatchData_info);
2854 return true;
2855 }
2856 case GICXXCustomAction_GICombiner55:{
2857 std::optional<int64_t> GIMatchData_matchinfo;
2858 // Match Patterns
2859 if(![&](){return Helper.matchShiftsTooBig(*State.MIs[0], GIMatchData_matchinfo);}()) {
2860 return false;
2861 }
2862 // Apply Patterns
2863 if (GIMatchData_matchinfo) {
2864 Helper.replaceInstWithConstant(*State.MIs[0], *GIMatchData_matchinfo);
2865 } else {
2866 Helper.replaceInstWithUndef(*State.MIs[0]);
2867 }
2868 return true;
2869 }
2870 case GICXXCustomAction_GICombiner56:{
2871 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2872 // Match Patterns
2873 if(![&](){return Helper.matchReassocPtrAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2874 return false;
2875 }
2876 // Apply Patterns
2877 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2878 return true;
2879 }
2880 case GICXXCustomAction_GICombiner57:{
2881 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2882 // Match Patterns
2883 if(![&](){return Helper.matchReassocCommBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2884 return false;
2885 }
2886 // Apply Patterns
2887 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2888 return true;
2889 }
2890 case GICXXCustomAction_GICombiner58:{
2891 PtrAddChain GIMatchData_matchinfo;
2892 // Match Patterns
2893 if(![&](){return Helper.matchPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
2894 return false;
2895 }
2896 // Apply Patterns
2897 Helper.applyPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);
2898 return true;
2899 }
2900 case GICXXCustomAction_GICombiner59:{
2901 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2902 // Match Patterns
2903 if(![&](){return Helper.matchCanonicalizeICmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2904 return false;
2905 }
2906 // Apply Patterns
2907 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2908 return true;
2909 }
2910 case GICXXCustomAction_GICombiner60:{
2911 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2912 // Match Patterns
2913 if(![&](){return Helper.matchCanonicalizeFCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2914 return false;
2915 }
2916 // Apply Patterns
2917 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2918 return true;
2919 }
2920 case GICXXCustomAction_GICombiner61:{
2921 int64_t GIMatchData_matchinfo;
2922 // Match Patterns
2923 if(![&](){return Helper.matchICmpToTrueFalseKnownBits(*State.MIs[0], GIMatchData_matchinfo);}()) {
2924 return false;
2925 }
2926 // Apply Patterns
2927 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
2928 return true;
2929 }
2930 case GICXXCustomAction_GICombiner62:{
2931 std::function<void(MachineIRBuilder &)> GIMatchData_info;
2932 // Match Patterns
2933 if(![&](){return Helper.matchICmpToLHSKnownBits(*State.MIs[0], GIMatchData_info);}()) {
2934 return false;
2935 }
2936 // Apply Patterns
2937 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
2938 return true;
2939 }
2940 case GICXXCustomAction_GICombiner63:{
2941 std::function<void(MachineIRBuilder &)> GIMatchData_info;
2942 // Match Patterns
2943 if(![&](){return Helper.matchRedundantBinOpInEquality(*State.MIs[0], GIMatchData_info);}()) {
2944 return false;
2945 }
2946 // Apply Patterns
2947 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
2948 return true;
2949 }
2950 case GICXXCustomAction_GICombiner64:{
2951 std::tuple<Register, int64_t> GIMatchData_info;
2952 // Match Patterns
2953 if(![&](){return Helper.matchAshrShlToSextInreg(*State.MIs[0], GIMatchData_info);}()) {
2954 return false;
2955 }
2956 // Apply Patterns
2957 Helper.applyAshShlToSextInreg(*State.MIs[0], GIMatchData_info);
2958 return true;
2959 }
2960 case GICXXCustomAction_GICombiner65:{
2961 std::tuple<Register, unsigned> GIMatchData_matchinfo;
2962 // Match Patterns
2963 if(![&](){return Helper.matchSextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
2964 return false;
2965 }
2966 // Apply Patterns
2967 Helper.applySextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);
2968 return true;
2969 }
2970 case GICXXCustomAction_GICombiner66:{
2971 RegisterImmPair GIMatchData_matchinfo;
2972 // Match Patterns
2973 if(![&](){return Helper.matchCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);}()) {
2974 return false;
2975 }
2976 // Apply Patterns
2977 Helper.applyCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);
2978 return true;
2979 }
2980 case GICXXCustomAction_GICombiner67:{
2981 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2982 // Match Patterns
2983 if(![&](){return Helper.matchNarrowBinopFeedingAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2984 return false;
2985 }
2986 // Apply Patterns
2987 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2988 return true;
2989 }
2990 case GICXXCustomAction_GICombiner68:{
2991 unsigned GIMatchData_matchinfo;
2992 // Match Patterns
2993 if(![&](){return Helper.matchConstantSelectCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2994 return false;
2995 }
2996 // Apply Patterns
2997 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_matchinfo);
2998 return true;
2999 }
3000 case GICXXCustomAction_GICombiner69:{
3001 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3002 // Match Patterns
3003 if(![&](){return Helper.matchSelectIMinMax(State.MIs[0]->getOperand(0), GIMatchData_info);}()) {
3004 return false;
3005 }
3006 // Apply Patterns
3007 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_info);
3008 return true;
3009 }
3010 case GICXXCustomAction_GICombiner70:{
3011 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3012 // Match Patterns
3013 if(![&](){return Helper.matchSelect(*State.MIs[0], GIMatchData_matchinfo);}()) {
3014 return false;
3015 }
3016 // Apply Patterns
3017 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3018 return true;
3019 }
3020 case GICXXCustomAction_GICombiner71:{
3021 Register GIMatchData_matchinfo;
3022 // Match Patterns
3023 if(![&](){return Helper.matchRedundantAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3024 return false;
3025 }
3026 // Apply Patterns
3027 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3028 return true;
3029 }
3030 case GICXXCustomAction_GICombiner72:{
3031 // Match Patterns
3032 if(![&](){return Helper.matchRedundantSExtInReg(*State.MIs[0]);}()) {
3033 return false;
3034 }
3035 // Apply Patterns
3036 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 1);
3037 return true;
3038 }
3039 case GICXXCustomAction_GICombiner73:{
3040 Register GIMatchData_matchinfo;
3041 // Match Patterns
3042 if(![&](){return Helper.matchRedundantOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
3043 return false;
3044 }
3045 // Apply Patterns
3046 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3047 return true;
3048 }
3049 case GICXXCustomAction_GICombiner74:{
3050 // Match Patterns
3051 if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(*State.MIs[0], 2);}()) {
3052 return false;
3053 }
3054 // Apply Patterns
3055 Helper.applySimplifyURemByPow2(*State.MIs[0]);
3056 return true;
3057 }
3058 case GICXXCustomAction_GICombiner75:{
3059 Register GIMatchData_matchinfo;
3060 // Match Patterns
3061 if(![&](){return Helper.matchCombineZextTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
3062 return false;
3063 }
3064 // Apply Patterns
3065 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3066 return true;
3067 }
3068 case GICXXCustomAction_GICombiner76:{
3069 // Match Patterns
3070 if(![&](){unsigned BitWidth = MRI.getType(State.MIs[0]->getOperand(1).getReg()).getScalarSizeInBits();
3071 return Helper.getValueTracking()->maskedValueIsZero(State.MIs[0]->getOperand(1).getReg(),
3072 APInt::getOneBitSet(BitWidth, State.MIs[0]->getOperand(2).getImm() - 1));}()) {
3073 return false;
3074 }
3075 // Apply Patterns
3076 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
3077 Helper.getBuilder().buildZExtInReg(State.MIs[0]->getOperand(0), State.MIs[0]->getOperand(1), State.MIs[0]->getOperand(2).getImm());
3078 State.MIs[0]->eraseFromParent();
3079 return true;
3080 }
3081 case GICXXCustomAction_GICombiner77:{
3082 std::pair<MachineInstr*, LLT> GIMatchData_matchinfo;
3083 // Match Patterns
3084 if(![&](){return Helper.matchCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
3085 return false;
3086 }
3087 // Apply Patterns
3088 Helper.applyCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);
3089 return true;
3090 }
3091 case GICXXCustomAction_GICombiner78:{
3092 SmallVector<Register> GIMatchData_info;
3093 // Match Patterns
3094 if(![&](){return Helper.matchNotCmp(*State.MIs[0], GIMatchData_info);}()) {
3095 return false;
3096 }
3097 // Apply Patterns
3098 Helper.applyNotCmp(*State.MIs[0], GIMatchData_info);
3099 return true;
3100 }
3101 case GICXXCustomAction_GICombiner79:{
3102 MachineInstr * GIMatchData_matchinfo;
3103 // Match Patterns
3104 if(![&](){return Helper.matchOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);}()) {
3105 return false;
3106 }
3107 // Apply Patterns
3108 Helper.applyOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);
3109 return true;
3110 }
3111 case GICXXCustomAction_GICombiner80:{
3112 // Apply Patterns
3113 Helper.applyCombineConstantFoldFpUnary(*State.MIs[0], State.MIs[1]->getOperand(1).getFPImm());
3114 return true;
3115 }
3116 case GICXXCustomAction_GICombiner81:{
3117 // Apply Patterns
3118 Helper.replaceInstWithFConstant(*State.MIs[0]->getOperand(0).getParent(), 0.0);
3119 return true;
3120 }
3121 case GICXXCustomAction_GICombiner82:{
3122 APInt GIMatchData_info;
3123 // Match Patterns
3124 if(![&](){return Helper.matchCombineConstPtrAddToI2P(*State.MIs[0], GIMatchData_info);}()) {
3125 return false;
3126 }
3127 // Apply Patterns
3128 Helper.applyCombineConstPtrAddToI2P(*State.MIs[0], GIMatchData_info);
3129 return true;
3130 }
3131 case GICXXCustomAction_GICombiner83:{
3132 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3133 // Match Patterns
3134 if(![&](){return Helper.matchOverlappingAnd(*State.MIs[0], GIMatchData_info);}()) {
3135 return false;
3136 }
3137 // Apply Patterns
3138 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3139 return true;
3140 }
3141 case GICXXCustomAction_GICombiner84:{
3142 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3143 // Match Patterns
3144 if(![&](){return Helper.matchMulOBy2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3145 return false;
3146 }
3147 // Apply Patterns
3148 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3149 return true;
3150 }
3151 case GICXXCustomAction_GICombiner85:{
3152 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3153 // Match Patterns
3154 if(![&](){return Helper.matchMulOBy0(*State.MIs[0], GIMatchData_matchinfo);}()) {
3155 return false;
3156 }
3157 // Apply Patterns
3158 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3159 return true;
3160 }
3161 case GICXXCustomAction_GICombiner86:{
3162 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3163 // Match Patterns
3164 if(![&](){return Helper.matchAddEToAddO(*State.MIs[0], GIMatchData_matchinfo);}()) {
3165 return false;
3166 }
3167 // Apply Patterns
3168 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3169 return true;
3170 }
3171 case GICXXCustomAction_GICombiner87:{
3172 unsigned GIMatchData_info;
3173 // Match Patterns
3174 if(![&](){return Helper.matchCombineFMinMaxNaN(*State.MIs[0], GIMatchData_info);}()) {
3175 return false;
3176 }
3177 // Apply Patterns
3178 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_info);
3179 return true;
3180 }
3181 case GICXXCustomAction_GICombiner88:{
3182 // Match Patterns
3183 if(![&](){return Helper.matchFPowIExpansion(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());}()) {
3184 return false;
3185 }
3186 // Apply Patterns
3187 Helper.applyExpandFPowI(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());
3188 return true;
3189 }
3190 case GICXXCustomAction_GICombiner89:{
3191 std::pair<Register, Register> GIMatchData_matchinfo;
3192 // Match Patterns
3193 if(![&](){return Helper.matchXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3194 return false;
3195 }
3196 // Apply Patterns
3197 Helper.applyXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);
3198 return true;
3199 }
3200 case GICXXCustomAction_GICombiner90:{
3201 // Match Patterns
3202 if(![&](){return Helper.matchPtrAddZero(*State.MIs[0]);}()) {
3203 return false;
3204 }
3205 // Apply Patterns
3206 Helper.applyPtrAddZero(*State.MIs[0]);
3207 return true;
3208 }
3209 case GICXXCustomAction_GICombiner91:{
3210 RegisterImmPair GIMatchData_matchinfo;
3211 // Match Patterns
3212 if(![&](){return Helper.matchShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
3213 return false;
3214 }
3215 // Apply Patterns
3216 Helper.applyShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);
3217 return true;
3218 }
3219 case GICXXCustomAction_GICombiner92:{
3220 ShiftOfShiftedLogic GIMatchData_matchinfo;
3221 // Match Patterns
3222 if(![&](){return Helper.matchShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);}()) {
3223 return false;
3224 }
3225 // Apply Patterns
3226 Helper.applyShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);
3227 return true;
3228 }
3229 case GICXXCustomAction_GICombiner93:{
3230 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3231 // Match Patterns
3232 if(![&](){return Helper.matchLoadOrCombine(*State.MIs[0], GIMatchData_info);}()) {
3233 return false;
3234 }
3235 // Apply Patterns
3236 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3237 return true;
3238 }
3239 case GICXXCustomAction_GICombiner94:{
3240 MachineInstr * GIMatchData_matchinfo;
3241 // Match Patterns
3242 if(![&](){return Helper.matchCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);}()) {
3243 return false;
3244 }
3245 // Apply Patterns
3246 Helper.applyCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);
3247 return true;
3248 }
3249 case GICXXCustomAction_GICombiner95:{
3250 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3251 // Match Patterns
3252 if(![&](){return Helper.matchOrShiftToFunnelShift(*State.MIs[0], false, GIMatchData_info);}()) {
3253 return false;
3254 }
3255 // Apply Patterns
3256 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3257 return true;
3258 }
3259 case GICXXCustomAction_GICombiner96:{
3260 // Match Patterns
3261 if(![&](){return Helper.matchFunnelShiftToRotate(*State.MIs[0]);}()) {
3262 return false;
3263 }
3264 // Apply Patterns
3265 Helper.applyFunnelShiftToRotate(*State.MIs[0]);
3266 return true;
3267 }
3268 case GICXXCustomAction_GICombiner97:{
3269 // Match Patterns
3270 if(![&](){return Helper.matchConstantLargerBitWidth(*State.MIs[0], 3);}()) {
3271 return false;
3272 }
3273 // Apply Patterns
3274 Helper.applyFunnelShiftConstantModulo(*State.MIs[0]);
3275 return true;
3276 }
3277 case GICXXCustomAction_GICombiner98:{
3278 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3279 // Match Patterns
3280 if(![&](){return Helper.matchCommuteShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
3281 return false;
3282 }
3283 // Apply Patterns
3284 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3285 return true;
3286 }
3287 case GICXXCustomAction_GICombiner99:{
3288 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3289 // Match Patterns
3290 if(![&](){return Helper.matchBitfieldExtractFromSExtInReg(*State.MIs[0], GIMatchData_info);}()) {
3291 return false;
3292 }
3293 // Apply Patterns
3294 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3295 return true;
3296 }
3297 case GICXXCustomAction_GICombiner100:{
3298 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3299 // Match Patterns
3300 if(![&](){return Helper.matchBitfieldExtractFromAnd(*State.MIs[0], GIMatchData_info);}()) {
3301 return false;
3302 }
3303 // Apply Patterns
3304 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3305 return true;
3306 }
3307 case GICXXCustomAction_GICombiner101:{
3308 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3309 // Match Patterns
3310 if(![&](){return Helper.matchBitfieldExtractFromShr(*State.MIs[0], GIMatchData_info);}()) {
3311 return false;
3312 }
3313 // Apply Patterns
3314 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3315 return true;
3316 }
3317 case GICXXCustomAction_GICombiner102:{
3318 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3319 // Match Patterns
3320 if(![&](){return Helper.matchBitfieldExtractFromShrAnd(*State.MIs[0], GIMatchData_info);}()) {
3321 return false;
3322 }
3323 // Apply Patterns
3324 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3325 return true;
3326 }
3327 case GICXXCustomAction_GICombiner103:{
3328 APInt GIMatchData_matchinfo;
3329 // Match Patterns
3330 if(![&](){return Helper.matchConstantFoldBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3331 return false;
3332 }
3333 // Apply Patterns
3334 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3335 return true;
3336 }
3337 case GICXXCustomAction_GICombiner104:{
3338 ConstantFP* GIMatchData_matchinfo;
3339 // Match Patterns
3340 if(![&](){return Helper.matchConstantFoldFPBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3341 return false;
3342 }
3343 // Apply Patterns
3344 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3345 return true;
3346 }
3347 case GICXXCustomAction_GICombiner105:{
3348 ConstantFP* GIMatchData_matchinfo;
3349 // Match Patterns
3350 if(![&](){return Helper.matchConstantFoldFMA(*State.MIs[0], GIMatchData_matchinfo);}()) {
3351 return false;
3352 }
3353 // Apply Patterns
3354 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3355 return true;
3356 }
3357 case GICXXCustomAction_GICombiner106:{
3358 APInt GIMatchData_matchinfo;
3359 // Match Patterns
3360 if(![&](){return Helper.matchConstantFoldCastOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3361 return false;
3362 }
3363 // Apply Patterns
3364 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3365 return true;
3366 }
3367 case GICXXCustomAction_GICombiner107:{
3368 // Match Patterns
3369 if(![&](){return Helper.matchUMulHToLShr(*State.MIs[0]);}()) {
3370 return false;
3371 }
3372 // Apply Patterns
3373 Helper.applyUMulHToLShr(*State.MIs[0]);
3374 return true;
3375 }
3376 case GICXXCustomAction_GICombiner108:{
3377 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3378 // Match Patterns
3379 if(![&](){return Helper.matchRedundantNegOperands(*State.MIs[0], GIMatchData_matchinfo);}()) {
3380 return false;
3381 }
3382 // Apply Patterns
3383 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3384 return true;
3385 }
3386 case GICXXCustomAction_GICombiner109:{
3387 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3388 // Match Patterns
3389 if(![&](){return Helper.matchAndOrDisjointMask(*State.MIs[0], GIMatchData_info);}()) {
3390 return false;
3391 }
3392 // Apply Patterns
3393 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_info);
3394 return true;
3395 }
3396 case GICXXCustomAction_GICombiner110:{
3397 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3398 // Match Patterns
3399 if(![&](){return Helper.matchCombineFAddFMulToFMadOrFMA(*State.MIs[0],
3400 GIMatchData_info);}()) {
3401 return false;
3402 }
3403 // Apply Patterns
3404 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3405 return true;
3406 }
3407 case GICXXCustomAction_GICombiner111:{
3408 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3409 // Match Patterns
3410 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMA(*State.MIs[0],
3411 GIMatchData_info);}()) {
3412 return false;
3413 }
3414 // Apply Patterns
3415 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3416 return true;
3417 }
3418 case GICXXCustomAction_GICombiner112:{
3419 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3420 // Match Patterns
3421 if(![&](){return Helper.matchCombineFAddFMAFMulToFMadOrFMA(*State.MIs[0],
3422 GIMatchData_info);}()) {
3423 return false;
3424 }
3425 // Apply Patterns
3426 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3427 return true;
3428 }
3429 case GICXXCustomAction_GICombiner113:{
3430 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3431 // Match Patterns
3432 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMAAggressive(
3433 *State.MIs[0], GIMatchData_info);}()) {
3434 return false;
3435 }
3436 // Apply Patterns
3437 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3438 return true;
3439 }
3440 case GICXXCustomAction_GICombiner114:{
3441 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3442 // Match Patterns
3443 if(![&](){return Helper.matchCombineFSubFMulToFMadOrFMA(*State.MIs[0],
3444 GIMatchData_info);}()) {
3445 return false;
3446 }
3447 // Apply Patterns
3448 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3449 return true;
3450 }
3451 case GICXXCustomAction_GICombiner115:{
3452 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3453 // Match Patterns
3454 if(![&](){return Helper.matchCombineFSubFNegFMulToFMadOrFMA(*State.MIs[0],
3455 GIMatchData_info);}()) {
3456 return false;
3457 }
3458 // Apply Patterns
3459 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3460 return true;
3461 }
3462 case GICXXCustomAction_GICombiner116:{
3463 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3464 // Match Patterns
3465 if(![&](){return Helper.matchCombineFSubFpExtFMulToFMadOrFMA(*State.MIs[0],
3466 GIMatchData_info);}()) {
3467 return false;
3468 }
3469 // Apply Patterns
3470 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3471 return true;
3472 }
3473 case GICXXCustomAction_GICombiner117:{
3474 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3475 // Match Patterns
3476 if(![&](){return Helper.matchCombineFSubFpExtFNegFMulToFMadOrFMA(
3477 *State.MIs[0], GIMatchData_info);}()) {
3478 return false;
3479 }
3480 // Apply Patterns
3481 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3482 return true;
3483 }
3484 case GICXXCustomAction_GICombiner118:{
3485 unsigned GIMatchData_select_op_no;
3486 // Match Patterns
3487 if(![&](){return Helper.matchFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);}()) {
3488 return false;
3489 }
3490 // Apply Patterns
3491 Helper.applyFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);
3492 return true;
3493 }
3494 case GICXXCustomAction_GICombiner119:{
3495 // Match Patterns
3496 if(![&](){return Helper.matchUDivOrURemByConst(*State.MIs[0]);}()) {
3497 return false;
3498 }
3499 // Apply Patterns
3500 Helper.applyUDivOrURemByConst(*State.MIs[0]);
3501 return true;
3502 }
3503 case GICXXCustomAction_GICombiner120:{
3504 // Match Patterns
3505 if(![&](){return Helper.matchSDivOrSRemByConst(*State.MIs[0]);}()) {
3506 return false;
3507 }
3508 // Apply Patterns
3509 Helper.applySDivOrSRemByConst(*State.MIs[0]);
3510 return true;
3511 }
3512 case GICXXCustomAction_GICombiner121:{
3513 // Match Patterns
3514 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/false);}()) {
3515 return false;
3516 }
3517 // Apply Patterns
3518 Helper.applyUDivByPow2(*State.MIs[0]);
3519 return true;
3520 }
3521 case GICXXCustomAction_GICombiner122:{
3522 // Match Patterns
3523 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/true);}()) {
3524 return false;
3525 }
3526 // Apply Patterns
3527 Helper.applySDivByPow2(*State.MIs[0]);
3528 return true;
3529 }
3530 case GICXXCustomAction_GICombiner123:{
3531 SmallVector<MachineInstr *> GIMatchData_matchinfo;
3532 // Match Patterns
3533 if(![&](){return Helper.matchRepeatedFPDivisor(*State.MIs[0], GIMatchData_matchinfo);}()) {
3534 return false;
3535 }
3536 // Apply Patterns
3537 Helper.applyRepeatedFPDivisor(GIMatchData_matchinfo);
3538 return true;
3539 }
3540 case GICXXCustomAction_GICombiner124:{
3541 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3542 // Match Patterns
3543 if(![&](){return Helper.matchSubAddSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3544 return false;
3545 }
3546 // Apply Patterns
3547 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3548 return true;
3549 }
3550 case GICXXCustomAction_GICombiner125:{
3551 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3552 // Match Patterns
3553 if(![&](){return Helper.matchSimplifySelectToMinMax(*State.MIs[0], GIMatchData_info);}()) {
3554 return false;
3555 }
3556 // Apply Patterns
3557 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3558 return true;
3559 }
3560 case GICXXCustomAction_GICombiner126:{
3561 Register GIMatchData_matchinfo;
3562 // Match Patterns
3563 if(![&](){return Helper.matchFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3564 return false;
3565 }
3566 // Apply Patterns
3567 Helper.applyFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);
3568 return true;
3569 }
3570 case GICXXCustomAction_GICombiner127:{
3571 // Match Patterns
3572 if(![&](){return Helper.matchCommuteConstantToRHS(*State.MIs[0]);}()) {
3573 return false;
3574 }
3575 // Apply Patterns
3576 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
3577 return true;
3578 }
3579 case GICXXCustomAction_GICombiner128:{
3580 // Match Patterns
3581 if(![&](){return Helper.matchCommuteFPConstantToRHS(*State.MIs[0]);}()) {
3582 return false;
3583 }
3584 // Apply Patterns
3585 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
3586 return true;
3587 }
3588 case GICXXCustomAction_GICombiner129:{
3589 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3590 // Match Patterns
3591 if(![&](){return Helper.matchAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3592 return false;
3593 }
3594 // Apply Patterns
3595 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3596 return true;
3597 }
3598 case GICXXCustomAction_GICombiner130:{
3599 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3600 // Match Patterns
3601 if(![&](){return Helper.matchOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
3602 return false;
3603 }
3604 // Apply Patterns
3605 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3606 return true;
3607 }
3608 case GICXXCustomAction_GICombiner131:{
3609 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3610 // Match Patterns
3611 if(![&](){return Helper.matchSimplifyNegMinMax(*State.MIs[0], GIMatchData_matchinfo);}()) {
3612 return false;
3613 }
3614 // Apply Patterns
3615 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3616 return true;
3617 }
3618 case GICXXCustomAction_GICombiner132:{
3619 SmallVector<Register> GIMatchData_matchinfo;
3620 // Match Patterns
3621 if(![&](){return Helper.matchCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);}()) {
3622 return false;
3623 }
3624 // Apply Patterns
3625 Helper.applyCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);
3626 return true;
3627 }
3628 case GICXXCustomAction_GICombiner133:{
3629 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3630 // Match Patterns
3631 if(![&](){return Helper.matchSextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3632 return false;
3633 }
3634 // Apply Patterns
3635 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3636 return true;
3637 }
3638 case GICXXCustomAction_GICombiner134:{
3639 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3640 // Match Patterns
3641 if(![&](){return Helper.matchZextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3642 return false;
3643 }
3644 // Apply Patterns
3645 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3646 return true;
3647 }
3648 case GICXXCustomAction_GICombiner135:{
3649 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3650 // Match Patterns
3651 if(![&](){return Helper.matchNonNegZext(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3652 return false;
3653 }
3654 // Apply Patterns
3655 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3656 return true;
3657 }
3658 case GICXXCustomAction_GICombiner136:{
3659 SmallVector<Register> GIMatchData_matchinfo;
3660 // Match Patterns
3661 if(![&](){return Helper.matchCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);}()) {
3662 return false;
3663 }
3664 // Apply Patterns
3665 Helper.applyCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);
3666 return true;
3667 }
3668 case GICXXCustomAction_GICombiner137:{
3669 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3670 // Match Patterns
3671 if(![&](){return Helper.matchShuffleUndefRHS(*State.MIs[0], GIMatchData_matchinfo);}()) {
3672 return false;
3673 }
3674 // Apply Patterns
3675 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3676 return true;
3677 }
3678 case GICXXCustomAction_GICombiner138:{
3679 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3680 // Match Patterns
3681 if(![&](){return Helper.matchShuffleDisjointMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
3682 return false;
3683 }
3684 // Apply Patterns
3685 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3686 return true;
3687 }
3688 case GICXXCustomAction_GICombiner139:{
3689 Register GIMatchData_matchinfo;
3690 // Match Patterns
3691 if(![&](){return Helper.matchUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);}()) {
3692 return false;
3693 }
3694 // Apply Patterns
3695 Helper.applyUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);
3696 return true;
3697 }
3698 case GICXXCustomAction_GICombiner140:{
3699 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3700 // Match Patterns
3701 if(![&](){return Helper.matchUnmergeValuesAnyExtBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
3702 return false;
3703 }
3704 // Apply Patterns
3705 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3706 return true;
3707 }
3708 case GICXXCustomAction_GICombiner141:{
3709 SmallVector<Register> GIMatchData_info;
3710 // Match Patterns
3711 if(![&](){return Helper.matchCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);}()) {
3712 return false;
3713 }
3714 // Apply Patterns
3715 Helper.applyCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);
3716 return true;
3717 }
3718 case GICXXCustomAction_GICombiner142:{
3719 Register GIMatchData_src;
3720 // Match Patterns
3721 if(![&](){// Check if first source comes from G_UNMERGE_VALUES.
3722 Register FirstMergeSrc = getRemainingOperands(*State.MIs[0], 1)[0].getReg();
3723 MachineInstr *UnmergeMI = MRI.getVRegDef(FirstMergeSrc);
3724 if (!UnmergeMI || UnmergeMI->getOpcode() != TargetOpcode::G_UNMERGE_VALUES)
3725 return false;
3726
3727 // Check counts match.
3728 unsigned NumMergeSrcs = getRemainingOperands(*State.MIs[0], 1).size();
3729 unsigned NumUnmergeDefs = UnmergeMI->getNumDefs();
3730 if (NumMergeSrcs != NumUnmergeDefs)
3731 return false;
3732
3733 // Verify all merge sources match unmerge defs in order.
3734 for (unsigned I = 0; I < NumMergeSrcs; ++I) {
3735 Register MergeSrc = getRemainingOperands(*State.MIs[0], 1)[I].getReg();
3736 Register UnmergeDef = UnmergeMI->getOperand(I).getReg();
3737
3738 if (MergeSrc != UnmergeDef)
3739 return false;
3740
3741 if (!MRI.hasOneNonDBGUse(MergeSrc))
3742 return false;
3743 }
3744
3745 // Check size compatibility.
3746 GIMatchData_src = UnmergeMI->getOperand(NumUnmergeDefs).getReg();
3747 LLT SrcTy = MRI.getType(GIMatchData_src);
3748 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
3749 if (SrcTy.getSizeInBits() != DstTy.getSizeInBits())
3750 return false;
3751
3752 // Check bitcast legality.
3753 if (SrcTy != DstTy) {
3754 std::array<LLT, 2> Types = {{DstTy, SrcTy}};
3755 LegalityQuery Query(TargetOpcode::G_BITCAST, Types);
3756 if (!Helper.isLegalOrBeforeLegalizer(Query))
3757 return false;
3758 }
3759
3760 return true;}()) {
3761 return false;
3762 }
3763 // Apply Patterns
3764 LLT SrcTy = MRI.getType(GIMatchData_src);
3765 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
3766
3767 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
3768
3769 if (SrcTy == DstTy) {
3770 Helper.replaceRegWith(MRI, State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
3771 } else {
3772 Helper.getBuilder().buildBitcast(State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
3773 }
3774
3775 State.MIs[0]->eraseFromParent();
3776 return true;
3777 }
3778 case GICXXCustomAction_GICombiner143:{
3779 SmallVector<APInt, 8> GIMatchData_info;
3780 // Match Patterns
3781 if(![&](){return Helper.matchCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);}()) {
3782 return false;
3783 }
3784 // Apply Patterns
3785 Helper.applyCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);
3786 return true;
3787 }
3788 case GICXXCustomAction_GICombiner144:{
3789 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3790 // Match Patterns
3791 if(![&](){return Helper.matchCombineUnmergeUndef(*State.MIs[0], GIMatchData_info);}()) {
3792 return false;
3793 }
3794 // Apply Patterns
3795 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3796 return true;
3797 }
3798 case GICXXCustomAction_GICombiner145:{
3799 // Match Patterns
3800 if(![&](){return Helper.matchCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);}()) {
3801 return false;
3802 }
3803 // Apply Patterns
3804 Helper.applyCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);
3805 return true;
3806 }
3807 case GICXXCustomAction_GICombiner146:{
3808 // Match Patterns
3809 if(![&](){return Helper.matchCombineUnmergeZExtToZExt(*State.MIs[0]);}()) {
3810 return false;
3811 }
3812 // Apply Patterns
3813 Helper.applyCombineUnmergeZExtToZExt(*State.MIs[0]);
3814 return true;
3815 }
3816 case GICXXCustomAction_GICombiner147:{
3817 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3818 // Match Patterns
3819 if(![&](){return Helper.matchMergeXAndUndef(*State.MIs[0], GIMatchData_matchinfo);}()) {
3820 return false;
3821 }
3822 // Apply Patterns
3823 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3824 return true;
3825 }
3826 case GICXXCustomAction_GICombiner148:{
3827 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3828 // Match Patterns
3829 if(![&](){return Helper.matchMergeXAndZero(*State.MIs[0], GIMatchData_matchinfo);}()) {
3830 return false;
3831 }
3832 // Apply Patterns
3833 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3834 return true;
3835 }
3836 case GICXXCustomAction_GICombiner149:{
3837 Register GIMatchData_unmergeSrc;
3838 // Match Patterns
3839 if(![&](){return Helper.matchCombineBuildUnmerge(*State.MIs[0], MRI, GIMatchData_unmergeSrc);}()) {
3840 return false;
3841 }
3842 // Apply Patterns
3843 Helper.applyCombineBuildUnmerge(*State.MIs[0], MRI, B, GIMatchData_unmergeSrc);
3844 return true;
3845 }
3846 case GICXXCustomAction_GICombiner150:{
3847 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3848 // Match Patterns
3849 if(![&](){return Helper.matchAddOverflow(*State.MIs[0], GIMatchData_matchinfo);}()) {
3850 return false;
3851 }
3852 // Apply Patterns
3853 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3854 return true;
3855 }
3856 case GICXXCustomAction_GICombiner151:{
3857 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3858 // Match Patterns
3859 if(![&](){return Helper.matchSuboCarryOut(*State.MIs[0], GIMatchData_matchinfo);}()) {
3860 return false;
3861 }
3862 // Apply Patterns
3863 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3864 return true;
3865 }
3866 case GICXXCustomAction_GICombiner152:{
3867 Register GIMatchData_matchinfo;
3868 // Match Patterns
3869 if(![&](){return Helper.matchTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);}()) {
3870 return false;
3871 }
3872 // Apply Patterns
3873 Helper.applyTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);
3874 return true;
3875 }
3876 case GICXXCustomAction_GICombiner153:{
3877 Register GIMatchData_matchinfo;
3878 // Match Patterns
3879 if(![&](){return Helper.matchTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);}()) {
3880 return false;
3881 }
3882 // Apply Patterns
3883 Helper.applyTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);
3884 return true;
3885 }
3886 case GICXXCustomAction_GICombiner154:{
3887 LshrOfTruncOfLshr GIMatchData_matchinfo;
3888 // Match Patterns
3889 if(![&](){return Helper.matchLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo, *State.MIs[2]);}()) {
3890 return false;
3891 }
3892 // Apply Patterns
3893 Helper.applyLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo);
3894 return true;
3895 }
3896 case GICXXCustomAction_GICombiner155:{
3897 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3898 // Match Patterns
3899 if(![&](){return Helper.matchCtls(*State.MIs[0], GIMatchData_matchinfo);}()) {
3900 return false;
3901 }
3902 // Apply Patterns
3903 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3904 return true;
3905 }
3906 case GICXXCustomAction_GICombiner156:{
3907 FMinFMaxLegacyInfo GIMatchData_matchinfo;
3908 // Match Patterns
3909 if(![&](){return matchFMinFMaxLegacy(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3910 return false;
3911 }
3912 // Apply Patterns
3913 applySelectFCmpToFMinFMaxLegacy(*State.MIs[0], GIMatchData_matchinfo);
3914 return true;
3915 }
3916 case GICXXCustomAction_GICombiner157:{
3917 // Match Patterns
3918 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());}()) {
3919 return false;
3920 }
3921 // Apply Patterns
3922 Helper.applyExpandPromotedF16FMed3(*State.MIs[0], State.MIs[1]->getOperand(1).getReg(), State.MIs[1]->getOperand(2).getReg(), State.MIs[1]->getOperand(3).getReg());
3923 return true;
3924 }
3925 case GICXXCustomAction_GICombiner158:{
3926 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3927 // Match Patterns
3928 if(![&](){return Helper.matchCombineFmulWithSelectToFldexp(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3929 return false;
3930 }
3931 // Apply Patterns
3932 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3933 return true;
3934 }
3935 case GICXXCustomAction_GICombiner159:{
3936 // Match Patterns
3937 if(![&](){return matchUCharToFloat(*State.MIs[0]);}()) {
3938 return false;
3939 }
3940 // Apply Patterns
3941 applyUCharToFloat(*State.MIs[0]);
3942 return true;
3943 }
3944 case GICXXCustomAction_GICombiner160:{
3945 CvtF32UByteMatchInfo GIMatchData_matchinfo;
3946 // Match Patterns
3947 if(![&](){return matchCvtF32UByteN(*State.MIs[0], GIMatchData_matchinfo);}()) {
3948 return false;
3949 }
3950 // Apply Patterns
3951 applyCvtF32UByteN(*State.MIs[0], GIMatchData_matchinfo);
3952 return true;
3953 }
3954 case GICXXCustomAction_GICombiner161:{
3955 Register GIMatchData_matchinfo;
3956 // Match Patterns
3957 if(![&](){return matchRemoveFcanonicalize(*State.MIs[0], GIMatchData_matchinfo);}()) {
3958 return false;
3959 }
3960 // Apply Patterns
3961 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3962 return true;
3963 }
3964 case GICXXCustomAction_GICombiner162:{
3965 MachineInstr * GIMatchData_matchinfo;
3966 // Match Patterns
3967 if(![&](){return Helper.matchFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3968 return false;
3969 }
3970 // Apply Patterns
3971 Helper.applyFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);
3972 return true;
3973 }
3974 case GICXXCustomAction_GICombiner163:{
3975 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3976 // Match Patterns
3977 if(![&](){return matchRcpSqrtToRsq(*State.MIs[0], GIMatchData_matchinfo);}()) {
3978 return false;
3979 }
3980 // Apply Patterns
3981 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3982 return true;
3983 }
3984 case GICXXCustomAction_GICombiner164:{
3985 // Match Patterns
3986 if(![&](){return matchFDivSqrtToRsqF16(*State.MIs[0]);}()) {
3987 return false;
3988 }
3989 // Apply Patterns
3990 applyFDivSqrtToRsqF16(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
3991 return true;
3992 }
3993 case GICXXCustomAction_GICombiner165:{
3994 std::pair<MachineInstr *, unsigned> GIMatchData_matchinfo;
3995 // Match Patterns
3996 if(![&](){return matchCombineSignExtendInReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3997 return false;
3998 }
3999 // Apply Patterns
4000 applyCombineSignExtendInReg(*State.MIs[0], GIMatchData_matchinfo);
4001 return true;
4002 }
4003 case GICXXCustomAction_GICombiner166:{
4004 unsigned GIMatchData_matchinfo;
4005 // Match Patterns
4006 if(![&](){return matchCombine_s_mul_u64(*State.MIs[0], GIMatchData_matchinfo);}()) {
4007 return false;
4008 }
4009 // Apply Patterns
4010 Helper.replaceOpcodeWith(*State.MIs[0], GIMatchData_matchinfo);
4011 return true;
4012 }
4013 }
4014 llvm_unreachable("Unknown Apply Action");
4015}
4016#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
4017#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((Val) >> 8)
4018#define GIMT_Encode4(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_t((Val) >> 24)
4019#define GIMT_Encode8(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_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)
4020#else
4021#define GIMT_Encode2(Val) uint8_t((Val) >> 8), uint8_t(Val)
4022#define GIMT_Encode4(Val) uint8_t((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
4023#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((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
4024#endif
4025const uint8_t *AMDGPUPostLegalizerCombinerImpl::getMatchTable() const {
4026 constexpr static uint8_t MatchTable0[] = {
4027 /* 0 */ GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(20), GIMT_Encode2(4019), /*)*//*default:*//*Label 111*/ GIMT_Encode4(23784),
4028 /* 10 */ /*TargetOpcode::COPY*//*Label 0*/ GIMT_Encode4(16006), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4029 /* 150 */ /*TargetOpcode::G_ADD*//*Label 1*/ GIMT_Encode4(16018),
4030 /* 154 */ /*TargetOpcode::G_SUB*//*Label 2*/ GIMT_Encode4(16751),
4031 /* 158 */ /*TargetOpcode::G_MUL*//*Label 3*/ GIMT_Encode4(17159),
4032 /* 162 */ /*TargetOpcode::G_SDIV*//*Label 4*/ GIMT_Encode4(17376),
4033 /* 166 */ /*TargetOpcode::G_UDIV*//*Label 5*/ GIMT_Encode4(17478),
4034 /* 170 */ /*TargetOpcode::G_SREM*//*Label 6*/ GIMT_Encode4(17591),
4035 /* 174 */ /*TargetOpcode::G_UREM*//*Label 7*/ GIMT_Encode4(17676), GIMT_Encode4(0), GIMT_Encode4(0),
4036 /* 186 */ /*TargetOpcode::G_AND*//*Label 8*/ GIMT_Encode4(17783),
4037 /* 190 */ /*TargetOpcode::G_OR*//*Label 9*/ GIMT_Encode4(18178),
4038 /* 194 */ /*TargetOpcode::G_XOR*//*Label 10*/ GIMT_Encode4(18899), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4039 /* 226 */ /*TargetOpcode::G_PHI*//*Label 11*/ GIMT_Encode4(19000), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4040 /* 250 */ /*TargetOpcode::G_UNMERGE_VALUES*//*Label 12*/ GIMT_Encode4(19012), GIMT_Encode4(0),
4041 /* 258 */ /*TargetOpcode::G_MERGE_VALUES*//*Label 13*/ GIMT_Encode4(19079),
4042 /* 262 */ /*TargetOpcode::G_BUILD_VECTOR*//*Label 14*/ GIMT_Encode4(19156),
4043 /* 266 */ /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 15*/ GIMT_Encode4(19221),
4044 /* 270 */ /*TargetOpcode::G_CONCAT_VECTORS*//*Label 16*/ GIMT_Encode4(19233),
4045 /* 274 */ /*TargetOpcode::G_PTRTOINT*//*Label 17*/ GIMT_Encode4(19245),
4046 /* 278 */ /*TargetOpcode::G_INTTOPTR*//*Label 18*/ GIMT_Encode4(19288),
4047 /* 282 */ /*TargetOpcode::G_BITCAST*//*Label 19*/ GIMT_Encode4(19321),
4048 /* 286 */ /*TargetOpcode::G_FREEZE*//*Label 20*/ GIMT_Encode4(19364), GIMT_Encode4(0), GIMT_Encode4(0),
4049 /* 298 */ /*TargetOpcode::G_INTRINSIC_TRUNC*//*Label 21*/ GIMT_Encode4(19428),
4050 /* 302 */ /*TargetOpcode::G_INTRINSIC_ROUND*//*Label 22*/ GIMT_Encode4(19450), GIMT_Encode4(0), GIMT_Encode4(0),
4051 /* 314 */ /*TargetOpcode::G_INTRINSIC_ROUNDEVEN*//*Label 23*/ GIMT_Encode4(19472), GIMT_Encode4(0), GIMT_Encode4(0),
4052 /* 326 */ /*TargetOpcode::G_LOAD*//*Label 24*/ GIMT_Encode4(19494),
4053 /* 330 */ /*TargetOpcode::G_SEXTLOAD*//*Label 25*/ GIMT_Encode4(19506),
4054 /* 334 */ /*TargetOpcode::G_ZEXTLOAD*//*Label 26*/ GIMT_Encode4(19518), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4055 /* 350 */ /*TargetOpcode::G_STORE*//*Label 27*/ GIMT_Encode4(19530), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4056 /* 470 */ /*TargetOpcode::G_INTRINSIC*//*Label 28*/ GIMT_Encode4(19542), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4057 /* 486 */ /*TargetOpcode::G_ANYEXT*//*Label 29*/ GIMT_Encode4(19554),
4058 /* 490 */ /*TargetOpcode::G_TRUNC*//*Label 30*/ GIMT_Encode4(19682), GIMT_Encode4(0), GIMT_Encode4(0),
4059 /* 502 */ /*TargetOpcode::G_TRUNC_USAT_U*//*Label 31*/ GIMT_Encode4(20094), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4060 /* 522 */ /*TargetOpcode::G_SEXT*//*Label 32*/ GIMT_Encode4(20127),
4061 /* 526 */ /*TargetOpcode::G_SEXT_INREG*//*Label 33*/ GIMT_Encode4(20202),
4062 /* 530 */ /*TargetOpcode::G_ZEXT*//*Label 34*/ GIMT_Encode4(20279),
4063 /* 534 */ /*TargetOpcode::G_SHL*//*Label 35*/ GIMT_Encode4(20409),
4064 /* 538 */ /*TargetOpcode::G_LSHR*//*Label 36*/ GIMT_Encode4(20607),
4065 /* 542 */ /*TargetOpcode::G_ASHR*//*Label 37*/ GIMT_Encode4(20788),
4066 /* 546 */ /*TargetOpcode::G_FSHL*//*Label 38*/ GIMT_Encode4(20951),
4067 /* 550 */ /*TargetOpcode::G_FSHR*//*Label 39*/ GIMT_Encode4(20994),
4068 /* 554 */ /*TargetOpcode::G_ROTR*//*Label 40*/ GIMT_Encode4(21037),
4069 /* 558 */ /*TargetOpcode::G_ROTL*//*Label 41*/ GIMT_Encode4(21061),
4070 /* 562 */ /*TargetOpcode::G_ICMP*//*Label 42*/ GIMT_Encode4(21085),
4071 /* 566 */ /*TargetOpcode::G_FCMP*//*Label 43*/ GIMT_Encode4(21130), GIMT_Encode4(0), GIMT_Encode4(0),
4072 /* 578 */ /*TargetOpcode::G_SELECT*//*Label 44*/ GIMT_Encode4(21142),
4073 /* 582 */ /*TargetOpcode::G_UADDO*//*Label 45*/ GIMT_Encode4(21264),
4074 /* 586 */ /*TargetOpcode::G_UADDE*//*Label 46*/ GIMT_Encode4(21287),
4075 /* 590 */ /*TargetOpcode::G_USUBO*//*Label 47*/ GIMT_Encode4(21299),
4076 /* 594 */ /*TargetOpcode::G_USUBE*//*Label 48*/ GIMT_Encode4(21311),
4077 /* 598 */ /*TargetOpcode::G_SADDO*//*Label 49*/ GIMT_Encode4(21323),
4078 /* 602 */ /*TargetOpcode::G_SADDE*//*Label 50*/ GIMT_Encode4(21346),
4079 /* 606 */ /*TargetOpcode::G_SSUBO*//*Label 51*/ GIMT_Encode4(21358),
4080 /* 610 */ /*TargetOpcode::G_SSUBE*//*Label 52*/ GIMT_Encode4(21370),
4081 /* 614 */ /*TargetOpcode::G_UMULO*//*Label 53*/ GIMT_Encode4(21382),
4082 /* 618 */ /*TargetOpcode::G_SMULO*//*Label 54*/ GIMT_Encode4(21416),
4083 /* 622 */ /*TargetOpcode::G_UMULH*//*Label 55*/ GIMT_Encode4(21450),
4084 /* 626 */ /*TargetOpcode::G_SMULH*//*Label 56*/ GIMT_Encode4(21473),
4085 /* 630 */ /*TargetOpcode::G_UADDSAT*//*Label 57*/ GIMT_Encode4(21485),
4086 /* 634 */ /*TargetOpcode::G_SADDSAT*//*Label 58*/ GIMT_Encode4(21497), GIMT_Encode4(0), GIMT_Encode4(0),
4087 /* 646 */ /*TargetOpcode::G_USHLSAT*//*Label 59*/ GIMT_Encode4(21509),
4088 /* 650 */ /*TargetOpcode::G_SSHLSAT*//*Label 60*/ GIMT_Encode4(21532),
4089 /* 654 */ /*TargetOpcode::G_SMULFIX*//*Label 61*/ GIMT_Encode4(21555),
4090 /* 658 */ /*TargetOpcode::G_UMULFIX*//*Label 62*/ GIMT_Encode4(21567),
4091 /* 662 */ /*TargetOpcode::G_SMULFIXSAT*//*Label 63*/ GIMT_Encode4(21579),
4092 /* 666 */ /*TargetOpcode::G_UMULFIXSAT*//*Label 64*/ GIMT_Encode4(21591), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4093 /* 686 */ /*TargetOpcode::G_FADD*//*Label 65*/ GIMT_Encode4(21603),
4094 /* 690 */ /*TargetOpcode::G_FSUB*//*Label 66*/ GIMT_Encode4(21744),
4095 /* 694 */ /*TargetOpcode::G_FMUL*//*Label 67*/ GIMT_Encode4(21833),
4096 /* 698 */ /*TargetOpcode::G_FMA*//*Label 68*/ GIMT_Encode4(21942),
4097 /* 702 */ /*TargetOpcode::G_FMAD*//*Label 69*/ GIMT_Encode4(21965),
4098 /* 706 */ /*TargetOpcode::G_FDIV*//*Label 70*/ GIMT_Encode4(21988),
4099 /* 710 */ /*TargetOpcode::G_FREM*//*Label 71*/ GIMT_Encode4(22072), GIMT_Encode4(0), GIMT_Encode4(0),
4100 /* 722 */ /*TargetOpcode::G_FPOWI*//*Label 72*/ GIMT_Encode4(22084), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4101 /* 742 */ /*TargetOpcode::G_FLOG2*//*Label 73*/ GIMT_Encode4(22106), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4102 /* 758 */ /*TargetOpcode::G_FNEG*//*Label 74*/ GIMT_Encode4(22128),
4103 /* 762 */ /*TargetOpcode::G_FPEXT*//*Label 75*/ GIMT_Encode4(22190),
4104 /* 766 */ /*TargetOpcode::G_FPTRUNC*//*Label 76*/ GIMT_Encode4(22212),
4105 /* 770 */ /*TargetOpcode::G_FPTOSI*//*Label 77*/ GIMT_Encode4(22279),
4106 /* 774 */ /*TargetOpcode::G_FPTOUI*//*Label 78*/ GIMT_Encode4(22301),
4107 /* 778 */ /*TargetOpcode::G_SITOFP*//*Label 79*/ GIMT_Encode4(22323),
4108 /* 782 */ /*TargetOpcode::G_UITOFP*//*Label 80*/ GIMT_Encode4(22361), GIMT_Encode4(0), GIMT_Encode4(0),
4109 /* 794 */ /*TargetOpcode::G_FABS*//*Label 81*/ GIMT_Encode4(22399), GIMT_Encode4(0), GIMT_Encode4(0),
4110 /* 806 */ /*TargetOpcode::G_FCANONICALIZE*//*Label 82*/ GIMT_Encode4(22478),
4111 /* 810 */ /*TargetOpcode::G_FMINNUM*//*Label 83*/ GIMT_Encode4(22519),
4112 /* 814 */ /*TargetOpcode::G_FMAXNUM*//*Label 84*/ GIMT_Encode4(22553),
4113 /* 818 */ /*TargetOpcode::G_FMINNUM_IEEE*//*Label 85*/ GIMT_Encode4(22587),
4114 /* 822 */ /*TargetOpcode::G_FMAXNUM_IEEE*//*Label 86*/ GIMT_Encode4(22599),
4115 /* 826 */ /*TargetOpcode::G_FMINIMUM*//*Label 87*/ GIMT_Encode4(22611),
4116 /* 830 */ /*TargetOpcode::G_FMAXIMUM*//*Label 88*/ GIMT_Encode4(22645), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4117 /* 874 */ /*TargetOpcode::G_PTR_ADD*//*Label 89*/ GIMT_Encode4(22679), GIMT_Encode4(0),
4118 /* 882 */ /*TargetOpcode::G_SMIN*//*Label 90*/ GIMT_Encode4(22769),
4119 /* 886 */ /*TargetOpcode::G_SMAX*//*Label 91*/ GIMT_Encode4(22803),
4120 /* 890 */ /*TargetOpcode::G_UMIN*//*Label 92*/ GIMT_Encode4(22837),
4121 /* 894 */ /*TargetOpcode::G_UMAX*//*Label 93*/ GIMT_Encode4(22871),
4122 /* 898 */ /*TargetOpcode::G_ABS*//*Label 94*/ GIMT_Encode4(22905), GIMT_Encode4(0), GIMT_Encode4(0),
4123 /* 910 */ /*TargetOpcode::G_BR*//*Label 95*/ GIMT_Encode4(22917), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4124 /* 930 */ /*TargetOpcode::G_INSERT_VECTOR_ELT*//*Label 96*/ GIMT_Encode4(22929),
4125 /* 934 */ /*TargetOpcode::G_EXTRACT_VECTOR_ELT*//*Label 97*/ GIMT_Encode4(23059),
4126 /* 938 */ /*TargetOpcode::G_SHUFFLE_VECTOR*//*Label 98*/ GIMT_Encode4(23436), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4127 /* 962 */ /*TargetOpcode::G_CTLZ*//*Label 99*/ GIMT_Encode4(23502),
4128 /* 966 */ /*TargetOpcode::G_CTLZ_ZERO_UNDEF*//*Label 100*/ GIMT_Encode4(23514), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4129 /* 982 */ /*TargetOpcode::G_BITREVERSE*//*Label 101*/ GIMT_Encode4(23526),
4130 /* 986 */ /*TargetOpcode::G_FCEIL*//*Label 102*/ GIMT_Encode4(23615), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4131 /* 1034 */ /*TargetOpcode::G_FSQRT*//*Label 103*/ GIMT_Encode4(23637),
4132 /* 1038 */ /*TargetOpcode::G_FFLOOR*//*Label 104*/ GIMT_Encode4(23670),
4133 /* 1042 */ /*TargetOpcode::G_FRINT*//*Label 105*/ GIMT_Encode4(23692),
4134 /* 1046 */ /*TargetOpcode::G_FNEARBYINT*//*Label 106*/ GIMT_Encode4(23714), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4135 /* 15990 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE0*//*Label 107*/ GIMT_Encode4(23736),
4136 /* 15994 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE1*//*Label 108*/ GIMT_Encode4(23748),
4137 /* 15998 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE2*//*Label 109*/ GIMT_Encode4(23760),
4138 /* 16002 */ /*AMDGPU::G_AMDGPU_CVT_F32_UBYTE3*//*Label 110*/ GIMT_Encode4(23772),
4139 /* 16006 */ // Label 0: @16006
4140 /* 16006 */ GIM_Try, /*On fail goto*//*Label 112*/ GIMT_Encode4(16017), // Rule ID 15 //
4141 /* 16011 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
4142 /* 16014 */ // MIs[0] d
4143 /* 16014 */ // No operand predicates
4144 /* 16014 */ // MIs[0] s
4145 /* 16014 */ // No operand predicates
4146 /* 16014 */ // Combiner Rule #15: copy_prop
4147 /* 16014 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner5),
4148 /* 16017 */ // Label 112: @16017
4149 /* 16017 */ GIM_Reject,
4150 /* 16018 */ // Label 1: @16018
4151 /* 16018 */ GIM_Try, /*On fail goto*//*Label 113*/ GIMT_Encode4(16029), // Rule ID 18 //
4152 /* 16023 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
4153 /* 16026 */ // Combiner Rule #18: add_p2i_to_ptradd; wip_match_opcode 'G_ADD'
4154 /* 16026 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner8),
4155 /* 16029 */ // Label 113: @16029
4156 /* 16029 */ GIM_Try, /*On fail goto*//*Label 114*/ GIMT_Encode4(16040), // Rule ID 96 //
4157 /* 16034 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
4158 /* 16037 */ // Combiner Rule #80: propagate_undef_any_op; wip_match_opcode 'G_ADD'
4159 /* 16037 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
4160 /* 16040 */ // Label 114: @16040
4161 /* 16040 */ GIM_Try, /*On fail goto*//*Label 115*/ GIMT_Encode4(16051), // Rule ID 145 //
4162 /* 16045 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
4163 /* 16048 */ // Combiner Rule #106: simplify_add_to_sub; wip_match_opcode 'G_ADD'
4164 /* 16048 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner53),
4165 /* 16051 */ // Label 115: @16051
4166 /* 16051 */ GIM_Try, /*On fail goto*//*Label 116*/ GIMT_Encode4(16062), // Rule ID 247 //
4167 /* 16056 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
4168 /* 16059 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_ADD'
4169 /* 16059 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4170 /* 16062 */ // Label 116: @16062
4171 /* 16062 */ GIM_Try, /*On fail goto*//*Label 117*/ GIMT_Encode4(16073), // Rule ID 291 //
4172 /* 16067 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
4173 /* 16070 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_ADD'
4174 /* 16070 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
4175 /* 16073 */ // Label 117: @16073
4176 /* 16073 */ GIM_Try, /*On fail goto*//*Label 118*/ GIMT_Encode4(16084), // Rule ID 327 //
4177 /* 16078 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
4178 /* 16081 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_ADD'
4179 /* 16081 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
4180 /* 16084 */ // Label 118: @16084
4181 /* 16084 */ GIM_Try, /*On fail goto*//*Label 119*/ GIMT_Encode4(16172), // Rule ID 389 //
4182 /* 16089 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule238Enabled),
4183 /* 16092 */ // MIs[0] dst
4184 /* 16092 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4185 /* 16096 */ // MIs[0] __add_shift_match_0.shl_neg
4186 /* 16096 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4187 /* 16100 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
4188 /* 16104 */ // MIs[1] __add_shift_match_0.neg_y
4189 /* 16104 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4190 /* 16108 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4191 /* 16112 */ // MIs[2] __add_shift_match_0.zero
4192 /* 16112 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
4193 /* 16116 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4194 /* 16120 */ // MIs[3] Operand 1
4195 /* 16120 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
4196 /* 16131 */ // MIs[2] y
4197 /* 16131 */ // No operand predicates
4198 /* 16131 */ // MIs[1] n
4199 /* 16131 */ // No operand predicates
4200 /* 16131 */ // MIs[0] x
4201 /* 16131 */ // No operand predicates
4202 /* 16131 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner14),
4203 /* 16135 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4204 /* 16137 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4205 /* 16140 */ // Combiner Rule #238: add_shift @ [__add_shift_match_0[1]]
4206 /* 16140 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
4207 /* 16143 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4208 /* 16148 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
4209 /* 16152 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
4210 /* 16156 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4211 /* 16160 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4212 /* 16164 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // x
4213 /* 16168 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4214 /* 16171 */ GIR_EraseRootFromParent_Done,
4215 /* 16172 */ // Label 119: @16172
4216 /* 16172 */ GIM_Try, /*On fail goto*//*Label 120*/ GIMT_Encode4(16260), // Rule ID 388 //
4217 /* 16177 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule238Enabled),
4218 /* 16180 */ // MIs[0] dst
4219 /* 16180 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4220 /* 16184 */ // MIs[0] x
4221 /* 16184 */ // No operand predicates
4222 /* 16184 */ // MIs[0] __add_shift_match_0.shl_neg
4223 /* 16184 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4224 /* 16188 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
4225 /* 16192 */ // MIs[1] __add_shift_match_0.neg_y
4226 /* 16192 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4227 /* 16196 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4228 /* 16200 */ // MIs[2] __add_shift_match_0.zero
4229 /* 16200 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
4230 /* 16204 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4231 /* 16208 */ // MIs[3] Operand 1
4232 /* 16208 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
4233 /* 16219 */ // MIs[2] y
4234 /* 16219 */ // No operand predicates
4235 /* 16219 */ // MIs[1] n
4236 /* 16219 */ // No operand predicates
4237 /* 16219 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
4238 /* 16223 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4239 /* 16225 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4240 /* 16228 */ // Combiner Rule #238: add_shift @ [__add_shift_match_0[0]]
4241 /* 16228 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
4242 /* 16231 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4243 /* 16236 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
4244 /* 16240 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
4245 /* 16244 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4246 /* 16248 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4247 /* 16252 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // x
4248 /* 16256 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4249 /* 16259 */ GIR_EraseRootFromParent_Done,
4250 /* 16260 */ // Label 120: @16260
4251 /* 16260 */ GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(16294), // Rule ID 2 //
4252 /* 16265 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
4253 /* 16268 */ // MIs[0] root
4254 /* 16268 */ // No operand predicates
4255 /* 16268 */ // MIs[0] sub
4256 /* 16268 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4257 /* 16272 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4258 /* 16276 */ // MIs[1] Operand 1
4259 /* 16276 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
4260 /* 16280 */ // MIs[1] A
4261 /* 16280 */ // No operand predicates
4262 /* 16280 */ // MIs[0] B
4263 /* 16280 */ // No operand predicates
4264 /* 16280 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4265 /* 16282 */ // Combiner Rule #2: ZeroMinusAPlusB
4266 /* 16282 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4267 /* 16285 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4268 /* 16287 */ GIR_RootToRootCopy, /*OpIdx*/2, // B
4269 /* 16289 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // A
4270 /* 16293 */ GIR_EraseRootFromParent_Done,
4271 /* 16294 */ // Label 121: @16294
4272 /* 16294 */ GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(16331), // Rule ID 14 //
4273 /* 16299 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
4274 /* 16302 */ // MIs[0] root
4275 /* 16302 */ // No operand predicates
4276 /* 16302 */ // MIs[0] sub
4277 /* 16302 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4278 /* 16306 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4279 /* 16310 */ // MIs[1] A
4280 /* 16310 */ // No operand predicates
4281 /* 16310 */ // MIs[1] c1
4282 /* 16310 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4283 /* 16314 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4284 /* 16318 */ // MIs[2] imm1
4285 /* 16318 */ // No operand predicates
4286 /* 16318 */ // MIs[0] c2
4287 /* 16318 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4288 /* 16322 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4289 /* 16326 */ // MIs[3] imm2
4290 /* 16326 */ // No operand predicates
4291 /* 16326 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4292 /* 16328 */ // Combiner Rule #14: AMinusC1PlusC2
4293 /* 16328 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
4294 /* 16331 */ // Label 122: @16331
4295 /* 16331 */ GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(16365), // Rule ID 5 //
4296 /* 16336 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
4297 /* 16339 */ // MIs[0] root
4298 /* 16339 */ // No operand predicates
4299 /* 16339 */ // MIs[0] sub
4300 /* 16339 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4301 /* 16343 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4302 /* 16347 */ // MIs[1] B
4303 /* 16347 */ // No operand predicates
4304 /* 16347 */ // MIs[1] A
4305 /* 16347 */ // No operand predicates
4306 /* 16347 */ // MIs[0] A
4307 /* 16347 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
4308 /* 16352 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4309 /* 16357 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4310 /* 16359 */ // Combiner Rule #5: BMinusAPlusA
4311 /* 16359 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4312 /* 16364 */ GIR_EraseRootFromParent_Done,
4313 /* 16365 */ // Label 123: @16365
4314 /* 16365 */ GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(16399), // Rule ID 134 //
4315 /* 16370 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule96Enabled),
4316 /* 16373 */ // MIs[0] dst
4317 /* 16373 */ // No operand predicates
4318 /* 16373 */ // MIs[0] __add_sub_reg_match_0.tmp
4319 /* 16373 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4320 /* 16377 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4321 /* 16381 */ // MIs[1] src
4322 /* 16381 */ // No operand predicates
4323 /* 16381 */ // MIs[1] __add_sub_reg_match_0.x
4324 /* 16381 */ // No operand predicates
4325 /* 16381 */ // MIs[0] __add_sub_reg_match_0.x
4326 /* 16381 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
4327 /* 16386 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4328 /* 16391 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4329 /* 16393 */ // Combiner Rule #96: add_sub_reg @ [__add_sub_reg_match_0[1]]
4330 /* 16393 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4331 /* 16398 */ GIR_EraseRootFromParent_Done,
4332 /* 16399 */ // Label 124: @16399
4333 /* 16399 */ GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(16444), // Rule ID 7 //
4334 /* 16404 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
4335 /* 16407 */ // MIs[0] root
4336 /* 16407 */ // No operand predicates
4337 /* 16407 */ // MIs[0] sub1
4338 /* 16407 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4339 /* 16411 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4340 /* 16415 */ // MIs[1] A
4341 /* 16415 */ // No operand predicates
4342 /* 16415 */ // MIs[1] B
4343 /* 16415 */ // No operand predicates
4344 /* 16415 */ // MIs[0] sub2
4345 /* 16415 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4346 /* 16419 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4347 /* 16423 */ // MIs[2] B
4348 /* 16423 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
4349 /* 16428 */ // MIs[2] C
4350 /* 16428 */ // No operand predicates
4351 /* 16428 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4352 /* 16430 */ // Combiner Rule #7: AMinusBPlusBMinusC
4353 /* 16430 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4354 /* 16433 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4355 /* 16435 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
4356 /* 16439 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
4357 /* 16443 */ GIR_EraseRootFromParent_Done,
4358 /* 16444 */ // Label 125: @16444
4359 /* 16444 */ GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(16489), // Rule ID 6 //
4360 /* 16449 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
4361 /* 16452 */ // MIs[0] root
4362 /* 16452 */ // No operand predicates
4363 /* 16452 */ // MIs[0] sub1
4364 /* 16452 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4365 /* 16456 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4366 /* 16460 */ // MIs[1] A
4367 /* 16460 */ // No operand predicates
4368 /* 16460 */ // MIs[1] B
4369 /* 16460 */ // No operand predicates
4370 /* 16460 */ // MIs[0] sub2
4371 /* 16460 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4372 /* 16464 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4373 /* 16468 */ // MIs[2] C
4374 /* 16468 */ // No operand predicates
4375 /* 16468 */ // MIs[2] A
4376 /* 16468 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
4377 /* 16473 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4378 /* 16475 */ // Combiner Rule #6: AMinusBPlusCMinusA
4379 /* 16475 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4380 /* 16478 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4381 /* 16480 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
4382 /* 16484 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
4383 /* 16488 */ GIR_EraseRootFromParent_Done,
4384 /* 16489 */ // Label 126: @16489
4385 /* 16489 */ GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(16524), // Rule ID 41 //
4386 /* 16494 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
4387 /* 16497 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
4388 /* 16503 */ // MIs[0] root
4389 /* 16503 */ // No operand predicates
4390 /* 16503 */ // MIs[0] left
4391 /* 16503 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4392 /* 16507 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
4393 /* 16511 */ // MIs[1] imm1
4394 /* 16511 */ // No operand predicates
4395 /* 16511 */ // MIs[0] right
4396 /* 16511 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4397 /* 16515 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_VSCALE),
4398 /* 16519 */ // MIs[2] imm2
4399 /* 16519 */ // No operand predicates
4400 /* 16519 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4401 /* 16521 */ // Combiner Rule #39: add_of_vscale
4402 /* 16521 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
4403 /* 16524 */ // Label 127: @16524
4404 /* 16524 */ GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(16558), // Rule ID 3 //
4405 /* 16529 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
4406 /* 16532 */ // MIs[0] root
4407 /* 16532 */ // No operand predicates
4408 /* 16532 */ // MIs[0] A
4409 /* 16532 */ // No operand predicates
4410 /* 16532 */ // MIs[0] sub
4411 /* 16532 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4412 /* 16536 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4413 /* 16540 */ // MIs[1] Operand 1
4414 /* 16540 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
4415 /* 16544 */ // MIs[1] B
4416 /* 16544 */ // No operand predicates
4417 /* 16544 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4418 /* 16546 */ // Combiner Rule #3: APlusZeroMinusB
4419 /* 16546 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4420 /* 16549 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4421 /* 16551 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
4422 /* 16553 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
4423 /* 16557 */ GIR_EraseRootFromParent_Done,
4424 /* 16558 */ // Label 128: @16558
4425 /* 16558 */ GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(16592), // Rule ID 4 //
4426 /* 16563 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
4427 /* 16566 */ // MIs[0] root
4428 /* 16566 */ // No operand predicates
4429 /* 16566 */ // MIs[0] A
4430 /* 16566 */ // No operand predicates
4431 /* 16566 */ // MIs[0] sub
4432 /* 16566 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4433 /* 16570 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4434 /* 16574 */ // MIs[1] B
4435 /* 16574 */ // No operand predicates
4436 /* 16574 */ // MIs[1] A
4437 /* 16574 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4438 /* 16579 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4439 /* 16584 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4440 /* 16586 */ // Combiner Rule #4: APlusBMinusB
4441 /* 16586 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4442 /* 16591 */ GIR_EraseRootFromParent_Done,
4443 /* 16592 */ // Label 129: @16592
4444 /* 16592 */ GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(16626), // Rule ID 133 //
4445 /* 16597 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule96Enabled),
4446 /* 16600 */ // MIs[0] dst
4447 /* 16600 */ // No operand predicates
4448 /* 16600 */ // MIs[0] __add_sub_reg_match_0.x
4449 /* 16600 */ // No operand predicates
4450 /* 16600 */ // MIs[0] __add_sub_reg_match_0.tmp
4451 /* 16600 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4452 /* 16604 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4453 /* 16608 */ // MIs[1] src
4454 /* 16608 */ // No operand predicates
4455 /* 16608 */ // MIs[1] __add_sub_reg_match_0.x
4456 /* 16608 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4457 /* 16613 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4458 /* 16618 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4459 /* 16620 */ // Combiner Rule #96: add_sub_reg @ [__add_sub_reg_match_0[0]]
4460 /* 16620 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4461 /* 16625 */ GIR_EraseRootFromParent_Done,
4462 /* 16626 */ // Label 130: @16626
4463 /* 16626 */ GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(16671), // Rule ID 8 //
4464 /* 16631 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
4465 /* 16634 */ // MIs[0] root
4466 /* 16634 */ // No operand predicates
4467 /* 16634 */ // MIs[0] A
4468 /* 16634 */ // No operand predicates
4469 /* 16634 */ // MIs[0] sub1
4470 /* 16634 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4471 /* 16638 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4472 /* 16642 */ // MIs[1] B
4473 /* 16642 */ // No operand predicates
4474 /* 16642 */ // MIs[1] add1
4475 /* 16642 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4476 /* 16646 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
4477 /* 16650 */ // MIs[2] A
4478 /* 16650 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
4479 /* 16655 */ // MIs[2] C
4480 /* 16655 */ // No operand predicates
4481 /* 16655 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4482 /* 16657 */ // Combiner Rule #8: APlusBMinusAplusC
4483 /* 16657 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4484 /* 16660 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4485 /* 16662 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
4486 /* 16666 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
4487 /* 16670 */ GIR_EraseRootFromParent_Done,
4488 /* 16671 */ // Label 131: @16671
4489 /* 16671 */ GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(16716), // Rule ID 9 //
4490 /* 16676 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
4491 /* 16679 */ // MIs[0] root
4492 /* 16679 */ // No operand predicates
4493 /* 16679 */ // MIs[0] A
4494 /* 16679 */ // No operand predicates
4495 /* 16679 */ // MIs[0] sub1
4496 /* 16679 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4497 /* 16683 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4498 /* 16687 */ // MIs[1] B
4499 /* 16687 */ // No operand predicates
4500 /* 16687 */ // MIs[1] add1
4501 /* 16687 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4502 /* 16691 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
4503 /* 16695 */ // MIs[2] C
4504 /* 16695 */ // No operand predicates
4505 /* 16695 */ // MIs[2] A
4506 /* 16695 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4507 /* 16700 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4508 /* 16702 */ // Combiner Rule #9: APlusBMinusCPlusA
4509 /* 16702 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4510 /* 16705 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4511 /* 16707 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
4512 /* 16711 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
4513 /* 16715 */ GIR_EraseRootFromParent_Done,
4514 /* 16716 */ // Label 132: @16716
4515 /* 16716 */ GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(16739), // Rule ID 107 //
4516 /* 16721 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
4517 /* 16724 */ // MIs[0] dst
4518 /* 16724 */ // No operand predicates
4519 /* 16724 */ // MIs[0] lhs
4520 /* 16724 */ // No operand predicates
4521 /* 16724 */ // MIs[0] Operand 2
4522 /* 16724 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4523 /* 16728 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4524 /* 16733 */ // Combiner Rule #86: right_identity_zero @ [__right_identity_zero_match_0[1]]
4525 /* 16733 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4526 /* 16738 */ GIR_EraseRootFromParent_Done,
4527 /* 16739 */ // Label 133: @16739
4528 /* 16739 */ GIM_Try, /*On fail goto*//*Label 134*/ GIMT_Encode4(16750), // Rule ID 153 //
4529 /* 16744 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule110Enabled),
4530 /* 16747 */ // MIs[0] root
4531 /* 16747 */ // No operand predicates
4532 /* 16747 */ // MIs[0] src1
4533 /* 16747 */ // No operand predicates
4534 /* 16747 */ // MIs[0] src2
4535 /* 16747 */ // No operand predicates
4536 /* 16747 */ // Combiner Rule #110: reassoc_comm_binops
4537 /* 16747 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner57),
4538 /* 16750 */ // Label 134: @16750
4539 /* 16750 */ GIM_Reject,
4540 /* 16751 */ // Label 2: @16751
4541 /* 16751 */ GIM_Try, /*On fail goto*//*Label 135*/ GIMT_Encode4(16762), // Rule ID 97 //
4542 /* 16756 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
4543 /* 16759 */ // Combiner Rule #80: propagate_undef_any_op; wip_match_opcode 'G_SUB'
4544 /* 16759 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
4545 /* 16762 */ // Label 135: @16762
4546 /* 16762 */ GIM_Try, /*On fail goto*//*Label 136*/ GIMT_Encode4(16773), // Rule ID 255 //
4547 /* 16767 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
4548 /* 16770 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_SUB'
4549 /* 16770 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4550 /* 16773 */ // Label 136: @16773
4551 /* 16773 */ GIM_Try, /*On fail goto*//*Label 137*/ GIMT_Encode4(16784), // Rule ID 292 //
4552 /* 16778 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
4553 /* 16781 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_SUB'
4554 /* 16781 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
4555 /* 16784 */ // Label 137: @16784
4556 /* 16784 */ GIM_Try, /*On fail goto*//*Label 138*/ GIMT_Encode4(16795), // Rule ID 324 //
4557 /* 16789 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule203Enabled),
4558 /* 16792 */ // Combiner Rule #203: sub_add_reg; wip_match_opcode 'G_SUB'
4559 /* 16792 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner124),
4560 /* 16795 */ // Label 138: @16795
4561 /* 16795 */ GIM_Try, /*On fail goto*//*Label 139*/ GIMT_Encode4(16806), // Rule ID 358 //
4562 /* 16800 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
4563 /* 16803 */ // Combiner Rule #210: simplify_neg_minmax; wip_match_opcode 'G_SUB'
4564 /* 16803 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
4565 /* 16806 */ // Label 139: @16806
4566 /* 16806 */ GIM_Try, /*On fail goto*//*Label 140*/ GIMT_Encode4(16851), // Rule ID 0 //
4567 /* 16811 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
4568 /* 16814 */ // MIs[0] root
4569 /* 16814 */ // No operand predicates
4570 /* 16814 */ // MIs[0] add1
4571 /* 16814 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4572 /* 16818 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
4573 /* 16822 */ // MIs[1] A
4574 /* 16822 */ // No operand predicates
4575 /* 16822 */ // MIs[1] sub1
4576 /* 16822 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4577 /* 16826 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4578 /* 16830 */ // MIs[2] B
4579 /* 16830 */ // No operand predicates
4580 /* 16830 */ // MIs[2] C
4581 /* 16830 */ // No operand predicates
4582 /* 16830 */ // MIs[0] B
4583 /* 16830 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
4584 /* 16835 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4585 /* 16837 */ // Combiner Rule #0: APlusBMinusCMinusB
4586 /* 16837 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4587 /* 16840 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4588 /* 16842 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
4589 /* 16846 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
4590 /* 16850 */ GIR_EraseRootFromParent_Done,
4591 /* 16851 */ // Label 140: @16851
4592 /* 16851 */ GIM_Try, /*On fail goto*//*Label 141*/ GIMT_Encode4(16888), // Rule ID 10 //
4593 /* 16856 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
4594 /* 16859 */ // MIs[0] root
4595 /* 16859 */ // No operand predicates
4596 /* 16859 */ // MIs[0] add
4597 /* 16859 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4598 /* 16863 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
4599 /* 16867 */ // MIs[1] A
4600 /* 16867 */ // No operand predicates
4601 /* 16867 */ // MIs[1] c1
4602 /* 16867 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4603 /* 16871 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4604 /* 16875 */ // MIs[2] imm1
4605 /* 16875 */ // No operand predicates
4606 /* 16875 */ // MIs[0] c2
4607 /* 16875 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4608 /* 16879 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4609 /* 16883 */ // MIs[3] imm2
4610 /* 16883 */ // No operand predicates
4611 /* 16883 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4612 /* 16885 */ // Combiner Rule #10: APlusC1MinusC2
4613 /* 16885 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
4614 /* 16888 */ // Label 141: @16888
4615 /* 16888 */ GIM_Try, /*On fail goto*//*Label 142*/ GIMT_Encode4(16925), // Rule ID 13 //
4616 /* 16893 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
4617 /* 16896 */ // MIs[0] root
4618 /* 16896 */ // No operand predicates
4619 /* 16896 */ // MIs[0] sub1
4620 /* 16896 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4621 /* 16900 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4622 /* 16904 */ // MIs[1] c1
4623 /* 16904 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4624 /* 16908 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4625 /* 16912 */ // MIs[2] imm1
4626 /* 16912 */ // No operand predicates
4627 /* 16912 */ // MIs[1] A
4628 /* 16912 */ // No operand predicates
4629 /* 16912 */ // MIs[0] c2
4630 /* 16912 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4631 /* 16916 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4632 /* 16920 */ // MIs[3] imm2
4633 /* 16920 */ // No operand predicates
4634 /* 16920 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4635 /* 16922 */ // Combiner Rule #13: C1Minus2MinusC2
4636 /* 16922 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner3),
4637 /* 16925 */ // Label 142: @16925
4638 /* 16925 */ GIM_Try, /*On fail goto*//*Label 143*/ GIMT_Encode4(16970), // Rule ID 1 //
4639 /* 16930 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
4640 /* 16933 */ // MIs[0] root
4641 /* 16933 */ // No operand predicates
4642 /* 16933 */ // MIs[0] sub2
4643 /* 16933 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4644 /* 16937 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4645 /* 16941 */ // MIs[1] A
4646 /* 16941 */ // No operand predicates
4647 /* 16941 */ // MIs[1] sub1
4648 /* 16941 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4649 /* 16945 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4650 /* 16949 */ // MIs[2] B
4651 /* 16949 */ // No operand predicates
4652 /* 16949 */ // MIs[2] C
4653 /* 16949 */ // No operand predicates
4654 /* 16949 */ // MIs[0] C
4655 /* 16949 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/2,
4656 /* 16954 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4657 /* 16956 */ // Combiner Rule #1: AMinusBMinusCMinusC
4658 /* 16956 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4659 /* 16959 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4660 /* 16961 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
4661 /* 16965 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // B
4662 /* 16969 */ GIR_EraseRootFromParent_Done,
4663 /* 16970 */ // Label 143: @16970
4664 /* 16970 */ GIM_Try, /*On fail goto*//*Label 144*/ GIMT_Encode4(17007), // Rule ID 12 //
4665 /* 16975 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
4666 /* 16978 */ // MIs[0] root
4667 /* 16978 */ // No operand predicates
4668 /* 16978 */ // MIs[0] sub1
4669 /* 16978 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4670 /* 16982 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4671 /* 16986 */ // MIs[1] A
4672 /* 16986 */ // No operand predicates
4673 /* 16986 */ // MIs[1] c1
4674 /* 16986 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4675 /* 16990 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4676 /* 16994 */ // MIs[2] imm1
4677 /* 16994 */ // No operand predicates
4678 /* 16994 */ // MIs[0] c2
4679 /* 16994 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4680 /* 16998 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4681 /* 17002 */ // MIs[3] imm2
4682 /* 17002 */ // No operand predicates
4683 /* 17002 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4684 /* 17004 */ // Combiner Rule #12: AMinusC1MinusC2
4685 /* 17004 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
4686 /* 17007 */ // Label 144: @17007
4687 /* 17007 */ GIM_Try, /*On fail goto*//*Label 145*/ GIMT_Encode4(17050), // Rule ID 163 //
4688 /* 17012 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule120Enabled),
4689 /* 17015 */ // MIs[0] dst
4690 /* 17015 */ // No operand predicates
4691 /* 17015 */ // MIs[0] Operand 1
4692 /* 17015 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
4693 /* 17019 */ // MIs[0] and
4694 /* 17019 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4695 /* 17023 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
4696 /* 17027 */ // MIs[1] x
4697 /* 17027 */ // No operand predicates
4698 /* 17027 */ // MIs[1] Operand 2
4699 /* 17027 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
4700 /* 17031 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner8),
4701 /* 17035 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4702 /* 17037 */ // Combiner Rule #120: neg_and_one_to_sext_inreg
4703 /* 17037 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
4704 /* 17040 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
4705 /* 17042 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
4706 /* 17046 */ GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
4707 /* 17049 */ GIR_EraseRootFromParent_Done,
4708 /* 17050 */ // Label 145: @17050
4709 /* 17050 */ GIM_Try, /*On fail goto*//*Label 146*/ GIMT_Encode4(17087), // Rule ID 11 //
4710 /* 17055 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
4711 /* 17058 */ // MIs[0] root
4712 /* 17058 */ // No operand predicates
4713 /* 17058 */ // MIs[0] c2
4714 /* 17058 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4715 /* 17062 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4716 /* 17066 */ // MIs[1] imm2
4717 /* 17066 */ // No operand predicates
4718 /* 17066 */ // MIs[0] add
4719 /* 17066 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4720 /* 17070 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
4721 /* 17074 */ // MIs[2] A
4722 /* 17074 */ // No operand predicates
4723 /* 17074 */ // MIs[2] c1
4724 /* 17074 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
4725 /* 17078 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4726 /* 17082 */ // MIs[3] imm1
4727 /* 17082 */ // No operand predicates
4728 /* 17082 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4729 /* 17084 */ // Combiner Rule #11: C2MinusAPlusC1
4730 /* 17084 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
4731 /* 17087 */ // Label 146: @17087
4732 /* 17087 */ GIM_Try, /*On fail goto*//*Label 147*/ GIMT_Encode4(17114), // Rule ID 44 //
4733 /* 17092 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
4734 /* 17095 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
4735 /* 17101 */ // MIs[0] root
4736 /* 17101 */ // No operand predicates
4737 /* 17101 */ // MIs[0] x
4738 /* 17101 */ // No operand predicates
4739 /* 17101 */ // MIs[0] right
4740 /* 17101 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4741 /* 17105 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
4742 /* 17109 */ // MIs[1] imm
4743 /* 17109 */ // No operand predicates
4744 /* 17109 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4745 /* 17111 */ // Combiner Rule #42: sub_of_vscale
4746 /* 17111 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
4747 /* 17114 */ // Label 147: @17114
4748 /* 17114 */ GIM_Try, /*On fail goto*//*Label 148*/ GIMT_Encode4(17137), // Rule ID 106 //
4749 /* 17119 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
4750 /* 17122 */ // MIs[0] dst
4751 /* 17122 */ // No operand predicates
4752 /* 17122 */ // MIs[0] lhs
4753 /* 17122 */ // No operand predicates
4754 /* 17122 */ // MIs[0] Operand 2
4755 /* 17122 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4756 /* 17126 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4757 /* 17131 */ // Combiner Rule #86: right_identity_zero @ [__right_identity_zero_match_0[0]]
4758 /* 17131 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4759 /* 17136 */ GIR_EraseRootFromParent_Done,
4760 /* 17137 */ // Label 148: @17137
4761 /* 17137 */ GIM_Try, /*On fail goto*//*Label 149*/ GIMT_Encode4(17158), // Rule ID 17 //
4762 /* 17142 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
4763 /* 17145 */ // MIs[0] d
4764 /* 17145 */ // No operand predicates
4765 /* 17145 */ // MIs[0] op1
4766 /* 17145 */ // No operand predicates
4767 /* 17145 */ // MIs[0] c
4768 /* 17145 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4769 /* 17149 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4770 /* 17153 */ // MIs[1] imm
4771 /* 17153 */ // No operand predicates
4772 /* 17153 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4773 /* 17155 */ // Combiner Rule #17: sub_to_add
4774 /* 17155 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
4775 /* 17158 */ // Label 149: @17158
4776 /* 17158 */ GIM_Reject,
4777 /* 17159 */ // Label 3: @17159
4778 /* 17159 */ GIM_Try, /*On fail goto*//*Label 150*/ GIMT_Encode4(17170), // Rule ID 80 //
4779 /* 17164 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
4780 /* 17167 */ // Combiner Rule #74: undef_to_int_zero; wip_match_opcode 'G_MUL'
4781 /* 17167 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
4782 /* 17170 */ // Label 150: @17170
4783 /* 17170 */ GIM_Try, /*On fail goto*//*Label 151*/ GIMT_Encode4(17181), // Rule ID 252 //
4784 /* 17175 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
4785 /* 17178 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_MUL'
4786 /* 17178 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4787 /* 17181 */ // Label 151: @17181
4788 /* 17181 */ GIM_Try, /*On fail goto*//*Label 152*/ GIMT_Encode4(17192), // Rule ID 328 //
4789 /* 17186 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
4790 /* 17189 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_MUL'
4791 /* 17189 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
4792 /* 17192 */ // Label 152: @17192
4793 /* 17192 */ GIM_Try, /*On fail goto*//*Label 153*/ GIMT_Encode4(17203), // Rule ID 405 //
4794 /* 17197 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule249Enabled),
4795 /* 17200 */ // Combiner Rule #249: smulu64; wip_match_opcode 'G_MUL'
4796 /* 17200 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner166),
4797 /* 17203 */ // Label 153: @17203
4798 /* 17203 */ GIM_Try, /*On fail goto*//*Label 154*/ GIMT_Encode4(17243), // Rule ID 19 //
4799 /* 17208 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
4800 /* 17211 */ // MIs[0] dst
4801 /* 17211 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4802 /* 17215 */ // MIs[0] x
4803 /* 17215 */ // No operand predicates
4804 /* 17215 */ // MIs[0] Operand 2
4805 /* 17215 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
4806 /* 17219 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4807 /* 17222 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
4808 /* 17232 */ // Combiner Rule #19: mul_by_neg_one
4809 /* 17232 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4810 /* 17235 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
4811 /* 17237 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
4812 /* 17240 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
4813 /* 17242 */ GIR_EraseRootFromParent_Done,
4814 /* 17243 */ // Label 154: @17243
4815 /* 17243 */ GIM_Try, /*On fail goto*//*Label 155*/ GIMT_Encode4(17278), // Rule ID 42 //
4816 /* 17248 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
4817 /* 17251 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
4818 /* 17257 */ // MIs[0] root
4819 /* 17257 */ // No operand predicates
4820 /* 17257 */ // MIs[0] left
4821 /* 17257 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4822 /* 17261 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
4823 /* 17265 */ // MIs[1] scale
4824 /* 17265 */ // No operand predicates
4825 /* 17265 */ // MIs[0] x
4826 /* 17265 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4827 /* 17269 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4828 /* 17273 */ // MIs[2] imm1
4829 /* 17273 */ // No operand predicates
4830 /* 17273 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4831 /* 17275 */ // Combiner Rule #40: mul_of_vscale
4832 /* 17275 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
4833 /* 17278 */ // Label 155: @17278
4834 /* 17278 */ GIM_Try, /*On fail goto*//*Label 156*/ GIMT_Encode4(17318), // Rule ID 125 //
4835 /* 17283 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
4836 /* 17286 */ // MIs[0] dst
4837 /* 17286 */ // No operand predicates
4838 /* 17286 */ // MIs[0] zero
4839 /* 17286 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4840 /* 17290 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4841 /* 17294 */ // MIs[1] Operand 1
4842 /* 17294 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
4843 /* 17305 */ // MIs[0] rhs
4844 /* 17305 */ // No operand predicates
4845 /* 17305 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4846 /* 17310 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4847 /* 17312 */ // Combiner Rule #88: binop_left_to_zero @ [__binop_left_to_zero_match_0[7]]
4848 /* 17312 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4849 /* 17317 */ GIR_EraseRootFromParent_Done,
4850 /* 17318 */ // Label 156: @17318
4851 /* 17318 */ GIM_Try, /*On fail goto*//*Label 157*/ GIMT_Encode4(17341), // Rule ID 126 //
4852 /* 17323 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled),
4853 /* 17326 */ // MIs[0] dst
4854 /* 17326 */ // No operand predicates
4855 /* 17326 */ // MIs[0] lhs
4856 /* 17326 */ // No operand predicates
4857 /* 17326 */ // MIs[0] zero
4858 /* 17326 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4859 /* 17330 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
4860 /* 17335 */ // Combiner Rule #89: binop_right_to_zero
4861 /* 17335 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
4862 /* 17340 */ GIR_EraseRootFromParent_Done,
4863 /* 17341 */ // Label 157: @17341
4864 /* 17341 */ GIM_Try, /*On fail goto*//*Label 158*/ GIMT_Encode4(17364), // Rule ID 131 //
4865 /* 17346 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
4866 /* 17349 */ // MIs[0] dst
4867 /* 17349 */ // No operand predicates
4868 /* 17349 */ // MIs[0] x
4869 /* 17349 */ // No operand predicates
4870 /* 17349 */ // MIs[0] Operand 2
4871 /* 17349 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
4872 /* 17353 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4873 /* 17358 */ // Combiner Rule #94: right_identity_one_int
4874 /* 17358 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4875 /* 17363 */ GIR_EraseRootFromParent_Done,
4876 /* 17364 */ // Label 158: @17364
4877 /* 17364 */ GIM_Try, /*On fail goto*//*Label 159*/ GIMT_Encode4(17375), // Rule ID 16 //
4878 /* 17369 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
4879 /* 17372 */ // MIs[0] d
4880 /* 17372 */ // No operand predicates
4881 /* 17372 */ // MIs[0] op1
4882 /* 17372 */ // No operand predicates
4883 /* 17372 */ // MIs[0] op2
4884 /* 17372 */ // No operand predicates
4885 /* 17372 */ // Combiner Rule #16: mul_to_shl
4886 /* 17372 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
4887 /* 17375 */ // Label 159: @17375
4888 /* 17375 */ GIM_Reject,
4889 /* 17376 */ // Label 4: @17376
4890 /* 17376 */ GIM_Try, /*On fail goto*//*Label 160*/ GIMT_Encode4(17387), // Rule ID 223 //
4891 /* 17381 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
4892 /* 17384 */ // Combiner Rule #164: div_rem_to_divrem; wip_match_opcode 'G_SDIV'
4893 /* 17384 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
4894 /* 17387 */ // Label 160: @17387
4895 /* 17387 */ GIM_Try, /*On fail goto*//*Label 161*/ GIMT_Encode4(17398), // Rule ID 258 //
4896 /* 17392 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
4897 /* 17395 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_SDIV'
4898 /* 17395 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4899 /* 17398 */ // Label 161: @17398
4900 /* 17398 */ GIM_Try, /*On fail goto*//*Label 162*/ GIMT_Encode4(17409), // Rule ID 297 //
4901 /* 17403 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
4902 /* 17406 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_SDIV'
4903 /* 17406 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
4904 /* 17409 */ // Label 162: @17409
4905 /* 17409 */ GIM_Try, /*On fail goto*//*Label 163*/ GIMT_Encode4(17449), // Rule ID 121 //
4906 /* 17414 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
4907 /* 17417 */ // MIs[0] dst
4908 /* 17417 */ // No operand predicates
4909 /* 17417 */ // MIs[0] zero
4910 /* 17417 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4911 /* 17421 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4912 /* 17425 */ // MIs[1] Operand 1
4913 /* 17425 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
4914 /* 17436 */ // MIs[0] rhs
4915 /* 17436 */ // No operand predicates
4916 /* 17436 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4917 /* 17441 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4918 /* 17443 */ // Combiner Rule #88: binop_left_to_zero @ [__binop_left_to_zero_match_0[3]]
4919 /* 17443 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4920 /* 17448 */ GIR_EraseRootFromParent_Done,
4921 /* 17449 */ // Label 163: @17449
4922 /* 17449 */ GIM_Try, /*On fail goto*//*Label 164*/ GIMT_Encode4(17466), // Rule ID 320 //
4923 /* 17454 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule199Enabled),
4924 /* 17457 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
4925 /* 17463 */ // MIs[0] dst
4926 /* 17463 */ // No operand predicates
4927 /* 17463 */ // MIs[0] x
4928 /* 17463 */ // No operand predicates
4929 /* 17463 */ // MIs[0] y
4930 /* 17463 */ // No operand predicates
4931 /* 17463 */ // Combiner Rule #199: sdiv_by_pow2
4932 /* 17463 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122),
4933 /* 17466 */ // Label 164: @17466
4934 /* 17466 */ GIM_Try, /*On fail goto*//*Label 165*/ GIMT_Encode4(17477), // Rule ID 322 //
4935 /* 17471 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule201Enabled),
4936 /* 17474 */ // MIs[0] dst
4937 /* 17474 */ // No operand predicates
4938 /* 17474 */ // MIs[0] x
4939 /* 17474 */ // No operand predicates
4940 /* 17474 */ // MIs[0] y
4941 /* 17474 */ // No operand predicates
4942 /* 17474 */ // Combiner Rule #201: sdiv_by_const
4943 /* 17474 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
4944 /* 17477 */ // Label 165: @17477
4945 /* 17477 */ GIM_Reject,
4946 /* 17478 */ // Label 5: @17478
4947 /* 17478 */ GIM_Try, /*On fail goto*//*Label 166*/ GIMT_Encode4(17489), // Rule ID 83 //
4948 /* 17483 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
4949 /* 17486 */ // Combiner Rule #76: binop_left_undef_to_zero; wip_match_opcode 'G_UDIV'
4950 /* 17486 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
4951 /* 17489 */ // Label 166: @17489
4952 /* 17489 */ GIM_Try, /*On fail goto*//*Label 167*/ GIMT_Encode4(17500), // Rule ID 224 //
4953 /* 17494 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
4954 /* 17497 */ // Combiner Rule #164: div_rem_to_divrem; wip_match_opcode 'G_UDIV'
4955 /* 17497 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
4956 /* 17500 */ // Label 167: @17500
4957 /* 17500 */ GIM_Try, /*On fail goto*//*Label 168*/ GIMT_Encode4(17511), // Rule ID 257 //
4958 /* 17505 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
4959 /* 17508 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_UDIV'
4960 /* 17508 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4961 /* 17511 */ // Label 168: @17511
4962 /* 17511 */ GIM_Try, /*On fail goto*//*Label 169*/ GIMT_Encode4(17522), // Rule ID 299 //
4963 /* 17516 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
4964 /* 17519 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_UDIV'
4965 /* 17519 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
4966 /* 17522 */ // Label 169: @17522
4967 /* 17522 */ GIM_Try, /*On fail goto*//*Label 170*/ GIMT_Encode4(17562), // Rule ID 122 //
4968 /* 17527 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
4969 /* 17530 */ // MIs[0] dst
4970 /* 17530 */ // No operand predicates
4971 /* 17530 */ // MIs[0] zero
4972 /* 17530 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4973 /* 17534 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4974 /* 17538 */ // MIs[1] Operand 1
4975 /* 17538 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
4976 /* 17549 */ // MIs[0] rhs
4977 /* 17549 */ // No operand predicates
4978 /* 17549 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4979 /* 17554 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4980 /* 17556 */ // Combiner Rule #88: binop_left_to_zero @ [__binop_left_to_zero_match_0[4]]
4981 /* 17556 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4982 /* 17561 */ GIR_EraseRootFromParent_Done,
4983 /* 17562 */ // Label 170: @17562
4984 /* 17562 */ GIM_Try, /*On fail goto*//*Label 171*/ GIMT_Encode4(17579), // Rule ID 319 //
4985 /* 17567 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
4986 /* 17570 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
4987 /* 17576 */ // MIs[0] dst
4988 /* 17576 */ // No operand predicates
4989 /* 17576 */ // MIs[0] x
4990 /* 17576 */ // No operand predicates
4991 /* 17576 */ // MIs[0] y
4992 /* 17576 */ // No operand predicates
4993 /* 17576 */ // Combiner Rule #198: udiv_by_pow2
4994 /* 17576 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
4995 /* 17579 */ // Label 171: @17579
4996 /* 17579 */ GIM_Try, /*On fail goto*//*Label 172*/ GIMT_Encode4(17590), // Rule ID 321 //
4997 /* 17584 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
4998 /* 17587 */ // MIs[0] dst
4999 /* 17587 */ // No operand predicates
5000 /* 17587 */ // MIs[0] x
5001 /* 17587 */ // No operand predicates
5002 /* 17587 */ // MIs[0] y
5003 /* 17587 */ // No operand predicates
5004 /* 17587 */ // Combiner Rule #200: udiv_by_const
5005 /* 17587 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
5006 /* 17590 */ // Label 172: @17590
5007 /* 17590 */ GIM_Reject,
5008 /* 17591 */ // Label 6: @17591
5009 /* 17591 */ GIM_Try, /*On fail goto*//*Label 173*/ GIMT_Encode4(17602), // Rule ID 225 //
5010 /* 17596 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
5011 /* 17599 */ // Combiner Rule #164: div_rem_to_divrem; wip_match_opcode 'G_SREM'
5012 /* 17599 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
5013 /* 17602 */ // Label 173: @17602
5014 /* 17602 */ GIM_Try, /*On fail goto*//*Label 174*/ GIMT_Encode4(17613), // Rule ID 260 //
5015 /* 17607 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
5016 /* 17610 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_SREM'
5017 /* 17610 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5018 /* 17613 */ // Label 174: @17613
5019 /* 17613 */ GIM_Try, /*On fail goto*//*Label 175*/ GIMT_Encode4(17624), // Rule ID 298 //
5020 /* 17618 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
5021 /* 17621 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_SREM'
5022 /* 17621 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5023 /* 17624 */ // Label 175: @17624
5024 /* 17624 */ GIM_Try, /*On fail goto*//*Label 176*/ GIMT_Encode4(17664), // Rule ID 123 //
5025 /* 17629 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
5026 /* 17632 */ // MIs[0] dst
5027 /* 17632 */ // No operand predicates
5028 /* 17632 */ // MIs[0] zero
5029 /* 17632 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5030 /* 17636 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5031 /* 17640 */ // MIs[1] Operand 1
5032 /* 17640 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5033 /* 17651 */ // MIs[0] rhs
5034 /* 17651 */ // No operand predicates
5035 /* 17651 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5036 /* 17656 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5037 /* 17658 */ // Combiner Rule #88: binop_left_to_zero @ [__binop_left_to_zero_match_0[5]]
5038 /* 17658 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5039 /* 17663 */ GIR_EraseRootFromParent_Done,
5040 /* 17664 */ // Label 176: @17664
5041 /* 17664 */ GIM_Try, /*On fail goto*//*Label 177*/ GIMT_Encode4(17675), // Rule ID 318 //
5042 /* 17669 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
5043 /* 17672 */ // MIs[0] dst
5044 /* 17672 */ // No operand predicates
5045 /* 17672 */ // MIs[0] x
5046 /* 17672 */ // No operand predicates
5047 /* 17672 */ // MIs[0] y
5048 /* 17672 */ // No operand predicates
5049 /* 17672 */ // Combiner Rule #197: srem_by_const
5050 /* 17672 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
5051 /* 17675 */ // Label 177: @17675
5052 /* 17675 */ GIM_Reject,
5053 /* 17676 */ // Label 7: @17676
5054 /* 17676 */ GIM_Try, /*On fail goto*//*Label 178*/ GIMT_Encode4(17687), // Rule ID 84 //
5055 /* 17681 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
5056 /* 17684 */ // Combiner Rule #76: binop_left_undef_to_zero; wip_match_opcode 'G_UREM'
5057 /* 17684 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
5058 /* 17687 */ // Label 178: @17687
5059 /* 17687 */ GIM_Try, /*On fail goto*//*Label 179*/ GIMT_Encode4(17698), // Rule ID 174 //
5060 /* 17692 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled),
5061 /* 17695 */ // Combiner Rule #131: urem_pow2_to_mask; wip_match_opcode 'G_UREM'
5062 /* 17695 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner74),
5063 /* 17698 */ // Label 179: @17698
5064 /* 17698 */ GIM_Try, /*On fail goto*//*Label 180*/ GIMT_Encode4(17709), // Rule ID 226 //
5065 /* 17703 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
5066 /* 17706 */ // Combiner Rule #164: div_rem_to_divrem; wip_match_opcode 'G_UREM'
5067 /* 17706 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
5068 /* 17709 */ // Label 180: @17709
5069 /* 17709 */ GIM_Try, /*On fail goto*//*Label 181*/ GIMT_Encode4(17720), // Rule ID 259 //
5070 /* 17714 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
5071 /* 17717 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_UREM'
5072 /* 17717 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5073 /* 17720 */ // Label 181: @17720
5074 /* 17720 */ GIM_Try, /*On fail goto*//*Label 182*/ GIMT_Encode4(17731), // Rule ID 300 //
5075 /* 17725 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
5076 /* 17728 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_UREM'
5077 /* 17728 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5078 /* 17731 */ // Label 182: @17731
5079 /* 17731 */ GIM_Try, /*On fail goto*//*Label 183*/ GIMT_Encode4(17771), // Rule ID 124 //
5080 /* 17736 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
5081 /* 17739 */ // MIs[0] dst
5082 /* 17739 */ // No operand predicates
5083 /* 17739 */ // MIs[0] zero
5084 /* 17739 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5085 /* 17743 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5086 /* 17747 */ // MIs[1] Operand 1
5087 /* 17747 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5088 /* 17758 */ // MIs[0] rhs
5089 /* 17758 */ // No operand predicates
5090 /* 17758 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5091 /* 17763 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5092 /* 17765 */ // Combiner Rule #88: binop_left_to_zero @ [__binop_left_to_zero_match_0[6]]
5093 /* 17765 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5094 /* 17770 */ GIR_EraseRootFromParent_Done,
5095 /* 17771 */ // Label 183: @17771
5096 /* 17771 */ GIM_Try, /*On fail goto*//*Label 184*/ GIMT_Encode4(17782), // Rule ID 317 //
5097 /* 17776 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule196Enabled),
5098 /* 17779 */ // MIs[0] dst
5099 /* 17779 */ // No operand predicates
5100 /* 17779 */ // MIs[0] x
5101 /* 17779 */ // No operand predicates
5102 /* 17779 */ // MIs[0] y
5103 /* 17779 */ // No operand predicates
5104 /* 17779 */ // Combiner Rule #196: urem_by_const
5105 /* 17779 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
5106 /* 17782 */ // Label 184: @17782
5107 /* 17782 */ GIM_Reject,
5108 /* 17783 */ // Label 8: @17783
5109 /* 17783 */ GIM_Try, /*On fail goto*//*Label 185*/ GIMT_Encode4(17794), // Rule ID 75 //
5110 /* 17788 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
5111 /* 17791 */ // Combiner Rule #71: load_and_mask; wip_match_opcode 'G_AND'
5112 /* 17791 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
5113 /* 17794 */ // Label 185: @17794
5114 /* 17794 */ GIM_Try, /*On fail goto*//*Label 186*/ GIMT_Encode4(17805), // Rule ID 79 //
5115 /* 17799 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
5116 /* 17802 */ // Combiner Rule #74: undef_to_int_zero; wip_match_opcode 'G_AND'
5117 /* 17802 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
5118 /* 17805 */ // Label 186: @17805
5119 /* 17805 */ GIM_Try, /*On fail goto*//*Label 187*/ GIMT_Encode4(17816), // Rule ID 146 //
5120 /* 17810 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule107Enabled),
5121 /* 17813 */ // Combiner Rule #107: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_AND'
5122 /* 17813 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
5123 /* 17816 */ // Label 187: @17816
5124 /* 17816 */ GIM_Try, /*On fail goto*//*Label 188*/ GIMT_Encode4(17827), // Rule ID 166 //
5125 /* 17821 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule123Enabled),
5126 /* 17824 */ // Combiner Rule #123: narrow_binop_feeding_and; wip_match_opcode 'G_AND'
5127 /* 17824 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner67),
5128 /* 17827 */ // Label 188: @17827
5129 /* 17827 */ GIM_Try, /*On fail goto*//*Label 189*/ GIMT_Encode4(17838), // Rule ID 171 //
5130 /* 17832 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule128Enabled),
5131 /* 17835 */ // Combiner Rule #128: redundant_and; wip_match_opcode 'G_AND'
5132 /* 17835 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner71),
5133 /* 17838 */ // Label 189: @17838
5134 /* 17838 */ GIM_Try, /*On fail goto*//*Label 190*/ GIMT_Encode4(17849), // Rule ID 196 //
5135 /* 17843 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
5136 /* 17846 */ // Combiner Rule #153: overlapping_and; wip_match_opcode 'G_AND'
5137 /* 17846 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
5138 /* 17849 */ // Label 190: @17849
5139 /* 17849 */ GIM_Try, /*On fail goto*//*Label 191*/ GIMT_Encode4(17860), // Rule ID 249 //
5140 /* 17854 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
5141 /* 17857 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_AND'
5142 /* 17857 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5143 /* 17860 */ // Label 191: @17860
5144 /* 17860 */ GIM_Try, /*On fail goto*//*Label 192*/ GIMT_Encode4(17871), // Rule ID 282 //
5145 /* 17865 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
5146 /* 17868 */ // Combiner Rule #186: and_or_disjoint_mask; wip_match_opcode 'G_AND'
5147 /* 17868 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
5148 /* 17871 */ // Label 192: @17871
5149 /* 17871 */ GIM_Try, /*On fail goto*//*Label 193*/ GIMT_Encode4(17882), // Rule ID 294 //
5150 /* 17876 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
5151 /* 17879 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_AND'
5152 /* 17879 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5153 /* 17882 */ // Label 193: @17882
5154 /* 17882 */ GIM_Try, /*On fail goto*//*Label 194*/ GIMT_Encode4(17893), // Rule ID 329 //
5155 /* 17887 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
5156 /* 17890 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_AND'
5157 /* 17890 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
5158 /* 17893 */ // Label 194: @17893
5159 /* 17893 */ GIM_Try, /*On fail goto*//*Label 195*/ GIMT_Encode4(17904), // Rule ID 356 //
5160 /* 17898 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
5161 /* 17901 */ // Combiner Rule #208: match_ands; wip_match_opcode 'G_AND'
5162 /* 17901 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
5163 /* 17904 */ // Label 195: @17904
5164 /* 17904 */ GIM_Try, /*On fail goto*//*Label 196*/ GIMT_Encode4(18002), // Rule ID 159 //
5165 /* 17909 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule116Enabled),
5166 /* 17912 */ // MIs[0] root
5167 /* 17912 */ // No operand predicates
5168 /* 17912 */ // MIs[0] d1
5169 /* 17912 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5170 /* 17916 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
5171 /* 17920 */ // MIs[1] p
5172 /* 17920 */ // No operand predicates
5173 /* 17920 */ // MIs[1] s1
5174 /* 17920 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
5175 /* 17924 */ // MIs[1] Operand 3
5176 /* 17924 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
5177 /* 17928 */ // MIs[0] d2
5178 /* 17928 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5179 /* 17932 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
5180 /* 17936 */ // MIs[2] p
5181 /* 17936 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
5182 /* 17941 */ // MIs[2] s2
5183 /* 17941 */ // No operand predicates
5184 /* 17941 */ // MIs[2] Operand 3
5185 /* 17941 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
5186 /* 17945 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner6),
5187 /* 17949 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5188 /* 17951 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5189 /* 17954 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5190 /* 17964 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5191 /* 17967 */ // Combiner Rule #116: double_icmp_zero_and_combine
5192 /* 17967 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5193 /* 17970 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5194 /* 17975 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
5195 /* 17979 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
5196 /* 17983 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
5197 /* 17987 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5198 /* 17991 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
5199 /* 17995 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5200 /* 17998 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
5201 /* 18001 */ GIR_EraseRootFromParent_Done,
5202 /* 18002 */ // Label 196: @18002
5203 /* 18002 */ GIM_Try, /*On fail goto*//*Label 197*/ GIMT_Encode4(18039), // Rule ID 242 //
5204 /* 18007 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
5205 /* 18010 */ // MIs[0] root
5206 /* 18010 */ // No operand predicates
5207 /* 18010 */ // MIs[0] shift
5208 /* 18010 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5209 /* 18014 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
5210 /* 18018 */ // MIs[1] x
5211 /* 18018 */ // No operand predicates
5212 /* 18018 */ // MIs[1] lsb
5213 /* 18018 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5214 /* 18022 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5215 /* 18026 */ // MIs[2] imm1
5216 /* 18026 */ // No operand predicates
5217 /* 18026 */ // MIs[0] mask
5218 /* 18026 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5219 /* 18030 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5220 /* 18034 */ // MIs[3] imm2
5221 /* 18034 */ // No operand predicates
5222 /* 18034 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5223 /* 18036 */ // Combiner Rule #176: bitfield_extract_from_and
5224 /* 18036 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner100),
5225 /* 18039 */ // Label 197: @18039
5226 /* 18039 */ GIM_Try, /*On fail goto*//*Label 198*/ GIMT_Encode4(18153), // Rule ID 407 //
5227 /* 18044 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule251Enabled),
5228 /* 18047 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
5229 /* 18050 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
5230 /* 18053 */ // MIs[0] dst
5231 /* 18053 */ // No operand predicates
5232 /* 18053 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner15),
5233 /* 18057 */ GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_s32,
5234 /* 18060 */ GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_s32,
5235 /* 18063 */ GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_s32,
5236 /* 18066 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
5237 /* 18069 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
5238 /* 18072 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
5239 /* 18075 */ // Combiner Rule #251: combine_and_s64_with_s32_mask
5240 /* 18075 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5241 /* 18078 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5242 /* 18083 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5243 /* 18088 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
5244 /* 18090 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5245 /* 18094 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5246 /* 18099 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5247 /* 18104 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // y
5248 /* 18108 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
5249 /* 18112 */ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5250 /* 18117 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
5251 /* 18120 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
5252 /* 18123 */ GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
5253 /* 18127 */ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5254 /* 18132 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/1,
5255 /* 18135 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
5256 /* 18138 */ GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
5257 /* 18142 */ GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/0, // dst
5258 /* 18146 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
5259 /* 18149 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/5,
5260 /* 18152 */ GIR_EraseRootFromParent_Done,
5261 /* 18153 */ // Label 198: @18153
5262 /* 18153 */ GIM_Try, /*On fail goto*//*Label 199*/ GIMT_Encode4(18177), // Rule ID 116 //
5263 /* 18158 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
5264 /* 18161 */ // MIs[0] dst
5265 /* 18161 */ // No operand predicates
5266 /* 18161 */ // MIs[0] src
5267 /* 18161 */ // No operand predicates
5268 /* 18161 */ // MIs[0] src
5269 /* 18161 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5270 /* 18166 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5271 /* 18171 */ // Combiner Rule #87: binop_same_val @ [__binop_same_val_match_0[0]]
5272 /* 18171 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5273 /* 18176 */ GIR_EraseRootFromParent_Done,
5274 /* 18177 */ // Label 199: @18177
5275 /* 18177 */ GIM_Reject,
5276 /* 18178 */ // Label 9: @18178
5277 /* 18178 */ GIM_Try, /*On fail goto*//*Label 200*/ GIMT_Encode4(18189), // Rule ID 81 //
5278 /* 18183 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
5279 /* 18186 */ // Combiner Rule #75: undef_to_negative_one; wip_match_opcode 'G_OR'
5280 /* 18186 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
5281 /* 18189 */ // Label 200: @18189
5282 /* 18189 */ GIM_Try, /*On fail goto*//*Label 201*/ GIMT_Encode4(18200), // Rule ID 147 //
5283 /* 18194 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule107Enabled),
5284 /* 18197 */ // Combiner Rule #107: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_OR'
5285 /* 18197 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
5286 /* 18200 */ // Label 201: @18200
5287 /* 18200 */ GIM_Try, /*On fail goto*//*Label 202*/ GIMT_Encode4(18211), // Rule ID 173 //
5288 /* 18205 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule130Enabled),
5289 /* 18208 */ // Combiner Rule #130: redundant_or; wip_match_opcode 'G_OR'
5290 /* 18208 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner73),
5291 /* 18211 */ // Label 202: @18211
5292 /* 18211 */ GIM_Try, /*On fail goto*//*Label 203*/ GIMT_Encode4(18222), // Rule ID 222 //
5293 /* 18216 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled),
5294 /* 18219 */ // Combiner Rule #163: load_or_combine; wip_match_opcode 'G_OR'
5295 /* 18219 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
5296 /* 18222 */ // Label 203: @18222
5297 /* 18222 */ GIM_Try, /*On fail goto*//*Label 204*/ GIMT_Encode4(18233), // Rule ID 227 //
5298 /* 18227 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
5299 /* 18230 */ // Combiner Rule #165: funnel_shift_from_or_shift; wip_match_opcode 'G_OR'
5300 /* 18230 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
5301 /* 18233 */ // Label 204: @18233
5302 /* 18233 */ GIM_Try, /*On fail goto*//*Label 205*/ GIMT_Encode4(18244), // Rule ID 253 //
5303 /* 18238 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
5304 /* 18241 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_OR'
5305 /* 18241 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5306 /* 18244 */ // Label 205: @18244
5307 /* 18244 */ GIM_Try, /*On fail goto*//*Label 206*/ GIMT_Encode4(18255), // Rule ID 295 //
5308 /* 18249 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
5309 /* 18252 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_OR'
5310 /* 18252 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5311 /* 18255 */ // Label 206: @18255
5312 /* 18255 */ GIM_Try, /*On fail goto*//*Label 207*/ GIMT_Encode4(18266), // Rule ID 330 //
5313 /* 18260 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
5314 /* 18263 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_OR'
5315 /* 18263 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
5316 /* 18266 */ // Label 207: @18266
5317 /* 18266 */ GIM_Try, /*On fail goto*//*Label 208*/ GIMT_Encode4(18277), // Rule ID 357 //
5318 /* 18271 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
5319 /* 18274 */ // Combiner Rule #209: match_ors; wip_match_opcode 'G_OR'
5320 /* 18274 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
5321 /* 18277 */ // Label 208: @18277
5322 /* 18277 */ GIM_Try, /*On fail goto*//*Label 209*/ GIMT_Encode4(18364), // Rule ID 409 //
5323 /* 18282 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule252Enabled),
5324 /* 18285 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
5325 /* 18288 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
5326 /* 18291 */ // MIs[0] dst
5327 /* 18291 */ // No operand predicates
5328 /* 18291 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5329 /* 18295 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
5330 /* 18299 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5331 /* 18303 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
5332 /* 18307 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5333 /* 18309 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
5334 /* 18312 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5335 /* 18315 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5336 /* 18318 */ // Combiner Rule #252: combine_or_s64_s32 @ [dst[1]]
5337 /* 18318 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5338 /* 18321 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5339 /* 18326 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5340 /* 18331 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
5341 /* 18333 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5342 /* 18337 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5343 /* 18342 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5344 /* 18345 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // y
5345 /* 18349 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
5346 /* 18353 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
5347 /* 18357 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
5348 /* 18360 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
5349 /* 18363 */ GIR_EraseRootFromParent_Done,
5350 /* 18364 */ // Label 209: @18364
5351 /* 18364 */ GIM_Try, /*On fail goto*//*Label 210*/ GIMT_Encode4(18411), // Rule ID 234 //
5352 /* 18369 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
5353 /* 18372 */ // MIs[0] root
5354 /* 18372 */ // No operand predicates
5355 /* 18372 */ // MIs[0] out1
5356 /* 18372 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5357 /* 18376 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHL),
5358 /* 18380 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
5359 /* 18380 */ // No operand predicates
5360 /* 18380 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
5361 /* 18380 */ // No operand predicates
5362 /* 18380 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
5363 /* 18380 */ // No operand predicates
5364 /* 18380 */ // MIs[0] out2
5365 /* 18380 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5366 /* 18384 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SHL),
5367 /* 18388 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
5368 /* 18388 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
5369 /* 18393 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
5370 /* 18393 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
5371 /* 18398 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5372 /* 18403 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5373 /* 18405 */ // Combiner Rule #170: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[0]]
5374 /* 18405 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5375 /* 18410 */ GIR_EraseRootFromParent_Done,
5376 /* 18411 */ // Label 210: @18411
5377 /* 18411 */ GIM_Try, /*On fail goto*//*Label 211*/ GIMT_Encode4(18458), // Rule ID 236 //
5378 /* 18416 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
5379 /* 18419 */ // MIs[0] root
5380 /* 18419 */ // No operand predicates
5381 /* 18419 */ // MIs[0] out1
5382 /* 18419 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5383 /* 18423 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHR),
5384 /* 18427 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
5385 /* 18427 */ // No operand predicates
5386 /* 18427 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
5387 /* 18427 */ // No operand predicates
5388 /* 18427 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
5389 /* 18427 */ // No operand predicates
5390 /* 18427 */ // MIs[0] out2
5391 /* 18427 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5392 /* 18431 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
5393 /* 18435 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
5394 /* 18435 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
5395 /* 18440 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
5396 /* 18440 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
5397 /* 18445 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5398 /* 18450 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5399 /* 18452 */ // Combiner Rule #171: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[0]]
5400 /* 18452 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5401 /* 18457 */ GIR_EraseRootFromParent_Done,
5402 /* 18458 */ // Label 211: @18458
5403 /* 18458 */ GIM_Try, /*On fail goto*//*Label 212*/ GIMT_Encode4(18556), // Rule ID 160 //
5404 /* 18463 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule117Enabled),
5405 /* 18466 */ // MIs[0] root
5406 /* 18466 */ // No operand predicates
5407 /* 18466 */ // MIs[0] d1
5408 /* 18466 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5409 /* 18470 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
5410 /* 18474 */ // MIs[1] p
5411 /* 18474 */ // No operand predicates
5412 /* 18474 */ // MIs[1] s1
5413 /* 18474 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
5414 /* 18478 */ // MIs[1] Operand 3
5415 /* 18478 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
5416 /* 18482 */ // MIs[0] d2
5417 /* 18482 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5418 /* 18486 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
5419 /* 18490 */ // MIs[2] p
5420 /* 18490 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
5421 /* 18495 */ // MIs[2] s2
5422 /* 18495 */ // No operand predicates
5423 /* 18495 */ // MIs[2] Operand 3
5424 /* 18495 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
5425 /* 18499 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner7),
5426 /* 18503 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5427 /* 18505 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5428 /* 18508 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5429 /* 18518 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5430 /* 18521 */ // Combiner Rule #117: double_icmp_zero_or_combine
5431 /* 18521 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5432 /* 18524 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5433 /* 18529 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
5434 /* 18533 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
5435 /* 18537 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
5436 /* 18541 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5437 /* 18545 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
5438 /* 18549 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5439 /* 18552 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
5440 /* 18555 */ GIR_EraseRootFromParent_Done,
5441 /* 18556 */ // Label 212: @18556
5442 /* 18556 */ GIM_Try, /*On fail goto*//*Label 213*/ GIMT_Encode4(18603), // Rule ID 237 //
5443 /* 18561 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
5444 /* 18564 */ // MIs[0] root
5445 /* 18564 */ // No operand predicates
5446 /* 18564 */ // MIs[0] out2
5447 /* 18564 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5448 /* 18568 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
5449 /* 18572 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
5450 /* 18572 */ // No operand predicates
5451 /* 18572 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
5452 /* 18572 */ // No operand predicates
5453 /* 18572 */ // MIs[0] out1
5454 /* 18572 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5455 /* 18576 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHR),
5456 /* 18580 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
5457 /* 18580 */ // No operand predicates
5458 /* 18580 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
5459 /* 18580 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5460 /* 18585 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
5461 /* 18585 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
5462 /* 18590 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5463 /* 18595 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5464 /* 18597 */ // Combiner Rule #171: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[1]]
5465 /* 18597 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5466 /* 18602 */ GIR_EraseRootFromParent_Done,
5467 /* 18603 */ // Label 213: @18603
5468 /* 18603 */ GIM_Try, /*On fail goto*//*Label 214*/ GIMT_Encode4(18650), // Rule ID 235 //
5469 /* 18608 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
5470 /* 18611 */ // MIs[0] root
5471 /* 18611 */ // No operand predicates
5472 /* 18611 */ // MIs[0] out2
5473 /* 18611 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5474 /* 18615 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
5475 /* 18619 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
5476 /* 18619 */ // No operand predicates
5477 /* 18619 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
5478 /* 18619 */ // No operand predicates
5479 /* 18619 */ // MIs[0] out1
5480 /* 18619 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5481 /* 18623 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHL),
5482 /* 18627 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
5483 /* 18627 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
5484 /* 18632 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
5485 /* 18632 */ // No operand predicates
5486 /* 18632 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
5487 /* 18632 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
5488 /* 18637 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5489 /* 18642 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5490 /* 18644 */ // Combiner Rule #170: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[1]]
5491 /* 18644 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5492 /* 18649 */ GIR_EraseRootFromParent_Done,
5493 /* 18650 */ // Label 214: @18650
5494 /* 18650 */ GIM_Try, /*On fail goto*//*Label 215*/ GIMT_Encode4(18851),
5495 /* 18655 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
5496 /* 18658 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
5497 /* 18661 */ GIM_Try, /*On fail goto*//*Label 216*/ GIMT_Encode4(18742), // Rule ID 408 //
5498 /* 18666 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule252Enabled),
5499 /* 18669 */ // MIs[0] dst
5500 /* 18669 */ // No operand predicates
5501 /* 18669 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5502 /* 18673 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
5503 /* 18677 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5504 /* 18681 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
5505 /* 18685 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5506 /* 18687 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
5507 /* 18690 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5508 /* 18693 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5509 /* 18696 */ // Combiner Rule #252: combine_or_s64_s32 @ [dst[0]]
5510 /* 18696 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5511 /* 18699 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5512 /* 18704 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5513 /* 18709 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
5514 /* 18711 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5515 /* 18715 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5516 /* 18720 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5517 /* 18723 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // y
5518 /* 18727 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
5519 /* 18731 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
5520 /* 18735 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
5521 /* 18738 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
5522 /* 18741 */ GIR_EraseRootFromParent_Done,
5523 /* 18742 */ // Label 216: @18742
5524 /* 18742 */ GIM_Try, /*On fail goto*//*Label 217*/ GIMT_Encode4(18850), // Rule ID 406 //
5525 /* 18747 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule250Enabled),
5526 /* 18750 */ // MIs[0] dst
5527 /* 18750 */ // No operand predicates
5528 /* 18750 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner15),
5529 /* 18754 */ GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_s32,
5530 /* 18757 */ GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_s32,
5531 /* 18760 */ GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_s32,
5532 /* 18763 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
5533 /* 18766 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
5534 /* 18769 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
5535 /* 18772 */ // Combiner Rule #250: combine_or_s64_with_s32_mask
5536 /* 18772 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5537 /* 18775 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5538 /* 18780 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5539 /* 18785 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
5540 /* 18787 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5541 /* 18791 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5542 /* 18796 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5543 /* 18801 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // y
5544 /* 18805 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5545 /* 18809 */ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5546 /* 18814 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
5547 /* 18817 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
5548 /* 18820 */ GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5549 /* 18824 */ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5550 /* 18829 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/1,
5551 /* 18832 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
5552 /* 18835 */ GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
5553 /* 18839 */ GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/0, // dst
5554 /* 18843 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
5555 /* 18846 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/5,
5556 /* 18849 */ GIR_EraseRootFromParent_Done,
5557 /* 18850 */ // Label 217: @18850
5558 /* 18850 */ GIM_Reject,
5559 /* 18851 */ // Label 215: @18851
5560 /* 18851 */ GIM_Try, /*On fail goto*//*Label 218*/ GIMT_Encode4(18875), // Rule ID 117 //
5561 /* 18856 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
5562 /* 18859 */ // MIs[0] dst
5563 /* 18859 */ // No operand predicates
5564 /* 18859 */ // MIs[0] src
5565 /* 18859 */ // No operand predicates
5566 /* 18859 */ // MIs[0] src
5567 /* 18859 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5568 /* 18864 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5569 /* 18869 */ // Combiner Rule #87: binop_same_val @ [__binop_same_val_match_0[1]]
5570 /* 18869 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5571 /* 18874 */ GIR_EraseRootFromParent_Done,
5572 /* 18875 */ // Label 218: @18875
5573 /* 18875 */ GIM_Try, /*On fail goto*//*Label 219*/ GIMT_Encode4(18898), // Rule ID 108 //
5574 /* 18880 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
5575 /* 18883 */ // MIs[0] dst
5576 /* 18883 */ // No operand predicates
5577 /* 18883 */ // MIs[0] lhs
5578 /* 18883 */ // No operand predicates
5579 /* 18883 */ // MIs[0] Operand 2
5580 /* 18883 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5581 /* 18887 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5582 /* 18892 */ // Combiner Rule #86: right_identity_zero @ [__right_identity_zero_match_0[2]]
5583 /* 18892 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5584 /* 18897 */ GIR_EraseRootFromParent_Done,
5585 /* 18898 */ // Label 219: @18898
5586 /* 18898 */ GIM_Reject,
5587 /* 18899 */ // Label 10: @18899
5588 /* 18899 */ GIM_Try, /*On fail goto*//*Label 220*/ GIMT_Encode4(18910), // Rule ID 98 //
5589 /* 18904 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
5590 /* 18907 */ // Combiner Rule #80: propagate_undef_any_op; wip_match_opcode 'G_XOR'
5591 /* 18907 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
5592 /* 18910 */ // Label 220: @18910
5593 /* 18910 */ GIM_Try, /*On fail goto*//*Label 221*/ GIMT_Encode4(18921), // Rule ID 148 //
5594 /* 18915 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule107Enabled),
5595 /* 18918 */ // Combiner Rule #107: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_XOR'
5596 /* 18918 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
5597 /* 18921 */ // Label 221: @18921
5598 /* 18921 */ GIM_Try, /*On fail goto*//*Label 222*/ GIMT_Encode4(18932), // Rule ID 178 //
5599 /* 18926 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule135Enabled),
5600 /* 18929 */ // Combiner Rule #135: not_cmp_fold; wip_match_opcode 'G_XOR'
5601 /* 18929 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
5602 /* 18932 */ // Label 222: @18932
5603 /* 18932 */ GIM_Try, /*On fail goto*//*Label 223*/ GIMT_Encode4(18943), // Rule ID 210 //
5604 /* 18937 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule159Enabled),
5605 /* 18940 */ // Combiner Rule #159: xor_of_and_with_same_reg; wip_match_opcode 'G_XOR'
5606 /* 18940 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner89),
5607 /* 18943 */ // Label 223: @18943
5608 /* 18943 */ GIM_Try, /*On fail goto*//*Label 224*/ GIMT_Encode4(18954), // Rule ID 256 //
5609 /* 18948 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
5610 /* 18951 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_XOR'
5611 /* 18951 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5612 /* 18954 */ // Label 224: @18954
5613 /* 18954 */ GIM_Try, /*On fail goto*//*Label 225*/ GIMT_Encode4(18965), // Rule ID 296 //
5614 /* 18959 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
5615 /* 18962 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_XOR'
5616 /* 18962 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5617 /* 18965 */ // Label 225: @18965
5618 /* 18965 */ GIM_Try, /*On fail goto*//*Label 226*/ GIMT_Encode4(18976), // Rule ID 331 //
5619 /* 18970 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
5620 /* 18973 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_XOR'
5621 /* 18973 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
5622 /* 18976 */ // Label 226: @18976
5623 /* 18976 */ GIM_Try, /*On fail goto*//*Label 227*/ GIMT_Encode4(18999), // Rule ID 109 //
5624 /* 18981 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
5625 /* 18984 */ // MIs[0] dst
5626 /* 18984 */ // No operand predicates
5627 /* 18984 */ // MIs[0] lhs
5628 /* 18984 */ // No operand predicates
5629 /* 18984 */ // MIs[0] Operand 2
5630 /* 18984 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5631 /* 18988 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5632 /* 18993 */ // Combiner Rule #86: right_identity_zero @ [__right_identity_zero_match_0[3]]
5633 /* 18993 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5634 /* 18998 */ GIR_EraseRootFromParent_Done,
5635 /* 18999 */ // Label 227: @18999
5636 /* 18999 */ GIM_Reject,
5637 /* 19000 */ // Label 11: @19000
5638 /* 19000 */ GIM_Try, /*On fail goto*//*Label 228*/ GIMT_Encode4(19011), // Rule ID 144 //
5639 /* 19005 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
5640 /* 19008 */ // Combiner Rule #105: extend_through_phis; wip_match_opcode 'G_PHI'
5641 /* 19008 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner52),
5642 /* 19011 */ // Label 228: @19011
5643 /* 19011 */ GIM_Reject,
5644 /* 19012 */ // Label 12: @19012
5645 /* 19012 */ GIM_Try, /*On fail goto*//*Label 229*/ GIMT_Encode4(19023), // Rule ID 367 //
5646 /* 19017 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule219Enabled),
5647 /* 19020 */ // Combiner Rule #219: unmerge_anyext_build_vector; wip_match_opcode 'G_UNMERGE_VALUES'
5648 /* 19020 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner140),
5649 /* 19023 */ // Label 229: @19023
5650 /* 19023 */ GIM_Try, /*On fail goto*//*Label 230*/ GIMT_Encode4(19034), // Rule ID 368 //
5651 /* 19028 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
5652 /* 19031 */ // Combiner Rule #220: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES'
5653 /* 19031 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner141),
5654 /* 19034 */ // Label 230: @19034
5655 /* 19034 */ GIM_Try, /*On fail goto*//*Label 231*/ GIMT_Encode4(19045), // Rule ID 370 //
5656 /* 19039 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule222Enabled),
5657 /* 19042 */ // Combiner Rule #222: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES'
5658 /* 19042 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner143),
5659 /* 19045 */ // Label 231: @19045
5660 /* 19045 */ GIM_Try, /*On fail goto*//*Label 232*/ GIMT_Encode4(19056), // Rule ID 371 //
5661 /* 19050 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule223Enabled),
5662 /* 19053 */ // Combiner Rule #223: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES'
5663 /* 19053 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner144),
5664 /* 19056 */ // Label 232: @19056
5665 /* 19056 */ GIM_Try, /*On fail goto*//*Label 233*/ GIMT_Encode4(19067), // Rule ID 372 //
5666 /* 19061 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule224Enabled),
5667 /* 19064 */ // Combiner Rule #224: unmerge_dead_to_trunc; wip_match_opcode 'G_UNMERGE_VALUES'
5668 /* 19064 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner145),
5669 /* 19067 */ // Label 233: @19067
5670 /* 19067 */ GIM_Try, /*On fail goto*//*Label 234*/ GIMT_Encode4(19078), // Rule ID 373 //
5671 /* 19072 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule225Enabled),
5672 /* 19075 */ // Combiner Rule #225: unmerge_zext_to_zext; wip_match_opcode 'G_UNMERGE_VALUES'
5673 /* 19075 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner146),
5674 /* 19078 */ // Label 234: @19078
5675 /* 19078 */ GIM_Reject,
5676 /* 19079 */ // Label 13: @19079
5677 /* 19079 */ GIM_Try, /*On fail goto*//*Label 235*/ GIMT_Encode4(19093), // Rule ID 369 //
5678 /* 19084 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
5679 /* 19087 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
5680 /* 19090 */ // MIs[0] dst
5681 /* 19090 */ // No operand predicates
5682 /* 19090 */ // MIs[0] merge_srcs
5683 /* 19090 */ // No operand predicates
5684 /* 19090 */ // Combiner Rule #221: merge_unmerge
5685 /* 19090 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner142),
5686 /* 19093 */ // Label 235: @19093
5687 /* 19093 */ GIM_Try, /*On fail goto*//*Label 236*/ GIMT_Encode4(19155),
5688 /* 19098 */ GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
5689 /* 19101 */ GIM_Try, /*On fail goto*//*Label 237*/ GIMT_Encode4(19122), // Rule ID 374 //
5690 /* 19106 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule226Enabled),
5691 /* 19109 */ // MIs[0] root
5692 /* 19109 */ // No operand predicates
5693 /* 19109 */ // MIs[0] x
5694 /* 19109 */ // No operand predicates
5695 /* 19109 */ // MIs[0] undef
5696 /* 19109 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5697 /* 19113 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5698 /* 19117 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5699 /* 19119 */ // Combiner Rule #226: merge_of_x_and_undef
5700 /* 19119 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner147),
5701 /* 19122 */ // Label 237: @19122
5702 /* 19122 */ GIM_Try, /*On fail goto*//*Label 238*/ GIMT_Encode4(19154), // Rule ID 375 //
5703 /* 19127 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
5704 /* 19130 */ // MIs[0] root
5705 /* 19130 */ // No operand predicates
5706 /* 19130 */ // MIs[0] x
5707 /* 19130 */ // No operand predicates
5708 /* 19130 */ // MIs[0] zero
5709 /* 19130 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5710 /* 19134 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5711 /* 19138 */ // MIs[1] Operand 1
5712 /* 19138 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5713 /* 19149 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5714 /* 19151 */ // Combiner Rule #227: merge_of_x_and_zero
5715 /* 19151 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner148),
5716 /* 19154 */ // Label 238: @19154
5717 /* 19154 */ GIM_Reject,
5718 /* 19155 */ // Label 236: @19155
5719 /* 19155 */ GIM_Reject,
5720 /* 19156 */ // Label 14: @19156
5721 /* 19156 */ GIM_Try, /*On fail goto*//*Label 239*/ GIMT_Encode4(19167), // Rule ID 71 //
5722 /* 19161 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled),
5723 /* 19164 */ // Combiner Rule #69: extract_all_elts_from_build_vector; wip_match_opcode 'G_BUILD_VECTOR'
5724 /* 19164 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29),
5725 /* 19167 */ // Label 239: @19167
5726 /* 19167 */ GIM_Try, /*On fail goto*//*Label 240*/ GIMT_Encode4(19178), // Rule ID 100 //
5727 /* 19172 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
5728 /* 19175 */ // Combiner Rule #81: propagate_undef_all_ops; wip_match_opcode 'G_BUILD_VECTOR'
5729 /* 19175 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
5730 /* 19178 */ // Label 240: @19178
5731 /* 19178 */ GIM_Try, /*On fail goto*//*Label 241*/ GIMT_Encode4(19189), // Rule ID 136 //
5732 /* 19183 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule97Enabled),
5733 /* 19186 */ // Combiner Rule #97: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR'
5734 /* 19186 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
5735 /* 19189 */ // Label 241: @19189
5736 /* 19189 */ GIM_Try, /*On fail goto*//*Label 242*/ GIMT_Encode4(19220),
5737 /* 19194 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
5738 /* 19197 */ GIM_Try, /*On fail goto*//*Label 243*/ GIMT_Encode4(19208), // Rule ID 366 //
5739 /* 19202 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule218Enabled),
5740 /* 19205 */ // MIs[0] dst
5741 /* 19205 */ // No operand predicates
5742 /* 19205 */ // MIs[0] unused
5743 /* 19205 */ // No operand predicates
5744 /* 19205 */ // Combiner Rule #218: combine_use_vector_truncate
5745 /* 19205 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner139),
5746 /* 19208 */ // Label 243: @19208
5747 /* 19208 */ GIM_Try, /*On fail goto*//*Label 244*/ GIMT_Encode4(19219), // Rule ID 376 //
5748 /* 19213 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
5749 /* 19216 */ // MIs[0] dst
5750 /* 19216 */ // No operand predicates
5751 /* 19216 */ // MIs[0] unused
5752 /* 19216 */ // No operand predicates
5753 /* 19216 */ // Combiner Rule #228: combine_build_unmerge
5754 /* 19216 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner149),
5755 /* 19219 */ // Label 244: @19219
5756 /* 19219 */ GIM_Reject,
5757 /* 19220 */ // Label 242: @19220
5758 /* 19220 */ GIM_Reject,
5759 /* 19221 */ // Label 15: @19221
5760 /* 19221 */ GIM_Try, /*On fail goto*//*Label 245*/ GIMT_Encode4(19232), // Rule ID 135 //
5761 /* 19226 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule97Enabled),
5762 /* 19229 */ // Combiner Rule #97: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR_TRUNC'
5763 /* 19229 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
5764 /* 19232 */ // Label 245: @19232
5765 /* 19232 */ GIM_Reject,
5766 /* 19233 */ // Label 16: @19233
5767 /* 19233 */ GIM_Try, /*On fail goto*//*Label 246*/ GIMT_Encode4(19244), // Rule ID 359 //
5768 /* 19238 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
5769 /* 19241 */ // Combiner Rule #211: combine_concat_vector; wip_match_opcode 'G_CONCAT_VECTORS'
5770 /* 19241 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132),
5771 /* 19244 */ // Label 246: @19244
5772 /* 19244 */ GIM_Reject,
5773 /* 19245 */ // Label 17: @19245
5774 /* 19245 */ GIM_Try, /*On fail goto*//*Label 247*/ GIMT_Encode4(19266), // Rule ID 128 //
5775 /* 19250 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
5776 /* 19253 */ // MIs[0] dst
5777 /* 19253 */ // No operand predicates
5778 /* 19253 */ // MIs[0] t
5779 /* 19253 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5780 /* 19257 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
5781 /* 19261 */ // MIs[1] ptr
5782 /* 19261 */ // No operand predicates
5783 /* 19261 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5784 /* 19263 */ // Combiner Rule #91: i2p_to_p2i
5785 /* 19263 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46),
5786 /* 19266 */ // Label 247: @19266
5787 /* 19266 */ GIM_Try, /*On fail goto*//*Label 248*/ GIMT_Encode4(19287), // Rule ID 92 //
5788 /* 19271 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
5789 /* 19274 */ // MIs[0] dst
5790 /* 19274 */ // No operand predicates
5791 /* 19274 */ // MIs[0] __unary_undef_to_undef_match_0.x
5792 /* 19274 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5793 /* 19278 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5794 /* 19282 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5795 /* 19284 */ // Combiner Rule #79: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[3]]
5796 /* 19284 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
5797 /* 19287 */ // Label 248: @19287
5798 /* 19287 */ GIM_Reject,
5799 /* 19288 */ // Label 18: @19288
5800 /* 19288 */ GIM_Try, /*On fail goto*//*Label 249*/ GIMT_Encode4(19299), // Rule ID 127 //
5801 /* 19293 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
5802 /* 19296 */ // Combiner Rule #90: p2i_to_i2p; wip_match_opcode 'G_INTTOPTR'
5803 /* 19296 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
5804 /* 19299 */ // Label 249: @19299
5805 /* 19299 */ GIM_Try, /*On fail goto*//*Label 250*/ GIMT_Encode4(19320), // Rule ID 93 //
5806 /* 19304 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
5807 /* 19307 */ // MIs[0] dst
5808 /* 19307 */ // No operand predicates
5809 /* 19307 */ // MIs[0] __unary_undef_to_undef_match_0.x
5810 /* 19307 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5811 /* 19311 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5812 /* 19315 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5813 /* 19317 */ // Combiner Rule #79: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[4]]
5814 /* 19317 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
5815 /* 19320 */ // Label 250: @19320
5816 /* 19320 */ GIM_Reject,
5817 /* 19321 */ // Label 19: @19321
5818 /* 19321 */ GIM_Try, /*On fail goto*//*Label 251*/ GIMT_Encode4(19342), // Rule ID 139 //
5819 /* 19326 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule100Enabled),
5820 /* 19329 */ // MIs[0] dst
5821 /* 19329 */ // No operand predicates
5822 /* 19329 */ // MIs[0] src1
5823 /* 19329 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5824 /* 19333 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
5825 /* 19337 */ // MIs[1] src0
5826 /* 19337 */ // No operand predicates
5827 /* 19337 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5828 /* 19339 */ // Combiner Rule #100: bitcast_bitcast_fold
5829 /* 19339 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
5830 /* 19342 */ // Label 251: @19342
5831 /* 19342 */ GIM_Try, /*On fail goto*//*Label 252*/ GIMT_Encode4(19363), // Rule ID 90 //
5832 /* 19347 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
5833 /* 19350 */ // MIs[0] dst
5834 /* 19350 */ // No operand predicates
5835 /* 19350 */ // MIs[0] __unary_undef_to_undef_match_0.x
5836 /* 19350 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5837 /* 19354 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5838 /* 19358 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5839 /* 19360 */ // Combiner Rule #79: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[1]]
5840 /* 19360 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
5841 /* 19363 */ // Label 252: @19363
5842 /* 19363 */ GIM_Reject,
5843 /* 19364 */ // Label 20: @19364
5844 /* 19364 */ GIM_Try, /*On fail goto*//*Label 253*/ GIMT_Encode4(19393), // Rule ID 20 //
5845 /* 19369 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
5846 /* 19372 */ // MIs[0] dst
5847 /* 19372 */ // No operand predicates
5848 /* 19372 */ // MIs[0] src
5849 /* 19372 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5850 /* 19376 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREEZE),
5851 /* 19380 */ // MIs[1] __idempotent_prop_match_0.x
5852 /* 19380 */ // No operand predicates
5853 /* 19380 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5854 /* 19385 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5855 /* 19387 */ // Combiner Rule #20: idempotent_prop @ [__idempotent_prop_match_0[0]]
5856 /* 19387 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5857 /* 19392 */ GIR_EraseRootFromParent_Done,
5858 /* 19393 */ // Label 253: @19393
5859 /* 19393 */ GIM_Try, /*On fail goto*//*Label 254*/ GIMT_Encode4(19416), // Rule ID 45 //
5860 /* 19398 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
5861 /* 19401 */ // MIs[0] root
5862 /* 19401 */ // No operand predicates
5863 /* 19401 */ // MIs[0] src
5864 /* 19401 */ // No operand predicates
5865 /* 19401 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
5866 /* 19405 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5867 /* 19410 */ // Combiner Rule #43: freeze_of_non_undef_non_poison
5868 /* 19410 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5869 /* 19415 */ GIR_EraseRootFromParent_Done,
5870 /* 19416 */ // Label 254: @19416
5871 /* 19416 */ GIM_Try, /*On fail goto*//*Label 255*/ GIMT_Encode4(19427), // Rule ID 46 //
5872 /* 19421 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
5873 /* 19424 */ // MIs[0] dst
5874 /* 19424 */ // No operand predicates
5875 /* 19424 */ // MIs[0] src
5876 /* 19424 */ // No operand predicates
5877 /* 19424 */ // Combiner Rule #44: push_freeze_to_prevent_poison_from_propagating
5878 /* 19424 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
5879 /* 19427 */ // Label 255: @19427
5880 /* 19427 */ GIM_Reject,
5881 /* 19428 */ // Label 21: @19428
5882 /* 19428 */ GIM_Try, /*On fail goto*//*Label 256*/ GIMT_Encode4(19449), // Rule ID 188 //
5883 /* 19433 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
5884 /* 19436 */ // MIs[0] dst
5885 /* 19436 */ // No operand predicates
5886 /* 19436 */ // MIs[0] src0
5887 /* 19436 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5888 /* 19440 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
5889 /* 19444 */ // MIs[1] cst
5890 /* 19444 */ // No operand predicates
5891 /* 19444 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5892 /* 19446 */ // Combiner Rule #145: constant_fold_intrinsic_trunc
5893 /* 19446 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
5894 /* 19449 */ // Label 256: @19449
5895 /* 19449 */ GIM_Reject,
5896 /* 19450 */ // Label 22: @19450
5897 /* 19450 */ GIM_Try, /*On fail goto*//*Label 257*/ GIMT_Encode4(19471), // Rule ID 189 //
5898 /* 19455 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
5899 /* 19458 */ // MIs[0] dst
5900 /* 19458 */ // No operand predicates
5901 /* 19458 */ // MIs[0] src0
5902 /* 19458 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5903 /* 19462 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
5904 /* 19466 */ // MIs[1] cst
5905 /* 19466 */ // No operand predicates
5906 /* 19466 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5907 /* 19468 */ // Combiner Rule #146: constant_fold_intrinsic_round
5908 /* 19468 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
5909 /* 19471 */ // Label 257: @19471
5910 /* 19471 */ GIM_Reject,
5911 /* 19472 */ // Label 23: @19472
5912 /* 19472 */ GIM_Try, /*On fail goto*//*Label 258*/ GIMT_Encode4(19493), // Rule ID 190 //
5913 /* 19477 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
5914 /* 19480 */ // MIs[0] dst
5915 /* 19480 */ // No operand predicates
5916 /* 19480 */ // MIs[0] src0
5917 /* 19480 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5918 /* 19484 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
5919 /* 19488 */ // MIs[1] cst
5920 /* 19488 */ // No operand predicates
5921 /* 19488 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5922 /* 19490 */ // Combiner Rule #147: constant_fold_intrinsic_roundeven
5923 /* 19490 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
5924 /* 19493 */ // Label 258: @19493
5925 /* 19493 */ GIM_Reject,
5926 /* 19494 */ // Label 24: @19494
5927 /* 19494 */ GIM_Try, /*On fail goto*//*Label 259*/ GIMT_Encode4(19505), // Rule ID 72 //
5928 /* 19499 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled),
5929 /* 19502 */ // Combiner Rule #70: extending_loads; wip_match_opcode 'G_LOAD'
5930 /* 19502 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
5931 /* 19505 */ // Label 259: @19505
5932 /* 19505 */ GIM_Reject,
5933 /* 19506 */ // Label 25: @19506
5934 /* 19506 */ GIM_Try, /*On fail goto*//*Label 260*/ GIMT_Encode4(19517), // Rule ID 73 //
5935 /* 19511 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled),
5936 /* 19514 */ // Combiner Rule #70: extending_loads; wip_match_opcode 'G_SEXTLOAD'
5937 /* 19514 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
5938 /* 19517 */ // Label 260: @19517
5939 /* 19517 */ GIM_Reject,
5940 /* 19518 */ // Label 26: @19518
5941 /* 19518 */ GIM_Try, /*On fail goto*//*Label 261*/ GIMT_Encode4(19529), // Rule ID 74 //
5942 /* 19523 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled),
5943 /* 19526 */ // Combiner Rule #70: extending_loads; wip_match_opcode 'G_ZEXTLOAD'
5944 /* 19526 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
5945 /* 19529 */ // Label 261: @19529
5946 /* 19529 */ GIM_Reject,
5947 /* 19530 */ // Label 27: @19530
5948 /* 19530 */ GIM_Try, /*On fail goto*//*Label 262*/ GIMT_Encode4(19541), // Rule ID 102 //
5949 /* 19535 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
5950 /* 19538 */ // Combiner Rule #83: erase_undef_store; wip_match_opcode 'G_STORE'
5951 /* 19538 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner42),
5952 /* 19541 */ // Label 262: @19541
5953 /* 19541 */ GIM_Reject,
5954 /* 19542 */ // Label 28: @19542
5955 /* 19542 */ GIM_Try, /*On fail goto*//*Label 263*/ GIMT_Encode4(19553), // Rule ID 401 //
5956 /* 19547 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule246Enabled),
5957 /* 19550 */ // Combiner Rule #246: rcp_sqrt_to_rsq; wip_match_opcode 'G_INTRINSIC'
5958 /* 19550 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner163),
5959 /* 19553 */ // Label 263: @19553
5960 /* 19553 */ GIM_Reject,
5961 /* 19554 */ // Label 29: @19554
5962 /* 19554 */ GIM_Try, /*On fail goto*//*Label 264*/ GIMT_Encode4(19565), // Rule ID 129 //
5963 /* 19559 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
5964 /* 19562 */ // Combiner Rule #92: anyext_trunc_fold; wip_match_opcode 'G_ANYEXT'
5965 /* 19562 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47),
5966 /* 19565 */ // Label 264: @19565
5967 /* 19565 */ GIM_Try, /*On fail goto*//*Label 265*/ GIMT_Encode4(19576), // Rule ID 273 //
5968 /* 19570 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
5969 /* 19573 */ // Combiner Rule #182: constant_fold_cast_op; wip_match_opcode 'G_ANYEXT'
5970 /* 19573 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
5971 /* 19576 */ // Label 265: @19576
5972 /* 19576 */ GIM_Try, /*On fail goto*//*Label 266*/ GIMT_Encode4(19597), // Rule ID 59 //
5973 /* 19581 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled),
5974 /* 19584 */ // MIs[0] root
5975 /* 19584 */ // No operand predicates
5976 /* 19584 */ // MIs[0] select
5977 /* 19584 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5978 /* 19588 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
5979 /* 19592 */ // MIs[1] cond
5980 /* 19592 */ // No operand predicates
5981 /* 19592 */ // MIs[1] true
5982 /* 19592 */ // No operand predicates
5983 /* 19592 */ // MIs[1] false
5984 /* 19592 */ // No operand predicates
5985 /* 19592 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5986 /* 19594 */ // Combiner Rule #57: select_of_anyext
5987 /* 19594 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
5988 /* 19597 */ // Label 266: @19597
5989 /* 19597 */ GIM_Try, /*On fail goto*//*Label 267*/ GIMT_Encode4(19618), // Rule ID 54 //
5990 /* 19602 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
5991 /* 19605 */ // MIs[0] root
5992 /* 19605 */ // No operand predicates
5993 /* 19605 */ // MIs[0] second
5994 /* 19605 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5995 /* 19609 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
5996 /* 19613 */ // MIs[1] src
5997 /* 19613 */ // No operand predicates
5998 /* 19613 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5999 /* 19615 */ // Combiner Rule #52: anyext_of_anyext
6000 /* 19615 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6001 /* 19618 */ // Label 267: @19618
6002 /* 19618 */ GIM_Try, /*On fail goto*//*Label 268*/ GIMT_Encode4(19639), // Rule ID 56 //
6003 /* 19623 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled),
6004 /* 19626 */ // MIs[0] root
6005 /* 19626 */ // No operand predicates
6006 /* 19626 */ // MIs[0] second
6007 /* 19626 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6008 /* 19630 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
6009 /* 19634 */ // MIs[1] src
6010 /* 19634 */ // No operand predicates
6011 /* 19634 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6012 /* 19636 */ // Combiner Rule #54: anyext_of_sext
6013 /* 19636 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6014 /* 19639 */ // Label 268: @19639
6015 /* 19639 */ GIM_Try, /*On fail goto*//*Label 269*/ GIMT_Encode4(19660), // Rule ID 55 //
6016 /* 19644 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
6017 /* 19647 */ // MIs[0] root
6018 /* 19647 */ // No operand predicates
6019 /* 19647 */ // MIs[0] second
6020 /* 19647 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6021 /* 19651 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6022 /* 19655 */ // MIs[1] src
6023 /* 19655 */ // No operand predicates
6024 /* 19655 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6025 /* 19657 */ // Combiner Rule #53: anyext_of_zext
6026 /* 19657 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6027 /* 19660 */ // Label 269: @19660
6028 /* 19660 */ GIM_Try, /*On fail goto*//*Label 270*/ GIMT_Encode4(19681), // Rule ID 91 //
6029 /* 19665 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
6030 /* 19668 */ // MIs[0] dst
6031 /* 19668 */ // No operand predicates
6032 /* 19668 */ // MIs[0] __unary_undef_to_undef_match_0.x
6033 /* 19668 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6034 /* 19672 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6035 /* 19676 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6036 /* 19678 */ // Combiner Rule #79: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[2]]
6037 /* 19678 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6038 /* 19681 */ // Label 270: @19681
6039 /* 19681 */ GIM_Reject,
6040 /* 19682 */ // Label 30: @19682
6041 /* 19682 */ GIM_Try, /*On fail goto*//*Label 271*/ GIMT_Encode4(19693), // Rule ID 137 //
6042 /* 19687 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule98Enabled),
6043 /* 19690 */ // Combiner Rule #98: trunc_buildvector_fold; wip_match_opcode 'G_TRUNC'
6044 /* 19690 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner49),
6045 /* 19693 */ // Label 271: @19693
6046 /* 19693 */ GIM_Try, /*On fail goto*//*Label 272*/ GIMT_Encode4(19704), // Rule ID 138 //
6047 /* 19698 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule99Enabled),
6048 /* 19701 */ // Combiner Rule #99: trunc_lshr_buildvector_fold; wip_match_opcode 'G_TRUNC'
6049 /* 19701 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner50),
6050 /* 19704 */ // Label 272: @19704
6051 /* 19704 */ GIM_Try, /*On fail goto*//*Label 273*/ GIMT_Encode4(19715), // Rule ID 177 //
6052 /* 19709 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule134Enabled),
6053 /* 19712 */ // Combiner Rule #134: trunc_shift; wip_match_opcode 'G_TRUNC'
6054 /* 19712 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
6055 /* 19715 */ // Label 273: @19715
6056 /* 19715 */ GIM_Try, /*On fail goto*//*Label 274*/ GIMT_Encode4(19736), // Rule ID 60 //
6057 /* 19720 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled),
6058 /* 19723 */ // MIs[0] root
6059 /* 19723 */ // No operand predicates
6060 /* 19723 */ // MIs[0] select
6061 /* 19723 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6062 /* 19727 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
6063 /* 19731 */ // MIs[1] cond
6064 /* 19731 */ // No operand predicates
6065 /* 19731 */ // MIs[1] true
6066 /* 19731 */ // No operand predicates
6067 /* 19731 */ // MIs[1] false
6068 /* 19731 */ // No operand predicates
6069 /* 19731 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6070 /* 19733 */ // Combiner Rule #58: select_of_truncate
6071 /* 19733 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
6072 /* 19736 */ // Label 274: @19736
6073 /* 19736 */ GIM_Try, /*On fail goto*//*Label 275*/ GIMT_Encode4(19765), // Rule ID 62 //
6074 /* 19741 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled),
6075 /* 19744 */ // MIs[0] root
6076 /* 19744 */ // No operand predicates
6077 /* 19744 */ // MIs[0] binop
6078 /* 19744 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6079 /* 19748 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
6080 /* 19752 */ // MIs[1] x
6081 /* 19752 */ // No operand predicates
6082 /* 19752 */ // MIs[1] const
6083 /* 19752 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6084 /* 19756 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6085 /* 19760 */ // MIs[2] imm
6086 /* 19760 */ // No operand predicates
6087 /* 19760 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6088 /* 19762 */ // Combiner Rule #60: narrow_binop_add
6089 /* 19762 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
6090 /* 19765 */ // Label 275: @19765
6091 /* 19765 */ GIM_Try, /*On fail goto*//*Label 276*/ GIMT_Encode4(19794), // Rule ID 65 //
6092 /* 19770 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule63Enabled),
6093 /* 19773 */ // MIs[0] root
6094 /* 19773 */ // No operand predicates
6095 /* 19773 */ // MIs[0] binop
6096 /* 19773 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6097 /* 19777 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6098 /* 19781 */ // MIs[1] x
6099 /* 19781 */ // No operand predicates
6100 /* 19781 */ // MIs[1] const
6101 /* 19781 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6102 /* 19785 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6103 /* 19789 */ // MIs[2] imm
6104 /* 19789 */ // No operand predicates
6105 /* 19789 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6106 /* 19791 */ // Combiner Rule #63: narrow_binop_and
6107 /* 19791 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
6108 /* 19794 */ // Label 276: @19794
6109 /* 19794 */ GIM_Try, /*On fail goto*//*Label 277*/ GIMT_Encode4(19823), // Rule ID 64 //
6110 /* 19799 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled),
6111 /* 19802 */ // MIs[0] root
6112 /* 19802 */ // No operand predicates
6113 /* 19802 */ // MIs[0] binop
6114 /* 19802 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6115 /* 19806 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
6116 /* 19810 */ // MIs[1] x
6117 /* 19810 */ // No operand predicates
6118 /* 19810 */ // MIs[1] const
6119 /* 19810 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6120 /* 19814 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6121 /* 19818 */ // MIs[2] imm
6122 /* 19818 */ // No operand predicates
6123 /* 19818 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6124 /* 19820 */ // Combiner Rule #62: narrow_binop_mul
6125 /* 19820 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
6126 /* 19823 */ // Label 277: @19823
6127 /* 19823 */ GIM_Try, /*On fail goto*//*Label 278*/ GIMT_Encode4(19852), // Rule ID 66 //
6128 /* 19828 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
6129 /* 19831 */ // MIs[0] root
6130 /* 19831 */ // No operand predicates
6131 /* 19831 */ // MIs[0] binop
6132 /* 19831 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6133 /* 19835 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
6134 /* 19839 */ // MIs[1] x
6135 /* 19839 */ // No operand predicates
6136 /* 19839 */ // MIs[1] const
6137 /* 19839 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6138 /* 19843 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6139 /* 19847 */ // MIs[2] imm
6140 /* 19847 */ // No operand predicates
6141 /* 19847 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6142 /* 19849 */ // Combiner Rule #64: narrow_binop_or
6143 /* 19849 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
6144 /* 19852 */ // Label 278: @19852
6145 /* 19852 */ GIM_Try, /*On fail goto*//*Label 279*/ GIMT_Encode4(19881), // Rule ID 63 //
6146 /* 19857 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule61Enabled),
6147 /* 19860 */ // MIs[0] root
6148 /* 19860 */ // No operand predicates
6149 /* 19860 */ // MIs[0] binop
6150 /* 19860 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6151 /* 19864 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
6152 /* 19868 */ // MIs[1] x
6153 /* 19868 */ // No operand predicates
6154 /* 19868 */ // MIs[1] const
6155 /* 19868 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6156 /* 19872 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6157 /* 19876 */ // MIs[2] imm
6158 /* 19876 */ // No operand predicates
6159 /* 19876 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6160 /* 19878 */ // Combiner Rule #61: narrow_binop_sub
6161 /* 19878 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
6162 /* 19881 */ // Label 279: @19881
6163 /* 19881 */ GIM_Try, /*On fail goto*//*Label 280*/ GIMT_Encode4(19913), // Rule ID 383 //
6164 /* 19886 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
6165 /* 19889 */ // MIs[0] dst
6166 /* 19889 */ // No operand predicates
6167 /* 19889 */ // MIs[0] min
6168 /* 19889 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6169 /* 19893 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMIN),
6170 /* 19897 */ // MIs[1] x
6171 /* 19897 */ // No operand predicates
6172 /* 19897 */ // MIs[1] y
6173 /* 19897 */ // No operand predicates
6174 /* 19897 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner11),
6175 /* 19901 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6176 /* 19903 */ // Combiner Rule #233: trunc_usatu
6177 /* 19903 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_TRUNC_USAT_U),
6178 /* 19906 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6179 /* 19908 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6180 /* 19912 */ GIR_EraseRootFromParent_Done,
6181 /* 19913 */ // Label 280: @19913
6182 /* 19913 */ GIM_Try, /*On fail goto*//*Label 281*/ GIMT_Encode4(19942), // Rule ID 67 //
6183 /* 19918 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
6184 /* 19921 */ // MIs[0] root
6185 /* 19921 */ // No operand predicates
6186 /* 19921 */ // MIs[0] binop
6187 /* 19921 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6188 /* 19925 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
6189 /* 19929 */ // MIs[1] x
6190 /* 19929 */ // No operand predicates
6191 /* 19929 */ // MIs[1] const
6192 /* 19929 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6193 /* 19933 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6194 /* 19937 */ // MIs[2] imm
6195 /* 19937 */ // No operand predicates
6196 /* 19937 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6197 /* 19939 */ // Combiner Rule #65: narrow_binop_xor
6198 /* 19939 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
6199 /* 19942 */ // Label 281: @19942
6200 /* 19942 */ GIM_Try, /*On fail goto*//*Label 282*/ GIMT_Encode4(19963), // Rule ID 49 //
6201 /* 19947 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled),
6202 /* 19950 */ // MIs[0] root
6203 /* 19950 */ // No operand predicates
6204 /* 19950 */ // MIs[0] ext
6205 /* 19950 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6206 /* 19954 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
6207 /* 19958 */ // MIs[1] src
6208 /* 19958 */ // No operand predicates
6209 /* 19958 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6210 /* 19960 */ // Combiner Rule #47: truncate_of_anyext
6211 /* 19960 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
6212 /* 19963 */ // Label 282: @19963
6213 /* 19963 */ GIM_Try, /*On fail goto*//*Label 283*/ GIMT_Encode4(19987), // Rule ID 61 //
6214 /* 19968 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled),
6215 /* 19971 */ // MIs[0] root
6216 /* 19971 */ // No operand predicates
6217 /* 19971 */ // MIs[0] bv
6218 /* 19971 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6219 /* 19975 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
6220 /* 19979 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
6221 /* 19982 */ // MIs[1] unused
6222 /* 19982 */ // No operand predicates
6223 /* 19982 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6224 /* 19984 */ // Combiner Rule #59: buildvector_of_truncate
6225 /* 19984 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
6226 /* 19987 */ // Label 283: @19987
6227 /* 19987 */ GIM_Try, /*On fail goto*//*Label 284*/ GIMT_Encode4(20008), // Rule ID 48 //
6228 /* 19992 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
6229 /* 19995 */ // MIs[0] root
6230 /* 19995 */ // No operand predicates
6231 /* 19995 */ // MIs[0] ext
6232 /* 19995 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6233 /* 19999 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
6234 /* 20003 */ // MIs[1] src
6235 /* 20003 */ // No operand predicates
6236 /* 20003 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6237 /* 20005 */ // Combiner Rule #46: truncate_of_sext
6238 /* 20005 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
6239 /* 20008 */ // Label 284: @20008
6240 /* 20008 */ GIM_Try, /*On fail goto*//*Label 285*/ GIMT_Encode4(20029), // Rule ID 47 //
6241 /* 20013 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
6242 /* 20016 */ // MIs[0] root
6243 /* 20016 */ // No operand predicates
6244 /* 20016 */ // MIs[0] ext
6245 /* 20016 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6246 /* 20020 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6247 /* 20024 */ // MIs[1] src
6248 /* 20024 */ // No operand predicates
6249 /* 20024 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6250 /* 20026 */ // Combiner Rule #45: truncate_of_zext
6251 /* 20026 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
6252 /* 20029 */ // Label 285: @20029
6253 /* 20029 */ GIM_Try, /*On fail goto*//*Label 286*/ GIMT_Encode4(20050), // Rule ID 89 //
6254 /* 20034 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
6255 /* 20037 */ // MIs[0] dst
6256 /* 20037 */ // No operand predicates
6257 /* 20037 */ // MIs[0] __unary_undef_to_undef_match_0.x
6258 /* 20037 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6259 /* 20041 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6260 /* 20045 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6261 /* 20047 */ // Combiner Rule #79: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[0]]
6262 /* 20047 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6263 /* 20050 */ // Label 286: @20050
6264 /* 20050 */ GIM_Try, /*On fail goto*//*Label 287*/ GIMT_Encode4(20071), // Rule ID 68 //
6265 /* 20055 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule66Enabled),
6266 /* 20058 */ // MIs[0] root
6267 /* 20058 */ // No operand predicates
6268 /* 20058 */ // MIs[0] int
6269 /* 20058 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6270 /* 20062 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6271 /* 20066 */ // MIs[1] imm
6272 /* 20066 */ // No operand predicates
6273 /* 20066 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6274 /* 20068 */ // Combiner Rule #66: integer_of_truncate
6275 /* 20068 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner26),
6276 /* 20071 */ // Label 287: @20071
6277 /* 20071 */ GIM_Try, /*On fail goto*//*Label 288*/ GIMT_Encode4(20082), // Rule ID 381 //
6278 /* 20076 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule231Enabled),
6279 /* 20079 */ // MIs[0] dst
6280 /* 20079 */ // No operand predicates
6281 /* 20079 */ // MIs[0] src
6282 /* 20079 */ // No operand predicates
6283 /* 20079 */ // Combiner Rule #231: trunc_ssats
6284 /* 20079 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner152),
6285 /* 20082 */ // Label 288: @20082
6286 /* 20082 */ GIM_Try, /*On fail goto*//*Label 289*/ GIMT_Encode4(20093), // Rule ID 382 //
6287 /* 20087 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule232Enabled),
6288 /* 20090 */ // MIs[0] dst
6289 /* 20090 */ // No operand predicates
6290 /* 20090 */ // MIs[0] src
6291 /* 20090 */ // No operand predicates
6292 /* 20090 */ // Combiner Rule #232: trunc_ssatu
6293 /* 20090 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner153),
6294 /* 20093 */ // Label 289: @20093
6295 /* 20093 */ GIM_Reject,
6296 /* 20094 */ // Label 31: @20094
6297 /* 20094 */ GIM_Try, /*On fail goto*//*Label 290*/ GIMT_Encode4(20126), // Rule ID 384 //
6298 /* 20099 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
6299 /* 20102 */ // MIs[0] dst
6300 /* 20102 */ // No operand predicates
6301 /* 20102 */ // MIs[0] src
6302 /* 20102 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6303 /* 20106 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPTOUI),
6304 /* 20110 */ // MIs[1] x
6305 /* 20110 */ // No operand predicates
6306 /* 20110 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
6307 /* 20114 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6308 /* 20116 */ // Combiner Rule #234: truncusatu_to_fptouisat
6309 /* 20116 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FPTOUI_SAT),
6310 /* 20119 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6311 /* 20121 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6312 /* 20125 */ GIR_EraseRootFromParent_Done,
6313 /* 20126 */ // Label 290: @20126
6314 /* 20126 */ GIM_Reject,
6315 /* 20127 */ // Label 32: @20127
6316 /* 20127 */ GIM_Try, /*On fail goto*//*Label 291*/ GIMT_Encode4(20138), // Rule ID 272 //
6317 /* 20132 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
6318 /* 20135 */ // Combiner Rule #182: constant_fold_cast_op; wip_match_opcode 'G_SEXT'
6319 /* 20135 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
6320 /* 20138 */ // Label 291: @20138
6321 /* 20138 */ GIM_Try, /*On fail goto*//*Label 292*/ GIMT_Encode4(20159), // Rule ID 53 //
6322 /* 20143 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled),
6323 /* 20146 */ // MIs[0] root
6324 /* 20146 */ // No operand predicates
6325 /* 20146 */ // MIs[0] second
6326 /* 20146 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6327 /* 20150 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
6328 /* 20154 */ // MIs[1] src
6329 /* 20154 */ // No operand predicates
6330 /* 20154 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6331 /* 20156 */ // Combiner Rule #51: sext_of_anyext
6332 /* 20156 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6333 /* 20159 */ // Label 292: @20159
6334 /* 20159 */ GIM_Try, /*On fail goto*//*Label 293*/ GIMT_Encode4(20180), // Rule ID 52 //
6335 /* 20164 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
6336 /* 20167 */ // MIs[0] root
6337 /* 20167 */ // No operand predicates
6338 /* 20167 */ // MIs[0] second
6339 /* 20167 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6340 /* 20171 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
6341 /* 20175 */ // MIs[1] src
6342 /* 20175 */ // No operand predicates
6343 /* 20175 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6344 /* 20177 */ // Combiner Rule #50: sext_of_sext
6345 /* 20177 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6346 /* 20180 */ // Label 293: @20180
6347 /* 20180 */ GIM_Try, /*On fail goto*//*Label 294*/ GIMT_Encode4(20201), // Rule ID 360 //
6348 /* 20185 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
6349 /* 20188 */ // MIs[0] root
6350 /* 20188 */ // No operand predicates
6351 /* 20188 */ // MIs[0] src
6352 /* 20188 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6353 /* 20192 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
6354 /* 20196 */ // MIs[1] x
6355 /* 20196 */ // No operand predicates
6356 /* 20196 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6357 /* 20198 */ // Combiner Rule #212: sext_trunc
6358 /* 20198 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner133),
6359 /* 20201 */ // Label 294: @20201
6360 /* 20201 */ GIM_Reject,
6361 /* 20202 */ // Label 33: @20202
6362 /* 20202 */ GIM_Try, /*On fail goto*//*Label 295*/ GIMT_Encode4(20213), // Rule ID 164 //
6363 /* 20207 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
6364 /* 20210 */ // Combiner Rule #121: sext_inreg_of_load; wip_match_opcode 'G_SEXT_INREG'
6365 /* 20210 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner65),
6366 /* 20213 */ // Label 295: @20213
6367 /* 20213 */ GIM_Try, /*On fail goto*//*Label 296*/ GIMT_Encode4(20224), // Rule ID 172 //
6368 /* 20218 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule129Enabled),
6369 /* 20221 */ // Combiner Rule #129: redundant_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
6370 /* 20221 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
6371 /* 20224 */ // Label 296: @20224
6372 /* 20224 */ GIM_Try, /*On fail goto*//*Label 297*/ GIMT_Encode4(20235), // Rule ID 241 //
6373 /* 20229 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
6374 /* 20232 */ // Combiner Rule #175: bitfield_extract_from_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
6375 /* 20232 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner99),
6376 /* 20235 */ // Label 297: @20235
6377 /* 20235 */ GIM_Try, /*On fail goto*//*Label 298*/ GIMT_Encode4(20246), // Rule ID 404 //
6378 /* 20240 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule248Enabled),
6379 /* 20243 */ // Combiner Rule #248: sign_extension_in_reg; wip_match_opcode 'G_SEXT_INREG'
6380 /* 20243 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner165),
6381 /* 20246 */ // Label 298: @20246
6382 /* 20246 */ GIM_Try, /*On fail goto*//*Label 299*/ GIMT_Encode4(20267), // Rule ID 57 //
6383 /* 20251 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
6384 /* 20254 */ // MIs[0] dst
6385 /* 20254 */ // No operand predicates
6386 /* 20254 */ // MIs[0] x
6387 /* 20254 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6388 /* 20258 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
6389 /* 20262 */ // MIs[1] src
6390 /* 20262 */ // No operand predicates
6391 /* 20262 */ // MIs[1] a
6392 /* 20262 */ // No operand predicates
6393 /* 20262 */ // MIs[0] b
6394 /* 20262 */ // No operand predicates
6395 /* 20262 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6396 /* 20264 */ // Combiner Rule #55: sext_inreg_of_sext_inreg
6397 /* 20264 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
6398 /* 20267 */ // Label 299: @20267
6399 /* 20267 */ GIM_Try, /*On fail goto*//*Label 300*/ GIMT_Encode4(20278), // Rule ID 176 //
6400 /* 20272 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule133Enabled),
6401 /* 20275 */ // MIs[0] dst
6402 /* 20275 */ // No operand predicates
6403 /* 20275 */ // MIs[0] src
6404 /* 20275 */ // No operand predicates
6405 /* 20275 */ // MIs[0] imm
6406 /* 20275 */ // No operand predicates
6407 /* 20275 */ // Combiner Rule #133: sext_inreg_to_zext_inreg
6408 /* 20275 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner76),
6409 /* 20278 */ // Label 300: @20278
6410 /* 20278 */ GIM_Reject,
6411 /* 20279 */ // Label 34: @20279
6412 /* 20279 */ GIM_Try, /*On fail goto*//*Label 301*/ GIMT_Encode4(20290), // Rule ID 175 //
6413 /* 20284 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule132Enabled),
6414 /* 20287 */ // Combiner Rule #132: zext_trunc_fold; wip_match_opcode 'G_ZEXT'
6415 /* 20287 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner75),
6416 /* 20290 */ // Label 301: @20290
6417 /* 20290 */ GIM_Try, /*On fail goto*//*Label 302*/ GIMT_Encode4(20301), // Rule ID 271 //
6418 /* 20295 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
6419 /* 20298 */ // Combiner Rule #182: constant_fold_cast_op; wip_match_opcode 'G_ZEXT'
6420 /* 20298 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
6421 /* 20301 */ // Label 302: @20301
6422 /* 20301 */ GIM_Try, /*On fail goto*//*Label 303*/ GIMT_Encode4(20322), // Rule ID 58 //
6423 /* 20306 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled),
6424 /* 20309 */ // MIs[0] root
6425 /* 20309 */ // No operand predicates
6426 /* 20309 */ // MIs[0] select
6427 /* 20309 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6428 /* 20313 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
6429 /* 20317 */ // MIs[1] cond
6430 /* 20317 */ // No operand predicates
6431 /* 20317 */ // MIs[1] true
6432 /* 20317 */ // No operand predicates
6433 /* 20317 */ // MIs[1] false
6434 /* 20317 */ // No operand predicates
6435 /* 20317 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6436 /* 20319 */ // Combiner Rule #56: select_of_zext
6437 /* 20319 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
6438 /* 20322 */ // Label 303: @20322
6439 /* 20322 */ GIM_Try, /*On fail goto*//*Label 304*/ GIMT_Encode4(20343), // Rule ID 51 //
6440 /* 20327 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
6441 /* 20330 */ // MIs[0] root
6442 /* 20330 */ // No operand predicates
6443 /* 20330 */ // MIs[0] second
6444 /* 20330 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6445 /* 20334 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
6446 /* 20338 */ // MIs[1] src
6447 /* 20338 */ // No operand predicates
6448 /* 20338 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6449 /* 20340 */ // Combiner Rule #49: zext_of_anyext
6450 /* 20340 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6451 /* 20343 */ // Label 304: @20343
6452 /* 20343 */ GIM_Try, /*On fail goto*//*Label 305*/ GIMT_Encode4(20370), // Rule ID 361 //
6453 /* 20348 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
6454 /* 20351 */ // MIs[0] root
6455 /* 20351 */ // No operand predicates
6456 /* 20351 */ // MIs[0] src
6457 /* 20351 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6458 /* 20355 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
6459 /* 20359 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::NoUWrap),
6460 /* 20365 */ // MIs[1] x
6461 /* 20365 */ // No operand predicates
6462 /* 20365 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6463 /* 20367 */ // Combiner Rule #213: zext_trunc
6464 /* 20367 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner134),
6465 /* 20370 */ // Label 305: @20370
6466 /* 20370 */ GIM_Try, /*On fail goto*//*Label 306*/ GIMT_Encode4(20391), // Rule ID 50 //
6467 /* 20375 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled),
6468 /* 20378 */ // MIs[0] root
6469 /* 20378 */ // No operand predicates
6470 /* 20378 */ // MIs[0] second
6471 /* 20378 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6472 /* 20382 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6473 /* 20386 */ // MIs[1] src
6474 /* 20386 */ // No operand predicates
6475 /* 20386 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6476 /* 20388 */ // Combiner Rule #48: zext_of_zext
6477 /* 20388 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6478 /* 20391 */ // Label 306: @20391
6479 /* 20391 */ GIM_Try, /*On fail goto*//*Label 307*/ GIMT_Encode4(20408), // Rule ID 362 //
6480 /* 20396 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
6481 /* 20399 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NonNeg),
6482 /* 20405 */ // MIs[0] root
6483 /* 20405 */ // No operand predicates
6484 /* 20405 */ // MIs[0] x
6485 /* 20405 */ // No operand predicates
6486 /* 20405 */ // Combiner Rule #214: nneg_zext
6487 /* 20405 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner135),
6488 /* 20408 */ // Label 307: @20408
6489 /* 20408 */ GIM_Reject,
6490 /* 20409 */ // Label 35: @20409
6491 /* 20409 */ GIM_Try, /*On fail goto*//*Label 308*/ GIMT_Encode4(20420), // Rule ID 82 //
6492 /* 20414 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
6493 /* 20417 */ // Combiner Rule #76: binop_left_undef_to_zero; wip_match_opcode 'G_SHL'
6494 /* 20417 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
6495 /* 20420 */ // Label 308: @20420
6496 /* 20420 */ GIM_Try, /*On fail goto*//*Label 309*/ GIMT_Encode4(20431), // Rule ID 85 //
6497 /* 20425 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6498 /* 20428 */ // Combiner Rule #77: binop_right_undef_to_undef; wip_match_opcode 'G_SHL'
6499 /* 20428 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
6500 /* 20431 */ // Label 309: @20431
6501 /* 20431 */ GIM_Try, /*On fail goto*//*Label 310*/ GIMT_Encode4(20442), // Rule ID 212 //
6502 /* 20436 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
6503 /* 20439 */ // Combiner Rule #161: shift_immed_chain; wip_match_opcode 'G_SHL'
6504 /* 20439 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
6505 /* 20442 */ // Label 310: @20442
6506 /* 20442 */ GIM_Try, /*On fail goto*//*Label 311*/ GIMT_Encode4(20453), // Rule ID 217 //
6507 /* 20447 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
6508 /* 20450 */ // Combiner Rule #162: shift_of_shifted_logic_chain; wip_match_opcode 'G_SHL'
6509 /* 20450 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6510 /* 20453 */ // Label 311: @20453
6511 /* 20453 */ GIM_Try, /*On fail goto*//*Label 312*/ GIMT_Encode4(20464), // Rule ID 240 //
6512 /* 20458 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
6513 /* 20461 */ // Combiner Rule #174: commute_shift; wip_match_opcode 'G_SHL'
6514 /* 20461 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
6515 /* 20464 */ // Label 312: @20464
6516 /* 20464 */ GIM_Try, /*On fail goto*//*Label 313*/ GIMT_Encode4(20475), // Rule ID 254 //
6517 /* 20469 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
6518 /* 20472 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_SHL'
6519 /* 20472 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
6520 /* 20475 */ // Label 313: @20475
6521 /* 20475 */ GIM_Try, /*On fail goto*//*Label 314*/ GIMT_Encode4(20486), // Rule ID 303 //
6522 /* 20480 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
6523 /* 20483 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_SHL'
6524 /* 20483 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
6525 /* 20486 */ // Label 314: @20486
6526 /* 20486 */ GIM_Try, /*On fail goto*//*Label 315*/ GIMT_Encode4(20521), // Rule ID 43 //
6527 /* 20491 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
6528 /* 20494 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
6529 /* 20500 */ // MIs[0] root
6530 /* 20500 */ // No operand predicates
6531 /* 20500 */ // MIs[0] left
6532 /* 20500 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6533 /* 20504 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
6534 /* 20508 */ // MIs[1] imm
6535 /* 20508 */ // No operand predicates
6536 /* 20508 */ // MIs[0] x
6537 /* 20508 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6538 /* 20512 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6539 /* 20516 */ // MIs[2] imm1
6540 /* 20516 */ // No operand predicates
6541 /* 20516 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6542 /* 20518 */ // Combiner Rule #41: shl_of_vscale
6543 /* 20518 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
6544 /* 20521 */ // Label 315: @20521
6545 /* 20521 */ GIM_Try, /*On fail goto*//*Label 316*/ GIMT_Encode4(20561), // Rule ID 118 //
6546 /* 20526 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
6547 /* 20529 */ // MIs[0] dst
6548 /* 20529 */ // No operand predicates
6549 /* 20529 */ // MIs[0] zero
6550 /* 20529 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6551 /* 20533 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6552 /* 20537 */ // MIs[1] Operand 1
6553 /* 20537 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
6554 /* 20548 */ // MIs[0] rhs
6555 /* 20548 */ // No operand predicates
6556 /* 20548 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6557 /* 20553 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6558 /* 20555 */ // Combiner Rule #88: binop_left_to_zero @ [__binop_left_to_zero_match_0[0]]
6559 /* 20555 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6560 /* 20560 */ GIR_EraseRootFromParent_Done,
6561 /* 20561 */ // Label 316: @20561
6562 /* 20561 */ GIM_Try, /*On fail goto*//*Label 317*/ GIMT_Encode4(20584), // Rule ID 110 //
6563 /* 20566 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
6564 /* 20569 */ // MIs[0] dst
6565 /* 20569 */ // No operand predicates
6566 /* 20569 */ // MIs[0] lhs
6567 /* 20569 */ // No operand predicates
6568 /* 20569 */ // MIs[0] Operand 2
6569 /* 20569 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6570 /* 20573 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6571 /* 20578 */ // Combiner Rule #86: right_identity_zero @ [__right_identity_zero_match_0[4]]
6572 /* 20578 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6573 /* 20583 */ GIR_EraseRootFromParent_Done,
6574 /* 20584 */ // Label 317: @20584
6575 /* 20584 */ GIM_Try, /*On fail goto*//*Label 318*/ GIMT_Encode4(20595), // Rule ID 149 //
6576 /* 20589 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule108Enabled),
6577 /* 20592 */ // MIs[0] root
6578 /* 20592 */ // No operand predicates
6579 /* 20592 */ // MIs[0] mi.shifted
6580 /* 20592 */ // No operand predicates
6581 /* 20592 */ // MIs[0] mi.amt
6582 /* 20592 */ // No operand predicates
6583 /* 20592 */ // Combiner Rule #108: shifts_too_big @ [mi[0]]
6584 /* 20592 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
6585 /* 20595 */ // Label 318: @20595
6586 /* 20595 */ GIM_Try, /*On fail goto*//*Label 319*/ GIMT_Encode4(20606), // Rule ID 165 //
6587 /* 20600 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule122Enabled),
6588 /* 20603 */ // MIs[0] dst
6589 /* 20603 */ // No operand predicates
6590 /* 20603 */ // MIs[0] src0
6591 /* 20603 */ // No operand predicates
6592 /* 20603 */ // MIs[0] src1
6593 /* 20603 */ // No operand predicates
6594 /* 20603 */ // Combiner Rule #122: reduce_shl_of_extend
6595 /* 20603 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner66),
6596 /* 20606 */ // Label 319: @20606
6597 /* 20606 */ GIM_Reject,
6598 /* 20607 */ // Label 36: @20607
6599 /* 20607 */ GIM_Try, /*On fail goto*//*Label 320*/ GIMT_Encode4(20618), // Rule ID 87 //
6600 /* 20612 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6601 /* 20615 */ // Combiner Rule #77: binop_right_undef_to_undef; wip_match_opcode 'G_LSHR'
6602 /* 20615 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
6603 /* 20618 */ // Label 320: @20618
6604 /* 20618 */ GIM_Try, /*On fail goto*//*Label 321*/ GIMT_Encode4(20629), // Rule ID 214 //
6605 /* 20623 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
6606 /* 20626 */ // Combiner Rule #161: shift_immed_chain; wip_match_opcode 'G_LSHR'
6607 /* 20626 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
6608 /* 20629 */ // Label 321: @20629
6609 /* 20629 */ GIM_Try, /*On fail goto*//*Label 322*/ GIMT_Encode4(20640), // Rule ID 219 //
6610 /* 20634 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
6611 /* 20637 */ // Combiner Rule #162: shift_of_shifted_logic_chain; wip_match_opcode 'G_LSHR'
6612 /* 20637 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6613 /* 20640 */ // Label 322: @20640
6614 /* 20640 */ GIM_Try, /*On fail goto*//*Label 323*/ GIMT_Encode4(20651), // Rule ID 244 //
6615 /* 20645 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled),
6616 /* 20648 */ // Combiner Rule #177: bitfield_extract_from_shr; wip_match_opcode 'G_LSHR'
6617 /* 20648 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
6618 /* 20651 */ // Label 323: @20651
6619 /* 20651 */ GIM_Try, /*On fail goto*//*Label 324*/ GIMT_Encode4(20662), // Rule ID 246 //
6620 /* 20656 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
6621 /* 20659 */ // Combiner Rule #178: bitfield_extract_from_shr_and; wip_match_opcode 'G_LSHR'
6622 /* 20659 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
6623 /* 20662 */ // Label 324: @20662
6624 /* 20662 */ GIM_Try, /*On fail goto*//*Label 325*/ GIMT_Encode4(20673), // Rule ID 251 //
6625 /* 20667 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
6626 /* 20670 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_LSHR'
6627 /* 20670 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
6628 /* 20673 */ // Label 325: @20673
6629 /* 20673 */ GIM_Try, /*On fail goto*//*Label 326*/ GIMT_Encode4(20684), // Rule ID 301 //
6630 /* 20678 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
6631 /* 20681 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_LSHR'
6632 /* 20681 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
6633 /* 20684 */ // Label 326: @20684
6634 /* 20684 */ GIM_Try, /*On fail goto*//*Label 327*/ GIMT_Encode4(20713), // Rule ID 385 //
6635 /* 20689 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule235Enabled),
6636 /* 20692 */ // MIs[0] dst
6637 /* 20692 */ // No operand predicates
6638 /* 20692 */ // MIs[0] d2
6639 /* 20692 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6640 /* 20696 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
6641 /* 20700 */ // MIs[1] d1
6642 /* 20700 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
6643 /* 20704 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
6644 /* 20708 */ // MIs[2] x
6645 /* 20708 */ // No operand predicates
6646 /* 20708 */ // MIs[2] y
6647 /* 20708 */ // No operand predicates
6648 /* 20708 */ // MIs[0] z
6649 /* 20708 */ // No operand predicates
6650 /* 20708 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6651 /* 20710 */ // Combiner Rule #235: lshr_of_trunc_of_lshr
6652 /* 20710 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner154),
6653 /* 20713 */ // Label 327: @20713
6654 /* 20713 */ GIM_Try, /*On fail goto*//*Label 328*/ GIMT_Encode4(20753), // Rule ID 119 //
6655 /* 20718 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
6656 /* 20721 */ // MIs[0] dst
6657 /* 20721 */ // No operand predicates
6658 /* 20721 */ // MIs[0] zero
6659 /* 20721 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6660 /* 20725 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6661 /* 20729 */ // MIs[1] Operand 1
6662 /* 20729 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
6663 /* 20740 */ // MIs[0] rhs
6664 /* 20740 */ // No operand predicates
6665 /* 20740 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6666 /* 20745 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6667 /* 20747 */ // Combiner Rule #88: binop_left_to_zero @ [__binop_left_to_zero_match_0[1]]
6668 /* 20747 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6669 /* 20752 */ GIR_EraseRootFromParent_Done,
6670 /* 20753 */ // Label 328: @20753
6671 /* 20753 */ GIM_Try, /*On fail goto*//*Label 329*/ GIMT_Encode4(20776), // Rule ID 112 //
6672 /* 20758 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
6673 /* 20761 */ // MIs[0] dst
6674 /* 20761 */ // No operand predicates
6675 /* 20761 */ // MIs[0] lhs
6676 /* 20761 */ // No operand predicates
6677 /* 20761 */ // MIs[0] Operand 2
6678 /* 20761 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6679 /* 20765 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6680 /* 20770 */ // Combiner Rule #86: right_identity_zero @ [__right_identity_zero_match_0[6]]
6681 /* 20770 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6682 /* 20775 */ GIR_EraseRootFromParent_Done,
6683 /* 20776 */ // Label 329: @20776
6684 /* 20776 */ GIM_Try, /*On fail goto*//*Label 330*/ GIMT_Encode4(20787), // Rule ID 151 //
6685 /* 20781 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule108Enabled),
6686 /* 20784 */ // MIs[0] root
6687 /* 20784 */ // No operand predicates
6688 /* 20784 */ // MIs[0] mi.shifted
6689 /* 20784 */ // No operand predicates
6690 /* 20784 */ // MIs[0] mi.amt
6691 /* 20784 */ // No operand predicates
6692 /* 20784 */ // Combiner Rule #108: shifts_too_big @ [mi[2]]
6693 /* 20784 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
6694 /* 20787 */ // Label 330: @20787
6695 /* 20787 */ GIM_Reject,
6696 /* 20788 */ // Label 37: @20788
6697 /* 20788 */ GIM_Try, /*On fail goto*//*Label 331*/ GIMT_Encode4(20799), // Rule ID 86 //
6698 /* 20793 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6699 /* 20796 */ // Combiner Rule #77: binop_right_undef_to_undef; wip_match_opcode 'G_ASHR'
6700 /* 20796 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
6701 /* 20799 */ // Label 331: @20799
6702 /* 20799 */ GIM_Try, /*On fail goto*//*Label 332*/ GIMT_Encode4(20810), // Rule ID 162 //
6703 /* 20804 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
6704 /* 20807 */ // Combiner Rule #119: shl_ashr_to_sext_inreg; wip_match_opcode 'G_ASHR'
6705 /* 20807 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner64),
6706 /* 20810 */ // Label 332: @20810
6707 /* 20810 */ GIM_Try, /*On fail goto*//*Label 333*/ GIMT_Encode4(20821), // Rule ID 213 //
6708 /* 20815 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
6709 /* 20818 */ // Combiner Rule #161: shift_immed_chain; wip_match_opcode 'G_ASHR'
6710 /* 20818 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
6711 /* 20821 */ // Label 333: @20821
6712 /* 20821 */ GIM_Try, /*On fail goto*//*Label 334*/ GIMT_Encode4(20832), // Rule ID 218 //
6713 /* 20826 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
6714 /* 20829 */ // Combiner Rule #162: shift_of_shifted_logic_chain; wip_match_opcode 'G_ASHR'
6715 /* 20829 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6716 /* 20832 */ // Label 334: @20832
6717 /* 20832 */ GIM_Try, /*On fail goto*//*Label 335*/ GIMT_Encode4(20843), // Rule ID 243 //
6718 /* 20837 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled),
6719 /* 20840 */ // Combiner Rule #177: bitfield_extract_from_shr; wip_match_opcode 'G_ASHR'
6720 /* 20840 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
6721 /* 20843 */ // Label 335: @20843
6722 /* 20843 */ GIM_Try, /*On fail goto*//*Label 336*/ GIMT_Encode4(20854), // Rule ID 245 //
6723 /* 20848 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
6724 /* 20851 */ // Combiner Rule #178: bitfield_extract_from_shr_and; wip_match_opcode 'G_ASHR'
6725 /* 20851 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
6726 /* 20854 */ // Label 336: @20854
6727 /* 20854 */ GIM_Try, /*On fail goto*//*Label 337*/ GIMT_Encode4(20865), // Rule ID 250 //
6728 /* 20859 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
6729 /* 20862 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_ASHR'
6730 /* 20862 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
6731 /* 20865 */ // Label 337: @20865
6732 /* 20865 */ GIM_Try, /*On fail goto*//*Label 338*/ GIMT_Encode4(20876), // Rule ID 302 //
6733 /* 20870 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
6734 /* 20873 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_ASHR'
6735 /* 20873 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
6736 /* 20876 */ // Label 338: @20876
6737 /* 20876 */ GIM_Try, /*On fail goto*//*Label 339*/ GIMT_Encode4(20916), // Rule ID 120 //
6738 /* 20881 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
6739 /* 20884 */ // MIs[0] dst
6740 /* 20884 */ // No operand predicates
6741 /* 20884 */ // MIs[0] zero
6742 /* 20884 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6743 /* 20888 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6744 /* 20892 */ // MIs[1] Operand 1
6745 /* 20892 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
6746 /* 20903 */ // MIs[0] rhs
6747 /* 20903 */ // No operand predicates
6748 /* 20903 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6749 /* 20908 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6750 /* 20910 */ // Combiner Rule #88: binop_left_to_zero @ [__binop_left_to_zero_match_0[2]]
6751 /* 20910 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6752 /* 20915 */ GIR_EraseRootFromParent_Done,
6753 /* 20916 */ // Label 339: @20916
6754 /* 20916 */ GIM_Try, /*On fail goto*//*Label 340*/ GIMT_Encode4(20939), // Rule ID 111 //
6755 /* 20921 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
6756 /* 20924 */ // MIs[0] dst
6757 /* 20924 */ // No operand predicates
6758 /* 20924 */ // MIs[0] lhs
6759 /* 20924 */ // No operand predicates
6760 /* 20924 */ // MIs[0] Operand 2
6761 /* 20924 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6762 /* 20928 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6763 /* 20933 */ // Combiner Rule #86: right_identity_zero @ [__right_identity_zero_match_0[5]]
6764 /* 20933 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6765 /* 20938 */ GIR_EraseRootFromParent_Done,
6766 /* 20939 */ // Label 340: @20939
6767 /* 20939 */ GIM_Try, /*On fail goto*//*Label 341*/ GIMT_Encode4(20950), // Rule ID 150 //
6768 /* 20944 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule108Enabled),
6769 /* 20947 */ // MIs[0] root
6770 /* 20947 */ // No operand predicates
6771 /* 20947 */ // MIs[0] mi.shifted
6772 /* 20947 */ // No operand predicates
6773 /* 20947 */ // MIs[0] mi.amt
6774 /* 20947 */ // No operand predicates
6775 /* 20947 */ // Combiner Rule #108: shifts_too_big @ [mi[1]]
6776 /* 20947 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
6777 /* 20950 */ // Label 341: @20950
6778 /* 20950 */ GIM_Reject,
6779 /* 20951 */ // Label 38: @20951
6780 /* 20951 */ GIM_Try, /*On fail goto*//*Label 342*/ GIMT_Encode4(20962), // Rule ID 228 //
6781 /* 20956 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
6782 /* 20959 */ // Combiner Rule #166: funnel_shift_to_rotate; wip_match_opcode 'G_FSHL'
6783 /* 20959 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
6784 /* 20962 */ // Label 342: @20962
6785 /* 20962 */ GIM_Try, /*On fail goto*//*Label 343*/ GIMT_Encode4(20973), // Rule ID 232 //
6786 /* 20967 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
6787 /* 20970 */ // Combiner Rule #169: funnel_shift_overshift; wip_match_opcode 'G_FSHL'
6788 /* 20970 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
6789 /* 20973 */ // Label 343: @20973
6790 /* 20973 */ GIM_Try, /*On fail goto*//*Label 344*/ GIMT_Encode4(20993), // Rule ID 231 //
6791 /* 20978 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
6792 /* 20981 */ // MIs[0] x
6793 /* 20981 */ // No operand predicates
6794 /* 20981 */ // MIs[0] y
6795 /* 20981 */ // No operand predicates
6796 /* 20981 */ // MIs[0] z
6797 /* 20981 */ // No operand predicates
6798 /* 20981 */ // MIs[0] Operand 3
6799 /* 20981 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
6800 /* 20985 */ // Combiner Rule #168: funnel_shift_left_zero
6801 /* 20985 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
6802 /* 20988 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
6803 /* 20990 */ GIR_RootToRootCopy, /*OpIdx*/1, // y
6804 /* 20992 */ GIR_EraseRootFromParent_Done,
6805 /* 20993 */ // Label 344: @20993
6806 /* 20993 */ GIM_Reject,
6807 /* 20994 */ // Label 39: @20994
6808 /* 20994 */ GIM_Try, /*On fail goto*//*Label 345*/ GIMT_Encode4(21005), // Rule ID 229 //
6809 /* 20999 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
6810 /* 21002 */ // Combiner Rule #166: funnel_shift_to_rotate; wip_match_opcode 'G_FSHR'
6811 /* 21002 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
6812 /* 21005 */ // Label 345: @21005
6813 /* 21005 */ GIM_Try, /*On fail goto*//*Label 346*/ GIMT_Encode4(21016), // Rule ID 233 //
6814 /* 21010 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
6815 /* 21013 */ // Combiner Rule #169: funnel_shift_overshift; wip_match_opcode 'G_FSHR'
6816 /* 21013 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
6817 /* 21016 */ // Label 346: @21016
6818 /* 21016 */ GIM_Try, /*On fail goto*//*Label 347*/ GIMT_Encode4(21036), // Rule ID 230 //
6819 /* 21021 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
6820 /* 21024 */ // MIs[0] x
6821 /* 21024 */ // No operand predicates
6822 /* 21024 */ // MIs[0] y
6823 /* 21024 */ // No operand predicates
6824 /* 21024 */ // MIs[0] z
6825 /* 21024 */ // No operand predicates
6826 /* 21024 */ // MIs[0] Operand 3
6827 /* 21024 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
6828 /* 21028 */ // Combiner Rule #167: funnel_shift_right_zero
6829 /* 21028 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
6830 /* 21031 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
6831 /* 21033 */ GIR_RootToRootCopy, /*OpIdx*/2, // z
6832 /* 21035 */ GIR_EraseRootFromParent_Done,
6833 /* 21036 */ // Label 347: @21036
6834 /* 21036 */ GIM_Reject,
6835 /* 21037 */ // Label 40: @21037
6836 /* 21037 */ GIM_Try, /*On fail goto*//*Label 348*/ GIMT_Encode4(21060), // Rule ID 115 //
6837 /* 21042 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
6838 /* 21045 */ // MIs[0] dst
6839 /* 21045 */ // No operand predicates
6840 /* 21045 */ // MIs[0] lhs
6841 /* 21045 */ // No operand predicates
6842 /* 21045 */ // MIs[0] Operand 2
6843 /* 21045 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6844 /* 21049 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6845 /* 21054 */ // Combiner Rule #86: right_identity_zero @ [__right_identity_zero_match_0[9]]
6846 /* 21054 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6847 /* 21059 */ GIR_EraseRootFromParent_Done,
6848 /* 21060 */ // Label 348: @21060
6849 /* 21060 */ GIM_Reject,
6850 /* 21061 */ // Label 41: @21061
6851 /* 21061 */ GIM_Try, /*On fail goto*//*Label 349*/ GIMT_Encode4(21084), // Rule ID 114 //
6852 /* 21066 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
6853 /* 21069 */ // MIs[0] dst
6854 /* 21069 */ // No operand predicates
6855 /* 21069 */ // MIs[0] lhs
6856 /* 21069 */ // No operand predicates
6857 /* 21069 */ // MIs[0] Operand 2
6858 /* 21069 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6859 /* 21073 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6860 /* 21078 */ // Combiner Rule #86: right_identity_zero @ [__right_identity_zero_match_0[8]]
6861 /* 21078 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6862 /* 21083 */ GIR_EraseRootFromParent_Done,
6863 /* 21084 */ // Label 349: @21084
6864 /* 21084 */ GIM_Reject,
6865 /* 21085 */ // Label 42: @21085
6866 /* 21085 */ GIM_Try, /*On fail goto*//*Label 350*/ GIMT_Encode4(21096), // Rule ID 157 //
6867 /* 21090 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
6868 /* 21093 */ // Combiner Rule #114: icmp_to_true_false_known_bits; wip_match_opcode 'G_ICMP'
6869 /* 21093 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner61),
6870 /* 21096 */ // Label 350: @21096
6871 /* 21096 */ GIM_Try, /*On fail goto*//*Label 351*/ GIMT_Encode4(21107), // Rule ID 158 //
6872 /* 21101 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule115Enabled),
6873 /* 21104 */ // Combiner Rule #115: icmp_to_lhs_known_bits; wip_match_opcode 'G_ICMP'
6874 /* 21104 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner62),
6875 /* 21107 */ // Label 351: @21107
6876 /* 21107 */ GIM_Try, /*On fail goto*//*Label 352*/ GIMT_Encode4(21118), // Rule ID 161 //
6877 /* 21112 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
6878 /* 21115 */ // Combiner Rule #118: redundant_binop_in_equality; wip_match_opcode 'G_ICMP'
6879 /* 21115 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
6880 /* 21118 */ // Label 352: @21118
6881 /* 21118 */ GIM_Try, /*On fail goto*//*Label 353*/ GIMT_Encode4(21129), // Rule ID 155 //
6882 /* 21123 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
6883 /* 21126 */ // MIs[0] root
6884 /* 21126 */ // No operand predicates
6885 /* 21126 */ // MIs[0] pred
6886 /* 21126 */ // No operand predicates
6887 /* 21126 */ // MIs[0] lhs
6888 /* 21126 */ // No operand predicates
6889 /* 21126 */ // MIs[0] rhs
6890 /* 21126 */ // No operand predicates
6891 /* 21126 */ // Combiner Rule #112: canonicalize_icmp
6892 /* 21126 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner59),
6893 /* 21129 */ // Label 353: @21129
6894 /* 21129 */ GIM_Reject,
6895 /* 21130 */ // Label 43: @21130
6896 /* 21130 */ GIM_Try, /*On fail goto*//*Label 354*/ GIMT_Encode4(21141), // Rule ID 156 //
6897 /* 21135 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
6898 /* 21138 */ // MIs[0] root
6899 /* 21138 */ // No operand predicates
6900 /* 21138 */ // MIs[0] pred
6901 /* 21138 */ // No operand predicates
6902 /* 21138 */ // MIs[0] lhs
6903 /* 21138 */ // No operand predicates
6904 /* 21138 */ // MIs[0] rhs
6905 /* 21138 */ // No operand predicates
6906 /* 21138 */ // Combiner Rule #113: canonicalize_fcmp
6907 /* 21138 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner60),
6908 /* 21141 */ // Label 354: @21141
6909 /* 21141 */ GIM_Reject,
6910 /* 21142 */ // Label 44: @21142
6911 /* 21142 */ GIM_Try, /*On fail goto*//*Label 355*/ GIMT_Encode4(21153), // Rule ID 105 //
6912 /* 21147 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
6913 /* 21150 */ // Combiner Rule #85: select_same_val; wip_match_opcode 'G_SELECT'
6914 /* 21150 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner44),
6915 /* 21153 */ // Label 355: @21153
6916 /* 21153 */ GIM_Try, /*On fail goto*//*Label 356*/ GIMT_Encode4(21164), // Rule ID 168 //
6917 /* 21158 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule125Enabled),
6918 /* 21161 */ // Combiner Rule #125: select_constant_cmp; wip_match_opcode 'G_SELECT'
6919 /* 21161 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner68),
6920 /* 21164 */ // Label 356: @21164
6921 /* 21164 */ GIM_Try, /*On fail goto*//*Label 357*/ GIMT_Encode4(21175), // Rule ID 170 //
6922 /* 21169 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule127Enabled),
6923 /* 21172 */ // Combiner Rule #127: match_selects; wip_match_opcode 'G_SELECT'
6924 /* 21172 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
6925 /* 21175 */ // Label 357: @21175
6926 /* 21175 */ GIM_Try, /*On fail goto*//*Label 358*/ GIMT_Encode4(21186), // Rule ID 325 //
6927 /* 21180 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
6928 /* 21183 */ // Combiner Rule #204: select_to_minmax; wip_match_opcode 'G_SELECT'
6929 /* 21183 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner125),
6930 /* 21186 */ // Label 358: @21186
6931 /* 21186 */ GIM_Try, /*On fail goto*//*Label 359*/ GIMT_Encode4(21213), // Rule ID 390 //
6932 /* 21191 */ GIM_CheckFeatures, GIMT_Encode2(GIFBS_HasFminFmaxLegacy),
6933 /* 21194 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule239Enabled),
6934 /* 21197 */ GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s32,
6935 /* 21200 */ // MIs[0] cond
6936 /* 21200 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6937 /* 21204 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCMP),
6938 /* 21208 */ // MIs[1] pred
6939 /* 21208 */ // No operand predicates
6940 /* 21208 */ // MIs[1] lhs
6941 /* 21208 */ // No operand predicates
6942 /* 21208 */ // MIs[1] rhs
6943 /* 21208 */ // No operand predicates
6944 /* 21208 */ // MIs[0] true
6945 /* 21208 */ // No operand predicates
6946 /* 21208 */ // MIs[0] false
6947 /* 21208 */ // No operand predicates
6948 /* 21208 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6949 /* 21210 */ // Combiner Rule #239: fcmp_select_to_fmin_fmax_legacy
6950 /* 21210 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner156),
6951 /* 21213 */ // Label 359: @21213
6952 /* 21213 */ GIM_Try, /*On fail goto*//*Label 360*/ GIMT_Encode4(21234), // Rule ID 169 //
6953 /* 21218 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule126Enabled),
6954 /* 21221 */ // MIs[0] root
6955 /* 21221 */ // No operand predicates
6956 /* 21221 */ // MIs[0] tst
6957 /* 21221 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6958 /* 21225 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
6959 /* 21229 */ // MIs[1] tst1
6960 /* 21229 */ // No operand predicates
6961 /* 21229 */ // MIs[1] a
6962 /* 21229 */ // No operand predicates
6963 /* 21229 */ // MIs[1] b
6964 /* 21229 */ // No operand predicates
6965 /* 21229 */ // MIs[0] x
6966 /* 21229 */ // No operand predicates
6967 /* 21229 */ // MIs[0] y
6968 /* 21229 */ // No operand predicates
6969 /* 21229 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6970 /* 21231 */ // Combiner Rule #126: select_to_iminmax
6971 /* 21231 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
6972 /* 21234 */ // Label 360: @21234
6973 /* 21234 */ GIM_Try, /*On fail goto*//*Label 361*/ GIMT_Encode4(21263), // Rule ID 167 //
6974 /* 21239 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule124Enabled),
6975 /* 21242 */ // MIs[0] dst
6976 /* 21242 */ // No operand predicates
6977 /* 21242 */ // MIs[0] undef
6978 /* 21242 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6979 /* 21246 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6980 /* 21250 */ // MIs[0] x
6981 /* 21250 */ // No operand predicates
6982 /* 21250 */ // MIs[0] y
6983 /* 21250 */ // No operand predicates
6984 /* 21250 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
6985 /* 21255 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6986 /* 21257 */ // Combiner Rule #124: select_undef_cmp
6987 /* 21257 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
6988 /* 21262 */ GIR_EraseRootFromParent_Done,
6989 /* 21263 */ // Label 361: @21263
6990 /* 21263 */ GIM_Reject,
6991 /* 21264 */ // Label 45: @21264
6992 /* 21264 */ GIM_Try, /*On fail goto*//*Label 362*/ GIMT_Encode4(21275), // Rule ID 336 //
6993 /* 21269 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
6994 /* 21272 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDO'
6995 /* 21272 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6996 /* 21275 */ // Label 362: @21275
6997 /* 21275 */ GIM_Try, /*On fail goto*//*Label 363*/ GIMT_Encode4(21286), // Rule ID 378 //
6998 /* 21280 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule229Enabled),
6999 /* 21283 */ // Combiner Rule #229: match_addos; wip_match_opcode 'G_UADDO'
7000 /* 21283 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner150),
7001 /* 21286 */ // Label 363: @21286
7002 /* 21286 */ GIM_Reject,
7003 /* 21287 */ // Label 46: @21287
7004 /* 21287 */ GIM_Try, /*On fail goto*//*Label 364*/ GIMT_Encode4(21298), // Rule ID 201 //
7005 /* 21292 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
7006 /* 21295 */ // Combiner Rule #156: adde_to_addo; wip_match_opcode 'G_UADDE'
7007 /* 21295 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
7008 /* 21298 */ // Label 364: @21298
7009 /* 21298 */ GIM_Reject,
7010 /* 21299 */ // Label 47: @21299
7011 /* 21299 */ GIM_Try, /*On fail goto*//*Label 365*/ GIMT_Encode4(21310), // Rule ID 380 //
7012 /* 21304 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule230Enabled),
7013 /* 21307 */ // Combiner Rule #230: match_subo_no_overflow; wip_match_opcode 'G_USUBO'
7014 /* 21307 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner151),
7015 /* 21310 */ // Label 365: @21310
7016 /* 21310 */ GIM_Reject,
7017 /* 21311 */ // Label 48: @21311
7018 /* 21311 */ GIM_Try, /*On fail goto*//*Label 366*/ GIMT_Encode4(21322), // Rule ID 203 //
7019 /* 21316 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
7020 /* 21319 */ // Combiner Rule #156: adde_to_addo; wip_match_opcode 'G_USUBE'
7021 /* 21319 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
7022 /* 21322 */ // Label 366: @21322
7023 /* 21322 */ GIM_Reject,
7024 /* 21323 */ // Label 49: @21323
7025 /* 21323 */ GIM_Try, /*On fail goto*//*Label 367*/ GIMT_Encode4(21334), // Rule ID 337 //
7026 /* 21328 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
7027 /* 21331 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDO'
7028 /* 21331 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7029 /* 21334 */ // Label 367: @21334
7030 /* 21334 */ GIM_Try, /*On fail goto*//*Label 368*/ GIMT_Encode4(21345), // Rule ID 377 //
7031 /* 21339 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule229Enabled),
7032 /* 21342 */ // Combiner Rule #229: match_addos; wip_match_opcode 'G_SADDO'
7033 /* 21342 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner150),
7034 /* 21345 */ // Label 368: @21345
7035 /* 21345 */ GIM_Reject,
7036 /* 21346 */ // Label 50: @21346
7037 /* 21346 */ GIM_Try, /*On fail goto*//*Label 369*/ GIMT_Encode4(21357), // Rule ID 202 //
7038 /* 21351 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
7039 /* 21354 */ // Combiner Rule #156: adde_to_addo; wip_match_opcode 'G_SADDE'
7040 /* 21354 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
7041 /* 21357 */ // Label 369: @21357
7042 /* 21357 */ GIM_Reject,
7043 /* 21358 */ // Label 51: @21358
7044 /* 21358 */ GIM_Try, /*On fail goto*//*Label 370*/ GIMT_Encode4(21369), // Rule ID 379 //
7045 /* 21363 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule230Enabled),
7046 /* 21366 */ // Combiner Rule #230: match_subo_no_overflow; wip_match_opcode 'G_SSUBO'
7047 /* 21366 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner151),
7048 /* 21369 */ // Label 370: @21369
7049 /* 21369 */ GIM_Reject,
7050 /* 21370 */ // Label 52: @21370
7051 /* 21370 */ GIM_Try, /*On fail goto*//*Label 371*/ GIMT_Encode4(21381), // Rule ID 204 //
7052 /* 21375 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
7053 /* 21378 */ // Combiner Rule #156: adde_to_addo; wip_match_opcode 'G_SSUBE'
7054 /* 21378 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
7055 /* 21381 */ // Label 371: @21381
7056 /* 21381 */ GIM_Reject,
7057 /* 21382 */ // Label 53: @21382
7058 /* 21382 */ GIM_Try, /*On fail goto*//*Label 372*/ GIMT_Encode4(21393), // Rule ID 197 //
7059 /* 21387 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule154Enabled),
7060 /* 21390 */ // Combiner Rule #154: mulo_by_2; wip_match_opcode 'G_UMULO'
7061 /* 21390 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
7062 /* 21393 */ // Label 372: @21393
7063 /* 21393 */ GIM_Try, /*On fail goto*//*Label 373*/ GIMT_Encode4(21404), // Rule ID 199 //
7064 /* 21398 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
7065 /* 21401 */ // Combiner Rule #155: mulo_by_0; wip_match_opcode 'G_UMULO'
7066 /* 21401 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
7067 /* 21404 */ // Label 373: @21404
7068 /* 21404 */ GIM_Try, /*On fail goto*//*Label 374*/ GIMT_Encode4(21415), // Rule ID 338 //
7069 /* 21409 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
7070 /* 21412 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULO'
7071 /* 21412 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7072 /* 21415 */ // Label 374: @21415
7073 /* 21415 */ GIM_Reject,
7074 /* 21416 */ // Label 54: @21416
7075 /* 21416 */ GIM_Try, /*On fail goto*//*Label 375*/ GIMT_Encode4(21427), // Rule ID 198 //
7076 /* 21421 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule154Enabled),
7077 /* 21424 */ // Combiner Rule #154: mulo_by_2; wip_match_opcode 'G_SMULO'
7078 /* 21424 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
7079 /* 21427 */ // Label 375: @21427
7080 /* 21427 */ GIM_Try, /*On fail goto*//*Label 376*/ GIMT_Encode4(21438), // Rule ID 200 //
7081 /* 21432 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
7082 /* 21435 */ // Combiner Rule #155: mulo_by_0; wip_match_opcode 'G_SMULO'
7083 /* 21435 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
7084 /* 21438 */ // Label 376: @21438
7085 /* 21438 */ GIM_Try, /*On fail goto*//*Label 377*/ GIMT_Encode4(21449), // Rule ID 339 //
7086 /* 21443 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
7087 /* 21446 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULO'
7088 /* 21446 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7089 /* 21449 */ // Label 377: @21449
7090 /* 21449 */ GIM_Reject,
7091 /* 21450 */ // Label 55: @21450
7092 /* 21450 */ GIM_Try, /*On fail goto*//*Label 378*/ GIMT_Encode4(21461), // Rule ID 275 //
7093 /* 21455 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
7094 /* 21458 */ // Combiner Rule #184: mulh_to_lshr; wip_match_opcode 'G_UMULH'
7095 /* 21458 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
7096 /* 21461 */ // Label 378: @21461
7097 /* 21461 */ GIM_Try, /*On fail goto*//*Label 379*/ GIMT_Encode4(21472), // Rule ID 340 //
7098 /* 21466 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
7099 /* 21469 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULH'
7100 /* 21469 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7101 /* 21472 */ // Label 379: @21472
7102 /* 21472 */ GIM_Reject,
7103 /* 21473 */ // Label 56: @21473
7104 /* 21473 */ GIM_Try, /*On fail goto*//*Label 380*/ GIMT_Encode4(21484), // Rule ID 341 //
7105 /* 21478 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
7106 /* 21481 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULH'
7107 /* 21481 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7108 /* 21484 */ // Label 380: @21484
7109 /* 21484 */ GIM_Reject,
7110 /* 21485 */ // Label 57: @21485
7111 /* 21485 */ GIM_Try, /*On fail goto*//*Label 381*/ GIMT_Encode4(21496), // Rule ID 342 //
7112 /* 21490 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
7113 /* 21493 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDSAT'
7114 /* 21493 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7115 /* 21496 */ // Label 381: @21496
7116 /* 21496 */ GIM_Reject,
7117 /* 21497 */ // Label 58: @21497
7118 /* 21497 */ GIM_Try, /*On fail goto*//*Label 382*/ GIMT_Encode4(21508), // Rule ID 343 //
7119 /* 21502 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
7120 /* 21505 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDSAT'
7121 /* 21505 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7122 /* 21508 */ // Label 382: @21508
7123 /* 21508 */ GIM_Reject,
7124 /* 21509 */ // Label 59: @21509
7125 /* 21509 */ GIM_Try, /*On fail goto*//*Label 383*/ GIMT_Encode4(21520), // Rule ID 216 //
7126 /* 21514 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
7127 /* 21517 */ // Combiner Rule #161: shift_immed_chain; wip_match_opcode 'G_USHLSAT'
7128 /* 21517 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
7129 /* 21520 */ // Label 383: @21520
7130 /* 21520 */ GIM_Try, /*On fail goto*//*Label 384*/ GIMT_Encode4(21531), // Rule ID 220 //
7131 /* 21525 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
7132 /* 21528 */ // Combiner Rule #162: shift_of_shifted_logic_chain; wip_match_opcode 'G_USHLSAT'
7133 /* 21528 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
7134 /* 21531 */ // Label 384: @21531
7135 /* 21531 */ GIM_Reject,
7136 /* 21532 */ // Label 60: @21532
7137 /* 21532 */ GIM_Try, /*On fail goto*//*Label 385*/ GIMT_Encode4(21543), // Rule ID 215 //
7138 /* 21537 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
7139 /* 21540 */ // Combiner Rule #161: shift_immed_chain; wip_match_opcode 'G_SSHLSAT'
7140 /* 21540 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
7141 /* 21543 */ // Label 385: @21543
7142 /* 21543 */ GIM_Try, /*On fail goto*//*Label 386*/ GIMT_Encode4(21554), // Rule ID 221 //
7143 /* 21548 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
7144 /* 21551 */ // Combiner Rule #162: shift_of_shifted_logic_chain; wip_match_opcode 'G_SSHLSAT'
7145 /* 21551 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
7146 /* 21554 */ // Label 386: @21554
7147 /* 21554 */ GIM_Reject,
7148 /* 21555 */ // Label 61: @21555
7149 /* 21555 */ GIM_Try, /*On fail goto*//*Label 387*/ GIMT_Encode4(21566), // Rule ID 344 //
7150 /* 21560 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
7151 /* 21563 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIX'
7152 /* 21563 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7153 /* 21566 */ // Label 387: @21566
7154 /* 21566 */ GIM_Reject,
7155 /* 21567 */ // Label 62: @21567
7156 /* 21567 */ GIM_Try, /*On fail goto*//*Label 388*/ GIMT_Encode4(21578), // Rule ID 345 //
7157 /* 21572 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
7158 /* 21575 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIX'
7159 /* 21575 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7160 /* 21578 */ // Label 388: @21578
7161 /* 21578 */ GIM_Reject,
7162 /* 21579 */ // Label 63: @21579
7163 /* 21579 */ GIM_Try, /*On fail goto*//*Label 389*/ GIMT_Encode4(21590), // Rule ID 346 //
7164 /* 21584 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
7165 /* 21587 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIXSAT'
7166 /* 21587 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7167 /* 21590 */ // Label 389: @21590
7168 /* 21590 */ GIM_Reject,
7169 /* 21591 */ // Label 64: @21591
7170 /* 21591 */ GIM_Try, /*On fail goto*//*Label 390*/ GIMT_Encode4(21602), // Rule ID 347 //
7171 /* 21596 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
7172 /* 21599 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIXSAT'
7173 /* 21599 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7174 /* 21602 */ // Label 390: @21602
7175 /* 21602 */ GIM_Reject,
7176 /* 21603 */ // Label 65: @21603
7177 /* 21603 */ GIM_Try, /*On fail goto*//*Label 391*/ GIMT_Encode4(21614), // Rule ID 265 //
7178 /* 21608 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
7179 /* 21611 */ // Combiner Rule #180: constant_fold_fp_binop; wip_match_opcode 'G_FADD'
7180 /* 21611 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
7181 /* 21614 */ // Label 391: @21614
7182 /* 21614 */ GIM_Try, /*On fail goto*//*Label 392*/ GIMT_Encode4(21625), // Rule ID 276 //
7183 /* 21619 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
7184 /* 21622 */ // Combiner Rule #185: redundant_neg_operands; wip_match_opcode 'G_FADD'
7185 /* 21622 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7186 /* 21625 */ // Label 392: @21625
7187 /* 21625 */ GIM_Try, /*On fail goto*//*Label 393*/ GIMT_Encode4(21636), // Rule ID 283 //
7188 /* 21630 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
7189 /* 21633 */ // Combiner Rule #187: combine_fadd_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
7190 /* 21633 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
7191 /* 21636 */ // Label 393: @21636
7192 /* 21636 */ GIM_Try, /*On fail goto*//*Label 394*/ GIMT_Encode4(21647), // Rule ID 284 //
7193 /* 21641 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
7194 /* 21644 */ // Combiner Rule #188: combine_fadd_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
7195 /* 21644 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner111),
7196 /* 21647 */ // Label 394: @21647
7197 /* 21647 */ GIM_Try, /*On fail goto*//*Label 395*/ GIMT_Encode4(21658), // Rule ID 285 //
7198 /* 21652 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule189Enabled),
7199 /* 21655 */ // Combiner Rule #189: combine_fadd_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
7200 /* 21655 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner112),
7201 /* 21658 */ // Label 395: @21658
7202 /* 21658 */ GIM_Try, /*On fail goto*//*Label 396*/ GIMT_Encode4(21669), // Rule ID 286 //
7203 /* 21663 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
7204 /* 21666 */ // Combiner Rule #190: combine_fadd_fpext_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
7205 /* 21666 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
7206 /* 21669 */ // Label 396: @21669
7207 /* 21669 */ GIM_Try, /*On fail goto*//*Label 397*/ GIMT_Encode4(21680), // Rule ID 309 //
7208 /* 21674 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7209 /* 21677 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_FADD'
7210 /* 21677 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7211 /* 21680 */ // Label 397: @21680
7212 /* 21680 */ GIM_Try, /*On fail goto*//*Label 398*/ GIMT_Encode4(21691), // Rule ID 348 //
7213 /* 21685 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
7214 /* 21688 */ // Combiner Rule #207: commute_fp_constant_to_rhs; wip_match_opcode 'G_FADD'
7215 /* 21688 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7216 /* 21691 */ // Label 398: @21691
7217 /* 21691 */ GIM_Try, /*On fail goto*//*Label 399*/ GIMT_Encode4(21714), // Rule ID 141 //
7218 /* 21696 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
7219 /* 21699 */ // MIs[0] dst
7220 /* 21699 */ // No operand predicates
7221 /* 21699 */ // MIs[0] x
7222 /* 21699 */ // No operand predicates
7223 /* 21699 */ // MIs[0] y
7224 /* 21699 */ // No operand predicates
7225 /* 21699 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3),
7226 /* 21703 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7227 /* 21708 */ // Combiner Rule #102: right_identity_neg_zero_fp
7228 /* 21708 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7229 /* 21713 */ GIR_EraseRootFromParent_Done,
7230 /* 21714 */ // Label 399: @21714
7231 /* 21714 */ GIM_Try, /*On fail goto*//*Label 400*/ GIMT_Encode4(21743), // Rule ID 142 //
7232 /* 21719 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
7233 /* 21722 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmNsz),
7234 /* 21728 */ // MIs[0] dst
7235 /* 21728 */ // No operand predicates
7236 /* 21728 */ // MIs[0] x
7237 /* 21728 */ // No operand predicates
7238 /* 21728 */ // MIs[0] y
7239 /* 21728 */ // No operand predicates
7240 /* 21728 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner4),
7241 /* 21732 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7242 /* 21737 */ // Combiner Rule #103: right_identity_neg_zero_fp_nsz
7243 /* 21737 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7244 /* 21742 */ GIR_EraseRootFromParent_Done,
7245 /* 21743 */ // Label 400: @21743
7246 /* 21743 */ GIM_Reject,
7247 /* 21744 */ // Label 66: @21744
7248 /* 21744 */ GIM_Try, /*On fail goto*//*Label 401*/ GIMT_Encode4(21755), // Rule ID 266 //
7249 /* 21749 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
7250 /* 21752 */ // Combiner Rule #180: constant_fold_fp_binop; wip_match_opcode 'G_FSUB'
7251 /* 21752 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
7252 /* 21755 */ // Label 401: @21755
7253 /* 21755 */ GIM_Try, /*On fail goto*//*Label 402*/ GIMT_Encode4(21766), // Rule ID 277 //
7254 /* 21760 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
7255 /* 21763 */ // Combiner Rule #185: redundant_neg_operands; wip_match_opcode 'G_FSUB'
7256 /* 21763 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7257 /* 21766 */ // Label 402: @21766
7258 /* 21766 */ GIM_Try, /*On fail goto*//*Label 403*/ GIMT_Encode4(21777), // Rule ID 287 //
7259 /* 21771 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
7260 /* 21774 */ // Combiner Rule #191: combine_fsub_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
7261 /* 21774 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114),
7262 /* 21777 */ // Label 403: @21777
7263 /* 21777 */ GIM_Try, /*On fail goto*//*Label 404*/ GIMT_Encode4(21788), // Rule ID 288 //
7264 /* 21782 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
7265 /* 21785 */ // Combiner Rule #192: combine_fsub_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
7266 /* 21785 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner115),
7267 /* 21788 */ // Label 404: @21788
7268 /* 21788 */ GIM_Try, /*On fail goto*//*Label 405*/ GIMT_Encode4(21799), // Rule ID 289 //
7269 /* 21793 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
7270 /* 21796 */ // Combiner Rule #193: combine_fsub_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
7271 /* 21796 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner116),
7272 /* 21799 */ // Label 405: @21799
7273 /* 21799 */ GIM_Try, /*On fail goto*//*Label 406*/ GIMT_Encode4(21810), // Rule ID 290 //
7274 /* 21804 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
7275 /* 21807 */ // Combiner Rule #194: combine_fsub_fpext_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
7276 /* 21807 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner117),
7277 /* 21810 */ // Label 406: @21810
7278 /* 21810 */ GIM_Try, /*On fail goto*//*Label 407*/ GIMT_Encode4(21821), // Rule ID 310 //
7279 /* 21815 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7280 /* 21818 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_FSUB'
7281 /* 21818 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7282 /* 21821 */ // Label 407: @21821
7283 /* 21821 */ GIM_Try, /*On fail goto*//*Label 408*/ GIMT_Encode4(21832), // Rule ID 326 //
7284 /* 21826 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule205Enabled),
7285 /* 21829 */ // Combiner Rule #205: fsub_to_fneg; wip_match_opcode 'G_FSUB'
7286 /* 21829 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner126),
7287 /* 21832 */ // Label 408: @21832
7288 /* 21832 */ GIM_Reject,
7289 /* 21833 */ // Label 67: @21833
7290 /* 21833 */ GIM_Try, /*On fail goto*//*Label 409*/ GIMT_Encode4(21844), // Rule ID 267 //
7291 /* 21838 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
7292 /* 21841 */ // Combiner Rule #180: constant_fold_fp_binop; wip_match_opcode 'G_FMUL'
7293 /* 21841 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
7294 /* 21844 */ // Label 409: @21844
7295 /* 21844 */ GIM_Try, /*On fail goto*//*Label 410*/ GIMT_Encode4(21855), // Rule ID 278 //
7296 /* 21849 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
7297 /* 21852 */ // Combiner Rule #185: redundant_neg_operands; wip_match_opcode 'G_FMUL'
7298 /* 21852 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7299 /* 21855 */ // Label 410: @21855
7300 /* 21855 */ GIM_Try, /*On fail goto*//*Label 411*/ GIMT_Encode4(21866), // Rule ID 308 //
7301 /* 21860 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7302 /* 21863 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_FMUL'
7303 /* 21863 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7304 /* 21866 */ // Label 411: @21866
7305 /* 21866 */ GIM_Try, /*On fail goto*//*Label 412*/ GIMT_Encode4(21877), // Rule ID 349 //
7306 /* 21871 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
7307 /* 21874 */ // Combiner Rule #207: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMUL'
7308 /* 21874 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7309 /* 21877 */ // Label 412: @21877
7310 /* 21877 */ GIM_Try, /*On fail goto*//*Label 413*/ GIMT_Encode4(21898), // Rule ID 392 //
7311 /* 21882 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule241Enabled),
7312 /* 21885 */ // MIs[0] dst
7313 /* 21885 */ // No operand predicates
7314 /* 21885 */ // MIs[0] x
7315 /* 21885 */ // No operand predicates
7316 /* 21885 */ // MIs[0] select
7317 /* 21885 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7318 /* 21889 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
7319 /* 21893 */ // MIs[1] y
7320 /* 21893 */ // No operand predicates
7321 /* 21893 */ // MIs[1] A
7322 /* 21893 */ // No operand predicates
7323 /* 21893 */ // MIs[1] B
7324 /* 21893 */ // No operand predicates
7325 /* 21893 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7326 /* 21895 */ // Combiner Rule #241: combine_fmul_with_select_to_fldexp
7327 /* 21895 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner158),
7328 /* 21898 */ // Label 413: @21898
7329 /* 21898 */ GIM_Try, /*On fail goto*//*Label 414*/ GIMT_Encode4(21921), // Rule ID 132 //
7330 /* 21903 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
7331 /* 21906 */ // MIs[0] dst
7332 /* 21906 */ // No operand predicates
7333 /* 21906 */ // MIs[0] x
7334 /* 21906 */ // No operand predicates
7335 /* 21906 */ // MIs[0] y
7336 /* 21906 */ // No operand predicates
7337 /* 21906 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
7338 /* 21910 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7339 /* 21915 */ // Combiner Rule #95: right_identity_one_fp
7340 /* 21915 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7341 /* 21920 */ GIR_EraseRootFromParent_Done,
7342 /* 21921 */ // Label 414: @21921
7343 /* 21921 */ GIM_Try, /*On fail goto*//*Label 415*/ GIMT_Encode4(21941), // Rule ID 143 //
7344 /* 21926 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
7345 /* 21929 */ // MIs[0] dst
7346 /* 21929 */ // No operand predicates
7347 /* 21929 */ // MIs[0] x
7348 /* 21929 */ // No operand predicates
7349 /* 21929 */ // MIs[0] y
7350 /* 21929 */ // No operand predicates
7351 /* 21929 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner5),
7352 /* 21933 */ // Combiner Rule #104: right_identity_neg_one_fp
7353 /* 21933 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
7354 /* 21936 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7355 /* 21938 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
7356 /* 21940 */ GIR_EraseRootFromParent_Done,
7357 /* 21941 */ // Label 415: @21941
7358 /* 21941 */ GIM_Reject,
7359 /* 21942 */ // Label 68: @21942
7360 /* 21942 */ GIM_Try, /*On fail goto*//*Label 416*/ GIMT_Encode4(21953), // Rule ID 270 //
7361 /* 21947 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
7362 /* 21950 */ // Combiner Rule #181: constant_fold_fma; wip_match_opcode 'G_FMA'
7363 /* 21950 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
7364 /* 21953 */ // Label 416: @21953
7365 /* 21953 */ GIM_Try, /*On fail goto*//*Label 417*/ GIMT_Encode4(21964), // Rule ID 281 //
7366 /* 21958 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
7367 /* 21961 */ // Combiner Rule #185: redundant_neg_operands; wip_match_opcode 'G_FMA'
7368 /* 21961 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7369 /* 21964 */ // Label 417: @21964
7370 /* 21964 */ GIM_Reject,
7371 /* 21965 */ // Label 69: @21965
7372 /* 21965 */ GIM_Try, /*On fail goto*//*Label 418*/ GIMT_Encode4(21976), // Rule ID 269 //
7373 /* 21970 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
7374 /* 21973 */ // Combiner Rule #181: constant_fold_fma; wip_match_opcode 'G_FMAD'
7375 /* 21973 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
7376 /* 21976 */ // Label 418: @21976
7377 /* 21976 */ GIM_Try, /*On fail goto*//*Label 419*/ GIMT_Encode4(21987), // Rule ID 280 //
7378 /* 21981 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
7379 /* 21984 */ // Combiner Rule #185: redundant_neg_operands; wip_match_opcode 'G_FMAD'
7380 /* 21984 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7381 /* 21987 */ // Label 419: @21987
7382 /* 21987 */ GIM_Reject,
7383 /* 21988 */ // Label 70: @21988
7384 /* 21988 */ GIM_Try, /*On fail goto*//*Label 420*/ GIMT_Encode4(21999), // Rule ID 268 //
7385 /* 21993 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
7386 /* 21996 */ // Combiner Rule #180: constant_fold_fp_binop; wip_match_opcode 'G_FDIV'
7387 /* 21996 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
7388 /* 21999 */ // Label 420: @21999
7389 /* 21999 */ GIM_Try, /*On fail goto*//*Label 421*/ GIMT_Encode4(22010), // Rule ID 279 //
7390 /* 22004 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
7391 /* 22007 */ // Combiner Rule #185: redundant_neg_operands; wip_match_opcode 'G_FDIV'
7392 /* 22007 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7393 /* 22010 */ // Label 421: @22010
7394 /* 22010 */ GIM_Try, /*On fail goto*//*Label 422*/ GIMT_Encode4(22021), // Rule ID 311 //
7395 /* 22015 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7396 /* 22018 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_FDIV'
7397 /* 22018 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7398 /* 22021 */ // Label 422: @22021
7399 /* 22021 */ GIM_Try, /*On fail goto*//*Label 423*/ GIMT_Encode4(22060), // Rule ID 403 //
7400 /* 22026 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule247Enabled),
7401 /* 22029 */ GIM_RootCheckType, /*Op*/0, /*Type*/GILLT_s16,
7402 /* 22032 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s16,
7403 /* 22035 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmContract),
7404 /* 22041 */ // MIs[0] y
7405 /* 22041 */ // No operand predicates
7406 /* 22041 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7407 /* 22045 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSQRT),
7408 /* 22049 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::FmContract),
7409 /* 22055 */ // MIs[1] x
7410 /* 22055 */ // No operand predicates
7411 /* 22055 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7412 /* 22057 */ // Combiner Rule #247: fdiv_by_sqrt_to_rsq_f16
7413 /* 22057 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner164),
7414 /* 22060 */ // Label 423: @22060
7415 /* 22060 */ GIM_Try, /*On fail goto*//*Label 424*/ GIMT_Encode4(22071), // Rule ID 323 //
7416 /* 22065 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule202Enabled),
7417 /* 22068 */ // MIs[0] dst
7418 /* 22068 */ // No operand predicates
7419 /* 22068 */ // MIs[0] src1
7420 /* 22068 */ // No operand predicates
7421 /* 22068 */ // MIs[0] src2
7422 /* 22068 */ // No operand predicates
7423 /* 22068 */ // Combiner Rule #202: fdiv_repeated_divison
7424 /* 22068 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
7425 /* 22071 */ // Label 424: @22071
7426 /* 22071 */ GIM_Reject,
7427 /* 22072 */ // Label 71: @22072
7428 /* 22072 */ GIM_Try, /*On fail goto*//*Label 425*/ GIMT_Encode4(22083), // Rule ID 312 //
7429 /* 22077 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7430 /* 22080 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_FREM'
7431 /* 22080 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7432 /* 22083 */ // Label 425: @22083
7433 /* 22083 */ GIM_Reject,
7434 /* 22084 */ // Label 72: @22084
7435 /* 22084 */ GIM_Try, /*On fail goto*//*Label 426*/ GIMT_Encode4(22105), // Rule ID 209 //
7436 /* 22089 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule158Enabled),
7437 /* 22092 */ // MIs[0] dst
7438 /* 22092 */ // No operand predicates
7439 /* 22092 */ // MIs[0] float
7440 /* 22092 */ // No operand predicates
7441 /* 22092 */ // MIs[0] int
7442 /* 22092 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7443 /* 22096 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7444 /* 22100 */ // MIs[1] imm
7445 /* 22100 */ // No operand predicates
7446 /* 22100 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7447 /* 22102 */ // Combiner Rule #158: expand_const_fpowi
7448 /* 22102 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
7449 /* 22105 */ // Label 426: @22105
7450 /* 22105 */ GIM_Reject,
7451 /* 22106 */ // Label 73: @22106
7452 /* 22106 */ GIM_Try, /*On fail goto*//*Label 427*/ GIMT_Encode4(22127), // Rule ID 183 //
7453 /* 22111 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule140Enabled),
7454 /* 22114 */ // MIs[0] dst
7455 /* 22114 */ // No operand predicates
7456 /* 22114 */ // MIs[0] src0
7457 /* 22114 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7458 /* 22118 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7459 /* 22122 */ // MIs[1] cst
7460 /* 22122 */ // No operand predicates
7461 /* 22122 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7462 /* 22124 */ // Combiner Rule #140: constant_fold_flog2
7463 /* 22124 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7464 /* 22127 */ // Label 427: @22127
7465 /* 22127 */ GIM_Reject,
7466 /* 22128 */ // Label 74: @22128
7467 /* 22128 */ GIM_Try, /*On fail goto*//*Label 428*/ GIMT_Encode4(22139), // Rule ID 400 //
7468 /* 22133 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule245Enabled),
7469 /* 22136 */ // Combiner Rule #245: foldable_fneg; wip_match_opcode 'G_FNEG'
7470 /* 22136 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner162),
7471 /* 22139 */ // Label 428: @22139
7472 /* 22139 */ GIM_Try, /*On fail goto*//*Label 429*/ GIMT_Encode4(22160), // Rule ID 180 //
7473 /* 22144 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule137Enabled),
7474 /* 22147 */ // MIs[0] dst
7475 /* 22147 */ // No operand predicates
7476 /* 22147 */ // MIs[0] src0
7477 /* 22147 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7478 /* 22151 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7479 /* 22155 */ // MIs[1] cst
7480 /* 22155 */ // No operand predicates
7481 /* 22155 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7482 /* 22157 */ // Combiner Rule #137: constant_fold_fneg
7483 /* 22157 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7484 /* 22160 */ // Label 429: @22160
7485 /* 22160 */ GIM_Try, /*On fail goto*//*Label 430*/ GIMT_Encode4(22189), // Rule ID 130 //
7486 /* 22165 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
7487 /* 22168 */ // MIs[0] dst
7488 /* 22168 */ // No operand predicates
7489 /* 22168 */ // MIs[0] t
7490 /* 22168 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7491 /* 22172 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
7492 /* 22176 */ // MIs[1] src
7493 /* 22176 */ // No operand predicates
7494 /* 22176 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
7495 /* 22181 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7496 /* 22183 */ // Combiner Rule #93: fneg_fneg_fold
7497 /* 22183 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
7498 /* 22188 */ GIR_EraseRootFromParent_Done,
7499 /* 22189 */ // Label 430: @22189
7500 /* 22189 */ GIM_Reject,
7501 /* 22190 */ // Label 75: @22190
7502 /* 22190 */ GIM_Try, /*On fail goto*//*Label 431*/ GIMT_Encode4(22211), // Rule ID 185 //
7503 /* 22195 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule142Enabled),
7504 /* 22198 */ // MIs[0] dst
7505 /* 22198 */ // No operand predicates
7506 /* 22198 */ // MIs[0] src0
7507 /* 22198 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7508 /* 22202 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7509 /* 22206 */ // MIs[1] cst
7510 /* 22206 */ // No operand predicates
7511 /* 22206 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7512 /* 22208 */ // Combiner Rule #142: constant_fold_fpext
7513 /* 22208 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7514 /* 22211 */ // Label 431: @22211
7515 /* 22211 */ GIM_Reject,
7516 /* 22212 */ // Label 76: @22212
7517 /* 22212 */ GIM_Try, /*On fail goto*//*Label 432*/ GIMT_Encode4(22236), // Rule ID 391 //
7518 /* 22217 */ GIM_CheckFeatures, GIMT_Encode2(GIFBS_Has16BitInsts_NotHasMed3_16),
7519 /* 22220 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule240Enabled),
7520 /* 22223 */ // MIs[0] fptrunc_dst
7521 /* 22223 */ // No operand predicates
7522 /* 22223 */ // MIs[0] fmed3_dst
7523 /* 22223 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7524 /* 22227 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(AMDGPU::G_AMDGPU_FMED3),
7525 /* 22231 */ // MIs[1] src0
7526 /* 22231 */ // No operand predicates
7527 /* 22231 */ // MIs[1] src1
7528 /* 22231 */ // No operand predicates
7529 /* 22231 */ // MIs[1] src2
7530 /* 22231 */ // No operand predicates
7531 /* 22231 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7532 /* 22233 */ // Combiner Rule #240: expand_promoted_fmed3
7533 /* 22233 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner157),
7534 /* 22236 */ // Label 432: @22236
7535 /* 22236 */ GIM_Try, /*On fail goto*//*Label 433*/ GIMT_Encode4(22257), // Rule ID 184 //
7536 /* 22241 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule141Enabled),
7537 /* 22244 */ // MIs[0] dst
7538 /* 22244 */ // No operand predicates
7539 /* 22244 */ // MIs[0] src0
7540 /* 22244 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7541 /* 22248 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7542 /* 22252 */ // MIs[1] cst
7543 /* 22252 */ // No operand predicates
7544 /* 22252 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7545 /* 22254 */ // Combiner Rule #141: constant_fold_fptrunc
7546 /* 22254 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7547 /* 22257 */ // Label 433: @22257
7548 /* 22257 */ GIM_Try, /*On fail goto*//*Label 434*/ GIMT_Encode4(22278), // Rule ID 140 //
7549 /* 22262 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
7550 /* 22265 */ // MIs[0] dst
7551 /* 22265 */ // No operand predicates
7552 /* 22265 */ // MIs[0] src1
7553 /* 22265 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7554 /* 22269 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT),
7555 /* 22273 */ // MIs[1] src0
7556 /* 22273 */ // No operand predicates
7557 /* 22273 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7558 /* 22275 */ // Combiner Rule #101: fptrunc_fpext_fold
7559 /* 22275 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
7560 /* 22278 */ // Label 434: @22278
7561 /* 22278 */ GIM_Reject,
7562 /* 22279 */ // Label 77: @22279
7563 /* 22279 */ GIM_Try, /*On fail goto*//*Label 435*/ GIMT_Encode4(22300), // Rule ID 94 //
7564 /* 22284 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
7565 /* 22287 */ // MIs[0] dst
7566 /* 22287 */ // No operand predicates
7567 /* 22287 */ // MIs[0] __unary_undef_to_undef_match_0.x
7568 /* 22287 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7569 /* 22291 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7570 /* 22295 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7571 /* 22297 */ // Combiner Rule #79: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[5]]
7572 /* 22297 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
7573 /* 22300 */ // Label 435: @22300
7574 /* 22300 */ GIM_Reject,
7575 /* 22301 */ // Label 78: @22301
7576 /* 22301 */ GIM_Try, /*On fail goto*//*Label 436*/ GIMT_Encode4(22322), // Rule ID 95 //
7577 /* 22306 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
7578 /* 22309 */ // MIs[0] dst
7579 /* 22309 */ // No operand predicates
7580 /* 22309 */ // MIs[0] __unary_undef_to_undef_match_0.x
7581 /* 22309 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7582 /* 22313 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7583 /* 22317 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7584 /* 22319 */ // Combiner Rule #79: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[6]]
7585 /* 22319 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
7586 /* 22322 */ // Label 436: @22322
7587 /* 22322 */ GIM_Reject,
7588 /* 22323 */ // Label 79: @22323
7589 /* 22323 */ GIM_Try, /*On fail goto*//*Label 437*/ GIMT_Encode4(22334), // Rule ID 78 //
7590 /* 22328 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
7591 /* 22331 */ // Combiner Rule #73: undef_to_fp_zero; wip_match_opcode 'G_SITOFP'
7592 /* 22331 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
7593 /* 22334 */ // Label 437: @22334
7594 /* 22334 */ GIM_Try, /*On fail goto*//*Label 438*/ GIMT_Encode4(22345), // Rule ID 394 //
7595 /* 22339 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule242Enabled),
7596 /* 22342 */ // Combiner Rule #242: uchar_to_float; wip_match_opcode 'G_SITOFP'
7597 /* 22342 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner159),
7598 /* 22345 */ // Label 438: @22345
7599 /* 22345 */ GIM_Try, /*On fail goto*//*Label 439*/ GIMT_Encode4(22360), // Rule ID 193 //
7600 /* 22350 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
7601 /* 22353 */ // MIs[0] dst
7602 /* 22353 */ // No operand predicates
7603 /* 22353 */ // MIs[0] Operand 1
7604 /* 22353 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
7605 /* 22357 */ // Combiner Rule #150: itof_const_zero_fold_si
7606 /* 22357 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
7607 /* 22360 */ // Label 439: @22360
7608 /* 22360 */ GIM_Reject,
7609 /* 22361 */ // Label 80: @22361
7610 /* 22361 */ GIM_Try, /*On fail goto*//*Label 440*/ GIMT_Encode4(22372), // Rule ID 77 //
7611 /* 22366 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
7612 /* 22369 */ // Combiner Rule #73: undef_to_fp_zero; wip_match_opcode 'G_UITOFP'
7613 /* 22369 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
7614 /* 22372 */ // Label 440: @22372
7615 /* 22372 */ GIM_Try, /*On fail goto*//*Label 441*/ GIMT_Encode4(22383), // Rule ID 393 //
7616 /* 22377 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule242Enabled),
7617 /* 22380 */ // Combiner Rule #242: uchar_to_float; wip_match_opcode 'G_UITOFP'
7618 /* 22380 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner159),
7619 /* 22383 */ // Label 441: @22383
7620 /* 22383 */ GIM_Try, /*On fail goto*//*Label 442*/ GIMT_Encode4(22398), // Rule ID 194 //
7621 /* 22388 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
7622 /* 22391 */ // MIs[0] dst
7623 /* 22391 */ // No operand predicates
7624 /* 22391 */ // MIs[0] Operand 1
7625 /* 22391 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
7626 /* 22395 */ // Combiner Rule #151: itof_const_zero_fold_ui
7627 /* 22395 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
7628 /* 22398 */ // Label 442: @22398
7629 /* 22398 */ GIM_Reject,
7630 /* 22399 */ // Label 81: @22399
7631 /* 22399 */ GIM_Try, /*On fail goto*//*Label 443*/ GIMT_Encode4(22428), // Rule ID 21 //
7632 /* 22404 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
7633 /* 22407 */ // MIs[0] dst
7634 /* 22407 */ // No operand predicates
7635 /* 22407 */ // MIs[0] src
7636 /* 22407 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7637 /* 22411 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FABS),
7638 /* 22415 */ // MIs[1] __idempotent_prop_match_0.x
7639 /* 22415 */ // No operand predicates
7640 /* 22415 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7641 /* 22420 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7642 /* 22422 */ // Combiner Rule #20: idempotent_prop @ [__idempotent_prop_match_0[1]]
7643 /* 22422 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7644 /* 22427 */ GIR_EraseRootFromParent_Done,
7645 /* 22428 */ // Label 443: @22428
7646 /* 22428 */ GIM_Try, /*On fail goto*//*Label 444*/ GIMT_Encode4(22449), // Rule ID 181 //
7647 /* 22433 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule138Enabled),
7648 /* 22436 */ // MIs[0] dst
7649 /* 22436 */ // No operand predicates
7650 /* 22436 */ // MIs[0] src0
7651 /* 22436 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7652 /* 22440 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7653 /* 22444 */ // MIs[1] cst
7654 /* 22444 */ // No operand predicates
7655 /* 22444 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7656 /* 22446 */ // Combiner Rule #138: constant_fold_fabs
7657 /* 22446 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7658 /* 22449 */ // Label 444: @22449
7659 /* 22449 */ GIM_Try, /*On fail goto*//*Label 445*/ GIMT_Encode4(22477), // Rule ID 274 //
7660 /* 22454 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
7661 /* 22457 */ // MIs[0] dst
7662 /* 22457 */ // No operand predicates
7663 /* 22457 */ // MIs[0] tmp
7664 /* 22457 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7665 /* 22461 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
7666 /* 22465 */ // MIs[1] x
7667 /* 22465 */ // No operand predicates
7668 /* 22465 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7669 /* 22467 */ // Combiner Rule #183: fabs_fneg_fold
7670 /* 22467 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FABS),
7671 /* 22470 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7672 /* 22472 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7673 /* 22476 */ GIR_EraseRootFromParent_Done,
7674 /* 22477 */ // Label 445: @22477
7675 /* 22477 */ GIM_Reject,
7676 /* 22478 */ // Label 82: @22478
7677 /* 22478 */ GIM_Try, /*On fail goto*//*Label 446*/ GIMT_Encode4(22489), // Rule ID 399 //
7678 /* 22483 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule244Enabled),
7679 /* 22486 */ // Combiner Rule #244: remove_fcanonicalize; wip_match_opcode 'G_FCANONICALIZE'
7680 /* 22486 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner161),
7681 /* 22489 */ // Label 446: @22489
7682 /* 22489 */ GIM_Try, /*On fail goto*//*Label 447*/ GIMT_Encode4(22518), // Rule ID 22 //
7683 /* 22494 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
7684 /* 22497 */ // MIs[0] dst
7685 /* 22497 */ // No operand predicates
7686 /* 22497 */ // MIs[0] src
7687 /* 22497 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7688 /* 22501 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCANONICALIZE),
7689 /* 22505 */ // MIs[1] __idempotent_prop_match_0.x
7690 /* 22505 */ // No operand predicates
7691 /* 22505 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7692 /* 22510 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7693 /* 22512 */ // Combiner Rule #20: idempotent_prop @ [__idempotent_prop_match_0[2]]
7694 /* 22512 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7695 /* 22517 */ GIR_EraseRootFromParent_Done,
7696 /* 22518 */ // Label 447: @22518
7697 /* 22518 */ GIM_Reject,
7698 /* 22519 */ // Label 83: @22519
7699 /* 22519 */ GIM_Try, /*On fail goto*//*Label 448*/ GIMT_Encode4(22530), // Rule ID 205 //
7700 /* 22524 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
7701 /* 22527 */ // Combiner Rule #157: combine_minmax_nan; wip_match_opcode 'G_FMINNUM'
7702 /* 22527 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
7703 /* 22530 */ // Label 448: @22530
7704 /* 22530 */ GIM_Try, /*On fail goto*//*Label 449*/ GIMT_Encode4(22541), // Rule ID 313 //
7705 /* 22535 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7706 /* 22538 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_FMINNUM'
7707 /* 22538 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7708 /* 22541 */ // Label 449: @22541
7709 /* 22541 */ GIM_Try, /*On fail goto*//*Label 450*/ GIMT_Encode4(22552), // Rule ID 350 //
7710 /* 22546 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
7711 /* 22549 */ // Combiner Rule #207: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM'
7712 /* 22549 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7713 /* 22552 */ // Label 450: @22552
7714 /* 22552 */ GIM_Reject,
7715 /* 22553 */ // Label 84: @22553
7716 /* 22553 */ GIM_Try, /*On fail goto*//*Label 451*/ GIMT_Encode4(22564), // Rule ID 206 //
7717 /* 22558 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
7718 /* 22561 */ // Combiner Rule #157: combine_minmax_nan; wip_match_opcode 'G_FMAXNUM'
7719 /* 22561 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
7720 /* 22564 */ // Label 451: @22564
7721 /* 22564 */ GIM_Try, /*On fail goto*//*Label 452*/ GIMT_Encode4(22575), // Rule ID 314 //
7722 /* 22569 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7723 /* 22572 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_FMAXNUM'
7724 /* 22572 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7725 /* 22575 */ // Label 452: @22575
7726 /* 22575 */ GIM_Try, /*On fail goto*//*Label 453*/ GIMT_Encode4(22586), // Rule ID 351 //
7727 /* 22580 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
7728 /* 22583 */ // Combiner Rule #207: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM'
7729 /* 22583 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7730 /* 22586 */ // Label 453: @22586
7731 /* 22586 */ GIM_Reject,
7732 /* 22587 */ // Label 85: @22587
7733 /* 22587 */ GIM_Try, /*On fail goto*//*Label 454*/ GIMT_Encode4(22598), // Rule ID 352 //
7734 /* 22592 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
7735 /* 22595 */ // Combiner Rule #207: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM_IEEE'
7736 /* 22595 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7737 /* 22598 */ // Label 454: @22598
7738 /* 22598 */ GIM_Reject,
7739 /* 22599 */ // Label 86: @22599
7740 /* 22599 */ GIM_Try, /*On fail goto*//*Label 455*/ GIMT_Encode4(22610), // Rule ID 353 //
7741 /* 22604 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
7742 /* 22607 */ // Combiner Rule #207: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM_IEEE'
7743 /* 22607 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7744 /* 22610 */ // Label 455: @22610
7745 /* 22610 */ GIM_Reject,
7746 /* 22611 */ // Label 87: @22611
7747 /* 22611 */ GIM_Try, /*On fail goto*//*Label 456*/ GIMT_Encode4(22622), // Rule ID 207 //
7748 /* 22616 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
7749 /* 22619 */ // Combiner Rule #157: combine_minmax_nan; wip_match_opcode 'G_FMINIMUM'
7750 /* 22619 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
7751 /* 22622 */ // Label 456: @22622
7752 /* 22622 */ GIM_Try, /*On fail goto*//*Label 457*/ GIMT_Encode4(22633), // Rule ID 315 //
7753 /* 22627 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7754 /* 22630 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_FMINIMUM'
7755 /* 22630 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7756 /* 22633 */ // Label 457: @22633
7757 /* 22633 */ GIM_Try, /*On fail goto*//*Label 458*/ GIMT_Encode4(22644), // Rule ID 354 //
7758 /* 22638 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
7759 /* 22641 */ // Combiner Rule #207: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINIMUM'
7760 /* 22641 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7761 /* 22644 */ // Label 458: @22644
7762 /* 22644 */ GIM_Reject,
7763 /* 22645 */ // Label 88: @22645
7764 /* 22645 */ GIM_Try, /*On fail goto*//*Label 459*/ GIMT_Encode4(22656), // Rule ID 208 //
7765 /* 22650 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
7766 /* 22653 */ // Combiner Rule #157: combine_minmax_nan; wip_match_opcode 'G_FMAXIMUM'
7767 /* 22653 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
7768 /* 22656 */ // Label 459: @22656
7769 /* 22656 */ GIM_Try, /*On fail goto*//*Label 460*/ GIMT_Encode4(22667), // Rule ID 316 //
7770 /* 22661 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7771 /* 22664 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_FMAXIMUM'
7772 /* 22664 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7773 /* 22667 */ // Label 460: @22667
7774 /* 22667 */ GIM_Try, /*On fail goto*//*Label 461*/ GIMT_Encode4(22678), // Rule ID 355 //
7775 /* 22672 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
7776 /* 22675 */ // Combiner Rule #207: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXIMUM'
7777 /* 22675 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7778 /* 22678 */ // Label 461: @22678
7779 /* 22678 */ GIM_Reject,
7780 /* 22679 */ // Label 89: @22679
7781 /* 22679 */ GIM_Try, /*On fail goto*//*Label 462*/ GIMT_Encode4(22690), // Rule ID 152 //
7782 /* 22684 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule109Enabled),
7783 /* 22687 */ // Combiner Rule #109: reassoc_ptradd; wip_match_opcode 'G_PTR_ADD'
7784 /* 22687 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
7785 /* 22690 */ // Label 462: @22690
7786 /* 22690 */ GIM_Try, /*On fail goto*//*Label 463*/ GIMT_Encode4(22701), // Rule ID 154 //
7787 /* 22695 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled),
7788 /* 22698 */ // Combiner Rule #111: ptr_add_immed_chain; wip_match_opcode 'G_PTR_ADD'
7789 /* 22698 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner58),
7790 /* 22701 */ // Label 463: @22701
7791 /* 22701 */ GIM_Try, /*On fail goto*//*Label 464*/ GIMT_Encode4(22712), // Rule ID 195 //
7792 /* 22706 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
7793 /* 22709 */ // Combiner Rule #152: const_ptradd_to_i2p; wip_match_opcode 'G_PTR_ADD'
7794 /* 22709 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
7795 /* 22712 */ // Label 464: @22712
7796 /* 22712 */ GIM_Try, /*On fail goto*//*Label 465*/ GIMT_Encode4(22723), // Rule ID 211 //
7797 /* 22717 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule160Enabled),
7798 /* 22720 */ // Combiner Rule #160: ptr_add_with_zero; wip_match_opcode 'G_PTR_ADD'
7799 /* 22720 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner90),
7800 /* 22723 */ // Label 465: @22723
7801 /* 22723 */ GIM_Try, /*On fail goto*//*Label 466*/ GIMT_Encode4(22734), // Rule ID 248 //
7802 /* 22728 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
7803 /* 22731 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_PTR_ADD'
7804 /* 22731 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7805 /* 22734 */ // Label 466: @22734
7806 /* 22734 */ GIM_Try, /*On fail goto*//*Label 467*/ GIMT_Encode4(22745), // Rule ID 293 //
7807 /* 22739 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7808 /* 22742 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_PTR_ADD'
7809 /* 22742 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7810 /* 22745 */ // Label 467: @22745
7811 /* 22745 */ GIM_Try, /*On fail goto*//*Label 468*/ GIMT_Encode4(22768), // Rule ID 113 //
7812 /* 22750 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
7813 /* 22753 */ // MIs[0] dst
7814 /* 22753 */ // No operand predicates
7815 /* 22753 */ // MIs[0] lhs
7816 /* 22753 */ // No operand predicates
7817 /* 22753 */ // MIs[0] Operand 2
7818 /* 22753 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7819 /* 22757 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7820 /* 22762 */ // Combiner Rule #86: right_identity_zero @ [__right_identity_zero_match_0[7]]
7821 /* 22762 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7822 /* 22767 */ GIR_EraseRootFromParent_Done,
7823 /* 22768 */ // Label 468: @22768
7824 /* 22768 */ GIM_Reject,
7825 /* 22769 */ // Label 90: @22769
7826 /* 22769 */ GIM_Try, /*On fail goto*//*Label 469*/ GIMT_Encode4(22780), // Rule ID 261 //
7827 /* 22774 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
7828 /* 22777 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_SMIN'
7829 /* 22777 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7830 /* 22780 */ // Label 469: @22780
7831 /* 22780 */ GIM_Try, /*On fail goto*//*Label 470*/ GIMT_Encode4(22791), // Rule ID 304 //
7832 /* 22785 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7833 /* 22788 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_SMIN'
7834 /* 22788 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7835 /* 22791 */ // Label 470: @22791
7836 /* 22791 */ GIM_Try, /*On fail goto*//*Label 471*/ GIMT_Encode4(22802), // Rule ID 332 //
7837 /* 22796 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
7838 /* 22799 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_SMIN'
7839 /* 22799 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7840 /* 22802 */ // Label 471: @22802
7841 /* 22802 */ GIM_Reject,
7842 /* 22803 */ // Label 91: @22803
7843 /* 22803 */ GIM_Try, /*On fail goto*//*Label 472*/ GIMT_Encode4(22814), // Rule ID 262 //
7844 /* 22808 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
7845 /* 22811 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_SMAX'
7846 /* 22811 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7847 /* 22814 */ // Label 472: @22814
7848 /* 22814 */ GIM_Try, /*On fail goto*//*Label 473*/ GIMT_Encode4(22825), // Rule ID 305 //
7849 /* 22819 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7850 /* 22822 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_SMAX'
7851 /* 22822 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7852 /* 22825 */ // Label 473: @22825
7853 /* 22825 */ GIM_Try, /*On fail goto*//*Label 474*/ GIMT_Encode4(22836), // Rule ID 333 //
7854 /* 22830 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
7855 /* 22833 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_SMAX'
7856 /* 22833 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7857 /* 22836 */ // Label 474: @22836
7858 /* 22836 */ GIM_Reject,
7859 /* 22837 */ // Label 92: @22837
7860 /* 22837 */ GIM_Try, /*On fail goto*//*Label 475*/ GIMT_Encode4(22848), // Rule ID 263 //
7861 /* 22842 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
7862 /* 22845 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_UMIN'
7863 /* 22845 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7864 /* 22848 */ // Label 475: @22848
7865 /* 22848 */ GIM_Try, /*On fail goto*//*Label 476*/ GIMT_Encode4(22859), // Rule ID 306 //
7866 /* 22853 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7867 /* 22856 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_UMIN'
7868 /* 22856 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7869 /* 22859 */ // Label 476: @22859
7870 /* 22859 */ GIM_Try, /*On fail goto*//*Label 477*/ GIMT_Encode4(22870), // Rule ID 334 //
7871 /* 22864 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
7872 /* 22867 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_UMIN'
7873 /* 22867 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7874 /* 22870 */ // Label 477: @22870
7875 /* 22870 */ GIM_Reject,
7876 /* 22871 */ // Label 93: @22871
7877 /* 22871 */ GIM_Try, /*On fail goto*//*Label 478*/ GIMT_Encode4(22882), // Rule ID 264 //
7878 /* 22876 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
7879 /* 22879 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_UMAX'
7880 /* 22879 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7881 /* 22882 */ // Label 478: @22882
7882 /* 22882 */ GIM_Try, /*On fail goto*//*Label 479*/ GIMT_Encode4(22893), // Rule ID 307 //
7883 /* 22887 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7884 /* 22890 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_UMAX'
7885 /* 22890 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7886 /* 22893 */ // Label 479: @22893
7887 /* 22893 */ GIM_Try, /*On fail goto*//*Label 480*/ GIMT_Encode4(22904), // Rule ID 335 //
7888 /* 22898 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
7889 /* 22901 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_UMAX'
7890 /* 22901 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7891 /* 22904 */ // Label 480: @22904
7892 /* 22904 */ GIM_Reject,
7893 /* 22905 */ // Label 94: @22905
7894 /* 22905 */ GIM_Try, /*On fail goto*//*Label 481*/ GIMT_Encode4(22916), // Rule ID 88 //
7895 /* 22910 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
7896 /* 22913 */ // Combiner Rule #78: unary_undef_to_zero; wip_match_opcode 'G_ABS'
7897 /* 22913 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
7898 /* 22916 */ // Label 481: @22916
7899 /* 22916 */ GIM_Reject,
7900 /* 22917 */ // Label 95: @22917
7901 /* 22917 */ GIM_Try, /*On fail goto*//*Label 482*/ GIMT_Encode4(22928), // Rule ID 179 //
7902 /* 22922 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule136Enabled),
7903 /* 22925 */ // Combiner Rule #136: opt_brcond_by_inverting_cond; wip_match_opcode 'G_BR'
7904 /* 22925 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
7905 /* 22928 */ // Label 482: @22928
7906 /* 22928 */ GIM_Reject,
7907 /* 22929 */ // Label 96: @22929
7908 /* 22929 */ GIM_Try, /*On fail goto*//*Label 483*/ GIMT_Encode4(22940), // Rule ID 28 //
7909 /* 22934 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
7910 /* 22937 */ // Combiner Rule #26: insert_vector_elt_oob; wip_match_opcode 'G_INSERT_VECTOR_ELT'
7911 /* 22937 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
7912 /* 22940 */ // Label 483: @22940
7913 /* 22940 */ GIM_Try, /*On fail goto*//*Label 484*/ GIMT_Encode4(22951), // Rule ID 69 //
7914 /* 22945 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule67Enabled),
7915 /* 22948 */ // Combiner Rule #67: combine_insert_vec_elts_build_vector; wip_match_opcode 'G_INSERT_VECTOR_ELT'
7916 /* 22948 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27),
7917 /* 22951 */ // Label 484: @22951
7918 /* 22951 */ GIM_Try, /*On fail goto*//*Label 485*/ GIMT_Encode4(22962), // Rule ID 103 //
7919 /* 22956 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
7920 /* 22959 */ // Combiner Rule #84: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_INSERT_VECTOR_ELT'
7921 /* 22959 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
7922 /* 22962 */ // Label 485: @22962
7923 /* 22962 */ GIM_Try, /*On fail goto*//*Label 486*/ GIMT_Encode4(23001), // Rule ID 40 //
7924 /* 22967 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
7925 /* 22970 */ // MIs[0] root
7926 /* 22970 */ // No operand predicates
7927 /* 22970 */ // MIs[0] src
7928 /* 22970 */ // No operand predicates
7929 /* 22970 */ // MIs[0] elt
7930 /* 22970 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7931 /* 22974 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_EXTRACT_VECTOR_ELT),
7932 /* 22978 */ // MIs[1] src
7933 /* 22978 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
7934 /* 22983 */ // MIs[1] idx
7935 /* 22983 */ // No operand predicates
7936 /* 22983 */ // MIs[0] idx
7937 /* 22983 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
7938 /* 22988 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7939 /* 22993 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7940 /* 22995 */ // Combiner Rule #38: insert_vector_element_extract_vector_element
7941 /* 22995 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7942 /* 23000 */ GIR_EraseRootFromParent_Done,
7943 /* 23001 */ // Label 486: @23001
7944 /* 23001 */ GIM_Try, /*On fail goto*//*Label 487*/ GIMT_Encode4(23034), // Rule ID 26 //
7945 /* 23006 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
7946 /* 23009 */ // MIs[0] root
7947 /* 23009 */ // No operand predicates
7948 /* 23009 */ // MIs[0] src
7949 /* 23009 */ // No operand predicates
7950 /* 23009 */ // MIs[0] elt
7951 /* 23009 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7952 /* 23013 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7953 /* 23017 */ // MIs[0] idx
7954 /* 23017 */ // No operand predicates
7955 /* 23017 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
7956 /* 23021 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7957 /* 23026 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7958 /* 23028 */ // Combiner Rule #24: insert_vector_element_elt_undef
7959 /* 23028 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7960 /* 23033 */ GIR_EraseRootFromParent_Done,
7961 /* 23034 */ // Label 487: @23034
7962 /* 23034 */ GIM_Try, /*On fail goto*//*Label 488*/ GIMT_Encode4(23058), // Rule ID 25 //
7963 /* 23039 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
7964 /* 23042 */ // MIs[0] root
7965 /* 23042 */ // No operand predicates
7966 /* 23042 */ // MIs[0] src
7967 /* 23042 */ // No operand predicates
7968 /* 23042 */ // MIs[0] elt
7969 /* 23042 */ // No operand predicates
7970 /* 23042 */ // MIs[0] idx
7971 /* 23042 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
7972 /* 23046 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7973 /* 23050 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7974 /* 23052 */ // Combiner Rule #23: insert_vector_element_idx_undef
7975 /* 23052 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7976 /* 23055 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7977 /* 23057 */ GIR_EraseRootFromParent_Done,
7978 /* 23058 */ // Label 488: @23058
7979 /* 23058 */ GIM_Reject,
7980 /* 23059 */ // Label 97: @23059
7981 /* 23059 */ GIM_Try, /*On fail goto*//*Label 489*/ GIMT_Encode4(23070), // Rule ID 27 //
7982 /* 23064 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
7983 /* 23067 */ // Combiner Rule #25: match_extract_of_element; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
7984 /* 23067 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner9),
7985 /* 23070 */ // Label 489: @23070
7986 /* 23070 */ GIM_Try, /*On fail goto*//*Label 490*/ GIMT_Encode4(23081), // Rule ID 70 //
7987 /* 23075 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
7988 /* 23078 */ // Combiner Rule #68: extract_vec_elt_build_vec; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
7989 /* 23078 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner28),
7990 /* 23081 */ // Label 490: @23081
7991 /* 23081 */ GIM_Try, /*On fail goto*//*Label 491*/ GIMT_Encode4(23092), // Rule ID 76 //
7992 /* 23086 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled),
7993 /* 23089 */ // Combiner Rule #72: combine_extracted_vector_load; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
7994 /* 23089 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
7995 /* 23092 */ // Label 491: @23092
7996 /* 23092 */ GIM_Try, /*On fail goto*//*Label 492*/ GIMT_Encode4(23103), // Rule ID 104 //
7997 /* 23097 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
7998 /* 23100 */ // Combiner Rule #84: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
7999 /* 23100 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
8000 /* 23103 */ // Label 492: @23103
8001 /* 23103 */ GIM_Try, /*On fail goto*//*Label 493*/ GIMT_Encode4(23127), // Rule ID 38 //
8002 /* 23108 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
8003 /* 23111 */ // MIs[0] root
8004 /* 23111 */ // No operand predicates
8005 /* 23111 */ // MIs[0] src
8006 /* 23111 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8007 /* 23115 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
8008 /* 23119 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/9,
8009 /* 23122 */ // MIs[1] x
8010 /* 23122 */ // No operand predicates
8011 /* 23122 */ // MIs[1] y
8012 /* 23122 */ // No operand predicates
8013 /* 23122 */ // MIs[1] z
8014 /* 23122 */ // No operand predicates
8015 /* 23122 */ // MIs[1] a
8016 /* 23122 */ // No operand predicates
8017 /* 23122 */ // MIs[1] b
8018 /* 23122 */ // No operand predicates
8019 /* 23122 */ // MIs[1] c
8020 /* 23122 */ // No operand predicates
8021 /* 23122 */ // MIs[1] d
8022 /* 23122 */ // No operand predicates
8023 /* 23122 */ // MIs[1] e
8024 /* 23122 */ // No operand predicates
8025 /* 23122 */ // MIs[0] idx
8026 /* 23122 */ // No operand predicates
8027 /* 23122 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8028 /* 23124 */ // Combiner Rule #36: extract_vector_element_build_vector_trunc8
8029 /* 23124 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
8030 /* 23127 */ // Label 493: @23127
8031 /* 23127 */ GIM_Try, /*On fail goto*//*Label 494*/ GIMT_Encode4(23151), // Rule ID 37 //
8032 /* 23132 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
8033 /* 23135 */ // MIs[0] root
8034 /* 23135 */ // No operand predicates
8035 /* 23135 */ // MIs[0] src
8036 /* 23135 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8037 /* 23139 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
8038 /* 23143 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/8,
8039 /* 23146 */ // MIs[1] x
8040 /* 23146 */ // No operand predicates
8041 /* 23146 */ // MIs[1] y
8042 /* 23146 */ // No operand predicates
8043 /* 23146 */ // MIs[1] z
8044 /* 23146 */ // No operand predicates
8045 /* 23146 */ // MIs[1] a
8046 /* 23146 */ // No operand predicates
8047 /* 23146 */ // MIs[1] b
8048 /* 23146 */ // No operand predicates
8049 /* 23146 */ // MIs[1] c
8050 /* 23146 */ // No operand predicates
8051 /* 23146 */ // MIs[1] d
8052 /* 23146 */ // No operand predicates
8053 /* 23146 */ // MIs[0] idx
8054 /* 23146 */ // No operand predicates
8055 /* 23146 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8056 /* 23148 */ // Combiner Rule #35: extract_vector_element_build_vector_trunc7
8057 /* 23148 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
8058 /* 23151 */ // Label 494: @23151
8059 /* 23151 */ GIM_Try, /*On fail goto*//*Label 495*/ GIMT_Encode4(23175), // Rule ID 36 //
8060 /* 23156 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
8061 /* 23159 */ // MIs[0] root
8062 /* 23159 */ // No operand predicates
8063 /* 23159 */ // MIs[0] src
8064 /* 23159 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8065 /* 23163 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
8066 /* 23167 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/7,
8067 /* 23170 */ // MIs[1] x
8068 /* 23170 */ // No operand predicates
8069 /* 23170 */ // MIs[1] y
8070 /* 23170 */ // No operand predicates
8071 /* 23170 */ // MIs[1] z
8072 /* 23170 */ // No operand predicates
8073 /* 23170 */ // MIs[1] a
8074 /* 23170 */ // No operand predicates
8075 /* 23170 */ // MIs[1] b
8076 /* 23170 */ // No operand predicates
8077 /* 23170 */ // MIs[1] c
8078 /* 23170 */ // No operand predicates
8079 /* 23170 */ // MIs[0] idx
8080 /* 23170 */ // No operand predicates
8081 /* 23170 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8082 /* 23172 */ // Combiner Rule #34: extract_vector_element_build_vector_trunc6
8083 /* 23172 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
8084 /* 23175 */ // Label 495: @23175
8085 /* 23175 */ GIM_Try, /*On fail goto*//*Label 496*/ GIMT_Encode4(23199), // Rule ID 35 //
8086 /* 23180 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
8087 /* 23183 */ // MIs[0] root
8088 /* 23183 */ // No operand predicates
8089 /* 23183 */ // MIs[0] src
8090 /* 23183 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8091 /* 23187 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
8092 /* 23191 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/6,
8093 /* 23194 */ // MIs[1] x
8094 /* 23194 */ // No operand predicates
8095 /* 23194 */ // MIs[1] y
8096 /* 23194 */ // No operand predicates
8097 /* 23194 */ // MIs[1] z
8098 /* 23194 */ // No operand predicates
8099 /* 23194 */ // MIs[1] a
8100 /* 23194 */ // No operand predicates
8101 /* 23194 */ // MIs[1] b
8102 /* 23194 */ // No operand predicates
8103 /* 23194 */ // MIs[0] idx
8104 /* 23194 */ // No operand predicates
8105 /* 23194 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8106 /* 23196 */ // Combiner Rule #33: extract_vector_element_build_vector_trunc5
8107 /* 23196 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
8108 /* 23199 */ // Label 496: @23199
8109 /* 23199 */ GIM_Try, /*On fail goto*//*Label 497*/ GIMT_Encode4(23223), // Rule ID 34 //
8110 /* 23204 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
8111 /* 23207 */ // MIs[0] root
8112 /* 23207 */ // No operand predicates
8113 /* 23207 */ // MIs[0] src
8114 /* 23207 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8115 /* 23211 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
8116 /* 23215 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/5,
8117 /* 23218 */ // MIs[1] x
8118 /* 23218 */ // No operand predicates
8119 /* 23218 */ // MIs[1] y
8120 /* 23218 */ // No operand predicates
8121 /* 23218 */ // MIs[1] z
8122 /* 23218 */ // No operand predicates
8123 /* 23218 */ // MIs[1] a
8124 /* 23218 */ // No operand predicates
8125 /* 23218 */ // MIs[0] idx
8126 /* 23218 */ // No operand predicates
8127 /* 23218 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8128 /* 23220 */ // Combiner Rule #32: extract_vector_element_build_vector_trunc4
8129 /* 23220 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
8130 /* 23223 */ // Label 497: @23223
8131 /* 23223 */ GIM_Try, /*On fail goto*//*Label 498*/ GIMT_Encode4(23247), // Rule ID 33 //
8132 /* 23228 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
8133 /* 23231 */ // MIs[0] root
8134 /* 23231 */ // No operand predicates
8135 /* 23231 */ // MIs[0] src
8136 /* 23231 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8137 /* 23235 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
8138 /* 23239 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
8139 /* 23242 */ // MIs[1] x
8140 /* 23242 */ // No operand predicates
8141 /* 23242 */ // MIs[1] y
8142 /* 23242 */ // No operand predicates
8143 /* 23242 */ // MIs[1] z
8144 /* 23242 */ // No operand predicates
8145 /* 23242 */ // MIs[0] idx
8146 /* 23242 */ // No operand predicates
8147 /* 23242 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8148 /* 23244 */ // Combiner Rule #31: extract_vector_element_build_vector_trunc3
8149 /* 23244 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
8150 /* 23247 */ // Label 498: @23247
8151 /* 23247 */ GIM_Try, /*On fail goto*//*Label 499*/ GIMT_Encode4(23281), // Rule ID 29 //
8152 /* 23252 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
8153 /* 23255 */ // MIs[0] root
8154 /* 23255 */ // No operand predicates
8155 /* 23255 */ // MIs[0] src
8156 /* 23255 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8157 /* 23259 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
8158 /* 23263 */ // MIs[1] x
8159 /* 23263 */ // No operand predicates
8160 /* 23263 */ // MIs[1] value
8161 /* 23263 */ // No operand predicates
8162 /* 23263 */ // MIs[1] idx
8163 /* 23263 */ // No operand predicates
8164 /* 23263 */ // MIs[0] idx
8165 /* 23263 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
8166 /* 23268 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
8167 /* 23273 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8168 /* 23275 */ // Combiner Rule #27: extract_vector_element_not_const
8169 /* 23275 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
8170 /* 23280 */ GIR_EraseRootFromParent_Done,
8171 /* 23281 */ // Label 499: @23281
8172 /* 23281 */ GIM_Try, /*On fail goto*//*Label 500*/ GIMT_Encode4(23302), // Rule ID 30 //
8173 /* 23286 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
8174 /* 23289 */ // MIs[0] root
8175 /* 23289 */ // No operand predicates
8176 /* 23289 */ // MIs[0] src
8177 /* 23289 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8178 /* 23293 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
8179 /* 23297 */ // MIs[1] x
8180 /* 23297 */ // No operand predicates
8181 /* 23297 */ // MIs[1] value
8182 /* 23297 */ // No operand predicates
8183 /* 23297 */ // MIs[1] idx2
8184 /* 23297 */ // No operand predicates
8185 /* 23297 */ // MIs[0] idx1
8186 /* 23297 */ // No operand predicates
8187 /* 23297 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8188 /* 23299 */ // Combiner Rule #28: extract_vector_element_different_indices
8189 /* 23299 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11),
8190 /* 23302 */ // Label 500: @23302
8191 /* 23302 */ GIM_Try, /*On fail goto*//*Label 501*/ GIMT_Encode4(23331), // Rule ID 39 //
8192 /* 23307 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
8193 /* 23310 */ // MIs[0] root
8194 /* 23310 */ // No operand predicates
8195 /* 23310 */ // MIs[0] src
8196 /* 23310 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8197 /* 23314 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHUFFLE_VECTOR),
8198 /* 23318 */ // MIs[1] src1
8199 /* 23318 */ // No operand predicates
8200 /* 23318 */ // MIs[1] src2
8201 /* 23318 */ // No operand predicates
8202 /* 23318 */ // MIs[1] mask
8203 /* 23318 */ // No operand predicates
8204 /* 23318 */ // MIs[0] idx
8205 /* 23318 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
8206 /* 23322 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8207 /* 23326 */ // MIs[2] imm
8208 /* 23326 */ // No operand predicates
8209 /* 23326 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8210 /* 23328 */ // Combiner Rule #37: extract_vector_element_shuffle_vector
8211 /* 23328 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
8212 /* 23331 */ // Label 501: @23331
8213 /* 23331 */ GIM_Try, /*On fail goto*//*Label 502*/ GIMT_Encode4(23355), // Rule ID 32 //
8214 /* 23336 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
8215 /* 23339 */ // MIs[0] root
8216 /* 23339 */ // No operand predicates
8217 /* 23339 */ // MIs[0] src
8218 /* 23339 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8219 /* 23343 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
8220 /* 23347 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
8221 /* 23350 */ // MIs[1] x
8222 /* 23350 */ // No operand predicates
8223 /* 23350 */ // MIs[1] y
8224 /* 23350 */ // No operand predicates
8225 /* 23350 */ // MIs[0] idx
8226 /* 23350 */ // No operand predicates
8227 /* 23350 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8228 /* 23352 */ // Combiner Rule #30: extract_vector_element_build_vector_trunc2
8229 /* 23352 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
8230 /* 23355 */ // Label 502: @23355
8231 /* 23355 */ GIM_Try, /*On fail goto*//*Label 503*/ GIMT_Encode4(23387), // Rule ID 31 //
8232 /* 23360 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
8233 /* 23363 */ // MIs[0] root
8234 /* 23363 */ // No operand predicates
8235 /* 23363 */ // MIs[0] src
8236 /* 23363 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8237 /* 23367 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
8238 /* 23371 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
8239 /* 23374 */ // MIs[1] unused
8240 /* 23374 */ // No operand predicates
8241 /* 23374 */ // MIs[0] idx
8242 /* 23374 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
8243 /* 23378 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8244 /* 23382 */ // MIs[2] imm
8245 /* 23382 */ // No operand predicates
8246 /* 23382 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8247 /* 23384 */ // Combiner Rule #29: extract_vector_element_build_vector
8248 /* 23384 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
8249 /* 23387 */ // Label 503: @23387
8250 /* 23387 */ GIM_Try, /*On fail goto*//*Label 504*/ GIMT_Encode4(23411), // Rule ID 23 //
8251 /* 23392 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
8252 /* 23395 */ // MIs[0] root
8253 /* 23395 */ // No operand predicates
8254 /* 23395 */ // MIs[0] vector
8255 /* 23395 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8256 /* 23399 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8257 /* 23403 */ // MIs[0] idx
8258 /* 23403 */ // No operand predicates
8259 /* 23403 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8260 /* 23405 */ // Combiner Rule #21: match_extract_of_element_undef_vector
8261 /* 23405 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8262 /* 23408 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
8263 /* 23410 */ GIR_EraseRootFromParent_Done,
8264 /* 23411 */ // Label 504: @23411
8265 /* 23411 */ GIM_Try, /*On fail goto*//*Label 505*/ GIMT_Encode4(23435), // Rule ID 24 //
8266 /* 23416 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
8267 /* 23419 */ // MIs[0] root
8268 /* 23419 */ // No operand predicates
8269 /* 23419 */ // MIs[0] vector
8270 /* 23419 */ // No operand predicates
8271 /* 23419 */ // MIs[0] idx
8272 /* 23419 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8273 /* 23423 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8274 /* 23427 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8275 /* 23429 */ // Combiner Rule #22: match_extract_of_element_undef_index
8276 /* 23429 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8277 /* 23432 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
8278 /* 23434 */ GIR_EraseRootFromParent_Done,
8279 /* 23435 */ // Label 505: @23435
8280 /* 23435 */ GIM_Reject,
8281 /* 23436 */ // Label 98: @23436
8282 /* 23436 */ GIM_Try, /*On fail goto*//*Label 506*/ GIMT_Encode4(23447), // Rule ID 99 //
8283 /* 23441 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
8284 /* 23444 */ // Combiner Rule #81: propagate_undef_all_ops; wip_match_opcode 'G_SHUFFLE_VECTOR'
8285 /* 23444 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
8286 /* 23447 */ // Label 506: @23447
8287 /* 23447 */ GIM_Try, /*On fail goto*//*Label 507*/ GIMT_Encode4(23458), // Rule ID 101 //
8288 /* 23452 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
8289 /* 23455 */ // Combiner Rule #82: propagate_undef_shuffle_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
8290 /* 23455 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner41),
8291 /* 23458 */ // Label 507: @23458
8292 /* 23458 */ GIM_Try, /*On fail goto*//*Label 508*/ GIMT_Encode4(23469), // Rule ID 363 //
8293 /* 23463 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
8294 /* 23466 */ // Combiner Rule #215: combine_shuffle_concat; wip_match_opcode 'G_SHUFFLE_VECTOR'
8295 /* 23466 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner136),
8296 /* 23469 */ // Label 508: @23469
8297 /* 23469 */ GIM_Try, /*On fail goto*//*Label 509*/ GIMT_Encode4(23480), // Rule ID 365 //
8298 /* 23474 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
8299 /* 23477 */ // Combiner Rule #217: combine_shuffle_disjoint_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
8300 /* 23477 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner138),
8301 /* 23480 */ // Label 509: @23480
8302 /* 23480 */ GIM_Try, /*On fail goto*//*Label 510*/ GIMT_Encode4(23501), // Rule ID 364 //
8303 /* 23485 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8304 /* 23488 */ // MIs[0] root
8305 /* 23488 */ // No operand predicates
8306 /* 23488 */ // MIs[0] src1
8307 /* 23488 */ // No operand predicates
8308 /* 23488 */ // MIs[0] undef
8309 /* 23488 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8310 /* 23492 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8311 /* 23496 */ // MIs[0] mask
8312 /* 23496 */ // No operand predicates
8313 /* 23496 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8314 /* 23498 */ // Combiner Rule #216: combine_shuffle_undef_rhs
8315 /* 23498 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner137),
8316 /* 23501 */ // Label 510: @23501
8317 /* 23501 */ GIM_Reject,
8318 /* 23502 */ // Label 99: @23502
8319 /* 23502 */ GIM_Try, /*On fail goto*//*Label 511*/ GIMT_Encode4(23513), // Rule ID 386 //
8320 /* 23507 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule236Enabled),
8321 /* 23510 */ // MIs[0] dst
8322 /* 23510 */ // No operand predicates
8323 /* 23510 */ // MIs[0] src
8324 /* 23510 */ // No operand predicates
8325 /* 23510 */ // Combiner Rule #236: ctlz_to_ctls
8326 /* 23510 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner155),
8327 /* 23513 */ // Label 511: @23513
8328 /* 23513 */ GIM_Reject,
8329 /* 23514 */ // Label 100: @23514
8330 /* 23514 */ GIM_Try, /*On fail goto*//*Label 512*/ GIMT_Encode4(23525), // Rule ID 387 //
8331 /* 23519 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule237Enabled),
8332 /* 23522 */ // MIs[0] dst
8333 /* 23522 */ // No operand predicates
8334 /* 23522 */ // MIs[0] src
8335 /* 23522 */ // No operand predicates
8336 /* 23522 */ // Combiner Rule #237: ctlz_zero_undef_to_ctls
8337 /* 23522 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner155),
8338 /* 23525 */ // Label 512: @23525
8339 /* 23525 */ GIM_Reject,
8340 /* 23526 */ // Label 101: @23526
8341 /* 23526 */ GIM_Try, /*On fail goto*//*Label 513*/ GIMT_Encode4(23570), // Rule ID 239 //
8342 /* 23531 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
8343 /* 23534 */ // MIs[0] d
8344 /* 23534 */ // No operand predicates
8345 /* 23534 */ // MIs[0] src
8346 /* 23534 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8347 /* 23538 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
8348 /* 23542 */ // MIs[1] rev
8349 /* 23542 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8350 /* 23546 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
8351 /* 23550 */ // MIs[2] val
8352 /* 23550 */ // No operand predicates
8353 /* 23550 */ // MIs[1] amt
8354 /* 23550 */ // No operand predicates
8355 /* 23550 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner10),
8356 /* 23554 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8357 /* 23556 */ // Combiner Rule #173: bitreverse_lshr
8358 /* 23556 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
8359 /* 23559 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
8360 /* 23561 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
8361 /* 23565 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
8362 /* 23569 */ GIR_EraseRootFromParent_Done,
8363 /* 23570 */ // Label 513: @23570
8364 /* 23570 */ GIM_Try, /*On fail goto*//*Label 514*/ GIMT_Encode4(23614), // Rule ID 238 //
8365 /* 23575 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
8366 /* 23578 */ // MIs[0] d
8367 /* 23578 */ // No operand predicates
8368 /* 23578 */ // MIs[0] src
8369 /* 23578 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8370 /* 23582 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
8371 /* 23586 */ // MIs[1] rev
8372 /* 23586 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8373 /* 23590 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
8374 /* 23594 */ // MIs[2] val
8375 /* 23594 */ // No operand predicates
8376 /* 23594 */ // MIs[1] amt
8377 /* 23594 */ // No operand predicates
8378 /* 23594 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
8379 /* 23598 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8380 /* 23600 */ // Combiner Rule #172: bitreverse_shl
8381 /* 23600 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_LSHR),
8382 /* 23603 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
8383 /* 23605 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
8384 /* 23609 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
8385 /* 23613 */ GIR_EraseRootFromParent_Done,
8386 /* 23614 */ // Label 514: @23614
8387 /* 23614 */ GIM_Reject,
8388 /* 23615 */ // Label 102: @23615
8389 /* 23615 */ GIM_Try, /*On fail goto*//*Label 515*/ GIMT_Encode4(23636), // Rule ID 186 //
8390 /* 23620 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule143Enabled),
8391 /* 23623 */ // MIs[0] dst
8392 /* 23623 */ // No operand predicates
8393 /* 23623 */ // MIs[0] src0
8394 /* 23623 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8395 /* 23627 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8396 /* 23631 */ // MIs[1] cst
8397 /* 23631 */ // No operand predicates
8398 /* 23631 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8399 /* 23633 */ // Combiner Rule #143: constant_fold_fceil
8400 /* 23633 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8401 /* 23636 */ // Label 515: @23636
8402 /* 23636 */ GIM_Reject,
8403 /* 23637 */ // Label 103: @23637
8404 /* 23637 */ GIM_Try, /*On fail goto*//*Label 516*/ GIMT_Encode4(23648), // Rule ID 402 //
8405 /* 23642 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule246Enabled),
8406 /* 23645 */ // Combiner Rule #246: rcp_sqrt_to_rsq; wip_match_opcode 'G_FSQRT'
8407 /* 23645 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner163),
8408 /* 23648 */ // Label 516: @23648
8409 /* 23648 */ GIM_Try, /*On fail goto*//*Label 517*/ GIMT_Encode4(23669), // Rule ID 182 //
8410 /* 23653 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule139Enabled),
8411 /* 23656 */ // MIs[0] dst
8412 /* 23656 */ // No operand predicates
8413 /* 23656 */ // MIs[0] src0
8414 /* 23656 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8415 /* 23660 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8416 /* 23664 */ // MIs[1] cst
8417 /* 23664 */ // No operand predicates
8418 /* 23664 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8419 /* 23666 */ // Combiner Rule #139: constant_fold_fsqrt
8420 /* 23666 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8421 /* 23669 */ // Label 517: @23669
8422 /* 23669 */ GIM_Reject,
8423 /* 23670 */ // Label 104: @23670
8424 /* 23670 */ GIM_Try, /*On fail goto*//*Label 518*/ GIMT_Encode4(23691), // Rule ID 187 //
8425 /* 23675 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule144Enabled),
8426 /* 23678 */ // MIs[0] dst
8427 /* 23678 */ // No operand predicates
8428 /* 23678 */ // MIs[0] src0
8429 /* 23678 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8430 /* 23682 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8431 /* 23686 */ // MIs[1] cst
8432 /* 23686 */ // No operand predicates
8433 /* 23686 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8434 /* 23688 */ // Combiner Rule #144: constant_fold_ffloor
8435 /* 23688 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8436 /* 23691 */ // Label 518: @23691
8437 /* 23691 */ GIM_Reject,
8438 /* 23692 */ // Label 105: @23692
8439 /* 23692 */ GIM_Try, /*On fail goto*//*Label 519*/ GIMT_Encode4(23713), // Rule ID 191 //
8440 /* 23697 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
8441 /* 23700 */ // MIs[0] dst
8442 /* 23700 */ // No operand predicates
8443 /* 23700 */ // MIs[0] src0
8444 /* 23700 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8445 /* 23704 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8446 /* 23708 */ // MIs[1] cst
8447 /* 23708 */ // No operand predicates
8448 /* 23708 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8449 /* 23710 */ // Combiner Rule #148: constant_fold_frint
8450 /* 23710 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8451 /* 23713 */ // Label 519: @23713
8452 /* 23713 */ GIM_Reject,
8453 /* 23714 */ // Label 106: @23714
8454 /* 23714 */ GIM_Try, /*On fail goto*//*Label 520*/ GIMT_Encode4(23735), // Rule ID 192 //
8455 /* 23719 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule149Enabled),
8456 /* 23722 */ // MIs[0] dst
8457 /* 23722 */ // No operand predicates
8458 /* 23722 */ // MIs[0] src0
8459 /* 23722 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8460 /* 23726 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8461 /* 23730 */ // MIs[1] cst
8462 /* 23730 */ // No operand predicates
8463 /* 23730 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8464 /* 23732 */ // Combiner Rule #149: constant_fold_fnearbyint
8465 /* 23732 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8466 /* 23735 */ // Label 520: @23735
8467 /* 23735 */ GIM_Reject,
8468 /* 23736 */ // Label 107: @23736
8469 /* 23736 */ GIM_Try, /*On fail goto*//*Label 521*/ GIMT_Encode4(23747), // Rule ID 395 //
8470 /* 23741 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule243Enabled),
8471 /* 23744 */ // Combiner Rule #243: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE0'
8472 /* 23744 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
8473 /* 23747 */ // Label 521: @23747
8474 /* 23747 */ GIM_Reject,
8475 /* 23748 */ // Label 108: @23748
8476 /* 23748 */ GIM_Try, /*On fail goto*//*Label 522*/ GIMT_Encode4(23759), // Rule ID 396 //
8477 /* 23753 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule243Enabled),
8478 /* 23756 */ // Combiner Rule #243: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE1'
8479 /* 23756 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
8480 /* 23759 */ // Label 522: @23759
8481 /* 23759 */ GIM_Reject,
8482 /* 23760 */ // Label 109: @23760
8483 /* 23760 */ GIM_Try, /*On fail goto*//*Label 523*/ GIMT_Encode4(23771), // Rule ID 397 //
8484 /* 23765 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule243Enabled),
8485 /* 23768 */ // Combiner Rule #243: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE2'
8486 /* 23768 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
8487 /* 23771 */ // Label 523: @23771
8488 /* 23771 */ GIM_Reject,
8489 /* 23772 */ // Label 110: @23772
8490 /* 23772 */ GIM_Try, /*On fail goto*//*Label 524*/ GIMT_Encode4(23783), // Rule ID 398 //
8491 /* 23777 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule243Enabled),
8492 /* 23780 */ // Combiner Rule #243: cvt_f32_ubyteN; wip_match_opcode 'G_AMDGPU_CVT_F32_UBYTE3'
8493 /* 23780 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner160),
8494 /* 23783 */ // Label 524: @23783
8495 /* 23783 */ GIM_Reject,
8496 /* 23784 */ // Label 111: @23784
8497 /* 23784 */ GIM_Reject,
8498 /* 23785 */ }; // Size: 23785 bytes
8499 return MatchTable0;
8500}
8501#undef GIMT_Encode2
8502#undef GIMT_Encode4
8503#undef GIMT_Encode8
8504
8505#endif // ifdef GET_GICOMBINER_IMPL
8506
8507#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
8508AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
8509AvailableFunctionFeatures()
8510#endif // ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
8511#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
8512, State(0),
8513ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
8514#endif // ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
8515
8516