1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* AMDGPUPreLegalizerCombinerImpl Combiner Match Table *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* *|
7\*===----------------------------------------------------------------------===*/
8
9#ifdef GET_GICOMBINER_DEPS
10
11#include "llvm/ADT/SparseBitVector.h"
12namespace llvm {
13
14extern cl::OptionCategory GICombinerOptionCategory;
15
16} // namespace llvm
17
18#endif // GET_GICOMBINER_DEPS
19
20#ifdef GET_GICOMBINER_TYPES
21
22struct AMDGPUPreLegalizerCombinerImplRuleConfig {
23 SparseBitVector<> DisabledRules;
24
25 bool isRuleEnabled(unsigned RuleID) const;
26 bool parseCommandLineOption();
27 bool setRuleEnabled(StringRef RuleIdentifier);
28 bool setRuleDisabled(StringRef RuleIdentifier);
29};
30
31static std::optional<uint64_t> getRuleIdxForIdentifier(StringRef RuleIdentifier) {
32 uint64_t I;
33 // getAtInteger(...) returns false on success
34 bool Parsed = !RuleIdentifier.getAsInteger(0, I);
35 if (Parsed)
36 return I;
37
38#ifndef NDEBUG
39 switch (RuleIdentifier.size()) {
40 default: break;
41 case 9: // 5 strings to match.
42 switch (RuleIdentifier[0]) {
43 default: break;
44 case 'a': // 1 string to match.
45 if (memcmp(RuleIdentifier.data()+1, "dd_shift", 8) != 0)
46 break;
47 return 320; // "add_shift"
48 case 'c': // 1 string to match.
49 if (memcmp(RuleIdentifier.data()+1, "opy_prop", 8) != 0)
50 break;
51 return 19; // "copy_prop"
52 case 'm': // 1 string to match.
53 if (memcmp(RuleIdentifier.data()+1, "atch_ors", 8) != 0)
54 break;
55 return 279; // "match_ors"
56 case 'n': // 1 string to match.
57 if (memcmp(RuleIdentifier.data()+1, "neg_zext", 8) != 0)
58 break;
59 return 290; // "nneg_zext"
60 case 'o': // 1 string to match.
61 if (memcmp(RuleIdentifier.data()+1, "r_xor_or", 8) != 0)
62 break;
63 return 284; // "or_xor_or"
64 }
65 break;
66 case 10: // 10 strings to match.
67 switch (RuleIdentifier[0]) {
68 default: break;
69 case 'S': // 2 strings to match.
70 if (memcmp(RuleIdentifier.data()+1, "ub", 2) != 0)
71 break;
72 switch (RuleIdentifier[3]) {
73 default: break;
74 case 'S': // 1 string to match.
75 if (memcmp(RuleIdentifier.data()+4, "maxSub", 6) != 0)
76 break;
77 return 325; // "SubSmaxSub"
78 case 'U': // 1 string to match.
79 if (memcmp(RuleIdentifier.data()+4, "maxSub", 6) != 0)
80 break;
81 return 326; // "SubUmaxSub"
82 }
83 break;
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 278; // "match_ands"
91 case 'u': // 1 string to match.
92 if (memcmp(RuleIdentifier.data()+2, "l_to_shl", 8) != 0)
93 break;
94 return 20; // "mul_to_shl"
95 }
96 break;
97 case 'o': // 1 string to match.
98 if (memcmp(RuleIdentifier.data()+1, "r_xor_and", 9) != 0)
99 break;
100 return 285; // "or_xor_and"
101 case 'p': // 1 string to match.
102 if (memcmp(RuleIdentifier.data()+1, "2i_to_i2p", 9) != 0)
103 break;
104 return 97; // "p2i_to_i2p"
105 case 's': // 3 strings to match.
106 switch (RuleIdentifier[1]) {
107 default: break;
108 case 'e': // 2 strings to match.
109 switch (RuleIdentifier[2]) {
110 default: break;
111 case 'l': // 1 string to match.
112 if (memcmp(RuleIdentifier.data()+3, "ect_not", 7) != 0)
113 break;
114 return 143; // "select_not"
115 case 'x': // 1 string to match.
116 if (memcmp(RuleIdentifier.data()+3, "t_trunc", 7) != 0)
117 break;
118 return 288; // "sext_trunc"
119 }
120 break;
121 case 'u': // 1 string to match.
122 if (memcmp(RuleIdentifier.data()+2, "b_to_add", 8) != 0)
123 break;
124 return 21; // "sub_to_add"
125 }
126 break;
127 case 'z': // 1 string to match.
128 if (memcmp(RuleIdentifier.data()+1, "ext_trunc", 9) != 0)
129 break;
130 return 289; // "zext_trunc"
131 }
132 break;
133 case 11: // 6 strings to match.
134 switch (RuleIdentifier[0]) {
135 default: break;
136 case 'a': // 1 string to match.
137 if (memcmp(RuleIdentifier.data()+1, "dd_sub_reg", 10) != 0)
138 break;
139 return 105; // "add_sub_reg"
140 case 't': // 4 strings to match.
141 if (memcmp(RuleIdentifier.data()+1, "runc_", 5) != 0)
142 break;
143 switch (RuleIdentifier[6]) {
144 default: break;
145 case 's': // 3 strings to match.
146 switch (RuleIdentifier[7]) {
147 default: break;
148 case 'h': // 1 string to match.
149 if (memcmp(RuleIdentifier.data()+8, "ift", 3) != 0)
150 break;
151 return 154; // "trunc_shift"
152 case 's': // 2 strings to match.
153 if (memcmp(RuleIdentifier.data()+8, "at", 2) != 0)
154 break;
155 switch (RuleIdentifier[10]) {
156 default: break;
157 case 's': // 1 string to match.
158 return 311; // "trunc_ssats"
159 case 'u': // 1 string to match.
160 return 312; // "trunc_ssatu"
161 }
162 break;
163 }
164 break;
165 case 'u': // 1 string to match.
166 if (memcmp(RuleIdentifier.data()+7, "satu", 4) != 0)
167 break;
168 return 313; // "trunc_usatu"
169 }
170 break;
171 case 'u': // 1 string to match.
172 if (memcmp(RuleIdentifier.data()+1, "nmerge_cst", 10) != 0)
173 break;
174 return 298; // "unmerge_cst"
175 }
176 break;
177 case 12: // 11 strings to match.
178 switch (RuleIdentifier[0]) {
179 default: break;
180 case 'A': // 1 string to match.
181 if (memcmp(RuleIdentifier.data()+1, "PlusBMinusB", 11) != 0)
182 break;
183 return 4; // "APlusBMinusB"
184 case 'B': // 1 string to match.
185 if (memcmp(RuleIdentifier.data()+1, "MinusAPlusA", 11) != 0)
186 break;
187 return 5; // "BMinusAPlusA"
188 case 'c': // 1 string to match.
189 if (memcmp(RuleIdentifier.data()+1, "tlz_to_ctls", 11) != 0)
190 break;
191 return 316; // "ctlz_to_ctls"
192 case 'f': // 1 string to match.
193 if (memcmp(RuleIdentifier.data()+1, "sub_to_fneg", 11) != 0)
194 break;
195 return 248; // "fsub_to_fneg"
196 case 'm': // 1 string to match.
197 if (memcmp(RuleIdentifier.data()+1, "ulh_to_lshr", 11) != 0)
198 break;
199 return 216; // "mulh_to_lshr"
200 case 'n': // 1 string to match.
201 if (memcmp(RuleIdentifier.data()+1, "ot_cmp_fold", 11) != 0)
202 break;
203 return 155; // "not_cmp_fold"
204 case 'r': // 1 string to match.
205 if (memcmp(RuleIdentifier.data()+1, "edundant_or", 11) != 0)
206 break;
207 return 150; // "redundant_or"
208 case 's': // 2 strings to match.
209 switch (RuleIdentifier[1]) {
210 default: break;
211 case 'd': // 1 string to match.
212 if (memcmp(RuleIdentifier.data()+2, "iv_by_pow2", 10) != 0)
213 break;
214 return 239; // "sdiv_by_pow2"
215 case 'e': // 1 string to match.
216 if (memcmp(RuleIdentifier.data()+2, "xt_of_sext", 10) != 0)
217 break;
218 return 53; // "sext_of_sext"
219 }
220 break;
221 case 'u': // 1 string to match.
222 if (memcmp(RuleIdentifier.data()+1, "div_by_pow2", 11) != 0)
223 break;
224 return 238; // "udiv_by_pow2"
225 case 'z': // 1 string to match.
226 if (memcmp(RuleIdentifier.data()+1, "ext_of_zext", 11) != 0)
227 break;
228 return 51; // "zext_of_zext"
229 }
230 break;
231 case 13: // 19 strings to match.
232 switch (RuleIdentifier[0]) {
233 default: break;
234 case 'A': // 2 strings to match.
235 if (memcmp(RuleIdentifier.data()+1, "MinusBMinus", 11) != 0)
236 break;
237 switch (RuleIdentifier[12]) {
238 default: break;
239 case 'A': // 1 string to match.
240 return 12; // "AMinusBMinusA"
241 case 'C': // 1 string to match.
242 return 9; // "AMinusBMinusC"
243 }
244 break;
245 case 'a': // 1 string to match.
246 if (memcmp(RuleIdentifier.data()+1, "dd_of_vscale", 12) != 0)
247 break;
248 return 42; // "add_of_vscale"
249 case 'f': // 1 string to match.
250 if (memcmp(RuleIdentifier.data()+1, "oldable_fneg", 12) != 0)
251 break;
252 return 334; // "foldable_fneg"
253 case 'l': // 1 string to match.
254 if (memcmp(RuleIdentifier.data()+1, "oad_and_mask", 12) != 0)
255 break;
256 return 74; // "load_and_mask"
257 case 'm': // 3 strings to match.
258 switch (RuleIdentifier[1]) {
259 default: break;
260 case 'a': // 1 string to match.
261 if (memcmp(RuleIdentifier.data()+2, "tch_selects", 11) != 0)
262 break;
263 return 141; // "match_selects"
264 case 'e': // 1 string to match.
265 if (memcmp(RuleIdentifier.data()+2, "rge_unmerge", 11) != 0)
266 break;
267 return 297; // "merge_unmerge"
268 case 'u': // 1 string to match.
269 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
270 break;
271 return 43; // "mul_of_vscale"
272 }
273 break;
274 case 'r': // 1 string to match.
275 if (memcmp(RuleIdentifier.data()+1, "edundant_and", 12) != 0)
276 break;
277 return 149; // "redundant_and"
278 case 's': // 6 strings to match.
279 switch (RuleIdentifier[1]) {
280 default: break;
281 case 'a': // 1 string to match.
282 if (memcmp(RuleIdentifier.data()+2, "me_val_zero", 11) != 0)
283 break;
284 return 94; // "same_val_zero"
285 case 'd': // 1 string to match.
286 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
287 break;
288 return 241; // "sdiv_by_const"
289 case 'h': // 1 string to match.
290 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
291 break;
292 return 44; // "shl_of_vscale"
293 case 'r': // 1 string to match.
294 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
295 break;
296 return 237; // "srem_by_const"
297 case 'u': // 2 strings to match.
298 if (memcmp(RuleIdentifier.data()+2, "b_", 2) != 0)
299 break;
300 switch (RuleIdentifier[4]) {
301 default: break;
302 case 'm': // 1 string to match.
303 if (memcmp(RuleIdentifier.data()+5, "inus_one", 8) != 0)
304 break;
305 return 323; // "sub_minus_one"
306 case 'o': // 1 string to match.
307 if (memcmp(RuleIdentifier.data()+5, "f_vscale", 8) != 0)
308 break;
309 return 45; // "sub_of_vscale"
310 }
311 break;
312 }
313 break;
314 case 'u': // 4 strings to match.
315 switch (RuleIdentifier[1]) {
316 default: break;
317 case 'd': // 1 string to match.
318 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
319 break;
320 return 240; // "udiv_by_const"
321 case 'n': // 2 strings to match.
322 if (memcmp(RuleIdentifier.data()+2, "merge_", 6) != 0)
323 break;
324 switch (RuleIdentifier[8]) {
325 default: break;
326 case 'm': // 1 string to match.
327 if (memcmp(RuleIdentifier.data()+9, "erge", 4) != 0)
328 break;
329 return 296; // "unmerge_merge"
330 case 'u': // 1 string to match.
331 if (memcmp(RuleIdentifier.data()+9, "ndef", 4) != 0)
332 break;
333 return 299; // "unmerge_undef"
334 }
335 break;
336 case 'r': // 1 string to match.
337 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
338 break;
339 return 236; // "urem_by_const"
340 }
341 break;
342 }
343 break;
344 case 14: // 17 strings to match.
345 switch (RuleIdentifier[0]) {
346 default: break;
347 case 'A': // 2 strings to match.
348 switch (RuleIdentifier[1]) {
349 default: break;
350 case 'M': // 1 string to match.
351 if (memcmp(RuleIdentifier.data()+2, "inusC1PlusC2", 12) != 0)
352 break;
353 return 18; // "AMinusC1PlusC2"
354 case 'P': // 1 string to match.
355 if (memcmp(RuleIdentifier.data()+2, "lusC1MinusC2", 12) != 0)
356 break;
357 return 14; // "APlusC1MinusC2"
358 }
359 break;
360 case 'C': // 1 string to match.
361 if (memcmp(RuleIdentifier.data()+1, "2MinusAPlusC1", 13) != 0)
362 break;
363 return 15; // "C2MinusAPlusC1"
364 case 'N': // 1 string to match.
365 if (memcmp(RuleIdentifier.data()+1, "otAPlusNegOne", 13) != 0)
366 break;
367 return 13; // "NotAPlusNegOne"
368 case 'a': // 2 strings to match.
369 if (memcmp(RuleIdentifier.data()+1, "nyext_of_", 9) != 0)
370 break;
371 switch (RuleIdentifier[10]) {
372 default: break;
373 case 's': // 1 string to match.
374 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
375 break;
376 return 57; // "anyext_of_sext"
377 case 'z': // 1 string to match.
378 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
379 break;
380 return 56; // "anyext_of_zext"
381 }
382 break;
383 case 'b': // 3 strings to match.
384 if (RuleIdentifier[1] != 'i')
385 break;
386 switch (RuleIdentifier[2]) {
387 default: break;
388 case 'n': // 2 strings to match.
389 if (memcmp(RuleIdentifier.data()+3, "op_", 3) != 0)
390 break;
391 switch (RuleIdentifier[6]) {
392 default: break;
393 case 's': // 1 string to match.
394 if (memcmp(RuleIdentifier.data()+7, "ame_val", 7) != 0)
395 break;
396 return 93; // "binop_same_val"
397 case 'w': // 1 string to match.
398 if (memcmp(RuleIdentifier.data()+7, "ith_neg", 7) != 0)
399 break;
400 return 322; // "binop_with_neg"
401 }
402 break;
403 case 't': // 1 string to match.
404 if (memcmp(RuleIdentifier.data()+3, "reverse_shl", 11) != 0)
405 break;
406 return 202; // "bitreverse_shl"
407 }
408 break;
409 case 'f': // 2 strings to match.
410 switch (RuleIdentifier[1]) {
411 default: break;
412 case 'a': // 1 string to match.
413 if (memcmp(RuleIdentifier.data()+2, "bs_fneg_fold", 12) != 0)
414 break;
415 return 215; // "fabs_fneg_fold"
416 case 'n': // 1 string to match.
417 if (memcmp(RuleIdentifier.data()+2, "eg_fneg_fold", 12) != 0)
418 break;
419 return 102; // "fneg_fneg_fold"
420 }
421 break;
422 case 'm': // 1 string to match.
423 if (memcmp(RuleIdentifier.data()+1, "ul_by_neg_one", 13) != 0)
424 break;
425 return 23; // "mul_by_neg_one"
426 case 'r': // 1 string to match.
427 if (memcmp(RuleIdentifier.data()+1, "eassoc_ptradd", 13) != 0)
428 break;
429 return 120; // "reassoc_ptradd"
430 case 's': // 3 strings to match.
431 switch (RuleIdentifier[1]) {
432 default: break;
433 case 'e': // 2 strings to match.
434 switch (RuleIdentifier[2]) {
435 default: break;
436 case 'l': // 1 string to match.
437 if (memcmp(RuleIdentifier.data()+3, "ect_of_zext", 11) != 0)
438 break;
439 return 59; // "select_of_zext"
440 case 'x': // 1 string to match.
441 if (memcmp(RuleIdentifier.data()+3, "t_of_anyext", 11) != 0)
442 break;
443 return 54; // "sext_of_anyext"
444 }
445 break;
446 case 'h': // 1 string to match.
447 if (memcmp(RuleIdentifier.data()+2, "ifts_too_big", 12) != 0)
448 break;
449 return 119; // "shifts_too_big"
450 }
451 break;
452 case 'z': // 1 string to match.
453 if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
454 break;
455 return 52; // "zext_of_anyext"
456 }
457 break;
458 case 15: // 23 strings to match.
459 switch (RuleIdentifier[0]) {
460 default: break;
461 case 'A': // 2 strings to match.
462 switch (RuleIdentifier[1]) {
463 default: break;
464 case 'M': // 1 string to match.
465 if (memcmp(RuleIdentifier.data()+2, "inusC1MinusC2", 13) != 0)
466 break;
467 return 16; // "AMinusC1MinusC2"
468 case 'P': // 1 string to match.
469 if (memcmp(RuleIdentifier.data()+2, "lusZeroMinusB", 13) != 0)
470 break;
471 return 3; // "APlusZeroMinusB"
472 }
473 break;
474 case 'C': // 1 string to match.
475 if (memcmp(RuleIdentifier.data()+1, "1Minus2MinusC2", 14) != 0)
476 break;
477 return 17; // "C1Minus2MinusC2"
478 case 'G': // 1 string to match.
479 if (memcmp(RuleIdentifier.data()+1, "_FMA_fneg_fneg", 14) != 0)
480 break;
481 return 223; // "G_FMA_fneg_fneg"
482 case 'Z': // 1 string to match.
483 if (memcmp(RuleIdentifier.data()+1, "eroMinusAPlusB", 14) != 0)
484 break;
485 return 2; // "ZeroMinusAPlusB"
486 case 'a': // 2 strings to match.
487 if (memcmp(RuleIdentifier.data()+1, "vgceil_", 7) != 0)
488 break;
489 switch (RuleIdentifier[8]) {
490 default: break;
491 case 's': // 1 string to match.
492 if (memcmp(RuleIdentifier.data()+9, "_match", 6) != 0)
493 break;
494 return 330; // "avgceil_s_match"
495 case 'u': // 1 string to match.
496 if (memcmp(RuleIdentifier.data()+9, "_match", 6) != 0)
497 break;
498 return 329; // "avgceil_u_match"
499 }
500 break;
501 case 'b': // 1 string to match.
502 if (memcmp(RuleIdentifier.data()+1, "itreverse_lshr", 14) != 0)
503 break;
504 return 203; // "bitreverse_lshr"
505 case 'e': // 1 string to match.
506 if (memcmp(RuleIdentifier.data()+1, "xtending_loads", 14) != 0)
507 break;
508 return 73; // "extending_loads"
509 case 'i': // 2 strings to match.
510 switch (RuleIdentifier[1]) {
511 default: break;
512 case '2': // 1 string to match.
513 if (memcmp(RuleIdentifier.data()+2, "p_to_p2i_zext", 13) != 0)
514 break;
515 return 99; // "i2p_to_p2i_zext"
516 case 'd': // 1 string to match.
517 if (memcmp(RuleIdentifier.data()+2, "empotent_prop", 13) != 0)
518 break;
519 return 24; // "idempotent_prop"
520 }
521 break;
522 case 'l': // 1 string to match.
523 if (memcmp(RuleIdentifier.data()+1, "oad_or_combine", 14) != 0)
524 break;
525 return 192; // "load_or_combine"
526 case 'm': // 4 strings to match.
527 if (memcmp(RuleIdentifier.data()+1, "ulo_by_", 7) != 0)
528 break;
529 switch (RuleIdentifier[8]) {
530 default: break;
531 case '0': // 2 strings to match.
532 if (RuleIdentifier[9] != '_')
533 break;
534 switch (RuleIdentifier[10]) {
535 default: break;
536 case 's': // 1 string to match.
537 if (memcmp(RuleIdentifier.data()+11, "mulo", 4) != 0)
538 break;
539 return 177; // "mulo_by_0_smulo"
540 case 'u': // 1 string to match.
541 if (memcmp(RuleIdentifier.data()+11, "mulo", 4) != 0)
542 break;
543 return 176; // "mulo_by_0_umulo"
544 }
545 break;
546 case '2': // 2 strings to match.
547 if (RuleIdentifier[9] != '_')
548 break;
549 switch (RuleIdentifier[10]) {
550 default: break;
551 case 's': // 1 string to match.
552 if (memcmp(RuleIdentifier.data()+11, "mulo", 4) != 0)
553 break;
554 return 175; // "mulo_by_2_smulo"
555 case 'u': // 1 string to match.
556 if (memcmp(RuleIdentifier.data()+11, "mulo", 4) != 0)
557 break;
558 return 174; // "mulo_by_2_umulo"
559 }
560 break;
561 }
562 break;
563 case 'n': // 1 string to match.
564 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_or", 14) != 0)
565 break;
566 return 67; // "narrow_binop_or"
567 case 'o': // 1 string to match.
568 if (memcmp(RuleIdentifier.data()+1, "verlapping_and", 14) != 0)
569 break;
570 return 173; // "overlapping_and"
571 case 's': // 4 strings to match.
572 if (memcmp(RuleIdentifier.data()+1, "ub_add_", 7) != 0)
573 break;
574 switch (RuleIdentifier[8]) {
575 default: break;
576 case 'n': // 2 strings to match.
577 if (memcmp(RuleIdentifier.data()+9, "eg_", 3) != 0)
578 break;
579 switch (RuleIdentifier[12]) {
580 default: break;
581 case 'l': // 1 string to match.
582 if (memcmp(RuleIdentifier.data()+13, "hs", 2) != 0)
583 break;
584 return 246; // "sub_add_neg_lhs"
585 case 'r': // 1 string to match.
586 if (memcmp(RuleIdentifier.data()+13, "hs", 2) != 0)
587 break;
588 return 245; // "sub_add_neg_rhs"
589 }
590 break;
591 case 'r': // 2 strings to match.
592 if (memcmp(RuleIdentifier.data()+9, "eg_", 3) != 0)
593 break;
594 switch (RuleIdentifier[12]) {
595 default: break;
596 case 'l': // 1 string to match.
597 if (memcmp(RuleIdentifier.data()+13, "hs", 2) != 0)
598 break;
599 return 244; // "sub_add_reg_lhs"
600 case 'r': // 1 string to match.
601 if (memcmp(RuleIdentifier.data()+13, "hs", 2) != 0)
602 break;
603 return 243; // "sub_add_reg_rhs"
604 }
605 break;
606 }
607 break;
608 case 'z': // 1 string to match.
609 if (memcmp(RuleIdentifier.data()+1, "ext_trunc_fold", 14) != 0)
610 break;
611 return 152; // "zext_trunc_fold"
612 }
613 break;
614 case 16: // 24 strings to match.
615 switch (RuleIdentifier[0]) {
616 default: break;
617 case 'A': // 1 string to match.
618 if (memcmp(RuleIdentifier.data()+1, "MinusZeroMinusB", 15) != 0)
619 break;
620 return 11; // "AMinusZeroMinusB"
621 case 'G': // 3 strings to match.
622 if (memcmp(RuleIdentifier.data()+1, "_F", 2) != 0)
623 break;
624 switch (RuleIdentifier[3]) {
625 default: break;
626 case 'D': // 1 string to match.
627 if (memcmp(RuleIdentifier.data()+4, "IV_fneg_fneg", 12) != 0)
628 break;
629 return 221; // "G_FDIV_fneg_fneg"
630 case 'M': // 2 strings to match.
631 switch (RuleIdentifier[4]) {
632 default: break;
633 case 'A': // 1 string to match.
634 if (memcmp(RuleIdentifier.data()+5, "D_fneg_fneg", 11) != 0)
635 break;
636 return 222; // "G_FMAD_fneg_fneg"
637 case 'U': // 1 string to match.
638 if (memcmp(RuleIdentifier.data()+5, "L_fneg_fneg", 11) != 0)
639 break;
640 return 220; // "G_FMUL_fneg_fneg"
641 }
642 break;
643 }
644 break;
645 case 'a': // 3 strings to match.
646 switch (RuleIdentifier[1]) {
647 default: break;
648 case 'n': // 1 string to match.
649 if (memcmp(RuleIdentifier.data()+2, "yext_of_anyext", 14) != 0)
650 break;
651 return 55; // "anyext_of_anyext"
652 case 'v': // 2 strings to match.
653 if (memcmp(RuleIdentifier.data()+2, "gfloor_", 7) != 0)
654 break;
655 switch (RuleIdentifier[9]) {
656 default: break;
657 case 's': // 1 string to match.
658 if (memcmp(RuleIdentifier.data()+10, "_match", 6) != 0)
659 break;
660 return 328; // "avgfloor_s_match"
661 case 'u': // 1 string to match.
662 if (memcmp(RuleIdentifier.data()+10, "_match", 6) != 0)
663 break;
664 return 327; // "avgfloor_u_match"
665 }
666 break;
667 }
668 break;
669 case 'c': // 2 strings to match.
670 switch (RuleIdentifier[1]) {
671 default: break;
672 case 'l': // 1 string to match.
673 if (memcmp(RuleIdentifier.data()+2, "amp_i64_to_i16", 14) != 0)
674 break;
675 return 333; // "clamp_i64_to_i16"
676 case 'o': // 1 string to match.
677 if (memcmp(RuleIdentifier.data()+2, "mmute_shift_or", 14) != 0)
678 break;
679 return 205; // "commute_shift_or"
680 }
681 break;
682 case 'i': // 1 string to match.
683 if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i_trunc", 15) != 0)
684 break;
685 return 100; // "i2p_to_p2i_trunc"
686 case 'n': // 5 strings to match.
687 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_", 12) != 0)
688 break;
689 switch (RuleIdentifier[13]) {
690 default: break;
691 case 'a': // 2 strings to match.
692 switch (RuleIdentifier[14]) {
693 default: break;
694 case 'd': // 1 string to match.
695 if (RuleIdentifier[15] != 'd')
696 break;
697 return 63; // "narrow_binop_add"
698 case 'n': // 1 string to match.
699 if (RuleIdentifier[15] != 'd')
700 break;
701 return 66; // "narrow_binop_and"
702 }
703 break;
704 case 'm': // 1 string to match.
705 if (memcmp(RuleIdentifier.data()+14, "ul", 2) != 0)
706 break;
707 return 65; // "narrow_binop_mul"
708 case 's': // 1 string to match.
709 if (memcmp(RuleIdentifier.data()+14, "ub", 2) != 0)
710 break;
711 return 64; // "narrow_binop_sub"
712 case 'x': // 1 string to match.
713 if (memcmp(RuleIdentifier.data()+14, "or", 2) != 0)
714 break;
715 return 68; // "narrow_binop_xor"
716 }
717 break;
718 case 'o': // 1 string to match.
719 if (memcmp(RuleIdentifier.data()+1, "r_and_xor_to_or", 15) != 0)
720 break;
721 return 280; // "or_and_xor_to_or"
722 case 's': // 5 strings to match.
723 switch (RuleIdentifier[1]) {
724 default: break;
725 case 'e': // 3 strings to match.
726 if (memcmp(RuleIdentifier.data()+2, "lect_", 5) != 0)
727 break;
728 switch (RuleIdentifier[7]) {
729 default: break;
730 case 'o': // 1 string to match.
731 if (memcmp(RuleIdentifier.data()+8, "f_anyext", 8) != 0)
732 break;
733 return 60; // "select_of_anyext"
734 case 't': // 1 string to match.
735 if (memcmp(RuleIdentifier.data()+8, "o_minmax", 8) != 0)
736 break;
737 return 247; // "select_to_minmax"
738 case 'u': // 1 string to match.
739 if (memcmp(RuleIdentifier.data()+8, "ndef_cmp", 8) != 0)
740 break;
741 return 135; // "select_undef_cmp"
742 }
743 break;
744 case 'u': // 2 strings to match.
745 if (memcmp(RuleIdentifier.data()+2, "b_o", 3) != 0)
746 break;
747 switch (RuleIdentifier[5]) {
748 default: break;
749 case 'f': // 1 string to match.
750 if (memcmp(RuleIdentifier.data()+6, "_mul_const", 10) != 0)
751 break;
752 return 324; // "sub_of_mul_const"
753 case 'n': // 1 string to match.
754 if (memcmp(RuleIdentifier.data()+6, "e_from_sub", 10) != 0)
755 break;
756 return 321; // "sub_one_from_sub"
757 }
758 break;
759 }
760 break;
761 case 't': // 2 strings to match.
762 if (memcmp(RuleIdentifier.data()+1, "runcate_of_", 11) != 0)
763 break;
764 switch (RuleIdentifier[12]) {
765 default: break;
766 case 's': // 1 string to match.
767 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
768 break;
769 return 49; // "truncate_of_sext"
770 case 'z': // 1 string to match.
771 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
772 break;
773 return 48; // "truncate_of_zext"
774 }
775 break;
776 case 'u': // 1 string to match.
777 if (memcmp(RuleIdentifier.data()+1, "ndef_to_fp_zero", 15) != 0)
778 break;
779 return 76; // "undef_to_fp_zero"
780 }
781 break;
782 case 17: // 21 strings to match.
783 switch (RuleIdentifier[0]) {
784 default: break;
785 case 'A': // 2 strings to match.
786 if (memcmp(RuleIdentifier.data()+1, "PlusBMinus", 10) != 0)
787 break;
788 switch (RuleIdentifier[11]) {
789 default: break;
790 case 'A': // 1 string to match.
791 if (memcmp(RuleIdentifier.data()+12, "plusC", 5) != 0)
792 break;
793 return 8; // "APlusBMinusAplusC"
794 case 'C': // 1 string to match.
795 if (memcmp(RuleIdentifier.data()+12, "PlusA", 5) != 0)
796 break;
797 return 10; // "APlusBMinusCPlusA"
798 }
799 break;
800 case 'a': // 3 strings to match.
801 switch (RuleIdentifier[1]) {
802 default: break;
803 case 'd': // 1 string to match.
804 if (memcmp(RuleIdentifier.data()+2, "d_p2i_to_ptradd", 15) != 0)
805 break;
806 return 22; // "add_p2i_to_ptradd"
807 case 'n': // 2 strings to match.
808 switch (RuleIdentifier[2]) {
809 default: break;
810 case 'd': // 1 string to match.
811 if (memcmp(RuleIdentifier.data()+3, "_xor_or_to_and", 14) != 0)
812 break;
813 return 282; // "and_xor_or_to_and"
814 case 'y': // 1 string to match.
815 if (memcmp(RuleIdentifier.data()+3, "ext_trunc_fold", 14) != 0)
816 break;
817 return 101; // "anyext_trunc_fold"
818 }
819 break;
820 }
821 break;
822 case 'c': // 5 strings to match.
823 switch (RuleIdentifier[1]) {
824 default: break;
825 case 'a': // 2 strings to match.
826 if (memcmp(RuleIdentifier.data()+2, "nonicalize_", 11) != 0)
827 break;
828 switch (RuleIdentifier[13]) {
829 default: break;
830 case 'f': // 1 string to match.
831 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
832 break;
833 return 124; // "canonicalize_fcmp"
834 case 'i': // 1 string to match.
835 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
836 break;
837 return 123; // "canonicalize_icmp"
838 }
839 break;
840 case 'o': // 3 strings to match.
841 switch (RuleIdentifier[2]) {
842 default: break;
843 case 'm': // 2 strings to match.
844 switch (RuleIdentifier[3]) {
845 default: break;
846 case 'b': // 1 string to match.
847 if (memcmp(RuleIdentifier.data()+4, "ine_or_of_and", 13) != 0)
848 break;
849 return 331; // "combine_or_of_and"
850 case 'm': // 1 string to match.
851 if (memcmp(RuleIdentifier.data()+4, "ute_shift_add", 13) != 0)
852 break;
853 return 204; // "commute_shift_add"
854 }
855 break;
856 case 'n': // 1 string to match.
857 if (memcmp(RuleIdentifier.data()+3, "stant_fold_fma", 14) != 0)
858 break;
859 return 212; // "constant_fold_fma"
860 }
861 break;
862 }
863 break;
864 case 'd': // 1 string to match.
865 if (memcmp(RuleIdentifier.data()+1, "iv_rem_to_divrem", 16) != 0)
866 break;
867 return 193; // "div_rem_to_divrem"
868 case 'e': // 1 string to match.
869 if (memcmp(RuleIdentifier.data()+1, "rase_undef_store", 16) != 0)
870 break;
871 return 87; // "erase_undef_store"
872 case 'f': // 1 string to match.
873 if (memcmp(RuleIdentifier.data()+1, "old_fabs_fptrunc", 16) != 0)
874 break;
875 return 335; // "fold_fabs_fptrunc"
876 case 'm': // 2 strings to match.
877 if (memcmp(RuleIdentifier.data()+1, "atch_addos_", 11) != 0)
878 break;
879 switch (RuleIdentifier[12]) {
880 default: break;
881 case 's': // 1 string to match.
882 if (memcmp(RuleIdentifier.data()+13, "addo", 4) != 0)
883 break;
884 return 307; // "match_addos_saddo"
885 case 'u': // 1 string to match.
886 if (memcmp(RuleIdentifier.data()+13, "addo", 4) != 0)
887 break;
888 return 308; // "match_addos_uaddo"
889 }
890 break;
891 case 's': // 4 strings to match.
892 switch (RuleIdentifier[1]) {
893 default: break;
894 case 'e': // 2 strings to match.
895 if (memcmp(RuleIdentifier.data()+2, "lect_", 5) != 0)
896 break;
897 switch (RuleIdentifier[7]) {
898 default: break;
899 case 't': // 1 string to match.
900 if (memcmp(RuleIdentifier.data()+8, "o_iminmax", 9) != 0)
901 break;
902 return 140; // "select_to_iminmax"
903 case 'z': // 1 string to match.
904 if (memcmp(RuleIdentifier.data()+8, "ero_false", 9) != 0)
905 break;
906 return 142; // "select_zero_false"
907 }
908 break;
909 case 'h': // 1 string to match.
910 if (memcmp(RuleIdentifier.data()+2, "ift_immed_chain", 15) != 0)
911 break;
912 return 190; // "shift_immed_chain"
913 case 'r': // 1 string to match.
914 if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
915 break;
916 return 235; // "srem_pow2_to_mask"
917 }
918 break;
919 case 'u': // 2 strings to match.
920 switch (RuleIdentifier[1]) {
921 default: break;
922 case 'n': // 1 string to match.
923 if (memcmp(RuleIdentifier.data()+2, "def_to_int_zero", 15) != 0)
924 break;
925 return 77; // "undef_to_int_zero"
926 case 'r': // 1 string to match.
927 if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
928 break;
929 return 151; // "urem_pow2_to_mask"
930 }
931 break;
932 }
933 break;
934 case 18: // 18 strings to match.
935 switch (RuleIdentifier[0]) {
936 default: break;
937 case 'A': // 3 strings to match.
938 switch (RuleIdentifier[1]) {
939 default: break;
940 case 'M': // 2 strings to match.
941 if (memcmp(RuleIdentifier.data()+2, "inusBPlus", 9) != 0)
942 break;
943 switch (RuleIdentifier[11]) {
944 default: break;
945 case 'B': // 1 string to match.
946 if (memcmp(RuleIdentifier.data()+12, "MinusC", 6) != 0)
947 break;
948 return 7; // "AMinusBPlusBMinusC"
949 case 'C': // 1 string to match.
950 if (memcmp(RuleIdentifier.data()+12, "MinusA", 6) != 0)
951 break;
952 return 6; // "AMinusBPlusCMinusA"
953 }
954 break;
955 case 'P': // 1 string to match.
956 if (memcmp(RuleIdentifier.data()+2, "lusBMinusCMinusB", 16) != 0)
957 break;
958 return 0; // "APlusBMinusCMinusB"
959 }
960 break;
961 case 'a': // 4 strings to match.
962 if (memcmp(RuleIdentifier.data()+1, "dde_to_addo_", 12) != 0)
963 break;
964 switch (RuleIdentifier[13]) {
965 default: break;
966 case 's': // 2 strings to match.
967 switch (RuleIdentifier[14]) {
968 default: break;
969 case 'a': // 1 string to match.
970 if (memcmp(RuleIdentifier.data()+15, "dde", 3) != 0)
971 break;
972 return 179; // "adde_to_addo_sadde"
973 case 's': // 1 string to match.
974 if (memcmp(RuleIdentifier.data()+15, "ube", 3) != 0)
975 break;
976 return 181; // "adde_to_addo_ssube"
977 }
978 break;
979 case 'u': // 2 strings to match.
980 switch (RuleIdentifier[14]) {
981 default: break;
982 case 'a': // 1 string to match.
983 if (memcmp(RuleIdentifier.data()+15, "dde", 3) != 0)
984 break;
985 return 178; // "adde_to_addo_uadde"
986 case 's': // 1 string to match.
987 if (memcmp(RuleIdentifier.data()+15, "ube", 3) != 0)
988 break;
989 return 180; // "adde_to_addo_usube"
990 }
991 break;
992 }
993 break;
994 case 'b': // 1 string to match.
995 if (memcmp(RuleIdentifier.data()+1, "inop_left_to_zero", 17) != 0)
996 break;
997 return 95; // "binop_left_to_zero"
998 case 'c': // 3 strings to match.
999 if (RuleIdentifier[1] != 'o')
1000 break;
1001 switch (RuleIdentifier[2]) {
1002 default: break;
1003 case 'm': // 1 string to match.
1004 if (memcmp(RuleIdentifier.data()+3, "bine_or_s64_s32", 15) != 0)
1005 break;
1006 return 343; // "combine_or_s64_s32"
1007 case 'n': // 2 strings to match.
1008 if (memcmp(RuleIdentifier.data()+3, "stant_fold_f", 12) != 0)
1009 break;
1010 switch (RuleIdentifier[15]) {
1011 default: break;
1012 case 'a': // 1 string to match.
1013 if (memcmp(RuleIdentifier.data()+16, "bs", 2) != 0)
1014 break;
1015 return 158; // "constant_fold_fabs"
1016 case 'n': // 1 string to match.
1017 if (memcmp(RuleIdentifier.data()+16, "eg", 2) != 0)
1018 break;
1019 return 157; // "constant_fold_fneg"
1020 }
1021 break;
1022 }
1023 break;
1024 case 'e': // 1 string to match.
1025 if (memcmp(RuleIdentifier.data()+1, "xpand_const_fpowi", 17) != 0)
1026 break;
1027 return 186; // "expand_const_fpowi"
1028 case 'f': // 1 string to match.
1029 if (memcmp(RuleIdentifier.data()+1, "ptrunc_fpext_fold", 17) != 0)
1030 break;
1031 return 112; // "fptrunc_fpext_fold"
1032 case 'm': // 2 strings to match.
1033 if (memcmp(RuleIdentifier.data()+1, "inmax_nan_num_", 14) != 0)
1034 break;
1035 switch (RuleIdentifier[15]) {
1036 default: break;
1037 case 'l': // 1 string to match.
1038 if (memcmp(RuleIdentifier.data()+16, "hs", 2) != 0)
1039 break;
1040 return 182; // "minmax_nan_num_lhs"
1041 case 'r': // 1 string to match.
1042 if (memcmp(RuleIdentifier.data()+16, "hs", 2) != 0)
1043 break;
1044 return 183; // "minmax_nan_num_rhs"
1045 }
1046 break;
1047 case 's': // 2 strings to match.
1048 if (RuleIdentifier[1] != 'e')
1049 break;
1050 switch (RuleIdentifier[2]) {
1051 default: break;
1052 case 'l': // 1 string to match.
1053 if (memcmp(RuleIdentifier.data()+3, "ect_of_truncate", 15) != 0)
1054 break;
1055 return 61; // "select_of_truncate"
1056 case 'x': // 1 string to match.
1057 if (memcmp(RuleIdentifier.data()+3, "t_inreg_of_load", 15) != 0)
1058 break;
1059 return 132; // "sext_inreg_of_load"
1060 }
1061 break;
1062 case 't': // 1 string to match.
1063 if (memcmp(RuleIdentifier.data()+1, "runcate_of_anyext", 17) != 0)
1064 break;
1065 return 50; // "truncate_of_anyext"
1066 }
1067 break;
1068 case 19: // 20 strings to match.
1069 switch (RuleIdentifier[0]) {
1070 default: break;
1071 case 'A': // 1 string to match.
1072 if (memcmp(RuleIdentifier.data()+1, "MinusBMinusCMinusC", 18) != 0)
1073 break;
1074 return 1; // "AMinusBMinusCMinusC"
1075 case 'b': // 1 string to match.
1076 if (memcmp(RuleIdentifier.data()+1, "inop_right_to_zero", 18) != 0)
1077 break;
1078 return 96; // "binop_right_to_zero"
1079 case 'c': // 7 strings to match.
1080 if (memcmp(RuleIdentifier.data()+1, "onst", 4) != 0)
1081 break;
1082 switch (RuleIdentifier[5]) {
1083 default: break;
1084 case '_': // 1 string to match.
1085 if (memcmp(RuleIdentifier.data()+6, "ptradd_to_i2p", 13) != 0)
1086 break;
1087 return 172; // "const_ptradd_to_i2p"
1088 case 'a': // 6 strings to match.
1089 if (memcmp(RuleIdentifier.data()+6, "nt_fold_", 8) != 0)
1090 break;
1091 switch (RuleIdentifier[14]) {
1092 default: break;
1093 case 'b': // 1 string to match.
1094 if (memcmp(RuleIdentifier.data()+15, "inop", 4) != 0)
1095 break;
1096 return 210; // "constant_fold_binop"
1097 case 'f': // 5 strings to match.
1098 switch (RuleIdentifier[15]) {
1099 default: break;
1100 case 'c': // 1 string to match.
1101 if (memcmp(RuleIdentifier.data()+16, "eil", 3) != 0)
1102 break;
1103 return 163; // "constant_fold_fceil"
1104 case 'l': // 1 string to match.
1105 if (memcmp(RuleIdentifier.data()+16, "og2", 3) != 0)
1106 break;
1107 return 160; // "constant_fold_flog2"
1108 case 'p': // 1 string to match.
1109 if (memcmp(RuleIdentifier.data()+16, "ext", 3) != 0)
1110 break;
1111 return 162; // "constant_fold_fpext"
1112 case 'r': // 1 string to match.
1113 if (memcmp(RuleIdentifier.data()+16, "int", 3) != 0)
1114 break;
1115 return 168; // "constant_fold_frint"
1116 case 's': // 1 string to match.
1117 if (memcmp(RuleIdentifier.data()+16, "qrt", 3) != 0)
1118 break;
1119 return 159; // "constant_fold_fsqrt"
1120 }
1121 break;
1122 }
1123 break;
1124 }
1125 break;
1126 case 'e': // 1 string to match.
1127 if (memcmp(RuleIdentifier.data()+1, "xtend_through_phis", 18) != 0)
1128 break;
1129 return 116; // "extend_through_phis"
1130 case 'i': // 1 string to match.
1131 if (memcmp(RuleIdentifier.data()+1, "nteger_of_truncate", 18) != 0)
1132 break;
1133 return 69; // "integer_of_truncate"
1134 case 'm': // 3 strings to match.
1135 switch (RuleIdentifier[1]) {
1136 default: break;
1137 case 'e': // 1 string to match.
1138 if (memcmp(RuleIdentifier.data()+2, "rge_of_x_and_zero", 17) != 0)
1139 break;
1140 return 303; // "merge_of_x_and_zero"
1141 case 'i': // 2 strings to match.
1142 if (memcmp(RuleIdentifier.data()+2, "nmax_nan_ieee_", 14) != 0)
1143 break;
1144 switch (RuleIdentifier[16]) {
1145 default: break;
1146 case 'l': // 1 string to match.
1147 if (memcmp(RuleIdentifier.data()+17, "hs", 2) != 0)
1148 break;
1149 return 184; // "minmax_nan_ieee_lhs"
1150 case 'r': // 1 string to match.
1151 if (memcmp(RuleIdentifier.data()+17, "hs", 2) != 0)
1152 break;
1153 return 185; // "minmax_nan_ieee_rhs"
1154 }
1155 break;
1156 }
1157 break;
1158 case 'p': // 1 string to match.
1159 if (memcmp(RuleIdentifier.data()+1, "tr_add_immed_chain", 18) != 0)
1160 break;
1161 return 122; // "ptr_add_immed_chain"
1162 case 'r': // 2 strings to match.
1163 switch (RuleIdentifier[1]) {
1164 default: break;
1165 case 'e': // 1 string to match.
1166 if (memcmp(RuleIdentifier.data()+2, "assoc_comm_binops", 17) != 0)
1167 break;
1168 return 121; // "reassoc_comm_binops"
1169 case 'i': // 1 string to match.
1170 if (memcmp(RuleIdentifier.data()+2, "ght_identity_zero", 17) != 0)
1171 break;
1172 return 92; // "right_identity_zero"
1173 }
1174 break;
1175 case 's': // 2 strings to match.
1176 if (memcmp(RuleIdentifier.data()+1, "implify_", 8) != 0)
1177 break;
1178 switch (RuleIdentifier[9]) {
1179 default: break;
1180 case 'a': // 1 string to match.
1181 if (memcmp(RuleIdentifier.data()+10, "dd_to_sub", 9) != 0)
1182 break;
1183 return 117; // "simplify_add_to_sub"
1184 case 'n': // 1 string to match.
1185 if (memcmp(RuleIdentifier.data()+10, "eg_minmax", 9) != 0)
1186 break;
1187 return 286; // "simplify_neg_minmax"
1188 }
1189 break;
1190 case 'u': // 1 string to match.
1191 if (memcmp(RuleIdentifier.data()+1, "nary_undef_to_zero", 18) != 0)
1192 break;
1193 return 81; // "unary_undef_to_zero"
1194 }
1195 break;
1196 case 20: // 10 strings to match.
1197 switch (RuleIdentifier[0]) {
1198 default: break;
1199 case 'a': // 1 string to match.
1200 if (memcmp(RuleIdentifier.data()+1, "nd_or_disjoint_mask", 19) != 0)
1201 break;
1202 return 224; // "and_or_disjoint_mask"
1203 case 'b': // 1 string to match.
1204 if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_fold", 19) != 0)
1205 break;
1206 return 110; // "bitcast_bitcast_fold"
1207 case 'c': // 1 string to match.
1208 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_ffloor", 19) != 0)
1209 break;
1210 return 164; // "constant_fold_ffloor"
1211 case 'i': // 1 string to match.
1212 if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i_same_size", 19) != 0)
1213 break;
1214 return 98; // "i2p_to_p2i_same_size"
1215 case 'm': // 1 string to match.
1216 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_undef", 19) != 0)
1217 break;
1218 return 302; // "merge_of_x_and_undef"
1219 case 'o': // 1 string to match.
1220 if (memcmp(RuleIdentifier.data()+1, "r_and_xor_to_xor_or", 19) != 0)
1221 break;
1222 return 281; // "or_and_xor_to_xor_or"
1223 case 'r': // 2 strings to match.
1224 if (memcmp(RuleIdentifier.data()+1, "edu", 3) != 0)
1225 break;
1226 switch (RuleIdentifier[4]) {
1227 default: break;
1228 case 'c': // 1 string to match.
1229 if (memcmp(RuleIdentifier.data()+5, "e_shl_of_extend", 15) != 0)
1230 break;
1231 return 133; // "reduce_shl_of_extend"
1232 case 'n': // 1 string to match.
1233 if (memcmp(RuleIdentifier.data()+5, "dant_sext_inreg", 15) != 0)
1234 break;
1235 return 144; // "redundant_sext_inreg"
1236 }
1237 break;
1238 case 'u': // 2 strings to match.
1239 if (RuleIdentifier[1] != 'n')
1240 break;
1241 switch (RuleIdentifier[2]) {
1242 default: break;
1243 case 'a': // 1 string to match.
1244 if (memcmp(RuleIdentifier.data()+3, "ry_undef_to_undef", 17) != 0)
1245 break;
1246 return 82; // "unary_undef_to_undef"
1247 case 'm': // 1 string to match.
1248 if (memcmp(RuleIdentifier.data()+3, "erge_zext_to_zext", 17) != 0)
1249 break;
1250 return 301; // "unmerge_zext_to_zext"
1251 }
1252 break;
1253 }
1254 break;
1255 case 21: // 12 strings to match.
1256 switch (RuleIdentifier[0]) {
1257 default: break;
1258 case 'a': // 1 string to match.
1259 if (memcmp(RuleIdentifier.data()+1, "nd_xor_or_to_xor_and", 20) != 0)
1260 break;
1261 return 283; // "and_xor_or_to_xor_and"
1262 case 'c': // 4 strings to match.
1263 if (RuleIdentifier[1] != 'o')
1264 break;
1265 switch (RuleIdentifier[2]) {
1266 default: break;
1267 case 'm': // 2 strings to match.
1268 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
1269 break;
1270 switch (RuleIdentifier[8]) {
1271 default: break;
1272 case 'b': // 1 string to match.
1273 if (memcmp(RuleIdentifier.data()+9, "uild_unmerge", 12) != 0)
1274 break;
1275 return 304; // "combine_build_unmerge"
1276 case 'c': // 1 string to match.
1277 if (memcmp(RuleIdentifier.data()+9, "oncat_vector", 12) != 0)
1278 break;
1279 return 287; // "combine_concat_vector"
1280 }
1281 break;
1282 case 'n': // 2 strings to match.
1283 if (memcmp(RuleIdentifier.data()+3, "stant_fold_", 11) != 0)
1284 break;
1285 switch (RuleIdentifier[14]) {
1286 default: break;
1287 case 'c': // 1 string to match.
1288 if (memcmp(RuleIdentifier.data()+15, "ast_op", 6) != 0)
1289 break;
1290 return 213; // "constant_fold_cast_op"
1291 case 'f': // 1 string to match.
1292 if (memcmp(RuleIdentifier.data()+15, "ptrunc", 6) != 0)
1293 break;
1294 return 161; // "constant_fold_fptrunc"
1295 }
1296 break;
1297 }
1298 break;
1299 case 'f': // 1 string to match.
1300 if (memcmp(RuleIdentifier.data()+1, "div_repeated_divison", 20) != 0)
1301 break;
1302 return 242; // "fdiv_repeated_divison"
1303 case 'i': // 1 string to match.
1304 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_elt_oob", 20) != 0)
1305 break;
1306 return 29; // "insert_vector_elt_oob"
1307 case 'l': // 1 string to match.
1308 if (memcmp(RuleIdentifier.data()+1, "shr_of_trunc_of_lshr", 20) != 0)
1309 break;
1310 return 315; // "lshr_of_trunc_of_lshr"
1311 case 'r': // 1 string to match.
1312 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_fp", 20) != 0)
1313 break;
1314 return 104; // "right_identity_one_fp"
1315 case 's': // 1 string to match.
1316 if (memcmp(RuleIdentifier.data()+1, "elect_same_val_equiv", 20) != 0)
1317 break;
1318 return 91; // "select_same_val_equiv"
1319 case 'u': // 2 strings to match.
1320 if (RuleIdentifier[1] != 'n')
1321 break;
1322 switch (RuleIdentifier[2]) {
1323 default: break;
1324 case 'd': // 1 string to match.
1325 if (memcmp(RuleIdentifier.data()+3, "ef_to_negative_one", 18) != 0)
1326 break;
1327 return 78; // "undef_to_negative_one"
1328 case 'm': // 1 string to match.
1329 if (memcmp(RuleIdentifier.data()+3, "erge_dead_to_trunc", 18) != 0)
1330 break;
1331 return 300; // "unmerge_dead_to_trunc"
1332 }
1333 break;
1334 }
1335 break;
1336 case 22: // 10 strings to match.
1337 switch (RuleIdentifier[0]) {
1338 default: break;
1339 case 'c': // 3 strings to match.
1340 if (RuleIdentifier[1] != 'o')
1341 break;
1342 switch (RuleIdentifier[2]) {
1343 default: break;
1344 case 'm': // 2 strings to match.
1345 if (memcmp(RuleIdentifier.data()+3, "bine_shuffle_", 13) != 0)
1346 break;
1347 switch (RuleIdentifier[16]) {
1348 default: break;
1349 case 'c': // 1 string to match.
1350 if (memcmp(RuleIdentifier.data()+17, "oncat", 5) != 0)
1351 break;
1352 return 291; // "combine_shuffle_concat"
1353 case 'v': // 1 string to match.
1354 if (memcmp(RuleIdentifier.data()+17, "ector", 5) != 0)
1355 break;
1356 return 336; // "combine_shuffle_vector"
1357 }
1358 break;
1359 case 'n': // 1 string to match.
1360 if (memcmp(RuleIdentifier.data()+3, "stant_fold_fp_binop", 19) != 0)
1361 break;
1362 return 211; // "constant_fold_fp_binop"
1363 }
1364 break;
1365 case 'f': // 2 strings to match.
1366 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_", 12) != 0)
1367 break;
1368 switch (RuleIdentifier[13]) {
1369 default: break;
1370 case 'l': // 1 string to match.
1371 if (memcmp(RuleIdentifier.data()+14, "eft_zero", 8) != 0)
1372 break;
1373 return 198; // "funnel_shift_left_zero"
1374 case 'o': // 1 string to match.
1375 if (memcmp(RuleIdentifier.data()+14, "vershift", 8) != 0)
1376 break;
1377 return 199; // "funnel_shift_overshift"
1378 }
1379 break;
1380 case 'i': // 1 string to match.
1381 if (memcmp(RuleIdentifier.data()+1, "cmp_to_lhs_known_bits", 21) != 0)
1382 break;
1383 return 126; // "icmp_to_lhs_known_bits"
1384 case 'p': // 1 string to match.
1385 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_any_op", 21) != 0)
1386 break;
1387 return 83; // "propagate_undef_any_op"
1388 case 'r': // 1 string to match.
1389 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_int", 21) != 0)
1390 break;
1391 return 103; // "right_identity_one_int"
1392 case 's': // 1 string to match.
1393 if (memcmp(RuleIdentifier.data()+1, "hl_ashr_to_sext_inreg", 21) != 0)
1394 break;
1395 return 130; // "shl_ashr_to_sext_inreg"
1396 case 't': // 1 string to match.
1397 if (memcmp(RuleIdentifier.data()+1, "runc_buildvector_fold", 21) != 0)
1398 break;
1399 return 108; // "trunc_buildvector_fold"
1400 }
1401 break;
1402 case 23: // 6 strings to match.
1403 switch (RuleIdentifier[0]) {
1404 default: break;
1405 case 'b': // 1 string to match.
1406 if (memcmp(RuleIdentifier.data()+1, "uildvector_of_truncate", 22) != 0)
1407 break;
1408 return 62; // "buildvector_of_truncate"
1409 case 'f': // 1 string to match.
1410 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_right_zero", 22) != 0)
1411 break;
1412 return 197; // "funnel_shift_right_zero"
1413 case 'i': // 2 strings to match.
1414 if (memcmp(RuleIdentifier.data()+1, "tof_const_zero_fold_", 20) != 0)
1415 break;
1416 switch (RuleIdentifier[21]) {
1417 default: break;
1418 case 's': // 1 string to match.
1419 if (RuleIdentifier[22] != 'i')
1420 break;
1421 return 170; // "itof_const_zero_fold_si"
1422 case 'u': // 1 string to match.
1423 if (RuleIdentifier[22] != 'i')
1424 break;
1425 return 171; // "itof_const_zero_fold_ui"
1426 }
1427 break;
1428 case 's': // 1 string to match.
1429 if (memcmp(RuleIdentifier.data()+1, "elect_same_val_trivial", 22) != 0)
1430 break;
1431 return 90; // "select_same_val_trivial"
1432 case 't': // 1 string to match.
1433 if (memcmp(RuleIdentifier.data()+1, "runcusatu_to_fptouisat", 22) != 0)
1434 break;
1435 return 314; // "truncusatu_to_fptouisat"
1436 }
1437 break;
1438 case 24: // 17 strings to match.
1439 switch (RuleIdentifier[0]) {
1440 default: break;
1441 case 'b': // 1 string to match.
1442 if (memcmp(RuleIdentifier.data()+1, "inop_left_undef_to_zero", 23) != 0)
1443 break;
1444 return 79; // "binop_left_undef_to_zero"
1445 case 'c': // 4 strings to match.
1446 switch (RuleIdentifier[1]) {
1447 default: break;
1448 case 'o': // 1 string to match.
1449 if (memcmp(RuleIdentifier.data()+2, "nstant_fold_fnearbyint", 22) != 0)
1450 break;
1451 return 169; // "constant_fold_fnearbyint"
1452 case 't': // 3 strings to match.
1453 switch (RuleIdentifier[2]) {
1454 default: break;
1455 case 'l': // 2 strings to match.
1456 if (memcmp(RuleIdentifier.data()+3, "z_", 2) != 0)
1457 break;
1458 switch (RuleIdentifier[5]) {
1459 default: break;
1460 case 't': // 1 string to match.
1461 if (memcmp(RuleIdentifier.data()+6, "o_ctlz_zero_poison", 18) != 0)
1462 break;
1463 return 318; // "ctlz_to_ctlz_zero_poison"
1464 case 'z': // 1 string to match.
1465 if (memcmp(RuleIdentifier.data()+6, "ero_poison_to_ctls", 18) != 0)
1466 break;
1467 return 317; // "ctlz_zero_poison_to_ctls"
1468 }
1469 break;
1470 case 't': // 1 string to match.
1471 if (memcmp(RuleIdentifier.data()+3, "z_to_cttz_zero_poison", 21) != 0)
1472 break;
1473 return 319; // "cttz_to_cttz_zero_poison"
1474 }
1475 break;
1476 }
1477 break;
1478 case 'f': // 2 strings to match.
1479 if (memcmp(RuleIdentifier.data()+1, "old_binop_into_select_", 22) != 0)
1480 break;
1481 switch (RuleIdentifier[23]) {
1482 default: break;
1483 case 'a': // 1 string to match.
1484 return 233; // "fold_binop_into_select_a"
1485 case 'b': // 1 string to match.
1486 return 234; // "fold_binop_into_select_b"
1487 }
1488 break;
1489 case 'm': // 1 string to match.
1490 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element", 23) != 0)
1491 break;
1492 return 28; // "match_extract_of_element"
1493 case 'n': // 1 string to match.
1494 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_feeding_and", 23) != 0)
1495 break;
1496 return 134; // "narrow_binop_feeding_and"
1497 case 'p': // 2 strings to match.
1498 if (memcmp(RuleIdentifier.data()+1, "tr_add_with_zero_", 17) != 0)
1499 break;
1500 switch (RuleIdentifier[18]) {
1501 default: break;
1502 case 's': // 1 string to match.
1503 if (memcmp(RuleIdentifier.data()+19, "calar", 5) != 0)
1504 break;
1505 return 188; // "ptr_add_with_zero_scalar"
1506 case 'v': // 1 string to match.
1507 if (memcmp(RuleIdentifier.data()+19, "ector", 5) != 0)
1508 break;
1509 return 189; // "ptr_add_with_zero_vector"
1510 }
1511 break;
1512 case 's': // 3 strings to match.
1513 if (RuleIdentifier[1] != 'e')
1514 break;
1515 switch (RuleIdentifier[2]) {
1516 default: break;
1517 case 'l': // 1 string to match.
1518 if (memcmp(RuleIdentifier.data()+3, "ect_constant_cmp_true", 21) != 0)
1519 break;
1520 return 137; // "select_constant_cmp_true"
1521 case 'x': // 2 strings to match.
1522 if (memcmp(RuleIdentifier.data()+3, "t_inreg_", 8) != 0)
1523 break;
1524 switch (RuleIdentifier[11]) {
1525 default: break;
1526 case 'o': // 1 string to match.
1527 if (memcmp(RuleIdentifier.data()+12, "f_sext_inreg", 12) != 0)
1528 break;
1529 return 58; // "sext_inreg_of_sext_inreg"
1530 case 't': // 1 string to match.
1531 if (memcmp(RuleIdentifier.data()+12, "o_zext_inreg", 12) != 0)
1532 break;
1533 return 153; // "sext_inreg_to_zext_inreg"
1534 }
1535 break;
1536 }
1537 break;
1538 case 't': // 2 strings to match.
1539 if (memcmp(RuleIdentifier.data()+1, "runc_lshr16_unmerge_", 20) != 0)
1540 break;
1541 switch (RuleIdentifier[21]) {
1542 default: break;
1543 case 'f': // 1 string to match.
1544 if (memcmp(RuleIdentifier.data()+22, "16", 2) != 0)
1545 break;
1546 return 339; // "trunc_lshr16_unmerge_f16"
1547 case 'i': // 1 string to match.
1548 if (memcmp(RuleIdentifier.data()+22, "16", 2) != 0)
1549 break;
1550 return 338; // "trunc_lshr16_unmerge_i16"
1551 }
1552 break;
1553 case 'x': // 1 string to match.
1554 if (memcmp(RuleIdentifier.data()+1, "or_of_and_with_same_reg", 23) != 0)
1555 break;
1556 return 187; // "xor_of_and_with_same_reg"
1557 }
1558 break;
1559 case 25: // 10 strings to match.
1560 switch (RuleIdentifier[0]) {
1561 default: break;
1562 case 'b': // 2 strings to match.
1563 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_", 21) != 0)
1564 break;
1565 switch (RuleIdentifier[22]) {
1566 default: break;
1567 case 'a': // 1 string to match.
1568 if (memcmp(RuleIdentifier.data()+23, "nd", 2) != 0)
1569 break;
1570 return 207; // "bitfield_extract_from_and"
1571 case 's': // 1 string to match.
1572 if (memcmp(RuleIdentifier.data()+23, "hr", 2) != 0)
1573 break;
1574 return 208; // "bitfield_extract_from_shr"
1575 }
1576 break;
1577 case 'c': // 1 string to match.
1578 if (memcmp(RuleIdentifier.data()+1, "ombine_shuffle_undef_rhs", 24) != 0)
1579 break;
1580 return 292; // "combine_shuffle_undef_rhs"
1581 case 'e': // 1 string to match.
1582 if (memcmp(RuleIdentifier.data()+1, "xtract_vec_elt_build_vec", 24) != 0)
1583 break;
1584 return 71; // "extract_vec_elt_build_vec"
1585 case 'n': // 1 string to match.
1586 if (memcmp(RuleIdentifier.data()+1, "eg_and_one_to_sext_inreg", 24) != 0)
1587 break;
1588 return 131; // "neg_and_one_to_sext_inreg"
1589 case 'r': // 3 strings to match.
1590 switch (RuleIdentifier[1]) {
1591 default: break;
1592 case 'e': // 2 strings to match.
1593 if (memcmp(RuleIdentifier.data()+2, "dundant_", 8) != 0)
1594 break;
1595 switch (RuleIdentifier[10]) {
1596 default: break;
1597 case 'a': // 1 string to match.
1598 if (memcmp(RuleIdentifier.data()+11, "ext_sext_inreg", 14) != 0)
1599 break;
1600 return 146; // "redundant_aext_sext_inreg"
1601 case 'z': // 1 string to match.
1602 if (memcmp(RuleIdentifier.data()+11, "ext_sext_inreg", 14) != 0)
1603 break;
1604 return 145; // "redundant_zext_sext_inreg"
1605 }
1606 break;
1607 case 'i': // 1 string to match.
1608 if (memcmp(RuleIdentifier.data()+2, "ght_identity_neg_one_fp", 23) != 0)
1609 break;
1610 return 115; // "right_identity_neg_one_fp"
1611 }
1612 break;
1613 case 's': // 1 string to match.
1614 if (memcmp(RuleIdentifier.data()+1, "elect_constant_cmp_false", 24) != 0)
1615 break;
1616 return 136; // "select_constant_cmp_false"
1617 case 't': // 1 string to match.
1618 if (memcmp(RuleIdentifier.data()+1, "runc_lshr16_unmerge_bf16", 24) != 0)
1619 break;
1620 return 340; // "trunc_lshr16_unmerge_bf16"
1621 }
1622 break;
1623 case 26: // 5 strings to match.
1624 switch (RuleIdentifier[0]) {
1625 default: break;
1626 case 'b': // 2 strings to match.
1627 if (RuleIdentifier[1] != 'i')
1628 break;
1629 switch (RuleIdentifier[2]) {
1630 default: break;
1631 case 'n': // 1 string to match.
1632 if (memcmp(RuleIdentifier.data()+3, "op_right_undef_to_undef", 23) != 0)
1633 break;
1634 return 80; // "binop_right_undef_to_undef"
1635 case 't': // 1 string to match.
1636 if (memcmp(RuleIdentifier.data()+3, "cast_bitcast_to_bitcast", 23) != 0)
1637 break;
1638 return 111; // "bitcast_bitcast_to_bitcast"
1639 }
1640 break;
1641 case 'c': // 1 string to match.
1642 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_unary_int_op", 25) != 0)
1643 break;
1644 return 214; // "constant_fold_unary_int_op"
1645 case 'f': // 1 string to match.
1646 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_from_or_shift", 25) != 0)
1647 break;
1648 return 194; // "funnel_shift_from_or_shift"
1649 case 'r': // 1 string to match.
1650 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp", 25) != 0)
1651 break;
1652 return 113; // "right_identity_neg_zero_fp"
1653 }
1654 break;
1655 case 27: // 7 strings to match.
1656 switch (RuleIdentifier[0]) {
1657 default: break;
1658 case 'c': // 1 string to match.
1659 if (memcmp(RuleIdentifier.data()+1, "ombine_use_vector_truncate", 26) != 0)
1660 break;
1661 return 294; // "combine_use_vector_truncate"
1662 case 'd': // 1 string to match.
1663 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_or_combine", 26) != 0)
1664 break;
1665 return 128; // "double_icmp_zero_or_combine"
1666 case 'f': // 1 string to match.
1667 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_to_rotate_left", 26) != 0)
1668 break;
1669 return 195; // "funnel_shift_to_rotate_left"
1670 case 'r': // 2 strings to match.
1671 if (memcmp(RuleIdentifier.data()+1, "edundant_", 9) != 0)
1672 break;
1673 switch (RuleIdentifier[10]) {
1674 default: break;
1675 case 'b': // 1 string to match.
1676 if (memcmp(RuleIdentifier.data()+11, "inop_in_equality", 16) != 0)
1677 break;
1678 return 129; // "redundant_binop_in_equality"
1679 case 'n': // 1 string to match.
1680 if (memcmp(RuleIdentifier.data()+11, "eg_operands_fsub", 16) != 0)
1681 break;
1682 return 219; // "redundant_neg_operands_fsub"
1683 }
1684 break;
1685 case 't': // 1 string to match.
1686 if (memcmp(RuleIdentifier.data()+1, "runc_lshr_buildvector_fold", 26) != 0)
1687 break;
1688 return 109; // "trunc_lshr_buildvector_fold"
1689 case 'u': // 1 string to match.
1690 if (memcmp(RuleIdentifier.data()+1, "nmerge_anyext_build_vector", 26) != 0)
1691 break;
1692 return 295; // "unmerge_anyext_build_vector"
1693 }
1694 break;
1695 case 28: // 14 strings to match.
1696 switch (RuleIdentifier[0]) {
1697 default: break;
1698 case 'G': // 1 string to match.
1699 if (memcmp(RuleIdentifier.data()+1, "_OR_commute_constant_to_rhs", 27) != 0)
1700 break;
1701 return 252; // "G_OR_commute_constant_to_rhs"
1702 case 'b': // 1 string to match.
1703 if (memcmp(RuleIdentifier.data()+1, "uildvector_identity_fold_bv", 27) != 0)
1704 break;
1705 return 106; // "buildvector_identity_fold_bv"
1706 case 'c': // 1 string to match.
1707 if (memcmp(RuleIdentifier.data()+1, "ombine_or_s64_with_s32_mask", 27) != 0)
1708 break;
1709 return 341; // "combine_or_s64_with_s32_mask"
1710 case 'd': // 1 string to match.
1711 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_and_combine", 27) != 0)
1712 break;
1713 return 127; // "double_icmp_zero_and_combine"
1714 case 'e': // 1 string to match.
1715 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_undef", 27) != 0)
1716 break;
1717 return 25; // "extract_vector_element_undef"
1718 case 'f': // 1 string to match.
1719 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_to_rotate_right", 27) != 0)
1720 break;
1721 return 196; // "funnel_shift_to_rotate_right"
1722 case 'i': // 1 string to match.
1723 if (memcmp(RuleIdentifier.data()+1, "nsert_vec_elt_out_of_bounds", 27) != 0)
1724 break;
1725 return 88; // "insert_vec_elt_out_of_bounds"
1726 case 'm': // 4 strings to match.
1727 if (memcmp(RuleIdentifier.data()+1, "atch_", 5) != 0)
1728 break;
1729 switch (RuleIdentifier[6]) {
1730 default: break;
1731 case 'a': // 2 strings to match.
1732 if (memcmp(RuleIdentifier.data()+7, "ddos_", 5) != 0)
1733 break;
1734 switch (RuleIdentifier[12]) {
1735 default: break;
1736 case 's': // 1 string to match.
1737 if (memcmp(RuleIdentifier.data()+13, "addo_dead_carry", 15) != 0)
1738 break;
1739 return 305; // "match_addos_saddo_dead_carry"
1740 case 'u': // 1 string to match.
1741 if (memcmp(RuleIdentifier.data()+13, "addo_dead_carry", 15) != 0)
1742 break;
1743 return 306; // "match_addos_uaddo_dead_carry"
1744 }
1745 break;
1746 case 's': // 2 strings to match.
1747 if (memcmp(RuleIdentifier.data()+7, "ubo_no_overflow_", 16) != 0)
1748 break;
1749 switch (RuleIdentifier[23]) {
1750 default: break;
1751 case 's': // 1 string to match.
1752 if (memcmp(RuleIdentifier.data()+24, "subo", 4) != 0)
1753 break;
1754 return 309; // "match_subo_no_overflow_ssubo"
1755 case 'u': // 1 string to match.
1756 if (memcmp(RuleIdentifier.data()+24, "subo", 4) != 0)
1757 break;
1758 return 310; // "match_subo_no_overflow_usubo"
1759 }
1760 break;
1761 }
1762 break;
1763 case 'o': // 1 string to match.
1764 if (memcmp(RuleIdentifier.data()+1, "pt_brcond_by_inverting_cond", 27) != 0)
1765 break;
1766 return 156; // "opt_brcond_by_inverting_cond"
1767 case 'p': // 1 string to match.
1768 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_shuffle_mask", 27) != 0)
1769 break;
1770 return 86; // "propagate_undef_shuffle_mask"
1771 case 's': // 1 string to match.
1772 if (memcmp(RuleIdentifier.data()+1, "hift_of_shifted_logic_chain", 27) != 0)
1773 break;
1774 return 191; // "shift_of_shifted_logic_chain"
1775 }
1776 break;
1777 case 29: // 13 strings to match.
1778 switch (RuleIdentifier[0]) {
1779 default: break;
1780 case 'G': // 4 strings to match.
1781 if (RuleIdentifier[1] != '_')
1782 break;
1783 switch (RuleIdentifier[2]) {
1784 default: break;
1785 case 'A': // 2 strings to match.
1786 switch (RuleIdentifier[3]) {
1787 default: break;
1788 case 'D': // 1 string to match.
1789 if (memcmp(RuleIdentifier.data()+4, "D_commute_constant_to_rhs", 25) != 0)
1790 break;
1791 return 249; // "G_ADD_commute_constant_to_rhs"
1792 case 'N': // 1 string to match.
1793 if (memcmp(RuleIdentifier.data()+4, "D_commute_constant_to_rhs", 25) != 0)
1794 break;
1795 return 251; // "G_AND_commute_constant_to_rhs"
1796 }
1797 break;
1798 case 'M': // 1 string to match.
1799 if (memcmp(RuleIdentifier.data()+3, "UL_commute_constant_to_rhs", 26) != 0)
1800 break;
1801 return 250; // "G_MUL_commute_constant_to_rhs"
1802 case 'X': // 1 string to match.
1803 if (memcmp(RuleIdentifier.data()+3, "OR_commute_constant_to_rhs", 26) != 0)
1804 break;
1805 return 253; // "G_XOR_commute_constant_to_rhs"
1806 }
1807 break;
1808 case 'b': // 2 strings to match.
1809 switch (RuleIdentifier[1]) {
1810 default: break;
1811 case 'i': // 1 string to match.
1812 if (memcmp(RuleIdentifier.data()+2, "tfield_extract_from_shr_and", 27) != 0)
1813 break;
1814 return 209; // "bitfield_extract_from_shr_and"
1815 case 'u': // 1 string to match.
1816 if (memcmp(RuleIdentifier.data()+2, "ildvector_identity_fold_bvt", 27) != 0)
1817 break;
1818 return 107; // "buildvector_identity_fold_bvt"
1819 }
1820 break;
1821 case 'c': // 5 strings to match.
1822 if (RuleIdentifier[1] != 'o')
1823 break;
1824 switch (RuleIdentifier[2]) {
1825 default: break;
1826 case 'm': // 3 strings to match.
1827 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
1828 break;
1829 switch (RuleIdentifier[8]) {
1830 default: break;
1831 case 'a': // 1 string to match.
1832 if (memcmp(RuleIdentifier.data()+9, "nd_s64_with_s32_mask", 20) != 0)
1833 break;
1834 return 342; // "combine_and_s64_with_s32_mask"
1835 case 'e': // 1 string to match.
1836 if (memcmp(RuleIdentifier.data()+9, "xtracted_vector_load", 20) != 0)
1837 break;
1838 return 75; // "combine_extracted_vector_load"
1839 case 's': // 1 string to match.
1840 if (memcmp(RuleIdentifier.data()+9, "huffle_disjoint_mask", 20) != 0)
1841 break;
1842 return 293; // "combine_shuffle_disjoint_mask"
1843 }
1844 break;
1845 case 'n': // 2 strings to match.
1846 if (memcmp(RuleIdentifier.data()+3, "stant_fold_intrinsic_", 21) != 0)
1847 break;
1848 switch (RuleIdentifier[24]) {
1849 default: break;
1850 case 'r': // 1 string to match.
1851 if (memcmp(RuleIdentifier.data()+25, "ound", 4) != 0)
1852 break;
1853 return 166; // "constant_fold_intrinsic_round"
1854 case 't': // 1 string to match.
1855 if (memcmp(RuleIdentifier.data()+25, "runc", 4) != 0)
1856 break;
1857 return 165; // "constant_fold_intrinsic_trunc"
1858 }
1859 break;
1860 }
1861 break;
1862 case 'e': // 1 string to match.
1863 if (memcmp(RuleIdentifier.data()+1, "xtract_vec_elt_out_of_bounds", 28) != 0)
1864 break;
1865 return 89; // "extract_vec_elt_out_of_bounds"
1866 case 'i': // 1 string to match.
1867 if (memcmp(RuleIdentifier.data()+1, "cmp_to_true_false_known_bits", 28) != 0)
1868 break;
1869 return 125; // "icmp_to_true_false_known_bits"
1870 }
1871 break;
1872 case 30: // 6 strings to match.
1873 switch (RuleIdentifier[0]) {
1874 default: break;
1875 case 'G': // 4 strings to match.
1876 if (RuleIdentifier[1] != '_')
1877 break;
1878 switch (RuleIdentifier[2]) {
1879 default: break;
1880 case 'S': // 2 strings to match.
1881 if (RuleIdentifier[3] != 'M')
1882 break;
1883 switch (RuleIdentifier[4]) {
1884 default: break;
1885 case 'A': // 1 string to match.
1886 if (memcmp(RuleIdentifier.data()+5, "X_commute_constant_to_rhs", 25) != 0)
1887 break;
1888 return 255; // "G_SMAX_commute_constant_to_rhs"
1889 case 'I': // 1 string to match.
1890 if (memcmp(RuleIdentifier.data()+5, "N_commute_constant_to_rhs", 25) != 0)
1891 break;
1892 return 254; // "G_SMIN_commute_constant_to_rhs"
1893 }
1894 break;
1895 case 'U': // 2 strings to match.
1896 if (RuleIdentifier[3] != 'M')
1897 break;
1898 switch (RuleIdentifier[4]) {
1899 default: break;
1900 case 'A': // 1 string to match.
1901 if (memcmp(RuleIdentifier.data()+5, "X_commute_constant_to_rhs", 25) != 0)
1902 break;
1903 return 257; // "G_UMAX_commute_constant_to_rhs"
1904 case 'I': // 1 string to match.
1905 if (memcmp(RuleIdentifier.data()+5, "N_commute_constant_to_rhs", 25) != 0)
1906 break;
1907 return 256; // "G_UMIN_commute_constant_to_rhs"
1908 }
1909 break;
1910 }
1911 break;
1912 case 'f': // 1 string to match.
1913 if (memcmp(RuleIdentifier.data()+1, "reeze_of_non_undef_non_poison", 29) != 0)
1914 break;
1915 return 46; // "freeze_of_non_undef_non_poison"
1916 case 'r': // 1 string to match.
1917 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp_nsz", 29) != 0)
1918 break;
1919 return 114; // "right_identity_neg_zero_fp_nsz"
1920 }
1921 break;
1922 case 31: // 10 strings to match.
1923 switch (RuleIdentifier[0]) {
1924 default: break;
1925 case 'G': // 6 strings to match.
1926 if (RuleIdentifier[1] != '_')
1927 break;
1928 switch (RuleIdentifier[2]) {
1929 default: break;
1930 case 'S': // 3 strings to match.
1931 switch (RuleIdentifier[3]) {
1932 default: break;
1933 case 'A': // 1 string to match.
1934 if (memcmp(RuleIdentifier.data()+4, "DDO_commute_constant_to_rhs", 27) != 0)
1935 break;
1936 return 267; // "G_SADDO_commute_constant_to_rhs"
1937 case 'M': // 2 strings to match.
1938 if (memcmp(RuleIdentifier.data()+4, "UL", 2) != 0)
1939 break;
1940 switch (RuleIdentifier[6]) {
1941 default: break;
1942 case 'H': // 1 string to match.
1943 if (memcmp(RuleIdentifier.data()+7, "_commute_constant_to_rhs", 24) != 0)
1944 break;
1945 return 259; // "G_SMULH_commute_constant_to_rhs"
1946 case 'O': // 1 string to match.
1947 if (memcmp(RuleIdentifier.data()+7, "_commute_constant_to_rhs", 24) != 0)
1948 break;
1949 return 269; // "G_SMULO_commute_constant_to_rhs"
1950 }
1951 break;
1952 }
1953 break;
1954 case 'U': // 3 strings to match.
1955 switch (RuleIdentifier[3]) {
1956 default: break;
1957 case 'A': // 1 string to match.
1958 if (memcmp(RuleIdentifier.data()+4, "DDO_commute_constant_to_rhs", 27) != 0)
1959 break;
1960 return 266; // "G_UADDO_commute_constant_to_rhs"
1961 case 'M': // 2 strings to match.
1962 if (memcmp(RuleIdentifier.data()+4, "UL", 2) != 0)
1963 break;
1964 switch (RuleIdentifier[6]) {
1965 default: break;
1966 case 'H': // 1 string to match.
1967 if (memcmp(RuleIdentifier.data()+7, "_commute_constant_to_rhs", 24) != 0)
1968 break;
1969 return 258; // "G_UMULH_commute_constant_to_rhs"
1970 case 'O': // 1 string to match.
1971 if (memcmp(RuleIdentifier.data()+7, "_commute_constant_to_rhs", 24) != 0)
1972 break;
1973 return 268; // "G_UMULO_commute_constant_to_rhs"
1974 }
1975 break;
1976 }
1977 break;
1978 }
1979 break;
1980 case 'i': // 2 strings to match.
1981 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_element_", 21) != 0)
1982 break;
1983 switch (RuleIdentifier[22]) {
1984 default: break;
1985 case 'e': // 1 string to match.
1986 if (memcmp(RuleIdentifier.data()+23, "lt_undef", 8) != 0)
1987 break;
1988 return 27; // "insert_vector_element_elt_undef"
1989 case 'i': // 1 string to match.
1990 if (memcmp(RuleIdentifier.data()+23, "dx_undef", 8) != 0)
1991 break;
1992 return 26; // "insert_vector_element_idx_undef"
1993 }
1994 break;
1995 case 'r': // 2 strings to match.
1996 if (memcmp(RuleIdentifier.data()+1, "edundant_neg_operands_fadd_", 27) != 0)
1997 break;
1998 switch (RuleIdentifier[28]) {
1999 default: break;
2000 case 'l': // 1 string to match.
2001 if (memcmp(RuleIdentifier.data()+29, "hs", 2) != 0)
2002 break;
2003 return 218; // "redundant_neg_operands_fadd_lhs"
2004 case 'r': // 1 string to match.
2005 if (memcmp(RuleIdentifier.data()+29, "hs", 2) != 0)
2006 break;
2007 return 217; // "redundant_neg_operands_fadd_rhs"
2008 }
2009 break;
2010 }
2011 break;
2012 case 32: // 5 strings to match.
2013 switch (RuleIdentifier[0]) {
2014 default: break;
2015 case 'b': // 1 string to match.
2016 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_sext_inreg", 31) != 0)
2017 break;
2018 return 206; // "bitfield_extract_from_sext_inreg"
2019 case 'c': // 2 strings to match.
2020 if (memcmp(RuleIdentifier.data()+1, "ombine_f", 8) != 0)
2021 break;
2022 switch (RuleIdentifier[9]) {
2023 default: break;
2024 case 'a': // 1 string to match.
2025 if (memcmp(RuleIdentifier.data()+10, "dd_fmul_to_fmad_or_fma", 22) != 0)
2026 break;
2027 return 225; // "combine_fadd_fmul_to_fmad_or_fma"
2028 case 's': // 1 string to match.
2029 if (memcmp(RuleIdentifier.data()+10, "ub_fmul_to_fmad_or_fma", 22) != 0)
2030 break;
2031 return 229; // "combine_fsub_fmul_to_fmad_or_fma"
2032 }
2033 break;
2034 case 'e': // 1 string to match.
2035 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_not_const", 31) != 0)
2036 break;
2037 return 30; // "extract_vector_element_not_const"
2038 case 's': // 1 string to match.
2039 if (memcmp(RuleIdentifier.data()+1, "elect_constant_cmp_general_true", 31) != 0)
2040 break;
2041 return 139; // "select_constant_cmp_general_true"
2042 }
2043 break;
2044 case 33: // 10 strings to match.
2045 switch (RuleIdentifier[0]) {
2046 default: break;
2047 case 'G': // 6 strings to match.
2048 if (RuleIdentifier[1] != '_')
2049 break;
2050 switch (RuleIdentifier[2]) {
2051 default: break;
2052 case 'F': // 2 strings to match.
2053 switch (RuleIdentifier[3]) {
2054 default: break;
2055 case 'A': // 1 string to match.
2056 if (memcmp(RuleIdentifier.data()+4, "DD_commute_fp_constant_to_rhs", 29) != 0)
2057 break;
2058 return 270; // "G_FADD_commute_fp_constant_to_rhs"
2059 case 'M': // 1 string to match.
2060 if (memcmp(RuleIdentifier.data()+4, "UL_commute_fp_constant_to_rhs", 29) != 0)
2061 break;
2062 return 271; // "G_FMUL_commute_fp_constant_to_rhs"
2063 }
2064 break;
2065 case 'S': // 2 strings to match.
2066 switch (RuleIdentifier[3]) {
2067 default: break;
2068 case 'A': // 1 string to match.
2069 if (memcmp(RuleIdentifier.data()+4, "DDSAT_commute_constant_to_rhs", 29) != 0)
2070 break;
2071 return 261; // "G_SADDSAT_commute_constant_to_rhs"
2072 case 'M': // 1 string to match.
2073 if (memcmp(RuleIdentifier.data()+4, "ULFIX_commute_constant_to_rhs", 29) != 0)
2074 break;
2075 return 262; // "G_SMULFIX_commute_constant_to_rhs"
2076 }
2077 break;
2078 case 'U': // 2 strings to match.
2079 switch (RuleIdentifier[3]) {
2080 default: break;
2081 case 'A': // 1 string to match.
2082 if (memcmp(RuleIdentifier.data()+4, "DDSAT_commute_constant_to_rhs", 29) != 0)
2083 break;
2084 return 260; // "G_UADDSAT_commute_constant_to_rhs"
2085 case 'M': // 1 string to match.
2086 if (memcmp(RuleIdentifier.data()+4, "ULFIX_commute_constant_to_rhs", 29) != 0)
2087 break;
2088 return 263; // "G_UMULFIX_commute_constant_to_rhs"
2089 }
2090 break;
2091 }
2092 break;
2093 case 'c': // 1 string to match.
2094 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_intrinsic_roundeven", 32) != 0)
2095 break;
2096 return 167; // "constant_fold_intrinsic_roundeven"
2097 case 'r': // 2 strings to match.
2098 if (memcmp(RuleIdentifier.data()+1, "edundant_", 9) != 0)
2099 break;
2100 switch (RuleIdentifier[10]) {
2101 default: break;
2102 case 'a': // 1 string to match.
2103 if (memcmp(RuleIdentifier.data()+11, "ext_unmerge_sext_inreg", 22) != 0)
2104 break;
2105 return 148; // "redundant_aext_unmerge_sext_inreg"
2106 case 'z': // 1 string to match.
2107 if (memcmp(RuleIdentifier.data()+11, "ext_unmerge_sext_inreg", 22) != 0)
2108 break;
2109 return 147; // "redundant_zext_unmerge_sext_inreg"
2110 }
2111 break;
2112 case 's': // 1 string to match.
2113 if (memcmp(RuleIdentifier.data()+1, "elect_constant_cmp_general_false", 32) != 0)
2114 break;
2115 return 138; // "select_constant_cmp_general_false"
2116 }
2117 break;
2118 case 34: // 2 strings to match.
2119 switch (RuleIdentifier[0]) {
2120 default: break;
2121 case 'c': // 1 string to match.
2122 if (memcmp(RuleIdentifier.data()+1, "ombine_fmul_with_select_to_fldexp", 33) != 0)
2123 break;
2124 return 332; // "combine_fmul_with_select_to_fldexp"
2125 case 'e': // 1 string to match.
2126 if (memcmp(RuleIdentifier.data()+1, "xtract_all_elts_from_build_vector", 33) != 0)
2127 break;
2128 return 72; // "extract_all_elts_from_build_vector"
2129 }
2130 break;
2131 case 35: // 1 string to match.
2132 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_build_vector", 35) != 0)
2133 break;
2134 return 32; // "extract_vector_element_build_vector"
2135 case 36: // 7 strings to match.
2136 switch (RuleIdentifier[0]) {
2137 default: break;
2138 case 'G': // 4 strings to match.
2139 if (RuleIdentifier[1] != '_')
2140 break;
2141 switch (RuleIdentifier[2]) {
2142 default: break;
2143 case 'F': // 2 strings to match.
2144 if (RuleIdentifier[3] != 'M')
2145 break;
2146 switch (RuleIdentifier[4]) {
2147 default: break;
2148 case 'A': // 1 string to match.
2149 if (memcmp(RuleIdentifier.data()+5, "XNUM_commute_fp_constant_to_rhs", 31) != 0)
2150 break;
2151 return 273; // "G_FMAXNUM_commute_fp_constant_to_rhs"
2152 case 'I': // 1 string to match.
2153 if (memcmp(RuleIdentifier.data()+5, "NNUM_commute_fp_constant_to_rhs", 31) != 0)
2154 break;
2155 return 272; // "G_FMINNUM_commute_fp_constant_to_rhs"
2156 }
2157 break;
2158 case 'S': // 1 string to match.
2159 if (memcmp(RuleIdentifier.data()+3, "MULFIXSAT_commute_constant_to_rhs", 33) != 0)
2160 break;
2161 return 264; // "G_SMULFIXSAT_commute_constant_to_rhs"
2162 case 'U': // 1 string to match.
2163 if (memcmp(RuleIdentifier.data()+3, "MULFIXSAT_commute_constant_to_rhs", 33) != 0)
2164 break;
2165 return 265; // "G_UMULFIXSAT_commute_constant_to_rhs"
2166 }
2167 break;
2168 case 'c': // 2 strings to match.
2169 if (memcmp(RuleIdentifier.data()+1, "ombine_", 7) != 0)
2170 break;
2171 switch (RuleIdentifier[8]) {
2172 default: break;
2173 case 'f': // 1 string to match.
2174 if (memcmp(RuleIdentifier.data()+9, "add_fma_fmul_to_fmad_or_fma", 27) != 0)
2175 break;
2176 return 227; // "combine_fadd_fma_fmul_to_fmad_or_fma"
2177 case 'i': // 1 string to match.
2178 if (memcmp(RuleIdentifier.data()+9, "nsert_vec_elts_build_vector", 27) != 0)
2179 break;
2180 return 70; // "combine_insert_vec_elts_build_vector"
2181 }
2182 break;
2183 case 'p': // 1 string to match.
2184 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_all_ops_build_vector", 35) != 0)
2185 break;
2186 return 85; // "propagate_undef_all_ops_build_vector"
2187 }
2188 break;
2189 case 37: // 5 strings to match.
2190 switch (RuleIdentifier[0]) {
2191 default: break;
2192 case 'G': // 2 strings to match.
2193 if (memcmp(RuleIdentifier.data()+1, "_FM", 3) != 0)
2194 break;
2195 switch (RuleIdentifier[4]) {
2196 default: break;
2197 case 'A': // 1 string to match.
2198 if (memcmp(RuleIdentifier.data()+5, "XIMUM_commute_fp_constant_to_rhs", 32) != 0)
2199 break;
2200 return 277; // "G_FMAXIMUM_commute_fp_constant_to_rhs"
2201 case 'I': // 1 string to match.
2202 if (memcmp(RuleIdentifier.data()+5, "NIMUM_commute_fp_constant_to_rhs", 32) != 0)
2203 break;
2204 return 276; // "G_FMINIMUM_commute_fp_constant_to_rhs"
2205 }
2206 break;
2207 case 'c': // 1 string to match.
2208 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fneg_fmul_to_fmad_or_fma", 36) != 0)
2209 break;
2210 return 230; // "combine_fsub_fneg_fmul_to_fmad_or_fma"
2211 case 'e': // 1 string to match.
2212 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_shuffle_vector", 36) != 0)
2213 break;
2214 return 40; // "extract_vector_element_shuffle_vector"
2215 case 'h': // 1 string to match.
2216 if (memcmp(RuleIdentifier.data()+1, "oist_logic_op_with_same_opcode_hands", 36) != 0)
2217 break;
2218 return 118; // "hoist_logic_op_with_same_opcode_hands"
2219 }
2220 break;
2221 case 38: // 4 strings to match.
2222 switch (RuleIdentifier[0]) {
2223 default: break;
2224 case 'c': // 3 strings to match.
2225 if (memcmp(RuleIdentifier.data()+1, "ombine_", 7) != 0)
2226 break;
2227 switch (RuleIdentifier[8]) {
2228 default: break;
2229 case 'f': // 2 strings to match.
2230 switch (RuleIdentifier[9]) {
2231 default: break;
2232 case 'a': // 1 string to match.
2233 if (memcmp(RuleIdentifier.data()+10, "dd_fpext_fmul_to_fmad_or_fma", 28) != 0)
2234 break;
2235 return 226; // "combine_fadd_fpext_fmul_to_fmad_or_fma"
2236 case 's': // 1 string to match.
2237 if (memcmp(RuleIdentifier.data()+10, "ub_fpext_fmul_to_fmad_or_fma", 28) != 0)
2238 break;
2239 return 231; // "combine_fsub_fpext_fmul_to_fmad_or_fma"
2240 }
2241 break;
2242 case 's': // 1 string to match.
2243 if (memcmp(RuleIdentifier.data()+9, "huffle_vector_to_build_vector", 29) != 0)
2244 break;
2245 return 337; // "combine_shuffle_vector_to_build_vector"
2246 }
2247 break;
2248 case 'p': // 1 string to match.
2249 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_all_ops_shuffle_vector", 37) != 0)
2250 break;
2251 return 84; // "propagate_undef_all_ops_shuffle_vector"
2252 }
2253 break;
2254 case 40: // 1 string to match.
2255 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_different_indices", 40) != 0)
2256 break;
2257 return 31; // "extract_vector_element_different_indices"
2258 case 41: // 2 strings to match.
2259 if (memcmp(RuleIdentifier.data()+0, "G_FM", 4) != 0)
2260 break;
2261 switch (RuleIdentifier[4]) {
2262 default: break;
2263 case 'A': // 1 string to match.
2264 if (memcmp(RuleIdentifier.data()+5, "XNUM_IEEE_commute_fp_constant_to_rhs", 36) != 0)
2265 break;
2266 return 275; // "G_FMAXNUM_IEEE_commute_fp_constant_to_rhs"
2267 case 'I': // 1 string to match.
2268 if (memcmp(RuleIdentifier.data()+5, "NNUM_IEEE_commute_fp_constant_to_rhs", 36) != 0)
2269 break;
2270 return 274; // "G_FMINNUM_IEEE_commute_fp_constant_to_rhs"
2271 }
2272 break;
2273 case 42: // 9 strings to match.
2274 switch (RuleIdentifier[0]) {
2275 default: break;
2276 case 'c': // 1 string to match.
2277 if (memcmp(RuleIdentifier.data()+1, "ombine_fadd_fpext_fma_fmul_to_fmad_or_fma", 41) != 0)
2278 break;
2279 return 228; // "combine_fadd_fpext_fma_fmul_to_fmad_or_fma"
2280 case 'e': // 7 strings to match.
2281 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_build_vector_trunc", 40) != 0)
2282 break;
2283 switch (RuleIdentifier[41]) {
2284 default: break;
2285 case '2': // 1 string to match.
2286 return 33; // "extract_vector_element_build_vector_trunc2"
2287 case '3': // 1 string to match.
2288 return 34; // "extract_vector_element_build_vector_trunc3"
2289 case '4': // 1 string to match.
2290 return 35; // "extract_vector_element_build_vector_trunc4"
2291 case '5': // 1 string to match.
2292 return 36; // "extract_vector_element_build_vector_trunc5"
2293 case '6': // 1 string to match.
2294 return 37; // "extract_vector_element_build_vector_trunc6"
2295 case '7': // 1 string to match.
2296 return 38; // "extract_vector_element_build_vector_trunc7"
2297 case '8': // 1 string to match.
2298 return 39; // "extract_vector_element_build_vector_trunc8"
2299 }
2300 break;
2301 case 'f': // 1 string to match.
2302 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_left", 41) != 0)
2303 break;
2304 return 200; // "funnel_shift_or_shift_to_funnel_shift_left"
2305 }
2306 break;
2307 case 43: // 2 strings to match.
2308 switch (RuleIdentifier[0]) {
2309 default: break;
2310 case 'c': // 1 string to match.
2311 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fpext_fneg_fmul_to_fmad_or_fma", 42) != 0)
2312 break;
2313 return 232; // "combine_fsub_fpext_fneg_fmul_to_fmad_or_fma"
2314 case 'f': // 1 string to match.
2315 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_right", 42) != 0)
2316 break;
2317 return 201; // "funnel_shift_or_shift_to_funnel_shift_right"
2318 }
2319 break;
2320 case 44: // 1 string to match.
2321 if (memcmp(RuleIdentifier.data()+0, "insert_vector_element_extract_vector_element", 44) != 0)
2322 break;
2323 return 41; // "insert_vector_element_extract_vector_element"
2324 case 46: // 1 string to match.
2325 if (memcmp(RuleIdentifier.data()+0, "push_freeze_to_prevent_poison_from_propagating", 46) != 0)
2326 break;
2327 return 47; // "push_freeze_to_prevent_poison_from_propagating"
2328 }
2329#endif // ifndef NDEBUG
2330
2331 return std::nullopt;
2332}
2333static std::optional<std::pair<uint64_t, uint64_t>> getRuleRangeForIdentifier(StringRef RuleIdentifier) {
2334 std::pair<StringRef, StringRef> RangePair = RuleIdentifier.split('-');
2335 if (!RangePair.second.empty()) {
2336 const auto First = getRuleIdxForIdentifier(RangePair.first);
2337 const auto Last = getRuleIdxForIdentifier(RangePair.second);
2338 if (!First || !Last)
2339 return std::nullopt;
2340 if (First >= Last)
2341 report_fatal_error("Beginning of range should be before end of range");
2342 return {{*First, *Last + 1}};
2343 }
2344 if (RangePair.first == "*") {
2345 return {{0, 344}};
2346 }
2347 const auto I = getRuleIdxForIdentifier(RangePair.first);
2348 if (!I)
2349 return std::nullopt;
2350 return {{*I, *I + 1}};
2351}
2352
2353bool AMDGPUPreLegalizerCombinerImplRuleConfig::setRuleEnabled(StringRef RuleIdentifier) {
2354 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
2355 if (!MaybeRange)
2356 return false;
2357 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
2358 DisabledRules.reset(I);
2359 return true;
2360}
2361
2362bool AMDGPUPreLegalizerCombinerImplRuleConfig::setRuleDisabled(StringRef RuleIdentifier) {
2363 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
2364 if (!MaybeRange)
2365 return false;
2366 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
2367 DisabledRules.set(I);
2368 return true;
2369}
2370
2371static std::vector<std::string> AMDGPUPreLegalizerCombinerOption;
2372static cl::list<std::string> AMDGPUPreLegalizerCombinerDisableOption(
2373 "amdgpuprelegalizercombiner-disable-rule",
2374 cl::desc("Disable one or more combiner rules temporarily in the AMDGPUPreLegalizerCombiner pass"),
2375 cl::CommaSeparated,
2376 cl::Hidden,
2377 cl::cat(GICombinerOptionCategory),
2378 cl::callback([](const std::string &Str) {
2379 AMDGPUPreLegalizerCombinerOption.push_back(Str);
2380 }));
2381static cl::list<std::string> AMDGPUPreLegalizerCombinerOnlyEnableOption(
2382 "amdgpuprelegalizercombiner-only-enable-rule",
2383 cl::desc("Disable all rules in the AMDGPUPreLegalizerCombiner pass then re-enable the specified ones"),
2384 cl::Hidden,
2385 cl::cat(GICombinerOptionCategory),
2386 cl::callback([](const std::string &CommaSeparatedArg) {
2387 StringRef Str = CommaSeparatedArg;
2388 AMDGPUPreLegalizerCombinerOption.push_back("*");
2389 do {
2390 auto X = Str.split(",");
2391 AMDGPUPreLegalizerCombinerOption.push_back(("!" + X.first).str());
2392 Str = X.second;
2393 } while (!Str.empty());
2394 }));
2395
2396
2397bool AMDGPUPreLegalizerCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const {
2398 return !DisabledRules.test(RuleID);
2399}
2400bool AMDGPUPreLegalizerCombinerImplRuleConfig::parseCommandLineOption() {
2401 for (StringRef Identifier : AMDGPUPreLegalizerCombinerOption) {
2402 bool Enabled = Identifier.consume_front("!");
2403 if (Enabled && !setRuleEnabled(Identifier))
2404 return false;
2405 if (!Enabled && !setRuleDisabled(Identifier))
2406 return false;
2407 }
2408 return true;
2409}
2410
2411
2412#endif // GET_GICOMBINER_TYPES
2413
2414#ifdef GET_GICOMBINER_TYPES
2415
2416const unsigned MAX_SUBTARGET_PREDICATES = 0;
2417using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
2418
2419#endif // GET_GICOMBINER_TYPES
2420
2421#ifdef GET_GICOMBINER_CLASS_MEMBERS
2422
2423 bool canMatchOpcode(unsigned Opc) const override;
2424 uint32_t getRootFlagsToDrop() const override;
2425
2426#endif // GET_GICOMBINER_CLASS_MEMBERS
2427
2428#ifdef GET_GICOMBINER_CLASS_MEMBERS
2429
2430PredicateBitset AvailableModuleFeatures;
2431mutable PredicateBitset AvailableFunctionFeatures;
2432PredicateBitset getAvailableFeatures() const {
2433 return AvailableModuleFeatures | AvailableFunctionFeatures;
2434}
2435PredicateBitset
2436computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const;
2437PredicateBitset
2438computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget,
2439 const MachineFunction *MF) const;
2440void setupGeneratedPerFunctionState(MachineFunction &MF) override;
2441
2442#endif // GET_GICOMBINER_CLASS_MEMBERS
2443
2444#ifdef GET_GICOMBINER_CLASS_MEMBERS
2445
2446 mutable MatcherState State;
2447 typedef ComplexRendererFns(AMDGPUPreLegalizerCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const;
2448 typedef void(AMDGPUPreLegalizerCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
2449 const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
2450 static AMDGPUPreLegalizerCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[];
2451 static AMDGPUPreLegalizerCombinerImpl::CustomRendererFn CustomRenderers[];
2452 bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
2453 bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
2454 bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
2455 const uint8_t *getMatchTable() const override;
2456 bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
2457 bool testMOPredicate_MO(unsigned PredicateID, const MachineOperand &MO, const MatcherState &State) const override;
2458 bool testSimplePredicate(unsigned PredicateID) const override;
2459 bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
2460
2461#endif // GET_GICOMBINER_CLASS_MEMBERS
2462
2463#ifdef GET_GICOMBINER_IMPL
2464
2465// LLT Objects.
2466enum {
2467 GILLT_i16,
2468 GILLT_i32,
2469 GILLT_i64,
2470 GILLT_f16,
2471 GILLT_bf16,
2472};
2473const static size_t NumTypeObjects = 5;
2474const static LLT TypeObjects[] = {
2475 LLT(LLT::Kind::INTEGER, ElementCount::getFixed(0), 16),
2476 LLT(LLT::Kind::INTEGER, ElementCount::getFixed(0), 32),
2477 LLT(LLT::Kind::INTEGER, ElementCount::getFixed(0), 64),
2478 LLT(LLT::Kind::FLOAT, ElementCount::getFixed(0), 16, LLT::FpSemantics::S_IEEEhalf),
2479 LLT(LLT::Kind::FLOAT, ElementCount::getFixed(0), 16, LLT::FpSemantics::S_BFloat),
2480};
2481
2482// Bits for subtarget features that participate in instruction matching.
2483enum SubtargetFeatureBits : uint8_t {
2484};
2485
2486PredicateBitset AMDGPUPreLegalizerCombinerImpl::
2487computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const {
2488 PredicateBitset Features{};
2489 return Features;
2490}
2491
2492void AMDGPUPreLegalizerCombinerImpl::setupGeneratedPerFunctionState(MachineFunction &MF) {
2493 AvailableFunctionFeatures = computeAvailableFunctionFeatures((const AMDGPUSubtarget *)&MF.getSubtarget(), &MF);
2494}
2495PredicateBitset AMDGPUPreLegalizerCombinerImpl::
2496computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget, const MachineFunction *MF) const {
2497 PredicateBitset Features{};
2498 return Features;
2499}
2500
2501// Feature bitsets.
2502enum {
2503 GIFBS_Invalid,
2504};
2505constexpr static PredicateBitset FeatureBitsets[] {
2506 {}, // GIFBS_Invalid
2507};
2508
2509// ComplexPattern predicates.
2510enum {
2511 GICP_Invalid,
2512};
2513// See constructor for table contents
2514
2515AMDGPUPreLegalizerCombinerImpl::ComplexMatcherMemFn
2516AMDGPUPreLegalizerCombinerImpl::ComplexPredicateFns[] = {
2517 nullptr, // GICP_Invalid
2518};
2519
2520enum {
2521 GICXXPred_MI_Predicate_GICombiner0 = GICXXPred_Invalid + 1,
2522 GICXXPred_MI_Predicate_GICombiner1,
2523 GICXXPred_MI_Predicate_GICombiner2,
2524 GICXXPred_MI_Predicate_GICombiner3,
2525 GICXXPred_MI_Predicate_GICombiner4,
2526 GICXXPred_MI_Predicate_GICombiner5,
2527 GICXXPred_MI_Predicate_GICombiner6,
2528 GICXXPred_MI_Predicate_GICombiner7,
2529 GICXXPred_MI_Predicate_GICombiner8,
2530 GICXXPred_MI_Predicate_GICombiner9,
2531 GICXXPred_MI_Predicate_GICombiner10,
2532 GICXXPred_MI_Predicate_GICombiner11,
2533 GICXXPred_MI_Predicate_GICombiner12,
2534 GICXXPred_MI_Predicate_GICombiner13,
2535 GICXXPred_MI_Predicate_GICombiner14,
2536 GICXXPred_MI_Predicate_GICombiner15,
2537 GICXXPred_MI_Predicate_GICombiner16,
2538 GICXXPred_MI_Predicate_GICombiner17,
2539 GICXXPred_MI_Predicate_GICombiner18,
2540 GICXXPred_MI_Predicate_GICombiner19,
2541 GICXXPred_MI_Predicate_GICombiner20,
2542 GICXXPred_MI_Predicate_GICombiner21,
2543 GICXXPred_MI_Predicate_GICombiner22,
2544 GICXXPred_MI_Predicate_GICombiner23,
2545 GICXXPred_MI_Predicate_GICombiner24,
2546 GICXXPred_MI_Predicate_GICombiner25,
2547 GICXXPred_MI_Predicate_GICombiner26,
2548 GICXXPred_MI_Predicate_GICombiner27,
2549 GICXXPred_MI_Predicate_GICombiner28,
2550 GICXXPred_MI_Predicate_GICombiner29,
2551 GICXXPred_MI_Predicate_GICombiner30,
2552 GICXXPred_MI_Predicate_GICombiner31,
2553 GICXXPred_MI_Predicate_GICombiner32,
2554 GICXXPred_MI_Predicate_GICombiner33,
2555 GICXXPred_MI_Predicate_GICombiner34,
2556 GICXXPred_MI_Predicate_GICombiner35,
2557 GICXXPred_MI_Predicate_GICombiner36,
2558 GICXXPred_MI_Predicate_GICombiner37,
2559 GICXXPred_MI_Predicate_GICombiner38,
2560 GICXXPred_MI_Predicate_GICombiner39,
2561 GICXXPred_MI_Predicate_GICombiner40,
2562 GICXXPred_MI_Predicate_GICombiner41,
2563 GICXXPred_MI_Predicate_GICombiner42,
2564 GICXXPred_MI_Predicate_GICombiner43,
2565 GICXXPred_MI_Predicate_GICombiner44,
2566 GICXXPred_MI_Predicate_GICombiner45,
2567 GICXXPred_MI_Predicate_GICombiner46,
2568 GICXXPred_MI_Predicate_GICombiner47,
2569 GICXXPred_MI_Predicate_GICombiner48,
2570 GICXXPred_MI_Predicate_GICombiner49,
2571 GICXXPred_MI_Predicate_GICombiner50,
2572 GICXXPred_MI_Predicate_GICombiner51,
2573 GICXXPred_MI_Predicate_GICombiner52,
2574 GICXXPred_MI_Predicate_GICombiner53,
2575 GICXXPred_MI_Predicate_GICombiner54,
2576 GICXXPred_MI_Predicate_GICombiner55,
2577 GICXXPred_MI_Predicate_GICombiner56,
2578 GICXXPred_MI_Predicate_GICombiner57,
2579 GICXXPred_MI_Predicate_GICombiner58,
2580 GICXXPred_MI_Predicate_GICombiner59,
2581 GICXXPred_MI_Predicate_GICombiner60,
2582 GICXXPred_MI_Predicate_GICombiner61,
2583 GICXXPred_MI_Predicate_GICombiner62,
2584 GICXXPred_MI_Predicate_GICombiner63,
2585 GICXXPred_MI_Predicate_GICombiner64,
2586 GICXXPred_MI_Predicate_GICombiner65,
2587};
2588bool AMDGPUPreLegalizerCombinerImpl::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
2589 switch (PredicateID) {
2590 case GICXXPred_MI_Predicate_GICombiner0: {
2591 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg());
2592 }
2593 case GICXXPred_MI_Predicate_GICombiner1: {
2594 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg());
2595 }
2596 case GICXXPred_MI_Predicate_GICombiner2: {
2597 return MRI.getType(State.MIs[1]->getOperand(1).getReg()).getScalarSizeInBits() ==
2598 MRI.getType(State.MIs[0]->getOperand(0).getReg()).getScalarSizeInBits();
2599 }
2600 case GICXXPred_MI_Predicate_GICombiner3: {
2601 return isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI);
2602 }
2603 case GICXXPred_MI_Predicate_GICombiner4: {
2604 return Helper.matchExtractVectorElement(*State.MIs[0]);
2605 }
2606 case GICXXPred_MI_Predicate_GICombiner5: {
2607 return Helper.matchInsertVectorElementOOB(*State.MIs[0]);
2608 }
2609 case GICXXPred_MI_Predicate_GICombiner6: {
2610 return isGuaranteedNotToBeUndefOrPoison(State.MIs[0]->getOperand(1).getReg(), MRI);
2611 }
2612 case GICXXPred_MI_Predicate_GICombiner7: {
2613 return Helper.matchAllExplicitUsesAreUndef(*State.MIs[0]);
2614 }
2615 case GICXXPred_MI_Predicate_GICombiner8: {
2616 return Helper.matchUndefShuffleVectorMask(*State.MIs[0]);
2617 }
2618 case GICXXPred_MI_Predicate_GICombiner9: {
2619 return cast<GStore>(State.MIs[0])->isUnordered();
2620 }
2621 case GICXXPred_MI_Predicate_GICombiner10: {
2622 return Helper.matchInsertExtractVecEltOutOfBounds(*State.MIs[0]);
2623 }
2624 case GICXXPred_MI_Predicate_GICombiner11: {
2625 return Helper.matchSelectSameVal(*State.MIs[0]);
2626 }
2627 case GICXXPred_MI_Predicate_GICombiner12: {
2628 return Helper.matchConstantOp(State.MIs[0]->getOperand(1), 0);
2629 }
2630 case GICXXPred_MI_Predicate_GICombiner13: {
2631 return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());
2632 }
2633 case GICXXPred_MI_Predicate_GICombiner14: {
2634 return MRI.getType(State.MIs[0]->getOperand(0).getReg()).getSizeInBits() ==
2635 MRI.getType(State.MIs[1]->getOperand(1).getReg()).getSizeInBits();
2636 }
2637 case GICXXPred_MI_Predicate_GICombiner15: {
2638 return MRI.getType(State.MIs[0]->getOperand(0).getReg()).getSizeInBits() >
2639 MRI.getType(State.MIs[1]->getOperand(1).getReg()).getSizeInBits();
2640 }
2641 case GICXXPred_MI_Predicate_GICombiner16: {
2642 return MRI.getType(State.MIs[0]->getOperand(0).getReg()).getSizeInBits() <
2643 MRI.getType(State.MIs[1]->getOperand(1).getReg()).getSizeInBits();
2644 }
2645 case GICXXPred_MI_Predicate_GICombiner17: {
2646 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 1.0);
2647 }
2648 case GICXXPred_MI_Predicate_GICombiner18: {
2649 return MRI.getType(State.MIs[1]->getOperand(1).getReg()) != MRI.getType(State.MIs[0]->getOperand(0).getReg());
2650 }
2651 case GICXXPred_MI_Predicate_GICombiner19: {
2652 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -0.0);
2653 }
2654 case GICXXPred_MI_Predicate_GICombiner20: {
2655 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 0.0);
2656 }
2657 case GICXXPred_MI_Predicate_GICombiner21: {
2658 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -1.0);
2659 }
2660 case GICXXPred_MI_Predicate_GICombiner22: {
2661 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_EQ &&
2662 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
2663 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
2664 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
2665 }
2666 case GICXXPred_MI_Predicate_GICombiner23: {
2667 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_NE &&
2668 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
2669 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
2670 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
2671 }
2672 case GICXXPred_MI_Predicate_GICombiner24: {
2673 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
2674 Helper.isLegalOrBeforeLegalizer({
2675 TargetOpcode::G_SEXT_INREG,
2676 {MRI.getType(State.MIs[1]->getOperand(1).getReg())},
2677 {},
2678 {1}
2679 });
2680 }
2681 case GICXXPred_MI_Predicate_GICombiner25: {
2682 auto C = isConstantOrConstantSplatVector(State.MIs[0]->getOperand(1).getReg(), MRI);
2683 return C && C->isZero();
2684 llvm_unreachable("GICombiner25 should have returned");
2685 }
2686 case GICXXPred_MI_Predicate_GICombiner26: {
2687 auto C = isConstantOrConstantSplatVector(State.MIs[0]->getOperand(1).getReg(), MRI);
2688 return C && !C->isZero();
2689 llvm_unreachable("GICombiner26 should have returned");
2690 }
2691 case GICXXPred_MI_Predicate_GICombiner27: {
2692 return !isConstantOrConstantSplatVector(State.MIs[0]->getOperand(1).getReg(), MRI) &&
2693 MRI.getType(State.MIs[0]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg()) &&
2694 VT->computeNumSignBits(State.MIs[0]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg()).getScalarSizeInBits();
2695 }
2696 case GICXXPred_MI_Predicate_GICombiner28: {
2697 return Helper.matchRedundantSExtInReg(*State.MIs[0]);
2698 }
2699 case GICXXPred_MI_Predicate_GICombiner29: {
2700 LLT SrcTy = MRI.getType(State.MIs[1]->getOperand(1).getReg());
2701 return State.MIs[0]->getOperand(2).getImm() <= SrcTy.getScalarSizeInBits() &&
2702 VT->computeNumSignBits(State.MIs[1]->getOperand(1).getReg()) >=
2703 (SrcTy.getScalarSizeInBits() - State.MIs[0]->getOperand(2).getImm() + 1);
2704 llvm_unreachable("GICombiner29 should have returned");
2705 }
2706 case GICXXPred_MI_Predicate_GICombiner30: {
2707 return Helper.matchConstantOp(State.MIs[0]->getOperand(3), 2);
2708 }
2709 case GICXXPred_MI_Predicate_GICombiner31: {
2710 return Helper.matchConstantOp(State.MIs[0]->getOperand(4), 0);
2711 }
2712 case GICXXPred_MI_Predicate_GICombiner32: {
2713 return Helper.isConstantNaN(State.MIs[0]->getOperand(1).getReg());
2714 }
2715 case GICXXPred_MI_Predicate_GICombiner33: {
2716 return Helper.isConstantNaN(State.MIs[0]->getOperand(2).getReg()) &&
2717 !Helper.isConstantNaN(State.MIs[0]->getOperand(1).getReg());
2718 }
2719 case GICXXPred_MI_Predicate_GICombiner34: {
2720 LLT Ty = MRI.getType(State.MIs[0]->getOperand(0).getReg());
2721 return Ty.isPointer() &&
2722 !isConstantOrConstantSplatVector(State.MIs[0]->getOperand(2).getReg(), MRI) &&
2723 !State.MIs[0]->getMF()->getDataLayout().isNonIntegralAddressSpace(
2724 Ty.getAddressSpace());
2725 llvm_unreachable("GICombiner34 should have returned");
2726 }
2727 case GICXXPred_MI_Predicate_GICombiner35: {
2728 return Helper.matchPtrAddZeroVector(*State.MIs[0]);
2729 }
2730 case GICXXPred_MI_Predicate_GICombiner36: {
2731 return Helper.isLegalOrBeforeLegalizer(
2732 {TargetOpcode::G_ROTL,
2733 {MRI.getType(State.MIs[0]->getOperand(1).getReg()),
2734 MRI.getType(State.MIs[0]->getOperand(1).getReg())}});
2735 }
2736 case GICXXPred_MI_Predicate_GICombiner37: {
2737 return Helper.isLegalOrBeforeLegalizer(
2738 {TargetOpcode::G_ROTR,
2739 {MRI.getType(State.MIs[0]->getOperand(1).getReg()),
2740 MRI.getType(State.MIs[0]->getOperand(1).getReg())}});
2741 }
2742 case GICXXPred_MI_Predicate_GICombiner38: {
2743 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_LSHR,
2744 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
2745 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
2746 }
2747 case GICXXPred_MI_Predicate_GICombiner39: {
2748 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_SHL,
2749 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
2750 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
2751 }
2752 case GICXXPred_MI_Predicate_GICombiner40: {
2753 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
2754 isConstantOrConstantSplatVector(State.MIs[1]->getOperand(2).getReg(), MRI) &&
2755 isConstantOrConstantSplatVector(State.MIs[0]->getOperand(2).getReg(), MRI) &&
2756 Helper.isDesirableToCommuteWithShift(*State.MIs[0]);
2757 }
2758 case GICXXPred_MI_Predicate_GICombiner41: {
2759 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_FSUB,
2760 {MRI.getType(State.MIs[0]->getOperand(0).getReg())}});
2761 }
2762 case GICXXPred_MI_Predicate_GICombiner42: {
2763 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_FADD,
2764 {MRI.getType(State.MIs[0]->getOperand(0).getReg())}});
2765 }
2766 case GICXXPred_MI_Predicate_GICombiner43: {
2767 return Helper.matchSameRegOrICstOrSplat(State.MIs[1]->getOperand(2).getReg(),
2768 State.MIs[0]->getOperand(2).getReg());
2769 }
2770 case GICXXPred_MI_Predicate_GICombiner44: {
2771 return Helper.matchSameRegOrICstOrSplat(State.MIs[1]->getOperand(1).getReg(),
2772 State.MIs[0]->getOperand(2).getReg());
2773 }
2774 case GICXXPred_MI_Predicate_GICombiner45: {
2775 return Helper.matchSameRegOrICstOrSplat(State.MIs[0]->getOperand(1).getReg(),
2776 State.MIs[1]->getOperand(2).getReg());
2777 }
2778 case GICXXPred_MI_Predicate_GICombiner46: {
2779 return Helper.matchSameRegOrICstOrSplat(State.MIs[0]->getOperand(1).getReg(),
2780 State.MIs[1]->getOperand(1).getReg());
2781 }
2782 case GICXXPred_MI_Predicate_GICombiner47: {
2783 return Helper.matchFsubToFneg(*State.MIs[0]);
2784 }
2785 case GICXXPred_MI_Predicate_GICombiner48: {
2786 return Helper.matchCommuteConstantToRHS(*State.MIs[0]);
2787 }
2788 case GICXXPred_MI_Predicate_GICombiner49: {
2789 return Helper.matchCommuteFPConstantToRHS(*State.MIs[0]);
2790 }
2791 case GICXXPred_MI_Predicate_GICombiner50: {
2792 return Helper.isLegalOrBeforeLegalizer(
2793 {TargetOpcode::G_ANYEXT,
2794 {MRI.getType(State.MIs[0]->getOperand(0).getReg()),
2795 MRI.getType(State.MIs[0]->getOperand(1).getReg())}});
2796 }
2797 case GICXXPred_MI_Predicate_GICombiner51: {
2798 return Helper.isLegalOrBeforeLegalizer(
2799 {TargetOpcode::G_ZEXT,
2800 {MRI.getType(State.MIs[0]->getOperand(0).getReg()),
2801 MRI.getType(State.MIs[0]->getOperand(1).getReg())}});
2802 }
2803 case GICXXPred_MI_Predicate_GICombiner52: {
2804 return MRI.use_nodbg_empty(State.MIs[0]->getOperand(1).getReg()) &&
2805 Helper.isLegalOrBeforeLegalizer(
2806 {TargetOpcode::G_ADD,
2807 {MRI.getType(State.MIs[0]->getOperand(0).getReg())}});
2808 }
2809 case GICXXPred_MI_Predicate_GICombiner53: {
2810 return Helper.matchTruncUSatU(*State.MIs[0], *State.MIs[1]);
2811 }
2812 case GICXXPred_MI_Predicate_GICombiner54: {
2813 return Helper.matchTruncUSatUToFPTOUISat(*State.MIs[0], *State.MIs[1]);
2814 }
2815 case GICXXPred_MI_Predicate_GICombiner55: {
2816 return Helper.matchCountZeroToZeroPoison(*State.MIs[0],
2817 TargetOpcode::G_CTLZ, TargetOpcode::G_CTLZ_ZERO_POISON);
2818 }
2819 case GICXXPred_MI_Predicate_GICombiner56: {
2820 return Helper.matchCountZeroToZeroPoison(*State.MIs[0],
2821 TargetOpcode::G_CTTZ, TargetOpcode::G_CTTZ_ZERO_POISON);
2822 }
2823 case GICXXPred_MI_Predicate_GICombiner57: {
2824 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
2825 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
2826 }
2827 case GICXXPred_MI_Predicate_GICombiner58: {
2828 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
2829 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
2830 }
2831 case GICXXPred_MI_Predicate_GICombiner59: {
2832 return MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(2).getReg()) &&
2833 MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg());
2834 }
2835 case GICXXPred_MI_Predicate_GICombiner60: {
2836 return MRI.getType(State.MIs[2]->getOperand(1).getReg()) ==
2837 MRI.getType(State.MIs[3]->getOperand(1).getReg()) &&
2838 Helper.isLegal({TargetOpcode::G_UAVGFLOOR,
2839 {MRI.getType(State.MIs[2]->getOperand(1).getReg())}});
2840 }
2841 case GICXXPred_MI_Predicate_GICombiner61: {
2842 return MRI.getType(State.MIs[2]->getOperand(1).getReg()) ==
2843 MRI.getType(State.MIs[3]->getOperand(1).getReg()) &&
2844 Helper.isLegal({TargetOpcode::G_SAVGFLOOR,
2845 {MRI.getType(State.MIs[2]->getOperand(1).getReg())}});
2846 }
2847 case GICXXPred_MI_Predicate_GICombiner62: {
2848 return MRI.getType(State.MIs[3]->getOperand(1).getReg()) ==
2849 MRI.getType(State.MIs[4]->getOperand(1).getReg()) &&
2850 Helper.isLegal({TargetOpcode::G_UAVGCEIL,
2851 {MRI.getType(State.MIs[3]->getOperand(1).getReg())}});
2852 }
2853 case GICXXPred_MI_Predicate_GICombiner63: {
2854 return MRI.getType(State.MIs[3]->getOperand(1).getReg()) ==
2855 MRI.getType(State.MIs[4]->getOperand(1).getReg()) &&
2856 Helper.isLegal({TargetOpcode::G_SAVGCEIL,
2857 {MRI.getType(State.MIs[3]->getOperand(1).getReg())}});
2858 }
2859 case GICXXPred_MI_Predicate_GICombiner64: {
2860 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
2861 Helper.isLegalOrBeforeLegalizer(
2862 {TargetOpcode::G_UNMERGE_VALUES,
2863 {LLT::integer(16), LLT::integer(32)}});
2864 }
2865 case GICXXPred_MI_Predicate_GICombiner65: {
2866 return Helper.matchBinopWith32BitMask(State.MIs[0]->getOperand(1).getReg(), State.MIs[0]->getOperand(2).getReg());
2867 }
2868 }
2869 llvm_unreachable("Unknown predicate");
2870 return false;
2871}
2872bool AMDGPUPreLegalizerCombinerImpl::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
2873 llvm_unreachable("Unknown predicate");
2874 return false;
2875}
2876bool AMDGPUPreLegalizerCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
2877 llvm_unreachable("Unknown predicate");
2878 return false;
2879}
2880bool AMDGPUPreLegalizerCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
2881 llvm_unreachable("Unknown predicate");
2882 return false;
2883}
2884bool AMDGPUPreLegalizerCombinerImpl::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
2885 llvm_unreachable("Unknown predicate");
2886 return false;
2887}
2888enum {
2889 GICXXPred_Simple_IsRule0Enabled = GICXXPred_Invalid + 1,
2890 GICXXPred_Simple_IsRule1Enabled,
2891 GICXXPred_Simple_IsRule2Enabled,
2892 GICXXPred_Simple_IsRule3Enabled,
2893 GICXXPred_Simple_IsRule4Enabled,
2894 GICXXPred_Simple_IsRule5Enabled,
2895 GICXXPred_Simple_IsRule6Enabled,
2896 GICXXPred_Simple_IsRule7Enabled,
2897 GICXXPred_Simple_IsRule8Enabled,
2898 GICXXPred_Simple_IsRule9Enabled,
2899 GICXXPred_Simple_IsRule10Enabled,
2900 GICXXPred_Simple_IsRule11Enabled,
2901 GICXXPred_Simple_IsRule12Enabled,
2902 GICXXPred_Simple_IsRule13Enabled,
2903 GICXXPred_Simple_IsRule14Enabled,
2904 GICXXPred_Simple_IsRule15Enabled,
2905 GICXXPred_Simple_IsRule16Enabled,
2906 GICXXPred_Simple_IsRule17Enabled,
2907 GICXXPred_Simple_IsRule18Enabled,
2908 GICXXPred_Simple_IsRule19Enabled,
2909 GICXXPred_Simple_IsRule20Enabled,
2910 GICXXPred_Simple_IsRule21Enabled,
2911 GICXXPred_Simple_IsRule22Enabled,
2912 GICXXPred_Simple_IsRule23Enabled,
2913 GICXXPred_Simple_IsRule24Enabled,
2914 GICXXPred_Simple_IsRule25Enabled,
2915 GICXXPred_Simple_IsRule26Enabled,
2916 GICXXPred_Simple_IsRule27Enabled,
2917 GICXXPred_Simple_IsRule28Enabled,
2918 GICXXPred_Simple_IsRule29Enabled,
2919 GICXXPred_Simple_IsRule30Enabled,
2920 GICXXPred_Simple_IsRule31Enabled,
2921 GICXXPred_Simple_IsRule32Enabled,
2922 GICXXPred_Simple_IsRule33Enabled,
2923 GICXXPred_Simple_IsRule34Enabled,
2924 GICXXPred_Simple_IsRule35Enabled,
2925 GICXXPred_Simple_IsRule36Enabled,
2926 GICXXPred_Simple_IsRule37Enabled,
2927 GICXXPred_Simple_IsRule38Enabled,
2928 GICXXPred_Simple_IsRule39Enabled,
2929 GICXXPred_Simple_IsRule40Enabled,
2930 GICXXPred_Simple_IsRule41Enabled,
2931 GICXXPred_Simple_IsRule42Enabled,
2932 GICXXPred_Simple_IsRule43Enabled,
2933 GICXXPred_Simple_IsRule44Enabled,
2934 GICXXPred_Simple_IsRule45Enabled,
2935 GICXXPred_Simple_IsRule46Enabled,
2936 GICXXPred_Simple_IsRule47Enabled,
2937 GICXXPred_Simple_IsRule48Enabled,
2938 GICXXPred_Simple_IsRule49Enabled,
2939 GICXXPred_Simple_IsRule50Enabled,
2940 GICXXPred_Simple_IsRule51Enabled,
2941 GICXXPred_Simple_IsRule52Enabled,
2942 GICXXPred_Simple_IsRule53Enabled,
2943 GICXXPred_Simple_IsRule54Enabled,
2944 GICXXPred_Simple_IsRule55Enabled,
2945 GICXXPred_Simple_IsRule56Enabled,
2946 GICXXPred_Simple_IsRule57Enabled,
2947 GICXXPred_Simple_IsRule58Enabled,
2948 GICXXPred_Simple_IsRule59Enabled,
2949 GICXXPred_Simple_IsRule60Enabled,
2950 GICXXPred_Simple_IsRule61Enabled,
2951 GICXXPred_Simple_IsRule62Enabled,
2952 GICXXPred_Simple_IsRule63Enabled,
2953 GICXXPred_Simple_IsRule64Enabled,
2954 GICXXPred_Simple_IsRule65Enabled,
2955 GICXXPred_Simple_IsRule66Enabled,
2956 GICXXPred_Simple_IsRule67Enabled,
2957 GICXXPred_Simple_IsRule68Enabled,
2958 GICXXPred_Simple_IsRule69Enabled,
2959 GICXXPred_Simple_IsRule70Enabled,
2960 GICXXPred_Simple_IsRule71Enabled,
2961 GICXXPred_Simple_IsRule72Enabled,
2962 GICXXPred_Simple_IsRule73Enabled,
2963 GICXXPred_Simple_IsRule74Enabled,
2964 GICXXPred_Simple_IsRule75Enabled,
2965 GICXXPred_Simple_IsRule76Enabled,
2966 GICXXPred_Simple_IsRule77Enabled,
2967 GICXXPred_Simple_IsRule78Enabled,
2968 GICXXPred_Simple_IsRule79Enabled,
2969 GICXXPred_Simple_IsRule80Enabled,
2970 GICXXPred_Simple_IsRule81Enabled,
2971 GICXXPred_Simple_IsRule82Enabled,
2972 GICXXPred_Simple_IsRule83Enabled,
2973 GICXXPred_Simple_IsRule84Enabled,
2974 GICXXPred_Simple_IsRule85Enabled,
2975 GICXXPred_Simple_IsRule86Enabled,
2976 GICXXPred_Simple_IsRule87Enabled,
2977 GICXXPred_Simple_IsRule88Enabled,
2978 GICXXPred_Simple_IsRule89Enabled,
2979 GICXXPred_Simple_IsRule90Enabled,
2980 GICXXPred_Simple_IsRule91Enabled,
2981 GICXXPred_Simple_IsRule92Enabled,
2982 GICXXPred_Simple_IsRule93Enabled,
2983 GICXXPred_Simple_IsRule94Enabled,
2984 GICXXPred_Simple_IsRule95Enabled,
2985 GICXXPred_Simple_IsRule96Enabled,
2986 GICXXPred_Simple_IsRule97Enabled,
2987 GICXXPred_Simple_IsRule98Enabled,
2988 GICXXPred_Simple_IsRule99Enabled,
2989 GICXXPred_Simple_IsRule100Enabled,
2990 GICXXPred_Simple_IsRule101Enabled,
2991 GICXXPred_Simple_IsRule102Enabled,
2992 GICXXPred_Simple_IsRule103Enabled,
2993 GICXXPred_Simple_IsRule104Enabled,
2994 GICXXPred_Simple_IsRule105Enabled,
2995 GICXXPred_Simple_IsRule106Enabled,
2996 GICXXPred_Simple_IsRule107Enabled,
2997 GICXXPred_Simple_IsRule108Enabled,
2998 GICXXPred_Simple_IsRule109Enabled,
2999 GICXXPred_Simple_IsRule110Enabled,
3000 GICXXPred_Simple_IsRule111Enabled,
3001 GICXXPred_Simple_IsRule112Enabled,
3002 GICXXPred_Simple_IsRule113Enabled,
3003 GICXXPred_Simple_IsRule114Enabled,
3004 GICXXPred_Simple_IsRule115Enabled,
3005 GICXXPred_Simple_IsRule116Enabled,
3006 GICXXPred_Simple_IsRule117Enabled,
3007 GICXXPred_Simple_IsRule118Enabled,
3008 GICXXPred_Simple_IsRule119Enabled,
3009 GICXXPred_Simple_IsRule120Enabled,
3010 GICXXPred_Simple_IsRule121Enabled,
3011 GICXXPred_Simple_IsRule122Enabled,
3012 GICXXPred_Simple_IsRule123Enabled,
3013 GICXXPred_Simple_IsRule124Enabled,
3014 GICXXPred_Simple_IsRule125Enabled,
3015 GICXXPred_Simple_IsRule126Enabled,
3016 GICXXPred_Simple_IsRule127Enabled,
3017 GICXXPred_Simple_IsRule128Enabled,
3018 GICXXPred_Simple_IsRule129Enabled,
3019 GICXXPred_Simple_IsRule130Enabled,
3020 GICXXPred_Simple_IsRule131Enabled,
3021 GICXXPred_Simple_IsRule132Enabled,
3022 GICXXPred_Simple_IsRule133Enabled,
3023 GICXXPred_Simple_IsRule134Enabled,
3024 GICXXPred_Simple_IsRule135Enabled,
3025 GICXXPred_Simple_IsRule136Enabled,
3026 GICXXPred_Simple_IsRule137Enabled,
3027 GICXXPred_Simple_IsRule138Enabled,
3028 GICXXPred_Simple_IsRule139Enabled,
3029 GICXXPred_Simple_IsRule140Enabled,
3030 GICXXPred_Simple_IsRule141Enabled,
3031 GICXXPred_Simple_IsRule142Enabled,
3032 GICXXPred_Simple_IsRule143Enabled,
3033 GICXXPred_Simple_IsRule144Enabled,
3034 GICXXPred_Simple_IsRule145Enabled,
3035 GICXXPred_Simple_IsRule146Enabled,
3036 GICXXPred_Simple_IsRule147Enabled,
3037 GICXXPred_Simple_IsRule148Enabled,
3038 GICXXPred_Simple_IsRule149Enabled,
3039 GICXXPred_Simple_IsRule150Enabled,
3040 GICXXPred_Simple_IsRule151Enabled,
3041 GICXXPred_Simple_IsRule152Enabled,
3042 GICXXPred_Simple_IsRule153Enabled,
3043 GICXXPred_Simple_IsRule154Enabled,
3044 GICXXPred_Simple_IsRule155Enabled,
3045 GICXXPred_Simple_IsRule156Enabled,
3046 GICXXPred_Simple_IsRule157Enabled,
3047 GICXXPred_Simple_IsRule158Enabled,
3048 GICXXPred_Simple_IsRule159Enabled,
3049 GICXXPred_Simple_IsRule160Enabled,
3050 GICXXPred_Simple_IsRule161Enabled,
3051 GICXXPred_Simple_IsRule162Enabled,
3052 GICXXPred_Simple_IsRule163Enabled,
3053 GICXXPred_Simple_IsRule164Enabled,
3054 GICXXPred_Simple_IsRule165Enabled,
3055 GICXXPred_Simple_IsRule166Enabled,
3056 GICXXPred_Simple_IsRule167Enabled,
3057 GICXXPred_Simple_IsRule168Enabled,
3058 GICXXPred_Simple_IsRule169Enabled,
3059 GICXXPred_Simple_IsRule170Enabled,
3060 GICXXPred_Simple_IsRule171Enabled,
3061 GICXXPred_Simple_IsRule172Enabled,
3062 GICXXPred_Simple_IsRule173Enabled,
3063 GICXXPred_Simple_IsRule174Enabled,
3064 GICXXPred_Simple_IsRule175Enabled,
3065 GICXXPred_Simple_IsRule176Enabled,
3066 GICXXPred_Simple_IsRule177Enabled,
3067 GICXXPred_Simple_IsRule178Enabled,
3068 GICXXPred_Simple_IsRule179Enabled,
3069 GICXXPred_Simple_IsRule180Enabled,
3070 GICXXPred_Simple_IsRule181Enabled,
3071 GICXXPred_Simple_IsRule182Enabled,
3072 GICXXPred_Simple_IsRule183Enabled,
3073 GICXXPred_Simple_IsRule184Enabled,
3074 GICXXPred_Simple_IsRule185Enabled,
3075 GICXXPred_Simple_IsRule186Enabled,
3076 GICXXPred_Simple_IsRule187Enabled,
3077 GICXXPred_Simple_IsRule188Enabled,
3078 GICXXPred_Simple_IsRule189Enabled,
3079 GICXXPred_Simple_IsRule190Enabled,
3080 GICXXPred_Simple_IsRule191Enabled,
3081 GICXXPred_Simple_IsRule192Enabled,
3082 GICXXPred_Simple_IsRule193Enabled,
3083 GICXXPred_Simple_IsRule194Enabled,
3084 GICXXPred_Simple_IsRule195Enabled,
3085 GICXXPred_Simple_IsRule196Enabled,
3086 GICXXPred_Simple_IsRule197Enabled,
3087 GICXXPred_Simple_IsRule198Enabled,
3088 GICXXPred_Simple_IsRule199Enabled,
3089 GICXXPred_Simple_IsRule200Enabled,
3090 GICXXPred_Simple_IsRule201Enabled,
3091 GICXXPred_Simple_IsRule202Enabled,
3092 GICXXPred_Simple_IsRule203Enabled,
3093 GICXXPred_Simple_IsRule204Enabled,
3094 GICXXPred_Simple_IsRule205Enabled,
3095 GICXXPred_Simple_IsRule206Enabled,
3096 GICXXPred_Simple_IsRule207Enabled,
3097 GICXXPred_Simple_IsRule208Enabled,
3098 GICXXPred_Simple_IsRule209Enabled,
3099 GICXXPred_Simple_IsRule210Enabled,
3100 GICXXPred_Simple_IsRule211Enabled,
3101 GICXXPred_Simple_IsRule212Enabled,
3102 GICXXPred_Simple_IsRule213Enabled,
3103 GICXXPred_Simple_IsRule214Enabled,
3104 GICXXPred_Simple_IsRule215Enabled,
3105 GICXXPred_Simple_IsRule216Enabled,
3106 GICXXPred_Simple_IsRule217Enabled,
3107 GICXXPred_Simple_IsRule218Enabled,
3108 GICXXPred_Simple_IsRule219Enabled,
3109 GICXXPred_Simple_IsRule220Enabled,
3110 GICXXPred_Simple_IsRule221Enabled,
3111 GICXXPred_Simple_IsRule222Enabled,
3112 GICXXPred_Simple_IsRule223Enabled,
3113 GICXXPred_Simple_IsRule224Enabled,
3114 GICXXPred_Simple_IsRule225Enabled,
3115 GICXXPred_Simple_IsRule226Enabled,
3116 GICXXPred_Simple_IsRule227Enabled,
3117 GICXXPred_Simple_IsRule228Enabled,
3118 GICXXPred_Simple_IsRule229Enabled,
3119 GICXXPred_Simple_IsRule230Enabled,
3120 GICXXPred_Simple_IsRule231Enabled,
3121 GICXXPred_Simple_IsRule232Enabled,
3122 GICXXPred_Simple_IsRule233Enabled,
3123 GICXXPred_Simple_IsRule234Enabled,
3124 GICXXPred_Simple_IsRule235Enabled,
3125 GICXXPred_Simple_IsRule236Enabled,
3126 GICXXPred_Simple_IsRule237Enabled,
3127 GICXXPred_Simple_IsRule238Enabled,
3128 GICXXPred_Simple_IsRule239Enabled,
3129 GICXXPred_Simple_IsRule240Enabled,
3130 GICXXPred_Simple_IsRule241Enabled,
3131 GICXXPred_Simple_IsRule242Enabled,
3132 GICXXPred_Simple_IsRule243Enabled,
3133 GICXXPred_Simple_IsRule244Enabled,
3134 GICXXPred_Simple_IsRule245Enabled,
3135 GICXXPred_Simple_IsRule246Enabled,
3136 GICXXPred_Simple_IsRule247Enabled,
3137 GICXXPred_Simple_IsRule248Enabled,
3138 GICXXPred_Simple_IsRule249Enabled,
3139 GICXXPred_Simple_IsRule250Enabled,
3140 GICXXPred_Simple_IsRule251Enabled,
3141 GICXXPred_Simple_IsRule252Enabled,
3142 GICXXPred_Simple_IsRule253Enabled,
3143 GICXXPred_Simple_IsRule254Enabled,
3144 GICXXPred_Simple_IsRule255Enabled,
3145 GICXXPred_Simple_IsRule256Enabled,
3146 GICXXPred_Simple_IsRule257Enabled,
3147 GICXXPred_Simple_IsRule258Enabled,
3148 GICXXPred_Simple_IsRule259Enabled,
3149 GICXXPred_Simple_IsRule260Enabled,
3150 GICXXPred_Simple_IsRule261Enabled,
3151 GICXXPred_Simple_IsRule262Enabled,
3152 GICXXPred_Simple_IsRule263Enabled,
3153 GICXXPred_Simple_IsRule264Enabled,
3154 GICXXPred_Simple_IsRule265Enabled,
3155 GICXXPred_Simple_IsRule266Enabled,
3156 GICXXPred_Simple_IsRule267Enabled,
3157 GICXXPred_Simple_IsRule268Enabled,
3158 GICXXPred_Simple_IsRule269Enabled,
3159 GICXXPred_Simple_IsRule270Enabled,
3160 GICXXPred_Simple_IsRule271Enabled,
3161 GICXXPred_Simple_IsRule272Enabled,
3162 GICXXPred_Simple_IsRule273Enabled,
3163 GICXXPred_Simple_IsRule274Enabled,
3164 GICXXPred_Simple_IsRule275Enabled,
3165 GICXXPred_Simple_IsRule276Enabled,
3166 GICXXPred_Simple_IsRule277Enabled,
3167 GICXXPred_Simple_IsRule278Enabled,
3168 GICXXPred_Simple_IsRule279Enabled,
3169 GICXXPred_Simple_IsRule280Enabled,
3170 GICXXPred_Simple_IsRule281Enabled,
3171 GICXXPred_Simple_IsRule282Enabled,
3172 GICXXPred_Simple_IsRule283Enabled,
3173 GICXXPred_Simple_IsRule284Enabled,
3174 GICXXPred_Simple_IsRule285Enabled,
3175 GICXXPred_Simple_IsRule286Enabled,
3176 GICXXPred_Simple_IsRule287Enabled,
3177 GICXXPred_Simple_IsRule288Enabled,
3178 GICXXPred_Simple_IsRule289Enabled,
3179 GICXXPred_Simple_IsRule290Enabled,
3180 GICXXPred_Simple_IsRule291Enabled,
3181 GICXXPred_Simple_IsRule292Enabled,
3182 GICXXPred_Simple_IsRule293Enabled,
3183 GICXXPred_Simple_IsRule294Enabled,
3184 GICXXPred_Simple_IsRule295Enabled,
3185 GICXXPred_Simple_IsRule296Enabled,
3186 GICXXPred_Simple_IsRule297Enabled,
3187 GICXXPred_Simple_IsRule298Enabled,
3188 GICXXPred_Simple_IsRule299Enabled,
3189 GICXXPred_Simple_IsRule300Enabled,
3190 GICXXPred_Simple_IsRule301Enabled,
3191 GICXXPred_Simple_IsRule302Enabled,
3192 GICXXPred_Simple_IsRule303Enabled,
3193 GICXXPred_Simple_IsRule304Enabled,
3194 GICXXPred_Simple_IsRule305Enabled,
3195 GICXXPred_Simple_IsRule306Enabled,
3196 GICXXPred_Simple_IsRule307Enabled,
3197 GICXXPred_Simple_IsRule308Enabled,
3198 GICXXPred_Simple_IsRule309Enabled,
3199 GICXXPred_Simple_IsRule310Enabled,
3200 GICXXPred_Simple_IsRule311Enabled,
3201 GICXXPred_Simple_IsRule312Enabled,
3202 GICXXPred_Simple_IsRule313Enabled,
3203 GICXXPred_Simple_IsRule314Enabled,
3204 GICXXPred_Simple_IsRule315Enabled,
3205 GICXXPred_Simple_IsRule316Enabled,
3206 GICXXPred_Simple_IsRule317Enabled,
3207 GICXXPred_Simple_IsRule318Enabled,
3208 GICXXPred_Simple_IsRule319Enabled,
3209 GICXXPred_Simple_IsRule320Enabled,
3210 GICXXPred_Simple_IsRule321Enabled,
3211 GICXXPred_Simple_IsRule322Enabled,
3212 GICXXPred_Simple_IsRule323Enabled,
3213 GICXXPred_Simple_IsRule324Enabled,
3214 GICXXPred_Simple_IsRule325Enabled,
3215 GICXXPred_Simple_IsRule326Enabled,
3216 GICXXPred_Simple_IsRule327Enabled,
3217 GICXXPred_Simple_IsRule328Enabled,
3218 GICXXPred_Simple_IsRule329Enabled,
3219 GICXXPred_Simple_IsRule330Enabled,
3220 GICXXPred_Simple_IsRule331Enabled,
3221 GICXXPred_Simple_IsRule332Enabled,
3222 GICXXPred_Simple_IsRule333Enabled,
3223 GICXXPred_Simple_IsRule334Enabled,
3224 GICXXPred_Simple_IsRule335Enabled,
3225 GICXXPred_Simple_IsRule336Enabled,
3226 GICXXPred_Simple_IsRule337Enabled,
3227 GICXXPred_Simple_IsRule338Enabled,
3228 GICXXPred_Simple_IsRule339Enabled,
3229 GICXXPred_Simple_IsRule340Enabled,
3230 GICXXPred_Simple_IsRule341Enabled,
3231 GICXXPred_Simple_IsRule342Enabled,
3232 GICXXPred_Simple_IsRule343Enabled,
3233};
3234
3235bool AMDGPUPreLegalizerCombinerImpl::testSimplePredicate(unsigned Predicate) const {
3236 return RuleConfig.isRuleEnabled(Predicate - GICXXPred_Invalid - 1);
3237}
3238// Custom renderers.
3239enum {
3240 GICR_Invalid,
3241};
3242AMDGPUPreLegalizerCombinerImpl::CustomRendererFn
3243AMDGPUPreLegalizerCombinerImpl::CustomRenderers[] = {
3244 nullptr, // GICR_Invalid
3245};
3246
3247bool AMDGPUPreLegalizerCombinerImpl::canMatchOpcode(unsigned Opc) const {
3248 switch (Opc) {
3249 case TargetOpcode::G_SADDE:
3250 case TargetOpcode::G_SSUBE:
3251 case TargetOpcode::G_UADDE:
3252 case TargetOpcode::G_USUBE:
3253 case TargetOpcode::G_FCMP:
3254 case TargetOpcode::G_FMA:
3255 case TargetOpcode::G_FMAD:
3256 case TargetOpcode::G_FSHL:
3257 case TargetOpcode::G_FSHR:
3258 case TargetOpcode::G_ICMP:
3259 case TargetOpcode::G_INSERT_VECTOR_ELT:
3260 case TargetOpcode::G_SADDO:
3261 case TargetOpcode::G_SELECT:
3262 case TargetOpcode::G_SHUFFLE_VECTOR:
3263 case TargetOpcode::G_SMULFIX:
3264 case TargetOpcode::G_SMULFIXSAT:
3265 case TargetOpcode::G_SMULO:
3266 case TargetOpcode::G_SSUBO:
3267 case TargetOpcode::G_UADDO:
3268 case TargetOpcode::G_UMULFIX:
3269 case TargetOpcode::G_UMULFIXSAT:
3270 case TargetOpcode::G_UMULO:
3271 case TargetOpcode::G_USUBO:
3272 case TargetOpcode::G_ADD:
3273 case TargetOpcode::G_AND:
3274 case TargetOpcode::G_ASHR:
3275 case TargetOpcode::G_EXTRACT_VECTOR_ELT:
3276 case TargetOpcode::G_FADD:
3277 case TargetOpcode::G_FCOPYSIGN:
3278 case TargetOpcode::G_FDIV:
3279 case TargetOpcode::G_FMAXIMUM:
3280 case TargetOpcode::G_FMAXIMUMNUM:
3281 case TargetOpcode::G_FMAXNUM:
3282 case TargetOpcode::G_FMAXNUM_IEEE:
3283 case TargetOpcode::G_FMINIMUM:
3284 case TargetOpcode::G_FMINIMUMNUM:
3285 case TargetOpcode::G_FMINNUM:
3286 case TargetOpcode::G_FMINNUM_IEEE:
3287 case TargetOpcode::G_FMUL:
3288 case TargetOpcode::G_FPOWI:
3289 case TargetOpcode::G_FREM:
3290 case TargetOpcode::G_FSUB:
3291 case TargetOpcode::G_LSHR:
3292 case TargetOpcode::G_MERGE_VALUES:
3293 case TargetOpcode::G_MUL:
3294 case TargetOpcode::G_OR:
3295 case TargetOpcode::G_PTR_ADD:
3296 case TargetOpcode::G_ROTL:
3297 case TargetOpcode::G_ROTR:
3298 case TargetOpcode::G_SADDSAT:
3299 case TargetOpcode::G_SDIV:
3300 case TargetOpcode::G_SEXT_INREG:
3301 case TargetOpcode::G_SHL:
3302 case TargetOpcode::G_SMAX:
3303 case TargetOpcode::G_SMIN:
3304 case TargetOpcode::G_SMULH:
3305 case TargetOpcode::G_SREM:
3306 case TargetOpcode::G_SSHLSAT:
3307 case TargetOpcode::G_SUB:
3308 case TargetOpcode::G_UADDSAT:
3309 case TargetOpcode::G_UDIV:
3310 case TargetOpcode::G_UMAX:
3311 case TargetOpcode::G_UMIN:
3312 case TargetOpcode::G_UMULH:
3313 case TargetOpcode::G_UREM:
3314 case TargetOpcode::G_USHLSAT:
3315 case TargetOpcode::G_XOR:
3316 case TargetOpcode::COPY:
3317 case TargetOpcode::G_ABS:
3318 case TargetOpcode::G_ANYEXT:
3319 case TargetOpcode::G_BITCAST:
3320 case TargetOpcode::G_BITREVERSE:
3321 case TargetOpcode::G_BSWAP:
3322 case TargetOpcode::G_BUILD_VECTOR:
3323 case TargetOpcode::G_BUILD_VECTOR_TRUNC:
3324 case TargetOpcode::G_CONCAT_VECTORS:
3325 case TargetOpcode::G_CTLZ:
3326 case TargetOpcode::G_CTLZ_ZERO_POISON:
3327 case TargetOpcode::G_CTPOP:
3328 case TargetOpcode::G_CTTZ:
3329 case TargetOpcode::G_CTTZ_ZERO_POISON:
3330 case TargetOpcode::G_FABS:
3331 case TargetOpcode::G_FCANONICALIZE:
3332 case TargetOpcode::G_FCEIL:
3333 case TargetOpcode::G_FFLOOR:
3334 case TargetOpcode::G_FLOG2:
3335 case TargetOpcode::G_FNEARBYINT:
3336 case TargetOpcode::G_FNEG:
3337 case TargetOpcode::G_FPEXT:
3338 case TargetOpcode::G_FPTOSI:
3339 case TargetOpcode::G_FPTOUI:
3340 case TargetOpcode::G_FPTRUNC:
3341 case TargetOpcode::G_FREEZE:
3342 case TargetOpcode::G_FRINT:
3343 case TargetOpcode::G_FSQRT:
3344 case TargetOpcode::G_INTRINSIC_ROUND:
3345 case TargetOpcode::G_INTRINSIC_ROUNDEVEN:
3346 case TargetOpcode::G_INTRINSIC_TRUNC:
3347 case TargetOpcode::G_INTTOPTR:
3348 case TargetOpcode::G_LOAD:
3349 case TargetOpcode::G_PHI:
3350 case TargetOpcode::G_PTRTOINT:
3351 case TargetOpcode::G_SEXT:
3352 case TargetOpcode::G_SEXTLOAD:
3353 case TargetOpcode::G_SITOFP:
3354 case TargetOpcode::G_STORE:
3355 case TargetOpcode::G_TRUNC:
3356 case TargetOpcode::G_TRUNC_USAT_U:
3357 case TargetOpcode::G_UITOFP:
3358 case TargetOpcode::G_ZEXT:
3359 case TargetOpcode::G_ZEXTLOAD:
3360 case TargetOpcode::G_BR:
3361 case TargetOpcode::G_UNMERGE_VALUES:
3362 return true;
3363 default:
3364 return false;
3365 }
3366}
3367
3368uint32_t AMDGPUPreLegalizerCombinerImpl::getRootFlagsToDrop() const {
3369 return MachineInstr::getPoisonGeneratingFlags();
3370}
3371
3372bool AMDGPUPreLegalizerCombinerImpl::tryCombineAllImpl(MachineInstr &I) const {
3373 const PredicateBitset AvailableFeatures = getAvailableFeatures();
3374 State.MIs.clear();
3375 State.MIs.push_back(&I);
3376 if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), Helper.getTII(), MRI, Helper.getTRI(), Helper.getRBI(), AvailableFeatures, /*CoverageInfo*/ nullptr)) {
3377 return true;
3378 }
3379
3380 return false;
3381}
3382
3383enum {
3384 GICXXCustomAction_GICombiner0 = GICXXCustomAction_Invalid + 1,
3385 GICXXCustomAction_GICombiner1,
3386 GICXXCustomAction_GICombiner2,
3387 GICXXCustomAction_GICombiner3,
3388 GICXXCustomAction_GICombiner4,
3389 GICXXCustomAction_GICombiner5,
3390 GICXXCustomAction_GICombiner6,
3391 GICXXCustomAction_GICombiner7,
3392 GICXXCustomAction_GICombiner8,
3393 GICXXCustomAction_GICombiner9,
3394 GICXXCustomAction_GICombiner10,
3395 GICXXCustomAction_GICombiner11,
3396 GICXXCustomAction_GICombiner12,
3397 GICXXCustomAction_GICombiner13,
3398 GICXXCustomAction_GICombiner14,
3399 GICXXCustomAction_GICombiner15,
3400 GICXXCustomAction_GICombiner16,
3401 GICXXCustomAction_GICombiner17,
3402 GICXXCustomAction_GICombiner18,
3403 GICXXCustomAction_GICombiner19,
3404 GICXXCustomAction_GICombiner20,
3405 GICXXCustomAction_GICombiner21,
3406 GICXXCustomAction_GICombiner22,
3407 GICXXCustomAction_GICombiner23,
3408 GICXXCustomAction_GICombiner24,
3409 GICXXCustomAction_GICombiner25,
3410 GICXXCustomAction_GICombiner26,
3411 GICXXCustomAction_GICombiner27,
3412 GICXXCustomAction_GICombiner28,
3413 GICXXCustomAction_GICombiner29,
3414 GICXXCustomAction_GICombiner30,
3415 GICXXCustomAction_GICombiner31,
3416 GICXXCustomAction_GICombiner32,
3417 GICXXCustomAction_GICombiner33,
3418 GICXXCustomAction_GICombiner34,
3419 GICXXCustomAction_GICombiner35,
3420 GICXXCustomAction_GICombiner36,
3421 GICXXCustomAction_GICombiner37,
3422 GICXXCustomAction_GICombiner38,
3423 GICXXCustomAction_GICombiner39,
3424 GICXXCustomAction_GICombiner40,
3425 GICXXCustomAction_GICombiner41,
3426 GICXXCustomAction_GICombiner42,
3427 GICXXCustomAction_GICombiner43,
3428 GICXXCustomAction_GICombiner44,
3429 GICXXCustomAction_GICombiner45,
3430 GICXXCustomAction_GICombiner46,
3431 GICXXCustomAction_GICombiner47,
3432 GICXXCustomAction_GICombiner48,
3433 GICXXCustomAction_GICombiner49,
3434 GICXXCustomAction_GICombiner50,
3435 GICXXCustomAction_GICombiner51,
3436 GICXXCustomAction_GICombiner52,
3437 GICXXCustomAction_GICombiner53,
3438 GICXXCustomAction_GICombiner54,
3439 GICXXCustomAction_GICombiner55,
3440 GICXXCustomAction_GICombiner56,
3441 GICXXCustomAction_GICombiner57,
3442 GICXXCustomAction_GICombiner58,
3443 GICXXCustomAction_GICombiner59,
3444 GICXXCustomAction_GICombiner60,
3445 GICXXCustomAction_GICombiner61,
3446 GICXXCustomAction_GICombiner62,
3447 GICXXCustomAction_GICombiner63,
3448 GICXXCustomAction_GICombiner64,
3449 GICXXCustomAction_GICombiner65,
3450 GICXXCustomAction_GICombiner66,
3451 GICXXCustomAction_GICombiner67,
3452 GICXXCustomAction_GICombiner68,
3453 GICXXCustomAction_GICombiner69,
3454 GICXXCustomAction_GICombiner70,
3455 GICXXCustomAction_GICombiner71,
3456 GICXXCustomAction_GICombiner72,
3457 GICXXCustomAction_GICombiner73,
3458 GICXXCustomAction_GICombiner74,
3459 GICXXCustomAction_GICombiner75,
3460 GICXXCustomAction_GICombiner76,
3461 GICXXCustomAction_GICombiner77,
3462 GICXXCustomAction_GICombiner78,
3463 GICXXCustomAction_GICombiner79,
3464 GICXXCustomAction_GICombiner80,
3465 GICXXCustomAction_GICombiner81,
3466 GICXXCustomAction_GICombiner82,
3467 GICXXCustomAction_GICombiner83,
3468 GICXXCustomAction_GICombiner84,
3469 GICXXCustomAction_GICombiner85,
3470 GICXXCustomAction_GICombiner86,
3471 GICXXCustomAction_GICombiner87,
3472 GICXXCustomAction_GICombiner88,
3473 GICXXCustomAction_GICombiner89,
3474 GICXXCustomAction_GICombiner90,
3475 GICXXCustomAction_GICombiner91,
3476 GICXXCustomAction_GICombiner92,
3477 GICXXCustomAction_GICombiner93,
3478 GICXXCustomAction_GICombiner94,
3479 GICXXCustomAction_GICombiner95,
3480 GICXXCustomAction_GICombiner96,
3481 GICXXCustomAction_GICombiner97,
3482 GICXXCustomAction_GICombiner98,
3483 GICXXCustomAction_GICombiner99,
3484 GICXXCustomAction_GICombiner100,
3485 GICXXCustomAction_GICombiner101,
3486 GICXXCustomAction_GICombiner102,
3487 GICXXCustomAction_GICombiner103,
3488 GICXXCustomAction_GICombiner104,
3489 GICXXCustomAction_GICombiner105,
3490 GICXXCustomAction_GICombiner106,
3491 GICXXCustomAction_GICombiner107,
3492 GICXXCustomAction_GICombiner108,
3493 GICXXCustomAction_GICombiner109,
3494 GICXXCustomAction_GICombiner110,
3495 GICXXCustomAction_GICombiner111,
3496 GICXXCustomAction_GICombiner112,
3497 GICXXCustomAction_GICombiner113,
3498 GICXXCustomAction_GICombiner114,
3499 GICXXCustomAction_GICombiner115,
3500 GICXXCustomAction_GICombiner116,
3501 GICXXCustomAction_GICombiner117,
3502 GICXXCustomAction_GICombiner118,
3503 GICXXCustomAction_GICombiner119,
3504 GICXXCustomAction_GICombiner120,
3505 GICXXCustomAction_GICombiner121,
3506 GICXXCustomAction_GICombiner122,
3507 GICXXCustomAction_GICombiner123,
3508 GICXXCustomAction_GICombiner124,
3509 GICXXCustomAction_GICombiner125,
3510 GICXXCustomAction_GICombiner126,
3511 GICXXCustomAction_GICombiner127,
3512 GICXXCustomAction_GICombiner128,
3513 GICXXCustomAction_GICombiner129,
3514 GICXXCustomAction_GICombiner130,
3515 GICXXCustomAction_GICombiner131,
3516 GICXXCustomAction_GICombiner132,
3517 GICXXCustomAction_GICombiner133,
3518};
3519bool AMDGPUPreLegalizerCombinerImpl::runCustomAction(unsigned ApplyID, const MatcherState &State, NewMIVector &OutMIs) const {
3520 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
3521 switch(ApplyID) {
3522 case GICXXCustomAction_GICombiner0:{
3523 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3524 // Match Patterns
3525 if(![&](){return Helper.matchFoldAPlusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3526 return false;
3527 }
3528 // Apply Patterns
3529 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3530 return true;
3531 }
3532 case GICXXCustomAction_GICombiner1:{
3533 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3534 // Match Patterns
3535 if(![&](){return Helper.matchFoldC2MinusAPlusC1(*State.MIs[0], GIMatchData_matchinfo);}()) {
3536 return false;
3537 }
3538 // Apply Patterns
3539 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3540 return true;
3541 }
3542 case GICXXCustomAction_GICombiner2:{
3543 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3544 // Match Patterns
3545 if(![&](){return Helper.matchFoldAMinusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3546 return false;
3547 }
3548 // Apply Patterns
3549 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3550 return true;
3551 }
3552 case GICXXCustomAction_GICombiner3:{
3553 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3554 // Match Patterns
3555 if(![&](){return Helper.matchFoldC1Minus2MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3556 return false;
3557 }
3558 // Apply Patterns
3559 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3560 return true;
3561 }
3562 case GICXXCustomAction_GICombiner4:{
3563 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3564 // Match Patterns
3565 if(![&](){return Helper.matchFoldAMinusC1PlusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3566 return false;
3567 }
3568 // Apply Patterns
3569 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3570 return true;
3571 }
3572 case GICXXCustomAction_GICombiner5:{
3573 // Match Patterns
3574 if(![&](){return Helper.matchCombineCopy(*State.MIs[0]);}()) {
3575 return false;
3576 }
3577 // Apply Patterns
3578 Helper.applyCombineCopy(*State.MIs[0]);
3579 return true;
3580 }
3581 case GICXXCustomAction_GICombiner6:{
3582 unsigned GIMatchData_matchinfo;
3583 // Match Patterns
3584 if(![&](){return Helper.matchCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);}()) {
3585 return false;
3586 }
3587 // Apply Patterns
3588 Helper.applyCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);
3589 return true;
3590 }
3591 case GICXXCustomAction_GICombiner7:{
3592 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3593 // Match Patterns
3594 if(![&](){return Helper.matchCombineSubToAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3595 return false;
3596 }
3597 // Apply Patterns
3598 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3599 return true;
3600 }
3601 case GICXXCustomAction_GICombiner8:{
3602 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3603 // Match Patterns
3604 if(![&](){return Helper.matchExtractVectorElementWithDifferentIndices(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3605 return false;
3606 }
3607 // Apply Patterns
3608 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3609 return true;
3610 }
3611 case GICXXCustomAction_GICombiner9:{
3612 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3613 // Match Patterns
3614 if(![&](){return Helper.matchExtractVectorElementWithBuildVector(*State.MIs[0], *State.MIs[1],
3615 GIMatchData_matchinfo);}()) {
3616 return false;
3617 }
3618 // Apply Patterns
3619 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3620 return true;
3621 }
3622 case GICXXCustomAction_GICombiner10:{
3623 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3624 // Match Patterns
3625 if(![&](){return Helper.matchExtractVectorElementWithBuildVectorTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3626 return false;
3627 }
3628 // Apply Patterns
3629 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3630 return true;
3631 }
3632 case GICXXCustomAction_GICombiner11:{
3633 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3634 // Match Patterns
3635 if(![&](){return Helper.matchExtractVectorElementWithShuffleVector(*State.MIs[0], *State.MIs[1],
3636 GIMatchData_matchinfo);}()) {
3637 return false;
3638 }
3639 // Apply Patterns
3640 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3641 return true;
3642 }
3643 case GICXXCustomAction_GICombiner12:{
3644 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3645 // Match Patterns
3646 if(![&](){return Helper.matchAddOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3647 return false;
3648 }
3649 // Apply Patterns
3650 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3651 return true;
3652 }
3653 case GICXXCustomAction_GICombiner13:{
3654 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3655 // Match Patterns
3656 if(![&](){return Helper.matchMulOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3657 return false;
3658 }
3659 // Apply Patterns
3660 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3661 return true;
3662 }
3663 case GICXXCustomAction_GICombiner14:{
3664 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3665 // Match Patterns
3666 if(![&](){return Helper.matchShlOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3667 return false;
3668 }
3669 // Apply Patterns
3670 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3671 return true;
3672 }
3673 case GICXXCustomAction_GICombiner15:{
3674 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3675 // Match Patterns
3676 if(![&](){return Helper.matchSubOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3677 return false;
3678 }
3679 // Apply Patterns
3680 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3681 return true;
3682 }
3683 case GICXXCustomAction_GICombiner16:{
3684 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3685 // Match Patterns
3686 if(![&](){return !isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI) && Helper.matchFreezeOfSingleMaybePoisonOperand(*State.MIs[0], GIMatchData_matchinfo);}()) {
3687 return false;
3688 }
3689 // Apply Patterns
3690 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3691 return true;
3692 }
3693 case GICXXCustomAction_GICombiner17:{
3694 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3695 // Match Patterns
3696 if(![&](){return Helper.matchTruncateOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3697 return false;
3698 }
3699 // Apply Patterns
3700 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3701 return true;
3702 }
3703 case GICXXCustomAction_GICombiner18:{
3704 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3705 // Match Patterns
3706 if(![&](){return Helper.matchExtOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3707 return false;
3708 }
3709 // Apply Patterns
3710 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3711 return true;
3712 }
3713 case GICXXCustomAction_GICombiner19:{
3714 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3715 // Match Patterns
3716 if(![&](){return Helper.matchRedundantSextInReg(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3717 return false;
3718 }
3719 // Apply Patterns
3720 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3721 return true;
3722 }
3723 case GICXXCustomAction_GICombiner20:{
3724 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3725 // Match Patterns
3726 if(![&](){return Helper.matchCastOfSelect(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3727 return false;
3728 }
3729 // Apply Patterns
3730 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3731 return true;
3732 }
3733 case GICXXCustomAction_GICombiner21:{
3734 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3735 // Match Patterns
3736 if(![&](){return Helper.matchCastOfBuildVector(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3737 return false;
3738 }
3739 // Apply Patterns
3740 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3741 return true;
3742 }
3743 case GICXXCustomAction_GICombiner22:{
3744 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3745 // Match Patterns
3746 if(![&](){return Helper.matchNarrowBinop(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3747 return false;
3748 }
3749 // Apply Patterns
3750 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3751 return true;
3752 }
3753 case GICXXCustomAction_GICombiner23:{
3754 APInt GIMatchData_matchinfo;
3755 // Match Patterns
3756 if(![&](){return Helper.matchCastOfInteger(*State.MIs[0], GIMatchData_matchinfo);}()) {
3757 return false;
3758 }
3759 // Apply Patterns
3760 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3761 return true;
3762 }
3763 case GICXXCustomAction_GICombiner24:{
3764 SmallVector<Register> GIMatchData_info;
3765 // Match Patterns
3766 if(![&](){return Helper.matchCombineInsertVecElts(*State.MIs[0], GIMatchData_info);}()) {
3767 return false;
3768 }
3769 // Apply Patterns
3770 Helper.applyCombineInsertVecElts(*State.MIs[0], GIMatchData_info);
3771 return true;
3772 }
3773 case GICXXCustomAction_GICombiner25:{
3774 Register GIMatchData_matchinfo;
3775 // Match Patterns
3776 if(![&](){return Helper.matchExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);}()) {
3777 return false;
3778 }
3779 // Apply Patterns
3780 Helper.applyExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);
3781 return true;
3782 }
3783 case GICXXCustomAction_GICombiner26:{
3784 SmallVector<std::pair<Register, MachineInstr*>> GIMatchData_matchinfo;
3785 // Match Patterns
3786 if(![&](){return Helper.matchExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
3787 return false;
3788 }
3789 // Apply Patterns
3790 Helper.applyExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);
3791 return true;
3792 }
3793 case GICXXCustomAction_GICombiner27:{
3794 PreferredTuple GIMatchData_matchinfo;
3795 // Match Patterns
3796 if(![&](){return Helper.matchCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);}()) {
3797 return false;
3798 }
3799 // Apply Patterns
3800 Helper.applyCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);
3801 return true;
3802 }
3803 case GICXXCustomAction_GICombiner28:{
3804 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3805 // Match Patterns
3806 if(![&](){return Helper.matchCombineLoadWithAndMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
3807 return false;
3808 }
3809 // Apply Patterns
3810 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3811 return true;
3812 }
3813 case GICXXCustomAction_GICombiner29:{
3814 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3815 // Match Patterns
3816 if(![&](){return Helper.matchCombineExtractedVectorLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
3817 return false;
3818 }
3819 // Apply Patterns
3820 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3821 return true;
3822 }
3823 case GICXXCustomAction_GICombiner30:{
3824 // Apply Patterns
3825 Helper.replaceInstWithFConstant(*State.MIs[0]->getOperand(0).getParent(), 0.0);
3826 return true;
3827 }
3828 case GICXXCustomAction_GICombiner31:{
3829 // Apply Patterns
3830 Helper.replaceInstWithConstant(*State.MIs[0]->getOperand(0).getParent(), 0);
3831 return true;
3832 }
3833 case GICXXCustomAction_GICombiner32:{
3834 // Apply Patterns
3835 Helper.replaceInstWithConstant(*State.MIs[0]->getOperand(0).getParent(), -1);
3836 return true;
3837 }
3838 case GICXXCustomAction_GICombiner33:{
3839 Register GIMatchData_matchinfo;
3840 // Match Patterns
3841 if(![&](){return Helper.matchCombineAnyExtTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
3842 return false;
3843 }
3844 // Apply Patterns
3845 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3846 return true;
3847 }
3848 case GICXXCustomAction_GICombiner34:{
3849 Register GIMatchData_matchinfo;
3850 // Match Patterns
3851 if(![&](){return Helper.matchBuildVectorIdentityFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3852 return false;
3853 }
3854 // Apply Patterns
3855 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3856 return true;
3857 }
3858 case GICXXCustomAction_GICombiner35:{
3859 Register GIMatchData_matchinfo;
3860 // Match Patterns
3861 if(![&](){return Helper.matchTruncBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3862 return false;
3863 }
3864 // Apply Patterns
3865 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3866 return true;
3867 }
3868 case GICXXCustomAction_GICombiner36:{
3869 Register GIMatchData_matchinfo;
3870 // Match Patterns
3871 if(![&](){return Helper.matchTruncLshrBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
3872 return false;
3873 }
3874 // Apply Patterns
3875 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
3876 return true;
3877 }
3878 case GICXXCustomAction_GICombiner37:{
3879 MachineInstr* GIMatchData_matchinfo;
3880 // Match Patterns
3881 if(![&](){return Helper.matchExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);}()) {
3882 return false;
3883 }
3884 // Apply Patterns
3885 Helper.applyExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);
3886 return true;
3887 }
3888 case GICXXCustomAction_GICombiner38:{
3889 InstructionStepsMatchInfo GIMatchData_info;
3890 // Match Patterns
3891 if(![&](){return Helper.matchHoistLogicOpWithSameOpcodeHands(*State.MIs[0], GIMatchData_info);}()) {
3892 return false;
3893 }
3894 // Apply Patterns
3895 Helper.applyBuildInstructionSteps(*State.MIs[0], GIMatchData_info);
3896 return true;
3897 }
3898 case GICXXCustomAction_GICombiner39:{
3899 std::optional<int64_t> GIMatchData_matchinfo;
3900 // Match Patterns
3901 if(![&](){return Helper.matchShiftsTooBig(*State.MIs[0], GIMatchData_matchinfo);}()) {
3902 return false;
3903 }
3904 // Apply Patterns
3905 if (GIMatchData_matchinfo) {
3906 Helper.replaceInstWithConstant(*State.MIs[0], *GIMatchData_matchinfo);
3907 } else {
3908 Helper.replaceInstWithUndef(*State.MIs[0]);
3909 }
3910 return true;
3911 }
3912 case GICXXCustomAction_GICombiner40:{
3913 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3914 // Match Patterns
3915 if(![&](){return Helper.matchReassocPtrAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3916 return false;
3917 }
3918 // Apply Patterns
3919 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3920 return true;
3921 }
3922 case GICXXCustomAction_GICombiner41:{
3923 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3924 // Match Patterns
3925 if(![&](){return Helper.matchReassocCommBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3926 return false;
3927 }
3928 // Apply Patterns
3929 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3930 return true;
3931 }
3932 case GICXXCustomAction_GICombiner42:{
3933 PtrAddChain GIMatchData_matchinfo;
3934 // Match Patterns
3935 if(![&](){return Helper.matchPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
3936 return false;
3937 }
3938 // Apply Patterns
3939 Helper.applyPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);
3940 return true;
3941 }
3942 case GICXXCustomAction_GICombiner43:{
3943 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3944 // Match Patterns
3945 if(![&](){return Helper.matchCanonicalizeICmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3946 return false;
3947 }
3948 // Apply Patterns
3949 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3950 return true;
3951 }
3952 case GICXXCustomAction_GICombiner44:{
3953 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3954 // Match Patterns
3955 if(![&](){return Helper.matchCanonicalizeFCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3956 return false;
3957 }
3958 // Apply Patterns
3959 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3960 return true;
3961 }
3962 case GICXXCustomAction_GICombiner45:{
3963 int64_t GIMatchData_matchinfo;
3964 // Match Patterns
3965 if(![&](){return Helper.matchICmpToTrueFalseKnownBits(*State.MIs[0], GIMatchData_matchinfo);}()) {
3966 return false;
3967 }
3968 // Apply Patterns
3969 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3970 return true;
3971 }
3972 case GICXXCustomAction_GICombiner46:{
3973 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3974 // Match Patterns
3975 if(![&](){return Helper.matchICmpToLHSKnownBits(*State.MIs[0], GIMatchData_info);}()) {
3976 return false;
3977 }
3978 // Apply Patterns
3979 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3980 return true;
3981 }
3982 case GICXXCustomAction_GICombiner47:{
3983 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3984 // Match Patterns
3985 if(![&](){return Helper.matchRedundantBinOpInEquality(*State.MIs[0], GIMatchData_info);}()) {
3986 return false;
3987 }
3988 // Apply Patterns
3989 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3990 return true;
3991 }
3992 case GICXXCustomAction_GICombiner48:{
3993 std::tuple<Register, int64_t> GIMatchData_info;
3994 // Match Patterns
3995 if(![&](){return Helper.matchAshrShlToSextInreg(*State.MIs[0], GIMatchData_info);}()) {
3996 return false;
3997 }
3998 // Apply Patterns
3999 Helper.applyAshShlToSextInreg(*State.MIs[0], GIMatchData_info);
4000 return true;
4001 }
4002 case GICXXCustomAction_GICombiner49:{
4003 std::tuple<Register, unsigned> GIMatchData_matchinfo;
4004 // Match Patterns
4005 if(![&](){return Helper.matchSextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
4006 return false;
4007 }
4008 // Apply Patterns
4009 Helper.applySextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);
4010 return true;
4011 }
4012 case GICXXCustomAction_GICombiner50:{
4013 RegisterImmPair GIMatchData_matchinfo;
4014 // Match Patterns
4015 if(![&](){return Helper.matchCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);}()) {
4016 return false;
4017 }
4018 // Apply Patterns
4019 Helper.applyCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);
4020 return true;
4021 }
4022 case GICXXCustomAction_GICombiner51:{
4023 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4024 // Match Patterns
4025 if(![&](){return Helper.matchNarrowBinopFeedingAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
4026 return false;
4027 }
4028 // Apply Patterns
4029 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
4030 return true;
4031 }
4032 case GICXXCustomAction_GICombiner52:{
4033 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4034 // Match Patterns
4035 if(![&](){return Helper.matchSelectIMinMax(State.MIs[0]->getOperand(0), GIMatchData_info);}()) {
4036 return false;
4037 }
4038 // Apply Patterns
4039 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_info);
4040 return true;
4041 }
4042 case GICXXCustomAction_GICombiner53:{
4043 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4044 // Match Patterns
4045 if(![&](){return Helper.matchSelect(*State.MIs[0], GIMatchData_matchinfo);}()) {
4046 return false;
4047 }
4048 // Apply Patterns
4049 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4050 return true;
4051 }
4052 case GICXXCustomAction_GICombiner54:{
4053 // Match Patterns
4054 if(![&](){LLT SrcTy = MRI.getType(State.MIs[3]->getOperand(1).getReg());
4055 return State.MIs[0]->getOperand(2).getImm() <= SrcTy.getScalarSizeInBits() &&
4056 MRI.getType(State.MIs[1]->getOperand(1).getReg()).getScalarType() ==
4057 MRI.getType(State.MIs[2]->getOperand(2).getReg()).getScalarType() &&
4058 VT->computeNumSignBits(State.MIs[3]->getOperand(1).getReg()) >=
4059 (SrcTy.getScalarSizeInBits() - State.MIs[0]->getOperand(2).getImm() + 1);}()) {
4060 return false;
4061 }
4062 // Apply Patterns
4063 auto SExt1 = Helper.getBuilder().buildSExt(MRI.getType(State.MIs[2]->getOperand(2).getReg()), State.MIs[3]->getOperand(1).getReg());
4064 auto Unmerge = Helper.getBuilder().buildUnmerge(MRI.getType(State.MIs[1]->getOperand(1).getReg()), SExt1);
4065 unsigned UnmergeDef = State.MIs[1]->getOperand(1).getReg() == State.MIs[2]->getOperand(0).getReg() ? 0 : 1;
4066 Helper.getBuilder().buildSExt(State.MIs[0]->getOperand(0).getReg(), Unmerge.getReg(UnmergeDef));
4067 State.MIs[0]->eraseFromParent();
4068 return true;
4069 }
4070 case GICXXCustomAction_GICombiner55:{
4071 Register GIMatchData_matchinfo;
4072 // Match Patterns
4073 if(![&](){return Helper.matchRedundantAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
4074 return false;
4075 }
4076 // Apply Patterns
4077 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
4078 return true;
4079 }
4080 case GICXXCustomAction_GICombiner56:{
4081 Register GIMatchData_matchinfo;
4082 // Match Patterns
4083 if(![&](){return Helper.matchRedundantOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
4084 return false;
4085 }
4086 // Apply Patterns
4087 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
4088 return true;
4089 }
4090 case GICXXCustomAction_GICombiner57:{
4091 // Match Patterns
4092 if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(State.MIs[0]->getOperand(2));}()) {
4093 return false;
4094 }
4095 // Apply Patterns
4096 Helper.applySimplifyURemByPow2(*State.MIs[0]);
4097 return true;
4098 }
4099 case GICXXCustomAction_GICombiner58:{
4100 Register GIMatchData_matchinfo;
4101 // Match Patterns
4102 if(![&](){return Helper.matchCombineZextTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
4103 return false;
4104 }
4105 // Apply Patterns
4106 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
4107 return true;
4108 }
4109 case GICXXCustomAction_GICombiner59:{
4110 // Match Patterns
4111 if(![&](){unsigned BitWidth = MRI.getType(State.MIs[0]->getOperand(1).getReg()).getScalarSizeInBits();
4112 return Helper.getValueTracking()->maskedValueIsZero(State.MIs[0]->getOperand(1).getReg(),
4113 APInt::getOneBitSet(BitWidth, State.MIs[0]->getOperand(2).getImm() - 1));}()) {
4114 return false;
4115 }
4116 // Apply Patterns
4117 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
4118 Helper.getBuilder().buildZExtInReg(State.MIs[0]->getOperand(0), State.MIs[0]->getOperand(1), State.MIs[0]->getOperand(2).getImm());
4119 State.MIs[0]->eraseFromParent();
4120 return true;
4121 }
4122 case GICXXCustomAction_GICombiner60:{
4123 std::pair<MachineInstr*, LLT> GIMatchData_matchinfo;
4124 // Match Patterns
4125 if(![&](){return Helper.matchCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
4126 return false;
4127 }
4128 // Apply Patterns
4129 Helper.applyCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);
4130 return true;
4131 }
4132 case GICXXCustomAction_GICombiner61:{
4133 SmallVector<Register> GIMatchData_info;
4134 // Match Patterns
4135 if(![&](){return Helper.matchNotCmp(*State.MIs[0], GIMatchData_info);}()) {
4136 return false;
4137 }
4138 // Apply Patterns
4139 Helper.applyNotCmp(*State.MIs[0], GIMatchData_info);
4140 return true;
4141 }
4142 case GICXXCustomAction_GICombiner62:{
4143 MachineInstr * GIMatchData_matchinfo;
4144 // Match Patterns
4145 if(![&](){return Helper.matchOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);}()) {
4146 return false;
4147 }
4148 // Apply Patterns
4149 Helper.applyOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);
4150 return true;
4151 }
4152 case GICXXCustomAction_GICombiner63:{
4153 // Apply Patterns
4154 Helper.applyCombineConstantFoldFpUnary(*State.MIs[0], State.MIs[1]->getOperand(1).getFPImm());
4155 return true;
4156 }
4157 case GICXXCustomAction_GICombiner64:{
4158 APInt GIMatchData_info;
4159 // Match Patterns
4160 if(![&](){LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
4161 APInt NewCst = State.MIs[2]->getOperand(1).getCImm()->getValue().zextOrTrunc(
4162 DstTy.getSizeInBits());
4163 NewCst += State.MIs[3]->getOperand(1).getCImm()->getValue().sextOrTrunc(
4164 DstTy.getSizeInBits());
4165 GIMatchData_info = NewCst;
4166 return true;}()) {
4167 return false;
4168 }
4169 // Apply Patterns
4170 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
4171 Helper.getBuilder().buildConstant(State.MIs[0]->getOperand(0), GIMatchData_info);
4172 State.MIs[0]->eraseFromParent();
4173 return true;
4174 }
4175 case GICXXCustomAction_GICombiner65:{
4176 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4177 // Match Patterns
4178 if(![&](){return Helper.matchOverlappingAnd(*State.MIs[0], GIMatchData_info);}()) {
4179 return false;
4180 }
4181 // Apply Patterns
4182 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4183 return true;
4184 }
4185 case GICXXCustomAction_GICombiner66:{
4186 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4187 // Match Patterns
4188 if(![&](){return Helper.matchMulOBy0(*State.MIs[0], GIMatchData_matchinfo);}()) {
4189 return false;
4190 }
4191 // Apply Patterns
4192 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4193 return true;
4194 }
4195 case GICXXCustomAction_GICombiner67:{
4196 // Match Patterns
4197 if(![&](){return Helper.matchFPowIExpansion(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());}()) {
4198 return false;
4199 }
4200 // Apply Patterns
4201 Helper.applyExpandFPowI(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());
4202 return true;
4203 }
4204 case GICXXCustomAction_GICombiner68:{
4205 std::pair<Register, Register> GIMatchData_matchinfo;
4206 // Match Patterns
4207 if(![&](){return Helper.matchXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4208 return false;
4209 }
4210 // Apply Patterns
4211 Helper.applyXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);
4212 return true;
4213 }
4214 case GICXXCustomAction_GICombiner69:{
4215 RegisterImmPair GIMatchData_matchinfo;
4216 // Match Patterns
4217 if(![&](){return Helper.matchShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
4218 return false;
4219 }
4220 // Apply Patterns
4221 Helper.applyShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);
4222 return true;
4223 }
4224 case GICXXCustomAction_GICombiner70:{
4225 ShiftOfShiftedLogic GIMatchData_matchinfo;
4226 // Match Patterns
4227 if(![&](){return Helper.matchShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);}()) {
4228 return false;
4229 }
4230 // Apply Patterns
4231 Helper.applyShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);
4232 return true;
4233 }
4234 case GICXXCustomAction_GICombiner71:{
4235 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4236 // Match Patterns
4237 if(![&](){return Helper.matchLoadOrCombine(*State.MIs[0], GIMatchData_info);}()) {
4238 return false;
4239 }
4240 // Apply Patterns
4241 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4242 return true;
4243 }
4244 case GICXXCustomAction_GICombiner72:{
4245 MachineInstr * GIMatchData_matchinfo;
4246 // Match Patterns
4247 if(![&](){return Helper.matchCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);}()) {
4248 return false;
4249 }
4250 // Apply Patterns
4251 Helper.applyCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);
4252 return true;
4253 }
4254 case GICXXCustomAction_GICombiner73:{
4255 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4256 // Match Patterns
4257 if(![&](){return Helper.matchOrShiftToFunnelShift(*State.MIs[0], false, GIMatchData_info);}()) {
4258 return false;
4259 }
4260 // Apply Patterns
4261 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4262 return true;
4263 }
4264 case GICXXCustomAction_GICombiner74:{
4265 // Match Patterns
4266 if(![&](){return Helper.matchConstantLargerBitWidth(*State.MIs[0], 3);}()) {
4267 return false;
4268 }
4269 // Apply Patterns
4270 Helper.applyFunnelShiftConstantModulo(*State.MIs[0]);
4271 return true;
4272 }
4273 case GICXXCustomAction_GICombiner75:{
4274 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4275 // Match Patterns
4276 if(![&](){return Helper.matchBitfieldExtractFromSExtInReg(*State.MIs[0], GIMatchData_info);}()) {
4277 return false;
4278 }
4279 // Apply Patterns
4280 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4281 return true;
4282 }
4283 case GICXXCustomAction_GICombiner76:{
4284 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4285 // Match Patterns
4286 if(![&](){return Helper.matchBitfieldExtractFromAnd(*State.MIs[0], GIMatchData_info);}()) {
4287 return false;
4288 }
4289 // Apply Patterns
4290 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4291 return true;
4292 }
4293 case GICXXCustomAction_GICombiner77:{
4294 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4295 // Match Patterns
4296 if(![&](){return Helper.matchBitfieldExtractFromShr(*State.MIs[0], GIMatchData_info);}()) {
4297 return false;
4298 }
4299 // Apply Patterns
4300 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4301 return true;
4302 }
4303 case GICXXCustomAction_GICombiner78:{
4304 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4305 // Match Patterns
4306 if(![&](){return Helper.matchBitfieldExtractFromShrAnd(*State.MIs[0], GIMatchData_info);}()) {
4307 return false;
4308 }
4309 // Apply Patterns
4310 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4311 return true;
4312 }
4313 case GICXXCustomAction_GICombiner79:{
4314 APInt GIMatchData_matchinfo;
4315 // Match Patterns
4316 if(![&](){return Helper.matchConstantFoldBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
4317 return false;
4318 }
4319 // Apply Patterns
4320 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
4321 return true;
4322 }
4323 case GICXXCustomAction_GICombiner80:{
4324 ConstantFP* GIMatchData_matchinfo;
4325 // Match Patterns
4326 if(![&](){return Helper.matchConstantFoldFPBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
4327 return false;
4328 }
4329 // Apply Patterns
4330 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
4331 return true;
4332 }
4333 case GICXXCustomAction_GICombiner81:{
4334 ConstantFP* GIMatchData_matchinfo;
4335 // Match Patterns
4336 if(![&](){return Helper.matchConstantFoldFMA(*State.MIs[0], GIMatchData_matchinfo);}()) {
4337 return false;
4338 }
4339 // Apply Patterns
4340 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
4341 return true;
4342 }
4343 case GICXXCustomAction_GICombiner82:{
4344 APInt GIMatchData_matchinfo;
4345 // Match Patterns
4346 if(![&](){return Helper.matchConstantFoldCastOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
4347 return false;
4348 }
4349 // Apply Patterns
4350 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
4351 return true;
4352 }
4353 case GICXXCustomAction_GICombiner83:{
4354 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4355 // Match Patterns
4356 if(![&](){return Helper.matchConstantFoldUnaryIntOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
4357 return false;
4358 }
4359 // Apply Patterns
4360 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4361 return true;
4362 }
4363 case GICXXCustomAction_GICombiner84:{
4364 // Match Patterns
4365 if(![&](){return Helper.matchUMulHToLShr(*State.MIs[0]);}()) {
4366 return false;
4367 }
4368 // Apply Patterns
4369 Helper.applyUMulHToLShr(*State.MIs[0]);
4370 return true;
4371 }
4372 case GICXXCustomAction_GICombiner85:{
4373 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4374 // Match Patterns
4375 if(![&](){return Helper.matchAndOrDisjointMask(*State.MIs[0], GIMatchData_info);}()) {
4376 return false;
4377 }
4378 // Apply Patterns
4379 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_info);
4380 return true;
4381 }
4382 case GICXXCustomAction_GICombiner86:{
4383 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4384 // Match Patterns
4385 if(![&](){return Helper.matchCombineFAddFMulToFMadOrFMA(*State.MIs[0],
4386 GIMatchData_info);}()) {
4387 return false;
4388 }
4389 // Apply Patterns
4390 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4391 return true;
4392 }
4393 case GICXXCustomAction_GICombiner87:{
4394 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4395 // Match Patterns
4396 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMA(*State.MIs[0],
4397 GIMatchData_info);}()) {
4398 return false;
4399 }
4400 // Apply Patterns
4401 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4402 return true;
4403 }
4404 case GICXXCustomAction_GICombiner88:{
4405 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4406 // Match Patterns
4407 if(![&](){return Helper.matchCombineFAddFMAFMulToFMadOrFMA(*State.MIs[0],
4408 GIMatchData_info);}()) {
4409 return false;
4410 }
4411 // Apply Patterns
4412 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4413 return true;
4414 }
4415 case GICXXCustomAction_GICombiner89:{
4416 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4417 // Match Patterns
4418 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMAAggressive(
4419 *State.MIs[0], GIMatchData_info);}()) {
4420 return false;
4421 }
4422 // Apply Patterns
4423 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4424 return true;
4425 }
4426 case GICXXCustomAction_GICombiner90:{
4427 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4428 // Match Patterns
4429 if(![&](){return Helper.matchCombineFSubFMulToFMadOrFMA(*State.MIs[0],
4430 GIMatchData_info);}()) {
4431 return false;
4432 }
4433 // Apply Patterns
4434 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4435 return true;
4436 }
4437 case GICXXCustomAction_GICombiner91:{
4438 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4439 // Match Patterns
4440 if(![&](){return Helper.matchCombineFSubFNegFMulToFMadOrFMA(*State.MIs[0],
4441 GIMatchData_info);}()) {
4442 return false;
4443 }
4444 // Apply Patterns
4445 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4446 return true;
4447 }
4448 case GICXXCustomAction_GICombiner92:{
4449 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4450 // Match Patterns
4451 if(![&](){return Helper.matchCombineFSubFpExtFMulToFMadOrFMA(*State.MIs[0],
4452 GIMatchData_info);}()) {
4453 return false;
4454 }
4455 // Apply Patterns
4456 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4457 return true;
4458 }
4459 case GICXXCustomAction_GICombiner93:{
4460 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4461 // Match Patterns
4462 if(![&](){return Helper.matchCombineFSubFpExtFNegFMulToFMadOrFMA(
4463 *State.MIs[0], GIMatchData_info);}()) {
4464 return false;
4465 }
4466 // Apply Patterns
4467 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4468 return true;
4469 }
4470 case GICXXCustomAction_GICombiner94:{
4471 unsigned GIMatchData_select_op_no;
4472 // Match Patterns
4473 if(![&](){return Helper.matchFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);}()) {
4474 return false;
4475 }
4476 // Apply Patterns
4477 Helper.applyFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);
4478 return true;
4479 }
4480 case GICXXCustomAction_GICombiner95:{
4481 // Match Patterns
4482 if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(State.MIs[0]->getOperand(2),
4483 /*OrNegative=*/true);}()) {
4484 return false;
4485 }
4486 // Apply Patterns
4487 Helper.applySimplifySRemByPow2(*State.MIs[0]);
4488 return true;
4489 }
4490 case GICXXCustomAction_GICombiner96:{
4491 // Match Patterns
4492 if(![&](){return Helper.matchUDivOrURemByConst(*State.MIs[0]);}()) {
4493 return false;
4494 }
4495 // Apply Patterns
4496 Helper.applyUDivOrURemByConst(*State.MIs[0]);
4497 return true;
4498 }
4499 case GICXXCustomAction_GICombiner97:{
4500 // Match Patterns
4501 if(![&](){return Helper.matchSDivOrSRemByConst(*State.MIs[0]);}()) {
4502 return false;
4503 }
4504 // Apply Patterns
4505 Helper.applySDivOrSRemByConst(*State.MIs[0]);
4506 return true;
4507 }
4508 case GICXXCustomAction_GICombiner98:{
4509 // Match Patterns
4510 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/false);}()) {
4511 return false;
4512 }
4513 // Apply Patterns
4514 Helper.applyUDivByPow2(*State.MIs[0]);
4515 return true;
4516 }
4517 case GICXXCustomAction_GICombiner99:{
4518 // Match Patterns
4519 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/true);}()) {
4520 return false;
4521 }
4522 // Apply Patterns
4523 Helper.applySDivByPow2(*State.MIs[0]);
4524 return true;
4525 }
4526 case GICXXCustomAction_GICombiner100:{
4527 SmallVector<MachineInstr *> GIMatchData_matchinfo;
4528 // Match Patterns
4529 if(![&](){return Helper.matchRepeatedFPDivisor(*State.MIs[0], GIMatchData_matchinfo);}()) {
4530 return false;
4531 }
4532 // Apply Patterns
4533 Helper.applyRepeatedFPDivisor(GIMatchData_matchinfo);
4534 return true;
4535 }
4536 case GICXXCustomAction_GICombiner101:{
4537 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4538 // Match Patterns
4539 if(![&](){return Helper.matchSimplifySelectToMinMax(*State.MIs[0], GIMatchData_info);}()) {
4540 return false;
4541 }
4542 // Apply Patterns
4543 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4544 return true;
4545 }
4546 case GICXXCustomAction_GICombiner102:{
4547 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4548 // Match Patterns
4549 if(![&](){return Helper.matchAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
4550 return false;
4551 }
4552 // Apply Patterns
4553 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4554 return true;
4555 }
4556 case GICXXCustomAction_GICombiner103:{
4557 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4558 // Match Patterns
4559 if(![&](){return Helper.matchOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
4560 return false;
4561 }
4562 // Apply Patterns
4563 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4564 return true;
4565 }
4566 case GICXXCustomAction_GICombiner104:{
4567 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4568 // Match Patterns
4569 if(![&](){return Helper.matchSimplifyNegMinMax(*State.MIs[0], GIMatchData_matchinfo);}()) {
4570 return false;
4571 }
4572 // Apply Patterns
4573 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4574 return true;
4575 }
4576 case GICXXCustomAction_GICombiner105:{
4577 SmallVector<Register> GIMatchData_matchinfo;
4578 // Match Patterns
4579 if(![&](){return Helper.matchCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);}()) {
4580 return false;
4581 }
4582 // Apply Patterns
4583 Helper.applyCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);
4584 return true;
4585 }
4586 case GICXXCustomAction_GICombiner106:{
4587 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4588 // Match Patterns
4589 if(![&](){return Helper.matchSextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4590 return false;
4591 }
4592 // Apply Patterns
4593 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4594 return true;
4595 }
4596 case GICXXCustomAction_GICombiner107:{
4597 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4598 // Match Patterns
4599 if(![&](){return Helper.matchZextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4600 return false;
4601 }
4602 // Apply Patterns
4603 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4604 return true;
4605 }
4606 case GICXXCustomAction_GICombiner108:{
4607 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4608 // Match Patterns
4609 if(![&](){return Helper.matchNonNegZext(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
4610 return false;
4611 }
4612 // Apply Patterns
4613 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
4614 return true;
4615 }
4616 case GICXXCustomAction_GICombiner109:{
4617 SmallVector<Register> GIMatchData_matchinfo;
4618 // Match Patterns
4619 if(![&](){return Helper.matchCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);}()) {
4620 return false;
4621 }
4622 // Apply Patterns
4623 Helper.applyCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);
4624 return true;
4625 }
4626 case GICXXCustomAction_GICombiner110:{
4627 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4628 // Match Patterns
4629 if(![&](){return Helper.matchShuffleUndefRHS(*State.MIs[0], GIMatchData_matchinfo);}()) {
4630 return false;
4631 }
4632 // Apply Patterns
4633 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4634 return true;
4635 }
4636 case GICXXCustomAction_GICombiner111:{
4637 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4638 // Match Patterns
4639 if(![&](){return Helper.matchShuffleDisjointMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
4640 return false;
4641 }
4642 // Apply Patterns
4643 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4644 return true;
4645 }
4646 case GICXXCustomAction_GICombiner112:{
4647 Register GIMatchData_matchinfo;
4648 // Match Patterns
4649 if(![&](){return Helper.matchUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);}()) {
4650 return false;
4651 }
4652 // Apply Patterns
4653 Helper.applyUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);
4654 return true;
4655 }
4656 case GICXXCustomAction_GICombiner113:{
4657 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4658 // Match Patterns
4659 if(![&](){return Helper.matchUnmergeValuesAnyExtBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
4660 return false;
4661 }
4662 // Apply Patterns
4663 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4664 return true;
4665 }
4666 case GICXXCustomAction_GICombiner114:{
4667 SmallVector<Register> GIMatchData_info;
4668 // Match Patterns
4669 if(![&](){return Helper.matchCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);}()) {
4670 return false;
4671 }
4672 // Apply Patterns
4673 Helper.applyCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);
4674 return true;
4675 }
4676 case GICXXCustomAction_GICombiner115:{
4677 Register GIMatchData_src;
4678 // Match Patterns
4679 if(![&](){// Check if first source comes from G_UNMERGE_VALUES.
4680 Register FirstMergeSrc = getRemainingOperands(*State.MIs[0], 1)[0].getReg();
4681 MachineInstr *UnmergeMI = MRI.getVRegDef(FirstMergeSrc);
4682 if (!UnmergeMI || UnmergeMI->getOpcode() != TargetOpcode::G_UNMERGE_VALUES)
4683 return false;
4684
4685 // Check counts match.
4686 unsigned NumMergeSrcs = getRemainingOperands(*State.MIs[0], 1).size();
4687 unsigned NumUnmergeDefs = UnmergeMI->getNumDefs();
4688 if (NumMergeSrcs != NumUnmergeDefs)
4689 return false;
4690
4691 // Verify all merge sources match unmerge defs in order.
4692 for (unsigned I = 0; I < NumMergeSrcs; ++I) {
4693 Register MergeSrc = getRemainingOperands(*State.MIs[0], 1)[I].getReg();
4694 Register UnmergeDef = UnmergeMI->getOperand(I).getReg();
4695
4696 if (MergeSrc != UnmergeDef)
4697 return false;
4698
4699 if (!MRI.hasOneNonDBGUse(MergeSrc))
4700 return false;
4701 }
4702
4703 // Check size compatibility.
4704 GIMatchData_src = UnmergeMI->getOperand(NumUnmergeDefs).getReg();
4705 LLT SrcTy = MRI.getType(GIMatchData_src);
4706 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
4707 if (SrcTy.getSizeInBits() != DstTy.getSizeInBits())
4708 return false;
4709
4710 // Check bitcast legality.
4711 if (SrcTy != DstTy) {
4712 std::array<LLT, 2> Types = {{DstTy, SrcTy}};
4713 LegalityQuery Query(TargetOpcode::G_BITCAST, Types);
4714 if (!Helper.isLegalOrBeforeLegalizer(Query))
4715 return false;
4716 }
4717
4718 return true;}()) {
4719 return false;
4720 }
4721 // Apply Patterns
4722 LLT SrcTy = MRI.getType(GIMatchData_src);
4723 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
4724
4725 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
4726
4727 if (SrcTy == DstTy) {
4728 Helper.replaceRegWith(MRI, State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
4729 } else {
4730 Helper.getBuilder().buildBitcast(State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
4731 }
4732
4733 State.MIs[0]->eraseFromParent();
4734 return true;
4735 }
4736 case GICXXCustomAction_GICombiner116:{
4737 SmallVector<APInt, 8> GIMatchData_info;
4738 // Match Patterns
4739 if(![&](){return Helper.matchCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);}()) {
4740 return false;
4741 }
4742 // Apply Patterns
4743 Helper.applyCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);
4744 return true;
4745 }
4746 case GICXXCustomAction_GICombiner117:{
4747 std::function<void(MachineIRBuilder &)> GIMatchData_info;
4748 // Match Patterns
4749 if(![&](){return Helper.matchCombineUnmergeUndef(*State.MIs[0], GIMatchData_info);}()) {
4750 return false;
4751 }
4752 // Apply Patterns
4753 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
4754 return true;
4755 }
4756 case GICXXCustomAction_GICombiner118:{
4757 // Match Patterns
4758 if(![&](){return Helper.matchCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);}()) {
4759 return false;
4760 }
4761 // Apply Patterns
4762 Helper.applyCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);
4763 return true;
4764 }
4765 case GICXXCustomAction_GICombiner119:{
4766 // Match Patterns
4767 if(![&](){return Helper.matchCombineUnmergeZExtToZExt(*State.MIs[0]);}()) {
4768 return false;
4769 }
4770 // Apply Patterns
4771 Helper.applyCombineUnmergeZExtToZExt(*State.MIs[0]);
4772 return true;
4773 }
4774 case GICXXCustomAction_GICombiner120:{
4775 Register GIMatchData_unmergeSrc;
4776 // Match Patterns
4777 if(![&](){return Helper.matchCombineBuildUnmerge(*State.MIs[0], MRI, GIMatchData_unmergeSrc);}()) {
4778 return false;
4779 }
4780 // Apply Patterns
4781 Helper.applyCombineBuildUnmerge(*State.MIs[0], MRI, B, GIMatchData_unmergeSrc);
4782 return true;
4783 }
4784 case GICXXCustomAction_GICombiner121:{
4785 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4786 // Match Patterns
4787 if(![&](){return Helper.matchAddOverflow(*State.MIs[0], GIMatchData_matchinfo);}()) {
4788 return false;
4789 }
4790 // Apply Patterns
4791 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4792 return true;
4793 }
4794 case GICXXCustomAction_GICombiner122:{
4795 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4796 // Match Patterns
4797 if(![&](){return Helper.matchSuboCarryOut(*State.MIs[0], GIMatchData_matchinfo);}()) {
4798 return false;
4799 }
4800 // Apply Patterns
4801 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4802 return true;
4803 }
4804 case GICXXCustomAction_GICombiner123:{
4805 Register GIMatchData_matchinfo;
4806 // Match Patterns
4807 if(![&](){return Helper.matchTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);}()) {
4808 return false;
4809 }
4810 // Apply Patterns
4811 Helper.applyTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);
4812 return true;
4813 }
4814 case GICXXCustomAction_GICombiner124:{
4815 Register GIMatchData_matchinfo;
4816 // Match Patterns
4817 if(![&](){return Helper.matchTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);}()) {
4818 return false;
4819 }
4820 // Apply Patterns
4821 Helper.applyTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);
4822 return true;
4823 }
4824 case GICXXCustomAction_GICombiner125:{
4825 LshrOfTruncOfLshr GIMatchData_matchinfo;
4826 // Match Patterns
4827 if(![&](){return Helper.matchLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo, *State.MIs[2]);}()) {
4828 return false;
4829 }
4830 // Apply Patterns
4831 Helper.applyLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo);
4832 return true;
4833 }
4834 case GICXXCustomAction_GICombiner126:{
4835 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4836 // Match Patterns
4837 if(![&](){return Helper.matchCtls(*State.MIs[0], GIMatchData_matchinfo);}()) {
4838 return false;
4839 }
4840 // Apply Patterns
4841 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4842 return true;
4843 }
4844 case GICXXCustomAction_GICombiner127:{
4845 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4846 // Match Patterns
4847 if(![&](){return Helper.matchBinopWithNeg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4848 return false;
4849 }
4850 // Apply Patterns
4851 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4852 return true;
4853 }
4854 case GICXXCustomAction_GICombiner128:{
4855 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
4856 // Match Patterns
4857 if(![&](){return Helper.matchCombineFmulWithSelectToFldexp(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
4858 return false;
4859 }
4860 // Apply Patterns
4861 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
4862 return true;
4863 }
4864 case GICXXCustomAction_GICombiner129:{
4865 ClampI64ToI16MatchInfo GIMatchData_matchinfo;
4866 // Match Patterns
4867 if(![&](){return matchClampI64ToI16(*State.MIs[0], MRI, MF, GIMatchData_matchinfo);}()) {
4868 return false;
4869 }
4870 // Apply Patterns
4871 applyClampI64ToI16(*State.MIs[0], GIMatchData_matchinfo);
4872 return true;
4873 }
4874 case GICXXCustomAction_GICombiner130:{
4875 MachineInstr * GIMatchData_matchinfo;
4876 // Match Patterns
4877 if(![&](){return Helper.matchFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
4878 return false;
4879 }
4880 // Apply Patterns
4881 Helper.applyFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);
4882 return true;
4883 }
4884 case GICXXCustomAction_GICombiner131:{
4885 // Match Patterns
4886 if(![&](){return Helper.matchFoldFAbsFptrunc(*State.MIs[0], *State.MIs[1]);}()) {
4887 return false;
4888 }
4889 // Apply Patterns
4890 Helper.applyFoldFAbsFptrunc(*State.MIs[0], *State.MIs[1]);
4891 return true;
4892 }
4893 case GICXXCustomAction_GICombiner132:{
4894 SmallVector<Register> GIMatchData_matchinfo;
4895 // Match Patterns
4896 if(![&](){return Helper.matchCombineShuffleVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
4897 return false;
4898 }
4899 // Apply Patterns
4900 Helper.applyCombineShuffleVector(*State.MIs[0], GIMatchData_matchinfo);
4901 return true;
4902 }
4903 case GICXXCustomAction_GICombiner133:{
4904 // Apply Patterns
4905 Helper.applyCombineShuffleToBuildVector(*State.MIs[0]);
4906 return true;
4907 }
4908 }
4909 llvm_unreachable("Unknown Apply Action");
4910}
4911#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
4912#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((Val) >> 8)
4913#define GIMT_Encode4(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_t((Val) >> 24)
4914#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)
4915#else
4916#define GIMT_Encode2(Val) uint8_t((Val) >> 8), uint8_t(Val)
4917#define GIMT_Encode4(Val) uint8_t((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
4918#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)
4919#endif
4920const uint8_t *AMDGPUPreLegalizerCombinerImpl::getMatchTable() const {
4921 constexpr static uint8_t MatchTable0[] = {
4922 /* 0 */ GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(20), GIMT_Encode2(287), /*)*//*default:*//*Label 113*/ GIMT_Encode4(13129),
4923 /* 10 */ /*TargetOpcode::COPY*//*Label 0*/ GIMT_Encode4(1078), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4924 /* 150 */ /*TargetOpcode::G_ADD*//*Label 1*/ GIMT_Encode4(1090),
4925 /* 154 */ /*TargetOpcode::G_SUB*//*Label 2*/ GIMT_Encode4(2060),
4926 /* 158 */ /*TargetOpcode::G_MUL*//*Label 3*/ GIMT_Encode4(3235),
4927 /* 162 */ /*TargetOpcode::G_SDIV*//*Label 4*/ GIMT_Encode4(3469),
4928 /* 166 */ /*TargetOpcode::G_UDIV*//*Label 5*/ GIMT_Encode4(3554),
4929 /* 170 */ /*TargetOpcode::G_SREM*//*Label 6*/ GIMT_Encode4(3660),
4930 /* 174 */ /*TargetOpcode::G_UREM*//*Label 7*/ GIMT_Encode4(3739), GIMT_Encode4(0), GIMT_Encode4(0),
4931 /* 186 */ /*TargetOpcode::G_AND*//*Label 8*/ GIMT_Encode4(3839),
4932 /* 190 */ /*TargetOpcode::G_OR*//*Label 9*/ GIMT_Encode4(4425),
4933 /* 194 */ /*TargetOpcode::G_XOR*//*Label 10*/ GIMT_Encode4(5573), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4934 /* 226 */ /*TargetOpcode::G_PHI*//*Label 11*/ GIMT_Encode4(5835), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4935 /* 250 */ /*TargetOpcode::G_UNMERGE_VALUES*//*Label 12*/ GIMT_Encode4(5850), GIMT_Encode4(0),
4936 /* 258 */ /*TargetOpcode::G_MERGE_VALUES*//*Label 13*/ GIMT_Encode4(5917),
4937 /* 262 */ /*TargetOpcode::G_BUILD_VECTOR*//*Label 14*/ GIMT_Encode4(6012),
4938 /* 266 */ /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 15*/ GIMT_Encode4(6084),
4939 /* 270 */ /*TargetOpcode::G_CONCAT_VECTORS*//*Label 16*/ GIMT_Encode4(6099),
4940 /* 274 */ /*TargetOpcode::G_PTRTOINT*//*Label 17*/ GIMT_Encode4(6114),
4941 /* 278 */ /*TargetOpcode::G_INTTOPTR*//*Label 18*/ GIMT_Encode4(6235),
4942 /* 282 */ /*TargetOpcode::G_BITCAST*//*Label 19*/ GIMT_Encode4(6293),
4943 /* 286 */ /*TargetOpcode::G_FREEZE*//*Label 20*/ GIMT_Encode4(6383), GIMT_Encode4(0), GIMT_Encode4(0),
4944 /* 298 */ /*TargetOpcode::G_INTRINSIC_TRUNC*//*Label 21*/ GIMT_Encode4(6447),
4945 /* 302 */ /*TargetOpcode::G_INTRINSIC_ROUND*//*Label 22*/ GIMT_Encode4(6469), GIMT_Encode4(0), GIMT_Encode4(0),
4946 /* 314 */ /*TargetOpcode::G_INTRINSIC_ROUNDEVEN*//*Label 23*/ GIMT_Encode4(6491), GIMT_Encode4(0), GIMT_Encode4(0),
4947 /* 326 */ /*TargetOpcode::G_LOAD*//*Label 24*/ GIMT_Encode4(6513),
4948 /* 330 */ /*TargetOpcode::G_SEXTLOAD*//*Label 25*/ GIMT_Encode4(6525),
4949 /* 334 */ /*TargetOpcode::G_ZEXTLOAD*//*Label 26*/ GIMT_Encode4(6537), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4950 /* 354 */ /*TargetOpcode::G_STORE*//*Label 27*/ GIMT_Encode4(6549), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4951 /* 502 */ /*TargetOpcode::G_ANYEXT*//*Label 28*/ GIMT_Encode4(6573),
4952 /* 506 */ /*TargetOpcode::G_TRUNC*//*Label 29*/ GIMT_Encode4(6704), GIMT_Encode4(0), GIMT_Encode4(0),
4953 /* 518 */ /*TargetOpcode::G_TRUNC_USAT_U*//*Label 30*/ GIMT_Encode4(7396), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4954 /* 538 */ /*TargetOpcode::G_SEXT*//*Label 31*/ GIMT_Encode4(7429),
4955 /* 542 */ /*TargetOpcode::G_SEXT_INREG*//*Label 32*/ GIMT_Encode4(7504),
4956 /* 546 */ /*TargetOpcode::G_ZEXT*//*Label 33*/ GIMT_Encode4(7726),
4957 /* 550 */ /*TargetOpcode::G_SHL*//*Label 34*/ GIMT_Encode4(7856),
4958 /* 554 */ /*TargetOpcode::G_LSHR*//*Label 35*/ GIMT_Encode4(8205),
4959 /* 558 */ /*TargetOpcode::G_ASHR*//*Label 36*/ GIMT_Encode4(8548),
4960 /* 562 */ /*TargetOpcode::G_FSHL*//*Label 37*/ GIMT_Encode4(8873),
4961 /* 566 */ /*TargetOpcode::G_FSHR*//*Label 38*/ GIMT_Encode4(8932),
4962 /* 570 */ /*TargetOpcode::G_ROTR*//*Label 39*/ GIMT_Encode4(8991),
4963 /* 574 */ /*TargetOpcode::G_ROTL*//*Label 40*/ GIMT_Encode4(9015),
4964 /* 578 */ /*TargetOpcode::G_ICMP*//*Label 41*/ GIMT_Encode4(9039),
4965 /* 582 */ /*TargetOpcode::G_FCMP*//*Label 42*/ GIMT_Encode4(9084), GIMT_Encode4(0), GIMT_Encode4(0),
4966 /* 594 */ /*TargetOpcode::G_SELECT*//*Label 43*/ GIMT_Encode4(9096),
4967 /* 598 */ /*TargetOpcode::G_UADDO*//*Label 44*/ GIMT_Encode4(9427),
4968 /* 602 */ /*TargetOpcode::G_UADDE*//*Label 45*/ GIMT_Encode4(9496),
4969 /* 606 */ /*TargetOpcode::G_USUBO*//*Label 46*/ GIMT_Encode4(9524),
4970 /* 610 */ /*TargetOpcode::G_USUBE*//*Label 47*/ GIMT_Encode4(9536),
4971 /* 614 */ /*TargetOpcode::G_SADDO*//*Label 48*/ GIMT_Encode4(9564),
4972 /* 618 */ /*TargetOpcode::G_SADDE*//*Label 49*/ GIMT_Encode4(9633),
4973 /* 622 */ /*TargetOpcode::G_SSUBO*//*Label 50*/ GIMT_Encode4(9661),
4974 /* 626 */ /*TargetOpcode::G_SSUBE*//*Label 51*/ GIMT_Encode4(9673),
4975 /* 630 */ /*TargetOpcode::G_UMULO*//*Label 52*/ GIMT_Encode4(9701),
4976 /* 634 */ /*TargetOpcode::G_SMULO*//*Label 53*/ GIMT_Encode4(9767),
4977 /* 638 */ /*TargetOpcode::G_UMULH*//*Label 54*/ GIMT_Encode4(9833),
4978 /* 642 */ /*TargetOpcode::G_SMULH*//*Label 55*/ GIMT_Encode4(9870),
4979 /* 646 */ /*TargetOpcode::G_UADDSAT*//*Label 56*/ GIMT_Encode4(9896),
4980 /* 650 */ /*TargetOpcode::G_SADDSAT*//*Label 57*/ GIMT_Encode4(9922), GIMT_Encode4(0), GIMT_Encode4(0),
4981 /* 662 */ /*TargetOpcode::G_USHLSAT*//*Label 58*/ GIMT_Encode4(9948),
4982 /* 666 */ /*TargetOpcode::G_SSHLSAT*//*Label 59*/ GIMT_Encode4(9971),
4983 /* 670 */ /*TargetOpcode::G_SMULFIX*//*Label 60*/ GIMT_Encode4(9994),
4984 /* 674 */ /*TargetOpcode::G_UMULFIX*//*Label 61*/ GIMT_Encode4(10022),
4985 /* 678 */ /*TargetOpcode::G_SMULFIXSAT*//*Label 62*/ GIMT_Encode4(10050),
4986 /* 682 */ /*TargetOpcode::G_UMULFIXSAT*//*Label 63*/ GIMT_Encode4(10078), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4987 /* 702 */ /*TargetOpcode::G_FADD*//*Label 64*/ GIMT_Encode4(10106),
4988 /* 706 */ /*TargetOpcode::G_FSUB*//*Label 65*/ GIMT_Encode4(10324),
4989 /* 710 */ /*TargetOpcode::G_FMUL*//*Label 66*/ GIMT_Encode4(10469),
4990 /* 714 */ /*TargetOpcode::G_FMA*//*Label 67*/ GIMT_Encode4(10624),
4991 /* 718 */ /*TargetOpcode::G_FMAD*//*Label 68*/ GIMT_Encode4(10681),
4992 /* 722 */ /*TargetOpcode::G_FDIV*//*Label 69*/ GIMT_Encode4(10738),
4993 /* 726 */ /*TargetOpcode::G_FREM*//*Label 70*/ GIMT_Encode4(10815), GIMT_Encode4(0), GIMT_Encode4(0),
4994 /* 738 */ /*TargetOpcode::G_FPOWI*//*Label 71*/ GIMT_Encode4(10838), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4995 /* 758 */ /*TargetOpcode::G_FLOG2*//*Label 72*/ GIMT_Encode4(10860), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
4996 /* 774 */ /*TargetOpcode::G_FNEG*//*Label 73*/ GIMT_Encode4(10882),
4997 /* 778 */ /*TargetOpcode::G_FPEXT*//*Label 74*/ GIMT_Encode4(10944),
4998 /* 782 */ /*TargetOpcode::G_FPTRUNC*//*Label 75*/ GIMT_Encode4(10966),
4999 /* 786 */ /*TargetOpcode::G_FPTOSI*//*Label 76*/ GIMT_Encode4(11021),
5000 /* 790 */ /*TargetOpcode::G_FPTOUI*//*Label 77*/ GIMT_Encode4(11046),
5001 /* 794 */ /*TargetOpcode::G_SITOFP*//*Label 78*/ GIMT_Encode4(11071),
5002 /* 798 */ /*TargetOpcode::G_UITOFP*//*Label 79*/ GIMT_Encode4(11108), GIMT_Encode4(0), GIMT_Encode4(0),
5003 /* 810 */ /*TargetOpcode::G_FABS*//*Label 80*/ GIMT_Encode4(11145),
5004 /* 814 */ /*TargetOpcode::G_FCOPYSIGN*//*Label 81*/ GIMT_Encode4(11245), GIMT_Encode4(0),
5005 /* 822 */ /*TargetOpcode::G_FCANONICALIZE*//*Label 82*/ GIMT_Encode4(11257),
5006 /* 826 */ /*TargetOpcode::G_FMINNUM*//*Label 83*/ GIMT_Encode4(11287),
5007 /* 830 */ /*TargetOpcode::G_FMAXNUM*//*Label 84*/ GIMT_Encode4(11381),
5008 /* 834 */ /*TargetOpcode::G_FMINNUM_IEEE*//*Label 85*/ GIMT_Encode4(11475),
5009 /* 838 */ /*TargetOpcode::G_FMAXNUM_IEEE*//*Label 86*/ GIMT_Encode4(11501),
5010 /* 842 */ /*TargetOpcode::G_FMINIMUM*//*Label 87*/ GIMT_Encode4(11527),
5011 /* 846 */ /*TargetOpcode::G_FMAXIMUM*//*Label 88*/ GIMT_Encode4(11621),
5012 /* 850 */ /*TargetOpcode::G_FMINIMUMNUM*//*Label 89*/ GIMT_Encode4(11715),
5013 /* 854 */ /*TargetOpcode::G_FMAXIMUMNUM*//*Label 90*/ GIMT_Encode4(11727), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5014 /* 890 */ /*TargetOpcode::G_PTR_ADD*//*Label 91*/ GIMT_Encode4(11739), GIMT_Encode4(0),
5015 /* 898 */ /*TargetOpcode::G_SMIN*//*Label 92*/ GIMT_Encode4(11905),
5016 /* 902 */ /*TargetOpcode::G_SMAX*//*Label 93*/ GIMT_Encode4(11953),
5017 /* 906 */ /*TargetOpcode::G_UMIN*//*Label 94*/ GIMT_Encode4(12001),
5018 /* 910 */ /*TargetOpcode::G_UMAX*//*Label 95*/ GIMT_Encode4(12049),
5019 /* 914 */ /*TargetOpcode::G_ABS*//*Label 96*/ GIMT_Encode4(12097), GIMT_Encode4(0), GIMT_Encode4(0),
5020 /* 926 */ /*TargetOpcode::G_BR*//*Label 97*/ GIMT_Encode4(12130), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5021 /* 946 */ /*TargetOpcode::G_INSERT_VECTOR_ELT*//*Label 98*/ GIMT_Encode4(12142),
5022 /* 950 */ /*TargetOpcode::G_EXTRACT_VECTOR_ELT*//*Label 99*/ GIMT_Encode4(12286),
5023 /* 954 */ /*TargetOpcode::G_SHUFFLE_VECTOR*//*Label 100*/ GIMT_Encode4(12677), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5024 /* 970 */ /*TargetOpcode::G_CTTZ*//*Label 101*/ GIMT_Encode4(12779),
5025 /* 974 */ /*TargetOpcode::G_CTTZ_ZERO_POISON*//*Label 102*/ GIMT_Encode4(12814),
5026 /* 978 */ /*TargetOpcode::G_CTLZ*//*Label 103*/ GIMT_Encode4(12826),
5027 /* 982 */ /*TargetOpcode::G_CTLZ_ZERO_POISON*//*Label 104*/ GIMT_Encode4(12872), GIMT_Encode4(0),
5028 /* 990 */ /*TargetOpcode::G_CTPOP*//*Label 105*/ GIMT_Encode4(12895),
5029 /* 994 */ /*TargetOpcode::G_BSWAP*//*Label 106*/ GIMT_Encode4(12907),
5030 /* 998 */ /*TargetOpcode::G_BITREVERSE*//*Label 107*/ GIMT_Encode4(12919), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5031 /* 1014 */ /*TargetOpcode::G_FCEIL*//*Label 108*/ GIMT_Encode4(13019), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
5032 /* 1062 */ /*TargetOpcode::G_FSQRT*//*Label 109*/ GIMT_Encode4(13041),
5033 /* 1066 */ /*TargetOpcode::G_FFLOOR*//*Label 110*/ GIMT_Encode4(13063),
5034 /* 1070 */ /*TargetOpcode::G_FRINT*//*Label 111*/ GIMT_Encode4(13085),
5035 /* 1074 */ /*TargetOpcode::G_FNEARBYINT*//*Label 112*/ GIMT_Encode4(13107),
5036 /* 1078 */ // Label 0: @1078
5037 /* 1078 */ GIM_Try, /*On fail goto*//*Label 114*/ GIMT_Encode4(1089), // Rule ID 19 //
5038 /* 1083 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
5039 /* 1086 */ // MIs[0] d
5040 /* 1086 */ // No operand predicates
5041 /* 1086 */ // MIs[0] s
5042 /* 1086 */ // No operand predicates
5043 /* 1086 */ // Combiner Rule #19: copy_prop
5044 /* 1086 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner5),
5045 /* 1089 */ // Label 114: @1089
5046 /* 1089 */ GIM_Reject,
5047 /* 1090 */ // Label 1: @1090
5048 /* 1090 */ GIM_Try, /*On fail goto*//*Label 115*/ GIMT_Encode4(1178), // Rule ID 453 //
5049 /* 1095 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule320Enabled),
5050 /* 1098 */ // MIs[0] dst
5051 /* 1098 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5052 /* 1102 */ // MIs[0] __add_shift_match_0.shl_neg
5053 /* 1102 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5054 /* 1106 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
5055 /* 1110 */ // MIs[1] __add_shift_match_0.neg_y
5056 /* 1110 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5057 /* 1114 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5058 /* 1118 */ // MIs[2] __add_shift_match_0.zero
5059 /* 1118 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
5060 /* 1122 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5061 /* 1126 */ // MIs[3] Operand 1
5062 /* 1126 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
5063 /* 1137 */ // MIs[2] y
5064 /* 1137 */ // No operand predicates
5065 /* 1137 */ // MIs[1] n
5066 /* 1137 */ // No operand predicates
5067 /* 1137 */ // MIs[0] x
5068 /* 1137 */ // No operand predicates
5069 /* 1137 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner58),
5070 /* 1141 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5071 /* 1143 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5072 /* 1146 */ // Combiner Rule #320: add_shift @ [__add_shift_match_0[1]]
5073 /* 1146 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
5074 /* 1149 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5075 /* 1154 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
5076 /* 1158 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
5077 /* 1162 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5078 /* 1166 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
5079 /* 1170 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // x
5080 /* 1174 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5081 /* 1177 */ GIR_EraseRootFromParent_Done,
5082 /* 1178 */ // Label 115: @1178
5083 /* 1178 */ GIM_Try, /*On fail goto*//*Label 116*/ GIMT_Encode4(1266), // Rule ID 452 //
5084 /* 1183 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule320Enabled),
5085 /* 1186 */ // MIs[0] dst
5086 /* 1186 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5087 /* 1190 */ // MIs[0] x
5088 /* 1190 */ // No operand predicates
5089 /* 1190 */ // MIs[0] __add_shift_match_0.shl_neg
5090 /* 1190 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5091 /* 1194 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
5092 /* 1198 */ // MIs[1] __add_shift_match_0.neg_y
5093 /* 1198 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5094 /* 1202 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5095 /* 1206 */ // MIs[2] __add_shift_match_0.zero
5096 /* 1206 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
5097 /* 1210 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5098 /* 1214 */ // MIs[3] Operand 1
5099 /* 1214 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
5100 /* 1225 */ // MIs[2] y
5101 /* 1225 */ // No operand predicates
5102 /* 1225 */ // MIs[1] n
5103 /* 1225 */ // No operand predicates
5104 /* 1225 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner57),
5105 /* 1229 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5106 /* 1231 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5107 /* 1234 */ // Combiner Rule #320: add_shift @ [__add_shift_match_0[0]]
5108 /* 1234 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
5109 /* 1237 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5110 /* 1242 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
5111 /* 1246 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
5112 /* 1250 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5113 /* 1254 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
5114 /* 1258 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // x
5115 /* 1262 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5116 /* 1265 */ GIR_EraseRootFromParent_Done,
5117 /* 1266 */ // Label 116: @1266
5118 /* 1266 */ GIM_Try, /*On fail goto*//*Label 117*/ GIMT_Encode4(1300), // Rule ID 2 //
5119 /* 1271 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
5120 /* 1274 */ // MIs[0] root
5121 /* 1274 */ // No operand predicates
5122 /* 1274 */ // MIs[0] sub
5123 /* 1274 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5124 /* 1278 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5125 /* 1282 */ // MIs[1] Operand 1
5126 /* 1282 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
5127 /* 1286 */ // MIs[1] A
5128 /* 1286 */ // No operand predicates
5129 /* 1286 */ // MIs[0] B
5130 /* 1286 */ // No operand predicates
5131 /* 1286 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5132 /* 1288 */ // Combiner Rule #2: ZeroMinusAPlusB
5133 /* 1288 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5134 /* 1291 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5135 /* 1293 */ GIR_RootToRootCopy, /*OpIdx*/2, // B
5136 /* 1295 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // A
5137 /* 1299 */ GIR_EraseRootFromParent_Done,
5138 /* 1300 */ // Label 117: @1300
5139 /* 1300 */ GIM_Try, /*On fail goto*//*Label 118*/ GIMT_Encode4(1349), // Rule ID 162 //
5140 /* 1305 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule117Enabled),
5141 /* 1308 */ // MIs[0] dst
5142 /* 1308 */ // No operand predicates
5143 /* 1308 */ // MIs[0] __simplify_add_to_sub_match_0.neg
5144 /* 1308 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5145 /* 1312 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5146 /* 1316 */ // MIs[1] __simplify_add_to_sub_match_0.zero
5147 /* 1316 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5148 /* 1320 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5149 /* 1324 */ // MIs[2] Operand 1
5150 /* 1324 */ GIM_CheckLiteralInt, /*MI*/2, /*Op*/1, GIMT_Encode8(0),
5151 /* 1335 */ // MIs[1] newrhs
5152 /* 1335 */ // No operand predicates
5153 /* 1335 */ // MIs[0] newlhs
5154 /* 1335 */ // No operand predicates
5155 /* 1335 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5156 /* 1337 */ // Combiner Rule #117: simplify_add_to_sub @ [__simplify_add_to_sub_match_0[0]]
5157 /* 1337 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5158 /* 1340 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5159 /* 1342 */ GIR_RootToRootCopy, /*OpIdx*/2, // newlhs
5160 /* 1344 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // newrhs
5161 /* 1348 */ GIR_EraseRootFromParent_Done,
5162 /* 1349 */ // Label 118: @1349
5163 /* 1349 */ GIM_Try, /*On fail goto*//*Label 119*/ GIMT_Encode4(1386), // Rule ID 18 //
5164 /* 1354 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
5165 /* 1357 */ // MIs[0] root
5166 /* 1357 */ // No operand predicates
5167 /* 1357 */ // MIs[0] sub
5168 /* 1357 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5169 /* 1361 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5170 /* 1365 */ // MIs[1] A
5171 /* 1365 */ // No operand predicates
5172 /* 1365 */ // MIs[1] c1
5173 /* 1365 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5174 /* 1369 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5175 /* 1373 */ // MIs[2] imm1
5176 /* 1373 */ // No operand predicates
5177 /* 1373 */ // MIs[0] c2
5178 /* 1373 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5179 /* 1377 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5180 /* 1381 */ // MIs[3] imm2
5181 /* 1381 */ // No operand predicates
5182 /* 1381 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5183 /* 1383 */ // Combiner Rule #18: AMinusC1PlusC2
5184 /* 1383 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
5185 /* 1386 */ // Label 119: @1386
5186 /* 1386 */ GIM_Try, /*On fail goto*//*Label 120*/ GIMT_Encode4(1420), // Rule ID 5 //
5187 /* 1391 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
5188 /* 1394 */ // MIs[0] root
5189 /* 1394 */ // No operand predicates
5190 /* 1394 */ // MIs[0] sub
5191 /* 1394 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5192 /* 1398 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5193 /* 1402 */ // MIs[1] B
5194 /* 1402 */ // No operand predicates
5195 /* 1402 */ // MIs[1] A
5196 /* 1402 */ // No operand predicates
5197 /* 1402 */ // MIs[0] A
5198 /* 1402 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
5199 /* 1407 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5200 /* 1412 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5201 /* 1414 */ // Combiner Rule #5: BMinusAPlusA
5202 /* 1414 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5203 /* 1419 */ GIR_EraseRootFromParent_Done,
5204 /* 1420 */ // Label 120: @1420
5205 /* 1420 */ GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(1454), // Rule ID 150 //
5206 /* 1425 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
5207 /* 1428 */ // MIs[0] dst
5208 /* 1428 */ // No operand predicates
5209 /* 1428 */ // MIs[0] __add_sub_reg_match_0.tmp
5210 /* 1428 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5211 /* 1432 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5212 /* 1436 */ // MIs[1] src
5213 /* 1436 */ // No operand predicates
5214 /* 1436 */ // MIs[1] __add_sub_reg_match_0.x
5215 /* 1436 */ // No operand predicates
5216 /* 1436 */ // MIs[0] __add_sub_reg_match_0.x
5217 /* 1436 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
5218 /* 1441 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5219 /* 1446 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5220 /* 1448 */ // Combiner Rule #105: add_sub_reg @ [__add_sub_reg_match_0[1]]
5221 /* 1448 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5222 /* 1453 */ GIR_EraseRootFromParent_Done,
5223 /* 1454 */ // Label 121: @1454
5224 /* 1454 */ GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(1499), // Rule ID 7 //
5225 /* 1459 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
5226 /* 1462 */ // MIs[0] root
5227 /* 1462 */ // No operand predicates
5228 /* 1462 */ // MIs[0] sub1
5229 /* 1462 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5230 /* 1466 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5231 /* 1470 */ // MIs[1] A
5232 /* 1470 */ // No operand predicates
5233 /* 1470 */ // MIs[1] B
5234 /* 1470 */ // No operand predicates
5235 /* 1470 */ // MIs[0] sub2
5236 /* 1470 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5237 /* 1474 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5238 /* 1478 */ // MIs[2] B
5239 /* 1478 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
5240 /* 1483 */ // MIs[2] C
5241 /* 1483 */ // No operand predicates
5242 /* 1483 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5243 /* 1485 */ // Combiner Rule #7: AMinusBPlusBMinusC
5244 /* 1485 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5245 /* 1488 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5246 /* 1490 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5247 /* 1494 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
5248 /* 1498 */ GIR_EraseRootFromParent_Done,
5249 /* 1499 */ // Label 122: @1499
5250 /* 1499 */ GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(1544), // Rule ID 6 //
5251 /* 1504 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
5252 /* 1507 */ // MIs[0] root
5253 /* 1507 */ // No operand predicates
5254 /* 1507 */ // MIs[0] sub1
5255 /* 1507 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5256 /* 1511 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5257 /* 1515 */ // MIs[1] A
5258 /* 1515 */ // No operand predicates
5259 /* 1515 */ // MIs[1] B
5260 /* 1515 */ // No operand predicates
5261 /* 1515 */ // MIs[0] sub2
5262 /* 1515 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5263 /* 1519 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5264 /* 1523 */ // MIs[2] C
5265 /* 1523 */ // No operand predicates
5266 /* 1523 */ // MIs[2] A
5267 /* 1523 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5268 /* 1528 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5269 /* 1530 */ // Combiner Rule #6: AMinusBPlusCMinusA
5270 /* 1530 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5271 /* 1533 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5272 /* 1535 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
5273 /* 1539 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
5274 /* 1543 */ GIR_EraseRootFromParent_Done,
5275 /* 1544 */ // Label 123: @1544
5276 /* 1544 */ GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(1599), // Rule ID 22 //
5277 /* 1549 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
5278 /* 1552 */ // MIs[0] dst
5279 /* 1552 */ // No operand predicates
5280 /* 1552 */ // MIs[0] __add_p2i_to_ptradd_match_0.x
5281 /* 1552 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5282 /* 1556 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_PTRTOINT),
5283 /* 1560 */ // MIs[1] ptr
5284 /* 1560 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
5285 /* 1564 */ // MIs[0] other
5286 /* 1564 */ // No operand predicates
5287 /* 1564 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
5288 /* 1568 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5289 /* 1570 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5290 /* 1573 */ // Combiner Rule #22: add_p2i_to_ptradd @ [__add_p2i_to_ptradd_match_0[0]]
5291 /* 1573 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_PTR_ADD),
5292 /* 1576 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5293 /* 1581 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ptr
5294 /* 1585 */ GIR_RootToRootCopy, /*OpIdx*/2, // other
5295 /* 1587 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_PTRTOINT),
5296 /* 1591 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
5297 /* 1595 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5298 /* 1598 */ GIR_EraseRootFromParent_Done,
5299 /* 1599 */ // Label 124: @1599
5300 /* 1599 */ GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(1634), // Rule ID 46 //
5301 /* 1604 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
5302 /* 1607 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
5303 /* 1613 */ // MIs[0] root
5304 /* 1613 */ // No operand predicates
5305 /* 1613 */ // MIs[0] left
5306 /* 1613 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5307 /* 1617 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
5308 /* 1621 */ // MIs[1] imm1
5309 /* 1621 */ // No operand predicates
5310 /* 1621 */ // MIs[0] right
5311 /* 1621 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5312 /* 1625 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_VSCALE),
5313 /* 1629 */ // MIs[2] imm2
5314 /* 1629 */ // No operand predicates
5315 /* 1629 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5316 /* 1631 */ // Combiner Rule #42: add_of_vscale
5317 /* 1631 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
5318 /* 1634 */ // Label 125: @1634
5319 /* 1634 */ GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(1658), // Rule ID 104 //
5320 /* 1639 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
5321 /* 1642 */ // MIs[0] dst
5322 /* 1642 */ // No operand predicates
5323 /* 1642 */ // MIs[0] __propagate_undef_any_op_match_0.x
5324 /* 1642 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5325 /* 1646 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5326 /* 1650 */ // MIs[0] __propagate_undef_any_op_match_0.y
5327 /* 1650 */ // No operand predicates
5328 /* 1650 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5329 /* 1652 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[0]]
5330 /* 1652 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5331 /* 1655 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5332 /* 1657 */ GIR_EraseRootFromParent_Done,
5333 /* 1658 */ // Label 126: @1658
5334 /* 1658 */ GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(1692), // Rule ID 3 //
5335 /* 1663 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
5336 /* 1666 */ // MIs[0] root
5337 /* 1666 */ // No operand predicates
5338 /* 1666 */ // MIs[0] A
5339 /* 1666 */ // No operand predicates
5340 /* 1666 */ // MIs[0] sub
5341 /* 1666 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5342 /* 1670 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5343 /* 1674 */ // MIs[1] Operand 1
5344 /* 1674 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
5345 /* 1678 */ // MIs[1] B
5346 /* 1678 */ // No operand predicates
5347 /* 1678 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5348 /* 1680 */ // Combiner Rule #3: APlusZeroMinusB
5349 /* 1680 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5350 /* 1683 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5351 /* 1685 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
5352 /* 1687 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
5353 /* 1691 */ GIR_EraseRootFromParent_Done,
5354 /* 1692 */ // Label 127: @1692
5355 /* 1692 */ GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(1741), // Rule ID 163 //
5356 /* 1697 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule117Enabled),
5357 /* 1700 */ // MIs[0] dst
5358 /* 1700 */ // No operand predicates
5359 /* 1700 */ // MIs[0] newlhs
5360 /* 1700 */ // No operand predicates
5361 /* 1700 */ // MIs[0] __simplify_add_to_sub_match_0.neg
5362 /* 1700 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5363 /* 1704 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5364 /* 1708 */ // MIs[1] __simplify_add_to_sub_match_0.zero
5365 /* 1708 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5366 /* 1712 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5367 /* 1716 */ // MIs[2] Operand 1
5368 /* 1716 */ GIM_CheckLiteralInt, /*MI*/2, /*Op*/1, GIMT_Encode8(0),
5369 /* 1727 */ // MIs[1] newrhs
5370 /* 1727 */ // No operand predicates
5371 /* 1727 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5372 /* 1729 */ // Combiner Rule #117: simplify_add_to_sub @ [__simplify_add_to_sub_match_0[1]]
5373 /* 1729 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5374 /* 1732 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5375 /* 1734 */ GIR_RootToRootCopy, /*OpIdx*/1, // newlhs
5376 /* 1736 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // newrhs
5377 /* 1740 */ GIR_EraseRootFromParent_Done,
5378 /* 1741 */ // Label 128: @1741
5379 /* 1741 */ GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(1775), // Rule ID 4 //
5380 /* 1746 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
5381 /* 1749 */ // MIs[0] root
5382 /* 1749 */ // No operand predicates
5383 /* 1749 */ // MIs[0] A
5384 /* 1749 */ // No operand predicates
5385 /* 1749 */ // MIs[0] sub
5386 /* 1749 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5387 /* 1753 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5388 /* 1757 */ // MIs[1] B
5389 /* 1757 */ // No operand predicates
5390 /* 1757 */ // MIs[1] A
5391 /* 1757 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5392 /* 1762 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5393 /* 1767 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5394 /* 1769 */ // Combiner Rule #4: APlusBMinusB
5395 /* 1769 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5396 /* 1774 */ GIR_EraseRootFromParent_Done,
5397 /* 1775 */ // Label 129: @1775
5398 /* 1775 */ GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(1809), // Rule ID 149 //
5399 /* 1780 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
5400 /* 1783 */ // MIs[0] dst
5401 /* 1783 */ // No operand predicates
5402 /* 1783 */ // MIs[0] __add_sub_reg_match_0.x
5403 /* 1783 */ // No operand predicates
5404 /* 1783 */ // MIs[0] __add_sub_reg_match_0.tmp
5405 /* 1783 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5406 /* 1787 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5407 /* 1791 */ // MIs[1] src
5408 /* 1791 */ // No operand predicates
5409 /* 1791 */ // MIs[1] __add_sub_reg_match_0.x
5410 /* 1791 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5411 /* 1796 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5412 /* 1801 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5413 /* 1803 */ // Combiner Rule #105: add_sub_reg @ [__add_sub_reg_match_0[0]]
5414 /* 1803 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5415 /* 1808 */ GIR_EraseRootFromParent_Done,
5416 /* 1809 */ // Label 130: @1809
5417 /* 1809 */ GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(1854), // Rule ID 8 //
5418 /* 1814 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
5419 /* 1817 */ // MIs[0] root
5420 /* 1817 */ // No operand predicates
5421 /* 1817 */ // MIs[0] A
5422 /* 1817 */ // No operand predicates
5423 /* 1817 */ // MIs[0] sub1
5424 /* 1817 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5425 /* 1821 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5426 /* 1825 */ // MIs[1] B
5427 /* 1825 */ // No operand predicates
5428 /* 1825 */ // MIs[1] add1
5429 /* 1825 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5430 /* 1829 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
5431 /* 1833 */ // MIs[2] A
5432 /* 1833 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
5433 /* 1838 */ // MIs[2] C
5434 /* 1838 */ // No operand predicates
5435 /* 1838 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5436 /* 1840 */ // Combiner Rule #8: APlusBMinusAplusC
5437 /* 1840 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5438 /* 1843 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5439 /* 1845 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
5440 /* 1849 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
5441 /* 1853 */ GIR_EraseRootFromParent_Done,
5442 /* 1854 */ // Label 131: @1854
5443 /* 1854 */ GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(1899), // Rule ID 10 //
5444 /* 1859 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
5445 /* 1862 */ // MIs[0] root
5446 /* 1862 */ // No operand predicates
5447 /* 1862 */ // MIs[0] A
5448 /* 1862 */ // No operand predicates
5449 /* 1862 */ // MIs[0] sub1
5450 /* 1862 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5451 /* 1866 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5452 /* 1870 */ // MIs[1] B
5453 /* 1870 */ // No operand predicates
5454 /* 1870 */ // MIs[1] add1
5455 /* 1870 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5456 /* 1874 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
5457 /* 1878 */ // MIs[2] C
5458 /* 1878 */ // No operand predicates
5459 /* 1878 */ // MIs[2] A
5460 /* 1878 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5461 /* 1883 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5462 /* 1885 */ // Combiner Rule #10: APlusBMinusCPlusA
5463 /* 1885 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5464 /* 1888 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5465 /* 1890 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
5466 /* 1894 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
5467 /* 1898 */ GIR_EraseRootFromParent_Done,
5468 /* 1899 */ // Label 132: @1899
5469 /* 1899 */ GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(1954), // Rule ID 23 //
5470 /* 1904 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
5471 /* 1907 */ // MIs[0] dst
5472 /* 1907 */ // No operand predicates
5473 /* 1907 */ // MIs[0] other
5474 /* 1907 */ // No operand predicates
5475 /* 1907 */ // MIs[0] __add_p2i_to_ptradd_match_0.x
5476 /* 1907 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5477 /* 1911 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_PTRTOINT),
5478 /* 1915 */ // MIs[1] ptr
5479 /* 1915 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
5480 /* 1919 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
5481 /* 1923 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5482 /* 1925 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5483 /* 1928 */ // Combiner Rule #22: add_p2i_to_ptradd @ [__add_p2i_to_ptradd_match_0[1]]
5484 /* 1928 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_PTR_ADD),
5485 /* 1931 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5486 /* 1936 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ptr
5487 /* 1940 */ GIR_RootToRootCopy, /*OpIdx*/1, // other
5488 /* 1942 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_PTRTOINT),
5489 /* 1946 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
5490 /* 1950 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5491 /* 1953 */ GIR_EraseRootFromParent_Done,
5492 /* 1954 */ // Label 133: @1954
5493 /* 1954 */ GIM_Try, /*On fail goto*//*Label 134*/ GIMT_Encode4(1978), // Rule ID 107 //
5494 /* 1959 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
5495 /* 1962 */ // MIs[0] dst
5496 /* 1962 */ // No operand predicates
5497 /* 1962 */ // MIs[0] __propagate_undef_any_op_match_0.x
5498 /* 1962 */ // No operand predicates
5499 /* 1962 */ // MIs[0] __propagate_undef_any_op_match_0.y
5500 /* 1962 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5501 /* 1966 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5502 /* 1970 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5503 /* 1972 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[3]]
5504 /* 1972 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5505 /* 1975 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5506 /* 1977 */ GIR_EraseRootFromParent_Done,
5507 /* 1978 */ // Label 134: @1978
5508 /* 1978 */ GIM_Try, /*On fail goto*//*Label 135*/ GIMT_Encode4(2001), // Rule ID 119 //
5509 /* 1983 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
5510 /* 1986 */ // MIs[0] dst
5511 /* 1986 */ // No operand predicates
5512 /* 1986 */ // MIs[0] lhs
5513 /* 1986 */ // No operand predicates
5514 /* 1986 */ // MIs[0] Operand 2
5515 /* 1986 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5516 /* 1990 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5517 /* 1995 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[1]]
5518 /* 1995 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5519 /* 2000 */ GIR_EraseRootFromParent_Done,
5520 /* 2001 */ // Label 135: @2001
5521 /* 2001 */ GIM_Try, /*On fail goto*//*Label 136*/ GIMT_Encode4(2026), // Rule ID 381 //
5522 /* 2006 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule249Enabled),
5523 /* 2009 */ // MIs[0] dst
5524 /* 2009 */ // No operand predicates
5525 /* 2009 */ // MIs[0] lhs
5526 /* 2009 */ // No operand predicates
5527 /* 2009 */ // MIs[0] rhs
5528 /* 2009 */ // No operand predicates
5529 /* 2009 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
5530 /* 2013 */ // Combiner Rule #249: G_ADD_commute_constant_to_rhs
5531 /* 2013 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5532 /* 2016 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5533 /* 2018 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
5534 /* 2020 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
5535 /* 2022 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
5536 /* 2025 */ GIR_EraseRootFromParent_Done,
5537 /* 2026 */ // Label 136: @2026
5538 /* 2026 */ GIM_Try, /*On fail goto*//*Label 137*/ GIMT_Encode4(2037), // Rule ID 171 //
5539 /* 2031 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
5540 /* 2034 */ // MIs[0] root
5541 /* 2034 */ // No operand predicates
5542 /* 2034 */ // MIs[0] src1
5543 /* 2034 */ // No operand predicates
5544 /* 2034 */ // MIs[0] src2
5545 /* 2034 */ // No operand predicates
5546 /* 2034 */ // Combiner Rule #121: reassoc_comm_binops
5547 /* 2034 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner41),
5548 /* 2037 */ // Label 137: @2037
5549 /* 2037 */ GIM_Try, /*On fail goto*//*Label 138*/ GIMT_Encode4(2048), // Rule ID 280 //
5550 /* 2042 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
5551 /* 2045 */ // MIs[0] d
5552 /* 2045 */ // No operand predicates
5553 /* 2045 */ // MIs[0] mi.src0
5554 /* 2045 */ // No operand predicates
5555 /* 2045 */ // MIs[0] mi.src1
5556 /* 2045 */ // No operand predicates
5557 /* 2045 */ // Combiner Rule #210: constant_fold_binop @ [mi[0]]
5558 /* 2045 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
5559 /* 2048 */ // Label 138: @2048
5560 /* 2048 */ GIM_Try, /*On fail goto*//*Label 139*/ GIMT_Encode4(2059), // Rule ID 341 //
5561 /* 2053 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
5562 /* 2056 */ // MIs[0] root
5563 /* 2056 */ // No operand predicates
5564 /* 2056 */ // MIs[0] mi.x
5565 /* 2056 */ // No operand predicates
5566 /* 2056 */ // MIs[0] mi.y
5567 /* 2056 */ // No operand predicates
5568 /* 2056 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[0]]
5569 /* 2056 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
5570 /* 2059 */ // Label 139: @2059
5571 /* 2059 */ GIM_Reject,
5572 /* 2060 */ // Label 2: @2060
5573 /* 2060 */ GIM_Try, /*On fail goto*//*Label 140*/ GIMT_Encode4(2137), // Rule ID 454 //
5574 /* 2065 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule321Enabled),
5575 /* 2068 */ // MIs[0] dst
5576 /* 2068 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5577 /* 2072 */ // MIs[0] sub1
5578 /* 2072 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5579 /* 2076 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5580 /* 2080 */ // MIs[1] a
5581 /* 2080 */ // No operand predicates
5582 /* 2080 */ // MIs[1] b
5583 /* 2080 */ // No operand predicates
5584 /* 2080 */ // MIs[0] Operand 2
5585 /* 2080 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
5586 /* 2084 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
5587 /* 2088 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5588 /* 2090 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5589 /* 2093 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
5590 /* 2103 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5591 /* 2106 */ // Combiner Rule #321: sub_one_from_sub
5592 /* 2106 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
5593 /* 2109 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5594 /* 2114 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // b
5595 /* 2118 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5596 /* 2121 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5597 /* 2125 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
5598 /* 2129 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5599 /* 2132 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // a
5600 /* 2136 */ GIR_EraseRootFromParent_Done,
5601 /* 2137 */ // Label 140: @2137
5602 /* 2137 */ GIM_Try, /*On fail goto*//*Label 141*/ GIMT_Encode4(2231), // Rule ID 460 //
5603 /* 2142 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule325Enabled),
5604 /* 2145 */ // MIs[0] root
5605 /* 2145 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5606 /* 2149 */ // MIs[0] Operand 1
5607 /* 2149 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
5608 /* 2153 */ // MIs[0] max
5609 /* 2153 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5610 /* 2157 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SMAX),
5611 /* 2161 */ // MIs[1] A
5612 /* 2161 */ // No operand predicates
5613 /* 2161 */ // MIs[1] sub
5614 /* 2161 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5615 /* 2165 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5616 /* 2169 */ // MIs[2] Operand 1
5617 /* 2169 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/1, 0,
5618 /* 2173 */ // MIs[2] A
5619 /* 2173 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5620 /* 2178 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner59),
5621 /* 2182 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5622 /* 2184 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5623 /* 2187 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5624 /* 2197 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5625 /* 2200 */ // Combiner Rule #325: SubSmaxSub
5626 /* 2200 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5627 /* 2203 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5628 /* 2208 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5629 /* 2211 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5630 /* 2215 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMIN),
5631 /* 2219 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5632 /* 2223 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // A
5633 /* 2227 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5634 /* 2230 */ GIR_EraseRootFromParent_Done,
5635 /* 2231 */ // Label 141: @2231
5636 /* 2231 */ GIM_Try, /*On fail goto*//*Label 142*/ GIMT_Encode4(2325), // Rule ID 461 //
5637 /* 2236 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule326Enabled),
5638 /* 2239 */ // MIs[0] root
5639 /* 2239 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5640 /* 2243 */ // MIs[0] Operand 1
5641 /* 2243 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
5642 /* 2247 */ // MIs[0] max
5643 /* 2247 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5644 /* 2251 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMAX),
5645 /* 2255 */ // MIs[1] A
5646 /* 2255 */ // No operand predicates
5647 /* 2255 */ // MIs[1] sub
5648 /* 2255 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5649 /* 2259 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5650 /* 2263 */ // MIs[2] Operand 1
5651 /* 2263 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/1, 0,
5652 /* 2267 */ // MIs[2] A
5653 /* 2267 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5654 /* 2272 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner59),
5655 /* 2276 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5656 /* 2278 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5657 /* 2281 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5658 /* 2291 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5659 /* 2294 */ // Combiner Rule #326: SubUmaxSub
5660 /* 2294 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5661 /* 2297 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5662 /* 2302 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5663 /* 2305 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5664 /* 2309 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMIN),
5665 /* 2313 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5666 /* 2317 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // A
5667 /* 2321 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5668 /* 2324 */ GIR_EraseRootFromParent_Done,
5669 /* 2325 */ // Label 142: @2325
5670 /* 2325 */ GIM_Try, /*On fail goto*//*Label 143*/ GIMT_Encode4(2365), // Rule ID 458 //
5671 /* 2330 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule323Enabled),
5672 /* 2333 */ // MIs[0] root
5673 /* 2333 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5674 /* 2337 */ // MIs[0] Operand 1
5675 /* 2337 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 255,
5676 /* 2341 */ // MIs[0] op1
5677 /* 2341 */ // No operand predicates
5678 /* 2341 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5679 /* 2344 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(18446744073709551615u),
5680 /* 2354 */ // Combiner Rule #323: sub_minus_one
5681 /* 2354 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
5682 /* 2357 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5683 /* 2359 */ GIR_RootToRootCopy, /*OpIdx*/2, // op1
5684 /* 2361 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5685 /* 2364 */ GIR_EraseRootFromParent_Done,
5686 /* 2365 */ // Label 143: @2365
5687 /* 2365 */ GIM_Try, /*On fail goto*//*Label 144*/ GIMT_Encode4(2417), // Rule ID 377 //
5688 /* 2370 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule245Enabled),
5689 /* 2373 */ // MIs[0] dst
5690 /* 2373 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5691 /* 2377 */ // MIs[0] x
5692 /* 2377 */ // No operand predicates
5693 /* 2377 */ // MIs[0] sum
5694 /* 2377 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5695 /* 2381 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5696 /* 2385 */ // MIs[1] y
5697 /* 2385 */ // No operand predicates
5698 /* 2385 */ // MIs[1] z
5699 /* 2385 */ // No operand predicates
5700 /* 2385 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner45),
5701 /* 2389 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5702 /* 2391 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5703 /* 2394 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
5704 /* 2404 */ // Combiner Rule #245: sub_add_neg_rhs
5705 /* 2404 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5706 /* 2407 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5707 /* 2409 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5708 /* 2412 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // y
5709 /* 2416 */ GIR_EraseRootFromParent_Done,
5710 /* 2417 */ // Label 144: @2417
5711 /* 2417 */ GIM_Try, /*On fail goto*//*Label 145*/ GIMT_Encode4(2469), // Rule ID 378 //
5712 /* 2422 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule246Enabled),
5713 /* 2425 */ // MIs[0] dst
5714 /* 2425 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5715 /* 2429 */ // MIs[0] x
5716 /* 2429 */ // No operand predicates
5717 /* 2429 */ // MIs[0] sum
5718 /* 2429 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5719 /* 2433 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5720 /* 2437 */ // MIs[1] y
5721 /* 2437 */ // No operand predicates
5722 /* 2437 */ // MIs[1] z
5723 /* 2437 */ // No operand predicates
5724 /* 2437 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner46),
5725 /* 2441 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5726 /* 2443 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5727 /* 2446 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
5728 /* 2456 */ // Combiner Rule #246: sub_add_neg_lhs
5729 /* 2456 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5730 /* 2459 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5731 /* 2461 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
5732 /* 2464 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // z
5733 /* 2468 */ GIR_EraseRootFromParent_Done,
5734 /* 2469 */ // Label 145: @2469
5735 /* 2469 */ GIM_Try, /*On fail goto*//*Label 146*/ GIMT_Encode4(2567), // Rule ID 459 //
5736 /* 2474 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule324Enabled),
5737 /* 2477 */ // MIs[0] d
5738 /* 2477 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5739 /* 2481 */ // MIs[0] a
5740 /* 2481 */ // No operand predicates
5741 /* 2481 */ // MIs[0] mul
5742 /* 2481 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5743 /* 2485 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
5744 /* 2489 */ GIM_CheckHasOneUse, /*MI*/1,
5745 /* 2491 */ // MIs[1] x
5746 /* 2491 */ // No operand predicates
5747 /* 2491 */ // MIs[1] c
5748 /* 2491 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5749 /* 2495 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5750 /* 2499 */ // MIs[2] imm
5751 /* 2499 */ // No operand predicates
5752 /* 2499 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5753 /* 2501 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
5754 /* 2504 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5755 /* 2507 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5756 /* 2517 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5757 /* 2520 */ // Combiner Rule #324: sub_of_mul_const
5758 /* 2520 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5759 /* 2523 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5760 /* 2528 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
5761 /* 2531 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // c
5762 /* 2535 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MUL),
5763 /* 2539 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5764 /* 2544 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
5765 /* 2548 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5766 /* 2551 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5767 /* 2555 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // d
5768 /* 2559 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/1, // a
5769 /* 2563 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
5770 /* 2566 */ GIR_EraseRootFromParent_Done,
5771 /* 2567 */ // Label 146: @2567
5772 /* 2567 */ GIM_Try, /*On fail goto*//*Label 147*/ GIMT_Encode4(2628), // Rule ID 9 //
5773 /* 2572 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
5774 /* 2575 */ // MIs[0] root
5775 /* 2575 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
5776 /* 2579 */ // MIs[0] A
5777 /* 2579 */ // No operand predicates
5778 /* 2579 */ // MIs[0] sub1
5779 /* 2579 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5780 /* 2583 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5781 /* 2587 */ // MIs[1] B
5782 /* 2587 */ // No operand predicates
5783 /* 2587 */ // MIs[1] C
5784 /* 2587 */ // No operand predicates
5785 /* 2587 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
5786 /* 2591 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5787 /* 2593 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5788 /* 2596 */ // Combiner Rule #9: AMinusBMinusC
5789 /* 2596 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5790 /* 2599 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5791 /* 2604 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // C
5792 /* 2608 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
5793 /* 2612 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
5794 /* 2616 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5795 /* 2620 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // A
5796 /* 2624 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5797 /* 2627 */ GIR_EraseRootFromParent_Done,
5798 /* 2628 */ // Label 147: @2628
5799 /* 2628 */ GIM_Try, /*On fail goto*//*Label 148*/ GIMT_Encode4(2673), // Rule ID 0 //
5800 /* 2633 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
5801 /* 2636 */ // MIs[0] root
5802 /* 2636 */ // No operand predicates
5803 /* 2636 */ // MIs[0] add1
5804 /* 2636 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5805 /* 2640 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5806 /* 2644 */ // MIs[1] A
5807 /* 2644 */ // No operand predicates
5808 /* 2644 */ // MIs[1] sub1
5809 /* 2644 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5810 /* 2648 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5811 /* 2652 */ // MIs[2] B
5812 /* 2652 */ // No operand predicates
5813 /* 2652 */ // MIs[2] C
5814 /* 2652 */ // No operand predicates
5815 /* 2652 */ // MIs[0] B
5816 /* 2652 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
5817 /* 2657 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5818 /* 2659 */ // Combiner Rule #0: APlusBMinusCMinusB
5819 /* 2659 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5820 /* 2662 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5821 /* 2664 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5822 /* 2668 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
5823 /* 2672 */ GIR_EraseRootFromParent_Done,
5824 /* 2673 */ // Label 148: @2673
5825 /* 2673 */ GIM_Try, /*On fail goto*//*Label 149*/ GIMT_Encode4(2710), // Rule ID 14 //
5826 /* 2678 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
5827 /* 2681 */ // MIs[0] root
5828 /* 2681 */ // No operand predicates
5829 /* 2681 */ // MIs[0] add
5830 /* 2681 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5831 /* 2685 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5832 /* 2689 */ // MIs[1] A
5833 /* 2689 */ // No operand predicates
5834 /* 2689 */ // MIs[1] c1
5835 /* 2689 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5836 /* 2693 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5837 /* 2697 */ // MIs[2] imm1
5838 /* 2697 */ // No operand predicates
5839 /* 2697 */ // MIs[0] c2
5840 /* 2697 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5841 /* 2701 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5842 /* 2705 */ // MIs[3] imm2
5843 /* 2705 */ // No operand predicates
5844 /* 2705 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5845 /* 2707 */ // Combiner Rule #14: APlusC1MinusC2
5846 /* 2707 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
5847 /* 2710 */ // Label 149: @2710
5848 /* 2710 */ GIM_Try, /*On fail goto*//*Label 150*/ GIMT_Encode4(2743), // Rule ID 375 //
5849 /* 2715 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule243Enabled),
5850 /* 2718 */ // MIs[0] dst
5851 /* 2718 */ // No operand predicates
5852 /* 2718 */ // MIs[0] sum
5853 /* 2718 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5854 /* 2722 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5855 /* 2726 */ // MIs[1] x
5856 /* 2726 */ // No operand predicates
5857 /* 2726 */ // MIs[1] y
5858 /* 2726 */ // No operand predicates
5859 /* 2726 */ // MIs[0] z
5860 /* 2726 */ // No operand predicates
5861 /* 2726 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner43),
5862 /* 2730 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5863 /* 2735 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5864 /* 2737 */ // Combiner Rule #243: sub_add_reg_rhs
5865 /* 2737 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
5866 /* 2742 */ GIR_EraseRootFromParent_Done,
5867 /* 2743 */ // Label 150: @2743
5868 /* 2743 */ GIM_Try, /*On fail goto*//*Label 151*/ GIMT_Encode4(2776), // Rule ID 376 //
5869 /* 2748 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule244Enabled),
5870 /* 2751 */ // MIs[0] dst
5871 /* 2751 */ // No operand predicates
5872 /* 2751 */ // MIs[0] sum
5873 /* 2751 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5874 /* 2755 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5875 /* 2759 */ // MIs[1] x
5876 /* 2759 */ // No operand predicates
5877 /* 2759 */ // MIs[1] y
5878 /* 2759 */ // No operand predicates
5879 /* 2759 */ // MIs[0] z
5880 /* 2759 */ // No operand predicates
5881 /* 2759 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner44),
5882 /* 2763 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
5883 /* 2768 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5884 /* 2770 */ // Combiner Rule #244: sub_add_reg_lhs
5885 /* 2770 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
5886 /* 2775 */ GIR_EraseRootFromParent_Done,
5887 /* 2776 */ // Label 151: @2776
5888 /* 2776 */ GIM_Try, /*On fail goto*//*Label 152*/ GIMT_Encode4(2813), // Rule ID 17 //
5889 /* 2781 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
5890 /* 2784 */ // MIs[0] root
5891 /* 2784 */ // No operand predicates
5892 /* 2784 */ // MIs[0] sub1
5893 /* 2784 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5894 /* 2788 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5895 /* 2792 */ // MIs[1] c1
5896 /* 2792 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
5897 /* 2796 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5898 /* 2800 */ // MIs[2] imm1
5899 /* 2800 */ // No operand predicates
5900 /* 2800 */ // MIs[1] A
5901 /* 2800 */ // No operand predicates
5902 /* 2800 */ // MIs[0] c2
5903 /* 2800 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5904 /* 2804 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5905 /* 2808 */ // MIs[3] imm2
5906 /* 2808 */ // No operand predicates
5907 /* 2808 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5908 /* 2810 */ // Combiner Rule #17: C1Minus2MinusC2
5909 /* 2810 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner3),
5910 /* 2813 */ // Label 152: @2813
5911 /* 2813 */ GIM_Try, /*On fail goto*//*Label 153*/ GIMT_Encode4(2858), // Rule ID 1 //
5912 /* 2818 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
5913 /* 2821 */ // MIs[0] root
5914 /* 2821 */ // No operand predicates
5915 /* 2821 */ // MIs[0] sub2
5916 /* 2821 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5917 /* 2825 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5918 /* 2829 */ // MIs[1] A
5919 /* 2829 */ // No operand predicates
5920 /* 2829 */ // MIs[1] sub1
5921 /* 2829 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5922 /* 2833 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
5923 /* 2837 */ // MIs[2] B
5924 /* 2837 */ // No operand predicates
5925 /* 2837 */ // MIs[2] C
5926 /* 2837 */ // No operand predicates
5927 /* 2837 */ // MIs[0] C
5928 /* 2837 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/2,
5929 /* 2842 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5930 /* 2844 */ // Combiner Rule #1: AMinusBMinusCMinusC
5931 /* 2844 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
5932 /* 2847 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
5933 /* 2849 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
5934 /* 2853 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // B
5935 /* 2857 */ GIR_EraseRootFromParent_Done,
5936 /* 2858 */ // Label 153: @2858
5937 /* 2858 */ GIM_Try, /*On fail goto*//*Label 154*/ GIMT_Encode4(2895), // Rule ID 16 //
5938 /* 2863 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
5939 /* 2866 */ // MIs[0] root
5940 /* 2866 */ // No operand predicates
5941 /* 2866 */ // MIs[0] sub1
5942 /* 2866 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5943 /* 2870 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5944 /* 2874 */ // MIs[1] A
5945 /* 2874 */ // No operand predicates
5946 /* 2874 */ // MIs[1] c1
5947 /* 2874 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5948 /* 2878 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5949 /* 2882 */ // MIs[2] imm1
5950 /* 2882 */ // No operand predicates
5951 /* 2882 */ // MIs[0] c2
5952 /* 2882 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5953 /* 2886 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5954 /* 2890 */ // MIs[3] imm2
5955 /* 2890 */ // No operand predicates
5956 /* 2890 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5957 /* 2892 */ // Combiner Rule #16: AMinusC1MinusC2
5958 /* 2892 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
5959 /* 2895 */ // Label 154: @2895
5960 /* 2895 */ GIM_Try, /*On fail goto*//*Label 155*/ GIMT_Encode4(2919), // Rule ID 105 //
5961 /* 2900 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
5962 /* 2903 */ // MIs[0] dst
5963 /* 2903 */ // No operand predicates
5964 /* 2903 */ // MIs[0] __propagate_undef_any_op_match_0.x
5965 /* 2903 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5966 /* 2907 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5967 /* 2911 */ // MIs[0] __propagate_undef_any_op_match_0.y
5968 /* 2911 */ // No operand predicates
5969 /* 2911 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5970 /* 2913 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[1]]
5971 /* 2913 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5972 /* 2916 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5973 /* 2918 */ GIR_EraseRootFromParent_Done,
5974 /* 2919 */ // Label 155: @2919
5975 /* 2919 */ GIM_Try, /*On fail goto*//*Label 156*/ GIMT_Encode4(2962), // Rule ID 181 //
5976 /* 2924 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled),
5977 /* 2927 */ // MIs[0] dst
5978 /* 2927 */ // No operand predicates
5979 /* 2927 */ // MIs[0] Operand 1
5980 /* 2927 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
5981 /* 2931 */ // MIs[0] and
5982 /* 2931 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5983 /* 2935 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
5984 /* 2939 */ // MIs[1] x
5985 /* 2939 */ // No operand predicates
5986 /* 2939 */ // MIs[1] Operand 2
5987 /* 2939 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
5988 /* 2943 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner24),
5989 /* 2947 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5990 /* 2949 */ // Combiner Rule #131: neg_and_one_to_sext_inreg
5991 /* 2949 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
5992 /* 2952 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
5993 /* 2954 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
5994 /* 2958 */ GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
5995 /* 2961 */ GIR_EraseRootFromParent_Done,
5996 /* 2962 */ // Label 156: @2962
5997 /* 2962 */ GIM_Try, /*On fail goto*//*Label 157*/ GIMT_Encode4(2999), // Rule ID 15 //
5998 /* 2967 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
5999 /* 2970 */ // MIs[0] root
6000 /* 2970 */ // No operand predicates
6001 /* 2970 */ // MIs[0] c2
6002 /* 2970 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6003 /* 2974 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6004 /* 2978 */ // MIs[1] imm2
6005 /* 2978 */ // No operand predicates
6006 /* 2978 */ // MIs[0] add
6007 /* 2978 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6008 /* 2982 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
6009 /* 2986 */ // MIs[2] A
6010 /* 2986 */ // No operand predicates
6011 /* 2986 */ // MIs[2] c1
6012 /* 2986 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
6013 /* 2990 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6014 /* 2994 */ // MIs[3] imm1
6015 /* 2994 */ // No operand predicates
6016 /* 2994 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
6017 /* 2996 */ // Combiner Rule #15: C2MinusAPlusC1
6018 /* 2996 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
6019 /* 2999 */ // Label 157: @2999
6020 /* 2999 */ GIM_Try, /*On fail goto*//*Label 158*/ GIMT_Encode4(3038), // Rule ID 130 //
6021 /* 3004 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
6022 /* 3007 */ // MIs[0] dst
6023 /* 3007 */ // No operand predicates
6024 /* 3007 */ // MIs[0] x
6025 /* 3007 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
6026 /* 3011 */ // MIs[0] x
6027 /* 3011 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6028 /* 3016 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6029 /* 3019 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
6030 /* 3029 */ // Combiner Rule #94: same_val_zero @ [__same_val_zero_match_0[0]]
6031 /* 3029 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
6032 /* 3032 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6033 /* 3034 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
6034 /* 3037 */ GIR_EraseRootFromParent_Done,
6035 /* 3038 */ // Label 158: @3038
6036 /* 3038 */ GIM_Try, /*On fail goto*//*Label 159*/ GIMT_Encode4(3072), // Rule ID 12 //
6037 /* 3043 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
6038 /* 3046 */ // MIs[0] root
6039 /* 3046 */ // No operand predicates
6040 /* 3046 */ // MIs[0] A
6041 /* 3046 */ // No operand predicates
6042 /* 3046 */ // MIs[0] add
6043 /* 3046 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6044 /* 3050 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
6045 /* 3054 */ // MIs[1] A
6046 /* 3054 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
6047 /* 3059 */ // MIs[1] B
6048 /* 3059 */ // No operand predicates
6049 /* 3059 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
6050 /* 3064 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6051 /* 3066 */ // Combiner Rule #12: AMinusBMinusA
6052 /* 3066 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
6053 /* 3071 */ GIR_EraseRootFromParent_Done,
6054 /* 3072 */ // Label 159: @3072
6055 /* 3072 */ GIM_Try, /*On fail goto*//*Label 160*/ GIMT_Encode4(3106), // Rule ID 11 //
6056 /* 3077 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
6057 /* 3080 */ // MIs[0] root
6058 /* 3080 */ // No operand predicates
6059 /* 3080 */ // MIs[0] A
6060 /* 3080 */ // No operand predicates
6061 /* 3080 */ // MIs[0] sub1
6062 /* 3080 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6063 /* 3084 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
6064 /* 3088 */ // MIs[1] Operand 1
6065 /* 3088 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
6066 /* 3092 */ // MIs[1] B
6067 /* 3092 */ // No operand predicates
6068 /* 3092 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6069 /* 3094 */ // Combiner Rule #11: AMinusZeroMinusB
6070 /* 3094 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
6071 /* 3097 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6072 /* 3099 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
6073 /* 3101 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
6074 /* 3105 */ GIR_EraseRootFromParent_Done,
6075 /* 3106 */ // Label 160: @3106
6076 /* 3106 */ GIM_Try, /*On fail goto*//*Label 161*/ GIMT_Encode4(3133), // Rule ID 49 //
6077 /* 3111 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
6078 /* 3114 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
6079 /* 3120 */ // MIs[0] root
6080 /* 3120 */ // No operand predicates
6081 /* 3120 */ // MIs[0] x
6082 /* 3120 */ // No operand predicates
6083 /* 3120 */ // MIs[0] right
6084 /* 3120 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6085 /* 3124 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
6086 /* 3128 */ // MIs[1] imm
6087 /* 3128 */ // No operand predicates
6088 /* 3128 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6089 /* 3130 */ // Combiner Rule #45: sub_of_vscale
6090 /* 3130 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
6091 /* 3133 */ // Label 161: @3133
6092 /* 3133 */ GIM_Try, /*On fail goto*//*Label 162*/ GIMT_Encode4(3157), // Rule ID 108 //
6093 /* 3138 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
6094 /* 3141 */ // MIs[0] dst
6095 /* 3141 */ // No operand predicates
6096 /* 3141 */ // MIs[0] __propagate_undef_any_op_match_0.x
6097 /* 3141 */ // No operand predicates
6098 /* 3141 */ // MIs[0] __propagate_undef_any_op_match_0.y
6099 /* 3141 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6100 /* 3145 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6101 /* 3149 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6102 /* 3151 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[4]]
6103 /* 3151 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6104 /* 3154 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6105 /* 3156 */ GIR_EraseRootFromParent_Done,
6106 /* 3157 */ // Label 162: @3157
6107 /* 3157 */ GIM_Try, /*On fail goto*//*Label 163*/ GIMT_Encode4(3180), // Rule ID 118 //
6108 /* 3162 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
6109 /* 3165 */ // MIs[0] dst
6110 /* 3165 */ // No operand predicates
6111 /* 3165 */ // MIs[0] lhs
6112 /* 3165 */ // No operand predicates
6113 /* 3165 */ // MIs[0] Operand 2
6114 /* 3165 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6115 /* 3169 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6116 /* 3174 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[0]]
6117 /* 3174 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6118 /* 3179 */ GIR_EraseRootFromParent_Done,
6119 /* 3180 */ // Label 163: @3180
6120 /* 3180 */ GIM_Try, /*On fail goto*//*Label 164*/ GIMT_Encode4(3201), // Rule ID 21 //
6121 /* 3185 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
6122 /* 3188 */ // MIs[0] d
6123 /* 3188 */ // No operand predicates
6124 /* 3188 */ // MIs[0] op1
6125 /* 3188 */ // No operand predicates
6126 /* 3188 */ // MIs[0] c
6127 /* 3188 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6128 /* 3192 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6129 /* 3196 */ // MIs[1] imm
6130 /* 3196 */ // No operand predicates
6131 /* 3196 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6132 /* 3198 */ // Combiner Rule #21: sub_to_add
6133 /* 3198 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
6134 /* 3201 */ // Label 164: @3201
6135 /* 3201 */ GIM_Try, /*On fail goto*//*Label 165*/ GIMT_Encode4(3212), // Rule ID 288 //
6136 /* 3206 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
6137 /* 3209 */ // MIs[0] d
6138 /* 3209 */ // No operand predicates
6139 /* 3209 */ // MIs[0] mi.src0
6140 /* 3209 */ // No operand predicates
6141 /* 3209 */ // MIs[0] mi.src1
6142 /* 3209 */ // No operand predicates
6143 /* 3209 */ // Combiner Rule #210: constant_fold_binop @ [mi[8]]
6144 /* 3209 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
6145 /* 3212 */ // Label 165: @3212
6146 /* 3212 */ GIM_Try, /*On fail goto*//*Label 166*/ GIMT_Encode4(3223), // Rule ID 342 //
6147 /* 3217 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
6148 /* 3220 */ // MIs[0] root
6149 /* 3220 */ // No operand predicates
6150 /* 3220 */ // MIs[0] mi.x
6151 /* 3220 */ // No operand predicates
6152 /* 3220 */ // MIs[0] mi.y
6153 /* 3220 */ // No operand predicates
6154 /* 3220 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[1]]
6155 /* 3220 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
6156 /* 3223 */ // Label 166: @3223
6157 /* 3223 */ GIM_Try, /*On fail goto*//*Label 167*/ GIMT_Encode4(3234), // Rule ID 418 //
6158 /* 3228 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule286Enabled),
6159 /* 3231 */ // MIs[0] dst
6160 /* 3231 */ // No operand predicates
6161 /* 3231 */ // MIs[0] src1
6162 /* 3231 */ // No operand predicates
6163 /* 3231 */ // MIs[0] src2
6164 /* 3231 */ // No operand predicates
6165 /* 3231 */ // Combiner Rule #286: simplify_neg_minmax
6166 /* 3231 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
6167 /* 3234 */ // Label 167: @3234
6168 /* 3234 */ GIM_Reject,
6169 /* 3235 */ // Label 3: @3235
6170 /* 3235 */ GIM_Try, /*On fail goto*//*Label 168*/ GIMT_Encode4(3275), // Rule ID 24 //
6171 /* 3240 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
6172 /* 3243 */ // MIs[0] dst
6173 /* 3243 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
6174 /* 3247 */ // MIs[0] x
6175 /* 3247 */ // No operand predicates
6176 /* 3247 */ // MIs[0] Operand 2
6177 /* 3247 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
6178 /* 3251 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6179 /* 3254 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
6180 /* 3264 */ // Combiner Rule #23: mul_by_neg_one
6181 /* 3264 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
6182 /* 3267 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6183 /* 3269 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
6184 /* 3272 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
6185 /* 3274 */ GIR_EraseRootFromParent_Done,
6186 /* 3275 */ // Label 168: @3275
6187 /* 3275 */ GIM_Try, /*On fail goto*//*Label 169*/ GIMT_Encode4(3310), // Rule ID 47 //
6188 /* 3280 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
6189 /* 3283 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
6190 /* 3289 */ // MIs[0] root
6191 /* 3289 */ // No operand predicates
6192 /* 3289 */ // MIs[0] left
6193 /* 3289 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6194 /* 3293 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
6195 /* 3297 */ // MIs[1] scale
6196 /* 3297 */ // No operand predicates
6197 /* 3297 */ // MIs[0] x
6198 /* 3297 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6199 /* 3301 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6200 /* 3305 */ // MIs[2] imm1
6201 /* 3305 */ // No operand predicates
6202 /* 3305 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6203 /* 3307 */ // Combiner Rule #43: mul_of_vscale
6204 /* 3307 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
6205 /* 3310 */ // Label 169: @3310
6206 /* 3310 */ GIM_Try, /*On fail goto*//*Label 170*/ GIMT_Encode4(3331), // Rule ID 85 //
6207 /* 3315 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6208 /* 3318 */ // MIs[0] dst
6209 /* 3318 */ // No operand predicates
6210 /* 3318 */ // MIs[0] __undef_to_int_zero_match_0.x
6211 /* 3318 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6212 /* 3322 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6213 /* 3326 */ // MIs[0] __undef_to_int_zero_match_0.y
6214 /* 3326 */ // No operand predicates
6215 /* 3326 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6216 /* 3328 */ // Combiner Rule #77: undef_to_int_zero @ [__undef_to_int_zero_match_0[1]]
6217 /* 3328 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
6218 /* 3331 */ // Label 170: @3331
6219 /* 3331 */ GIM_Try, /*On fail goto*//*Label 171*/ GIMT_Encode4(3352), // Rule ID 87 //
6220 /* 3336 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6221 /* 3339 */ // MIs[0] dst
6222 /* 3339 */ // No operand predicates
6223 /* 3339 */ // MIs[0] __undef_to_int_zero_match_0.x
6224 /* 3339 */ // No operand predicates
6225 /* 3339 */ // MIs[0] __undef_to_int_zero_match_0.y
6226 /* 3339 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6227 /* 3343 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6228 /* 3347 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6229 /* 3349 */ // Combiner Rule #77: undef_to_int_zero @ [__undef_to_int_zero_match_0[3]]
6230 /* 3349 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
6231 /* 3352 */ // Label 171: @3352
6232 /* 3352 */ GIM_Try, /*On fail goto*//*Label 172*/ GIMT_Encode4(3375), // Rule ID 140 //
6233 /* 3357 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule96Enabled),
6234 /* 3360 */ // MIs[0] dst
6235 /* 3360 */ // No operand predicates
6236 /* 3360 */ // MIs[0] lhs
6237 /* 3360 */ // No operand predicates
6238 /* 3360 */ // MIs[0] zero
6239 /* 3360 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6240 /* 3364 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6241 /* 3369 */ // Combiner Rule #96: binop_right_to_zero
6242 /* 3369 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
6243 /* 3374 */ GIR_EraseRootFromParent_Done,
6244 /* 3375 */ // Label 172: @3375
6245 /* 3375 */ GIM_Try, /*On fail goto*//*Label 173*/ GIMT_Encode4(3398), // Rule ID 147 //
6246 /* 3380 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
6247 /* 3383 */ // MIs[0] dst
6248 /* 3383 */ // No operand predicates
6249 /* 3383 */ // MIs[0] x
6250 /* 3383 */ // No operand predicates
6251 /* 3383 */ // MIs[0] Operand 2
6252 /* 3383 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
6253 /* 3387 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6254 /* 3392 */ // Combiner Rule #103: right_identity_one_int
6255 /* 3392 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6256 /* 3397 */ GIR_EraseRootFromParent_Done,
6257 /* 3398 */ // Label 173: @3398
6258 /* 3398 */ GIM_Try, /*On fail goto*//*Label 174*/ GIMT_Encode4(3421), // Rule ID 139 //
6259 /* 3403 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
6260 /* 3406 */ // MIs[0] dst
6261 /* 3406 */ // No operand predicates
6262 /* 3406 */ // MIs[0] zero
6263 /* 3406 */ // No operand predicates
6264 /* 3406 */ // MIs[0] rhs
6265 /* 3406 */ // No operand predicates
6266 /* 3406 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
6267 /* 3410 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6268 /* 3415 */ // Combiner Rule #95: binop_left_to_zero @ [__binop_left_to_zero_match_0[7]]
6269 /* 3415 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6270 /* 3420 */ GIR_EraseRootFromParent_Done,
6271 /* 3421 */ // Label 174: @3421
6272 /* 3421 */ GIM_Try, /*On fail goto*//*Label 175*/ GIMT_Encode4(3446), // Rule ID 382 //
6273 /* 3426 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule250Enabled),
6274 /* 3429 */ // MIs[0] dst
6275 /* 3429 */ // No operand predicates
6276 /* 3429 */ // MIs[0] lhs
6277 /* 3429 */ // No operand predicates
6278 /* 3429 */ // MIs[0] rhs
6279 /* 3429 */ // No operand predicates
6280 /* 3429 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
6281 /* 3433 */ // Combiner Rule #250: G_MUL_commute_constant_to_rhs
6282 /* 3433 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MUL),
6283 /* 3436 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6284 /* 3438 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
6285 /* 3440 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
6286 /* 3442 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
6287 /* 3445 */ GIR_EraseRootFromParent_Done,
6288 /* 3446 */ // Label 175: @3446
6289 /* 3446 */ GIM_Try, /*On fail goto*//*Label 176*/ GIMT_Encode4(3457), // Rule ID 20 //
6290 /* 3451 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
6291 /* 3454 */ // MIs[0] d
6292 /* 3454 */ // No operand predicates
6293 /* 3454 */ // MIs[0] op1
6294 /* 3454 */ // No operand predicates
6295 /* 3454 */ // MIs[0] op2
6296 /* 3454 */ // No operand predicates
6297 /* 3454 */ // Combiner Rule #20: mul_to_shl
6298 /* 3454 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
6299 /* 3457 */ // Label 176: @3457
6300 /* 3457 */ GIM_Try, /*On fail goto*//*Label 177*/ GIMT_Encode4(3468), // Rule ID 285 //
6301 /* 3462 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
6302 /* 3465 */ // MIs[0] d
6303 /* 3465 */ // No operand predicates
6304 /* 3465 */ // MIs[0] mi.src0
6305 /* 3465 */ // No operand predicates
6306 /* 3465 */ // MIs[0] mi.src1
6307 /* 3465 */ // No operand predicates
6308 /* 3465 */ // Combiner Rule #210: constant_fold_binop @ [mi[5]]
6309 /* 3465 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
6310 /* 3468 */ // Label 177: @3468
6311 /* 3468 */ GIM_Reject,
6312 /* 3469 */ // Label 4: @3469
6313 /* 3469 */ GIM_Try, /*On fail goto*//*Label 178*/ GIMT_Encode4(3492), // Rule ID 135 //
6314 /* 3474 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
6315 /* 3477 */ // MIs[0] dst
6316 /* 3477 */ // No operand predicates
6317 /* 3477 */ // MIs[0] zero
6318 /* 3477 */ // No operand predicates
6319 /* 3477 */ // MIs[0] rhs
6320 /* 3477 */ // No operand predicates
6321 /* 3477 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
6322 /* 3481 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6323 /* 3486 */ // Combiner Rule #95: binop_left_to_zero @ [__binop_left_to_zero_match_0[3]]
6324 /* 3486 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6325 /* 3491 */ GIR_EraseRootFromParent_Done,
6326 /* 3492 */ // Label 178: @3492
6327 /* 3492 */ GIM_Try, /*On fail goto*//*Label 179*/ GIMT_Encode4(3509), // Rule ID 371 //
6328 /* 3497 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule239Enabled),
6329 /* 3500 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
6330 /* 3506 */ // MIs[0] dst
6331 /* 3506 */ // No operand predicates
6332 /* 3506 */ // MIs[0] x
6333 /* 3506 */ // No operand predicates
6334 /* 3506 */ // MIs[0] y
6335 /* 3506 */ // No operand predicates
6336 /* 3506 */ // Combiner Rule #239: sdiv_by_pow2
6337 /* 3506 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner99),
6338 /* 3509 */ // Label 179: @3509
6339 /* 3509 */ GIM_Try, /*On fail goto*//*Label 180*/ GIMT_Encode4(3520), // Rule ID 255 //
6340 /* 3514 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
6341 /* 3517 */ // MIs[0] root
6342 /* 3517 */ // No operand predicates
6343 /* 3517 */ // MIs[0] mi.x
6344 /* 3517 */ // No operand predicates
6345 /* 3517 */ // MIs[0] mi.y
6346 /* 3517 */ // No operand predicates
6347 /* 3517 */ // Combiner Rule #193: div_rem_to_divrem @ [mi[0]]
6348 /* 3517 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
6349 /* 3520 */ // Label 180: @3520
6350 /* 3520 */ GIM_Try, /*On fail goto*//*Label 181*/ GIMT_Encode4(3531), // Rule ID 291 //
6351 /* 3525 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
6352 /* 3528 */ // MIs[0] d
6353 /* 3528 */ // No operand predicates
6354 /* 3528 */ // MIs[0] mi.src0
6355 /* 3528 */ // No operand predicates
6356 /* 3528 */ // MIs[0] mi.src1
6357 /* 3528 */ // No operand predicates
6358 /* 3528 */ // Combiner Rule #210: constant_fold_binop @ [mi[11]]
6359 /* 3528 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
6360 /* 3531 */ // Label 181: @3531
6361 /* 3531 */ GIM_Try, /*On fail goto*//*Label 182*/ GIMT_Encode4(3542), // Rule ID 347 //
6362 /* 3536 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
6363 /* 3539 */ // MIs[0] root
6364 /* 3539 */ // No operand predicates
6365 /* 3539 */ // MIs[0] mi.x
6366 /* 3539 */ // No operand predicates
6367 /* 3539 */ // MIs[0] mi.y
6368 /* 3539 */ // No operand predicates
6369 /* 3539 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[6]]
6370 /* 3539 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
6371 /* 3542 */ // Label 182: @3542
6372 /* 3542 */ GIM_Try, /*On fail goto*//*Label 183*/ GIMT_Encode4(3553), // Rule ID 373 //
6373 /* 3547 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule241Enabled),
6374 /* 3550 */ // MIs[0] dst
6375 /* 3550 */ // No operand predicates
6376 /* 3550 */ // MIs[0] x
6377 /* 3550 */ // No operand predicates
6378 /* 3550 */ // MIs[0] y
6379 /* 3550 */ // No operand predicates
6380 /* 3550 */ // Combiner Rule #241: sdiv_by_const
6381 /* 3550 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
6382 /* 3553 */ // Label 183: @3553
6383 /* 3553 */ GIM_Reject,
6384 /* 3554 */ // Label 5: @3554
6385 /* 3554 */ GIM_Try, /*On fail goto*//*Label 184*/ GIMT_Encode4(3575), // Rule ID 91 //
6386 /* 3559 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
6387 /* 3562 */ // MIs[0] dst
6388 /* 3562 */ // No operand predicates
6389 /* 3562 */ // MIs[0] __binop_left_undef_to_zero_match_0.x
6390 /* 3562 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6391 /* 3566 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6392 /* 3570 */ // MIs[0] __binop_left_undef_to_zero_match_0.y
6393 /* 3570 */ // No operand predicates
6394 /* 3570 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6395 /* 3572 */ // Combiner Rule #79: binop_left_undef_to_zero @ [__binop_left_undef_to_zero_match_0[1]]
6396 /* 3572 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
6397 /* 3575 */ // Label 184: @3575
6398 /* 3575 */ GIM_Try, /*On fail goto*//*Label 185*/ GIMT_Encode4(3598), // Rule ID 136 //
6399 /* 3580 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
6400 /* 3583 */ // MIs[0] dst
6401 /* 3583 */ // No operand predicates
6402 /* 3583 */ // MIs[0] zero
6403 /* 3583 */ // No operand predicates
6404 /* 3583 */ // MIs[0] rhs
6405 /* 3583 */ // No operand predicates
6406 /* 3583 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
6407 /* 3587 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6408 /* 3592 */ // Combiner Rule #95: binop_left_to_zero @ [__binop_left_to_zero_match_0[4]]
6409 /* 3592 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6410 /* 3597 */ GIR_EraseRootFromParent_Done,
6411 /* 3598 */ // Label 185: @3598
6412 /* 3598 */ GIM_Try, /*On fail goto*//*Label 186*/ GIMT_Encode4(3615), // Rule ID 370 //
6413 /* 3603 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule238Enabled),
6414 /* 3606 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
6415 /* 3612 */ // MIs[0] dst
6416 /* 3612 */ // No operand predicates
6417 /* 3612 */ // MIs[0] x
6418 /* 3612 */ // No operand predicates
6419 /* 3612 */ // MIs[0] y
6420 /* 3612 */ // No operand predicates
6421 /* 3612 */ // Combiner Rule #238: udiv_by_pow2
6422 /* 3612 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
6423 /* 3615 */ // Label 186: @3615
6424 /* 3615 */ GIM_Try, /*On fail goto*//*Label 187*/ GIMT_Encode4(3626), // Rule ID 256 //
6425 /* 3620 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
6426 /* 3623 */ // MIs[0] root
6427 /* 3623 */ // No operand predicates
6428 /* 3623 */ // MIs[0] mi.x
6429 /* 3623 */ // No operand predicates
6430 /* 3623 */ // MIs[0] mi.y
6431 /* 3623 */ // No operand predicates
6432 /* 3623 */ // Combiner Rule #193: div_rem_to_divrem @ [mi[1]]
6433 /* 3623 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
6434 /* 3626 */ // Label 187: @3626
6435 /* 3626 */ GIM_Try, /*On fail goto*//*Label 188*/ GIMT_Encode4(3637), // Rule ID 290 //
6436 /* 3631 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
6437 /* 3634 */ // MIs[0] d
6438 /* 3634 */ // No operand predicates
6439 /* 3634 */ // MIs[0] mi.src0
6440 /* 3634 */ // No operand predicates
6441 /* 3634 */ // MIs[0] mi.src1
6442 /* 3634 */ // No operand predicates
6443 /* 3634 */ // Combiner Rule #210: constant_fold_binop @ [mi[10]]
6444 /* 3634 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
6445 /* 3637 */ // Label 188: @3637
6446 /* 3637 */ GIM_Try, /*On fail goto*//*Label 189*/ GIMT_Encode4(3648), // Rule ID 349 //
6447 /* 3642 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
6448 /* 3645 */ // MIs[0] root
6449 /* 3645 */ // No operand predicates
6450 /* 3645 */ // MIs[0] mi.x
6451 /* 3645 */ // No operand predicates
6452 /* 3645 */ // MIs[0] mi.y
6453 /* 3645 */ // No operand predicates
6454 /* 3645 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[8]]
6455 /* 3645 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
6456 /* 3648 */ // Label 189: @3648
6457 /* 3648 */ GIM_Try, /*On fail goto*//*Label 190*/ GIMT_Encode4(3659), // Rule ID 372 //
6458 /* 3653 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule240Enabled),
6459 /* 3656 */ // MIs[0] dst
6460 /* 3656 */ // No operand predicates
6461 /* 3656 */ // MIs[0] x
6462 /* 3656 */ // No operand predicates
6463 /* 3656 */ // MIs[0] y
6464 /* 3656 */ // No operand predicates
6465 /* 3656 */ // Combiner Rule #240: udiv_by_const
6466 /* 3656 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
6467 /* 3659 */ // Label 190: @3659
6468 /* 3659 */ GIM_Reject,
6469 /* 3660 */ // Label 6: @3660
6470 /* 3660 */ GIM_Try, /*On fail goto*//*Label 191*/ GIMT_Encode4(3683), // Rule ID 137 //
6471 /* 3665 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
6472 /* 3668 */ // MIs[0] dst
6473 /* 3668 */ // No operand predicates
6474 /* 3668 */ // MIs[0] zero
6475 /* 3668 */ // No operand predicates
6476 /* 3668 */ // MIs[0] rhs
6477 /* 3668 */ // No operand predicates
6478 /* 3668 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
6479 /* 3672 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6480 /* 3677 */ // Combiner Rule #95: binop_left_to_zero @ [__binop_left_to_zero_match_0[5]]
6481 /* 3677 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6482 /* 3682 */ GIR_EraseRootFromParent_Done,
6483 /* 3683 */ // Label 191: @3683
6484 /* 3683 */ GIM_Try, /*On fail goto*//*Label 192*/ GIMT_Encode4(3694), // Rule ID 257 //
6485 /* 3688 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
6486 /* 3691 */ // MIs[0] root
6487 /* 3691 */ // No operand predicates
6488 /* 3691 */ // MIs[0] mi.x
6489 /* 3691 */ // No operand predicates
6490 /* 3691 */ // MIs[0] mi.y
6491 /* 3691 */ // No operand predicates
6492 /* 3691 */ // Combiner Rule #193: div_rem_to_divrem @ [mi[2]]
6493 /* 3691 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
6494 /* 3694 */ // Label 192: @3694
6495 /* 3694 */ GIM_Try, /*On fail goto*//*Label 193*/ GIMT_Encode4(3705), // Rule ID 293 //
6496 /* 3699 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
6497 /* 3702 */ // MIs[0] d
6498 /* 3702 */ // No operand predicates
6499 /* 3702 */ // MIs[0] mi.src0
6500 /* 3702 */ // No operand predicates
6501 /* 3702 */ // MIs[0] mi.src1
6502 /* 3702 */ // No operand predicates
6503 /* 3702 */ // Combiner Rule #210: constant_fold_binop @ [mi[13]]
6504 /* 3702 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
6505 /* 3705 */ // Label 193: @3705
6506 /* 3705 */ GIM_Try, /*On fail goto*//*Label 194*/ GIMT_Encode4(3716), // Rule ID 348 //
6507 /* 3710 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
6508 /* 3713 */ // MIs[0] root
6509 /* 3713 */ // No operand predicates
6510 /* 3713 */ // MIs[0] mi.x
6511 /* 3713 */ // No operand predicates
6512 /* 3713 */ // MIs[0] mi.y
6513 /* 3713 */ // No operand predicates
6514 /* 3713 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[7]]
6515 /* 3713 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
6516 /* 3716 */ // Label 194: @3716
6517 /* 3716 */ GIM_Try, /*On fail goto*//*Label 195*/ GIMT_Encode4(3727), // Rule ID 367 //
6518 /* 3721 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule235Enabled),
6519 /* 3724 */ // MIs[0] dst
6520 /* 3724 */ // No operand predicates
6521 /* 3724 */ // MIs[0] x
6522 /* 3724 */ // No operand predicates
6523 /* 3724 */ // MIs[0] y
6524 /* 3724 */ // No operand predicates
6525 /* 3724 */ // Combiner Rule #235: srem_pow2_to_mask
6526 /* 3724 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
6527 /* 3727 */ // Label 195: @3727
6528 /* 3727 */ GIM_Try, /*On fail goto*//*Label 196*/ GIMT_Encode4(3738), // Rule ID 369 //
6529 /* 3732 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule237Enabled),
6530 /* 3735 */ // MIs[0] dst
6531 /* 3735 */ // No operand predicates
6532 /* 3735 */ // MIs[0] x
6533 /* 3735 */ // No operand predicates
6534 /* 3735 */ // MIs[0] y
6535 /* 3735 */ // No operand predicates
6536 /* 3735 */ // Combiner Rule #237: srem_by_const
6537 /* 3735 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
6538 /* 3738 */ // Label 196: @3738
6539 /* 3738 */ GIM_Reject,
6540 /* 3739 */ // Label 7: @3739
6541 /* 3739 */ GIM_Try, /*On fail goto*//*Label 197*/ GIMT_Encode4(3760), // Rule ID 92 //
6542 /* 3744 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
6543 /* 3747 */ // MIs[0] dst
6544 /* 3747 */ // No operand predicates
6545 /* 3747 */ // MIs[0] __binop_left_undef_to_zero_match_0.x
6546 /* 3747 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6547 /* 3751 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6548 /* 3755 */ // MIs[0] __binop_left_undef_to_zero_match_0.y
6549 /* 3755 */ // No operand predicates
6550 /* 3755 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6551 /* 3757 */ // Combiner Rule #79: binop_left_undef_to_zero @ [__binop_left_undef_to_zero_match_0[2]]
6552 /* 3757 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
6553 /* 3760 */ // Label 197: @3760
6554 /* 3760 */ GIM_Try, /*On fail goto*//*Label 198*/ GIMT_Encode4(3783), // Rule ID 138 //
6555 /* 3765 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
6556 /* 3768 */ // MIs[0] dst
6557 /* 3768 */ // No operand predicates
6558 /* 3768 */ // MIs[0] zero
6559 /* 3768 */ // No operand predicates
6560 /* 3768 */ // MIs[0] rhs
6561 /* 3768 */ // No operand predicates
6562 /* 3768 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
6563 /* 3772 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6564 /* 3777 */ // Combiner Rule #95: binop_left_to_zero @ [__binop_left_to_zero_match_0[6]]
6565 /* 3777 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6566 /* 3782 */ GIR_EraseRootFromParent_Done,
6567 /* 3783 */ // Label 198: @3783
6568 /* 3783 */ GIM_Try, /*On fail goto*//*Label 199*/ GIMT_Encode4(3794), // Rule ID 201 //
6569 /* 3788 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
6570 /* 3791 */ // MIs[0] dst
6571 /* 3791 */ // No operand predicates
6572 /* 3791 */ // MIs[0] x
6573 /* 3791 */ // No operand predicates
6574 /* 3791 */ // MIs[0] y
6575 /* 3791 */ // No operand predicates
6576 /* 3791 */ // Combiner Rule #151: urem_pow2_to_mask
6577 /* 3791 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner57),
6578 /* 3794 */ // Label 199: @3794
6579 /* 3794 */ GIM_Try, /*On fail goto*//*Label 200*/ GIMT_Encode4(3805), // Rule ID 258 //
6580 /* 3799 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
6581 /* 3802 */ // MIs[0] root
6582 /* 3802 */ // No operand predicates
6583 /* 3802 */ // MIs[0] mi.x
6584 /* 3802 */ // No operand predicates
6585 /* 3802 */ // MIs[0] mi.y
6586 /* 3802 */ // No operand predicates
6587 /* 3802 */ // Combiner Rule #193: div_rem_to_divrem @ [mi[3]]
6588 /* 3802 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
6589 /* 3805 */ // Label 200: @3805
6590 /* 3805 */ GIM_Try, /*On fail goto*//*Label 201*/ GIMT_Encode4(3816), // Rule ID 292 //
6591 /* 3810 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
6592 /* 3813 */ // MIs[0] d
6593 /* 3813 */ // No operand predicates
6594 /* 3813 */ // MIs[0] mi.src0
6595 /* 3813 */ // No operand predicates
6596 /* 3813 */ // MIs[0] mi.src1
6597 /* 3813 */ // No operand predicates
6598 /* 3813 */ // Combiner Rule #210: constant_fold_binop @ [mi[12]]
6599 /* 3813 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
6600 /* 3816 */ // Label 201: @3816
6601 /* 3816 */ GIM_Try, /*On fail goto*//*Label 202*/ GIMT_Encode4(3827), // Rule ID 350 //
6602 /* 3821 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
6603 /* 3824 */ // MIs[0] root
6604 /* 3824 */ // No operand predicates
6605 /* 3824 */ // MIs[0] mi.x
6606 /* 3824 */ // No operand predicates
6607 /* 3824 */ // MIs[0] mi.y
6608 /* 3824 */ // No operand predicates
6609 /* 3824 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[9]]
6610 /* 3824 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
6611 /* 3827 */ // Label 202: @3827
6612 /* 3827 */ GIM_Try, /*On fail goto*//*Label 203*/ GIMT_Encode4(3838), // Rule ID 368 //
6613 /* 3832 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule236Enabled),
6614 /* 3835 */ // MIs[0] dst
6615 /* 3835 */ // No operand predicates
6616 /* 3835 */ // MIs[0] x
6617 /* 3835 */ // No operand predicates
6618 /* 3835 */ // MIs[0] y
6619 /* 3835 */ // No operand predicates
6620 /* 3835 */ // Combiner Rule #236: urem_by_const
6621 /* 3835 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
6622 /* 3838 */ // Label 203: @3838
6623 /* 3838 */ GIM_Reject,
6624 /* 3839 */ // Label 8: @3839
6625 /* 3839 */ GIM_Try, /*On fail goto*//*Label 204*/ GIMT_Encode4(3925), // Rule ID 415 //
6626 /* 3844 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule283Enabled),
6627 /* 3847 */ // MIs[0] root
6628 /* 3847 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
6629 /* 3851 */ // MIs[0] or
6630 /* 3851 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6631 /* 3855 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
6632 /* 3859 */ // MIs[1] x
6633 /* 3859 */ // No operand predicates
6634 /* 3859 */ // MIs[1] y
6635 /* 3859 */ // No operand predicates
6636 /* 3859 */ // MIs[0] not
6637 /* 3859 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6638 /* 3863 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6639 /* 3867 */ // MIs[2] y
6640 /* 3867 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
6641 /* 3872 */ // MIs[2] Operand 2
6642 /* 3872 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6643 /* 3876 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6644 /* 3878 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6645 /* 3881 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
6646 /* 3891 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6647 /* 3894 */ // Combiner Rule #283: and_xor_or_to_xor_and
6648 /* 3894 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
6649 /* 3897 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6650 /* 3902 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
6651 /* 3906 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
6652 /* 3909 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
6653 /* 3913 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6654 /* 3917 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
6655 /* 3921 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6656 /* 3924 */ GIR_EraseRootFromParent_Done,
6657 /* 3925 */ // Label 204: @3925
6658 /* 3925 */ GIM_Try, /*On fail goto*//*Label 205*/ GIMT_Encode4(4023), // Rule ID 177 //
6659 /* 3930 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule127Enabled),
6660 /* 3933 */ // MIs[0] root
6661 /* 3933 */ // No operand predicates
6662 /* 3933 */ // MIs[0] d1
6663 /* 3933 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6664 /* 3937 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
6665 /* 3941 */ // MIs[1] p
6666 /* 3941 */ // No operand predicates
6667 /* 3941 */ // MIs[1] s1
6668 /* 3941 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
6669 /* 3945 */ // MIs[1] Operand 3
6670 /* 3945 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
6671 /* 3949 */ // MIs[0] d2
6672 /* 3949 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6673 /* 3953 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
6674 /* 3957 */ // MIs[2] p
6675 /* 3957 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
6676 /* 3962 */ // MIs[2] s2
6677 /* 3962 */ // No operand predicates
6678 /* 3962 */ // MIs[2] Operand 3
6679 /* 3962 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
6680 /* 3966 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner22),
6681 /* 3970 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6682 /* 3972 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6683 /* 3975 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
6684 /* 3985 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6685 /* 3988 */ // Combiner Rule #127: double_icmp_zero_and_combine
6686 /* 3988 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6687 /* 3991 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6688 /* 3996 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
6689 /* 4000 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
6690 /* 4004 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
6691 /* 4008 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6692 /* 4012 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
6693 /* 4016 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6694 /* 4019 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
6695 /* 4022 */ GIR_EraseRootFromParent_Done,
6696 /* 4023 */ // Label 205: @4023
6697 /* 4023 */ GIM_Try, /*On fail goto*//*Label 206*/ GIMT_Encode4(4060), // Rule ID 275 //
6698 /* 4028 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
6699 /* 4031 */ // MIs[0] root
6700 /* 4031 */ // No operand predicates
6701 /* 4031 */ // MIs[0] shift
6702 /* 4031 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6703 /* 4035 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
6704 /* 4039 */ // MIs[1] x
6705 /* 4039 */ // No operand predicates
6706 /* 4039 */ // MIs[1] lsb
6707 /* 4039 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6708 /* 4043 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6709 /* 4047 */ // MIs[2] imm1
6710 /* 4047 */ // No operand predicates
6711 /* 4047 */ // MIs[0] mask
6712 /* 4047 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
6713 /* 4051 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6714 /* 4055 */ // MIs[3] imm2
6715 /* 4055 */ // No operand predicates
6716 /* 4055 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
6717 /* 4057 */ // Combiner Rule #207: bitfield_extract_from_and
6718 /* 4057 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner76),
6719 /* 4060 */ // Label 206: @4060
6720 /* 4060 */ GIM_Try, /*On fail goto*//*Label 207*/ GIMT_Encode4(4109), // Rule ID 414 //
6721 /* 4065 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule282Enabled),
6722 /* 4068 */ // MIs[0] root
6723 /* 4068 */ // No operand predicates
6724 /* 4068 */ // MIs[0] or
6725 /* 4068 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6726 /* 4072 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
6727 /* 4076 */ // MIs[1] x
6728 /* 4076 */ // No operand predicates
6729 /* 4076 */ // MIs[1] not
6730 /* 4076 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6731 /* 4080 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6732 /* 4084 */ // MIs[2] y
6733 /* 4084 */ // No operand predicates
6734 /* 4084 */ // MIs[2] Operand 2
6735 /* 4084 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6736 /* 4088 */ // MIs[0] y
6737 /* 4088 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
6738 /* 4093 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6739 /* 4095 */ // Combiner Rule #282: and_xor_or_to_and
6740 /* 4095 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
6741 /* 4098 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
6742 /* 4100 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6743 /* 4104 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
6744 /* 4108 */ GIR_EraseRootFromParent_Done,
6745 /* 4109 */ // Label 207: @4109
6746 /* 4109 */ GIM_Try, /*On fail goto*//*Label 208*/ GIMT_Encode4(4130), // Rule ID 84 //
6747 /* 4114 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6748 /* 4117 */ // MIs[0] dst
6749 /* 4117 */ // No operand predicates
6750 /* 4117 */ // MIs[0] __undef_to_int_zero_match_0.x
6751 /* 4117 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6752 /* 4121 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6753 /* 4125 */ // MIs[0] __undef_to_int_zero_match_0.y
6754 /* 4125 */ // No operand predicates
6755 /* 4125 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6756 /* 4127 */ // Combiner Rule #77: undef_to_int_zero @ [__undef_to_int_zero_match_0[0]]
6757 /* 4127 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
6758 /* 4130 */ // Label 208: @4130
6759 /* 4130 */ GIM_Try, /*On fail goto*//*Label 209*/ GIMT_Encode4(4244), // Rule ID 480 //
6760 /* 4135 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule342Enabled),
6761 /* 4138 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i64,
6762 /* 4141 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_i64,
6763 /* 4144 */ // MIs[0] dst
6764 /* 4144 */ // No operand predicates
6765 /* 4144 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner65),
6766 /* 4148 */ GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_i32,
6767 /* 4151 */ GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_i32,
6768 /* 4154 */ GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_i32,
6769 /* 4157 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_i32,
6770 /* 4160 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_i32,
6771 /* 4163 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_i32,
6772 /* 4166 */ // Combiner Rule #342: combine_and_s64_with_s32_mask
6773 /* 4166 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
6774 /* 4169 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6775 /* 4174 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6776 /* 4179 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
6777 /* 4181 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
6778 /* 4185 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6779 /* 4190 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6780 /* 4195 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // y
6781 /* 4199 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
6782 /* 4203 */ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6783 /* 4208 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
6784 /* 4211 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
6785 /* 4214 */ GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
6786 /* 4218 */ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6787 /* 4223 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/1,
6788 /* 4226 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
6789 /* 4229 */ GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
6790 /* 4233 */ GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/0, // dst
6791 /* 4237 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
6792 /* 4240 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/5,
6793 /* 4243 */ GIR_EraseRootFromParent_Done,
6794 /* 4244 */ // Label 209: @4244
6795 /* 4244 */ GIM_Try, /*On fail goto*//*Label 210*/ GIMT_Encode4(4268), // Rule ID 128 //
6796 /* 4249 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
6797 /* 4252 */ // MIs[0] dst
6798 /* 4252 */ // No operand predicates
6799 /* 4252 */ // MIs[0] src
6800 /* 4252 */ // No operand predicates
6801 /* 4252 */ // MIs[0] src
6802 /* 4252 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
6803 /* 4257 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6804 /* 4262 */ // Combiner Rule #93: binop_same_val @ [__binop_same_val_match_0[0]]
6805 /* 4262 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6806 /* 4267 */ GIR_EraseRootFromParent_Done,
6807 /* 4268 */ // Label 210: @4268
6808 /* 4268 */ GIM_Try, /*On fail goto*//*Label 211*/ GIMT_Encode4(4289), // Rule ID 86 //
6809 /* 4273 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6810 /* 4276 */ // MIs[0] dst
6811 /* 4276 */ // No operand predicates
6812 /* 4276 */ // MIs[0] __undef_to_int_zero_match_0.x
6813 /* 4276 */ // No operand predicates
6814 /* 4276 */ // MIs[0] __undef_to_int_zero_match_0.y
6815 /* 4276 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
6816 /* 4280 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6817 /* 4284 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6818 /* 4286 */ // Combiner Rule #77: undef_to_int_zero @ [__undef_to_int_zero_match_0[2]]
6819 /* 4286 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
6820 /* 4289 */ // Label 211: @4289
6821 /* 4289 */ GIM_Try, /*On fail goto*//*Label 212*/ GIMT_Encode4(4314), // Rule ID 383 //
6822 /* 4294 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule251Enabled),
6823 /* 4297 */ // MIs[0] dst
6824 /* 4297 */ // No operand predicates
6825 /* 4297 */ // MIs[0] lhs
6826 /* 4297 */ // No operand predicates
6827 /* 4297 */ // MIs[0] rhs
6828 /* 4297 */ // No operand predicates
6829 /* 4297 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
6830 /* 4301 */ // Combiner Rule #251: G_AND_commute_constant_to_rhs
6831 /* 4301 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
6832 /* 4304 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6833 /* 4306 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
6834 /* 4308 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
6835 /* 4310 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
6836 /* 4313 */ GIR_EraseRootFromParent_Done,
6837 /* 4314 */ // Label 212: @4314
6838 /* 4314 */ GIM_Try, /*On fail goto*//*Label 213*/ GIMT_Encode4(4325), // Rule ID 80 //
6839 /* 4319 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
6840 /* 4322 */ // MIs[0] dst
6841 /* 4322 */ // No operand predicates
6842 /* 4322 */ // MIs[0] src1
6843 /* 4322 */ // No operand predicates
6844 /* 4322 */ // MIs[0] src2
6845 /* 4322 */ // No operand predicates
6846 /* 4322 */ // Combiner Rule #74: load_and_mask
6847 /* 4322 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner28),
6848 /* 4325 */ // Label 213: @4325
6849 /* 4325 */ GIM_Try, /*On fail goto*//*Label 214*/ GIMT_Encode4(4336), // Rule ID 164 //
6850 /* 4330 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
6851 /* 4333 */ // MIs[0] root
6852 /* 4333 */ // No operand predicates
6853 /* 4333 */ // MIs[0] mi.x
6854 /* 4333 */ // No operand predicates
6855 /* 4333 */ // MIs[0] mi.y
6856 /* 4333 */ // No operand predicates
6857 /* 4333 */ // Combiner Rule #118: hoist_logic_op_with_same_opcode_hands @ [mi[0]]
6858 /* 4333 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6859 /* 4336 */ // Label 214: @4336
6860 /* 4336 */ GIM_Try, /*On fail goto*//*Label 215*/ GIMT_Encode4(4347), // Rule ID 184 //
6861 /* 4341 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule134Enabled),
6862 /* 4344 */ // MIs[0] dst
6863 /* 4344 */ // No operand predicates
6864 /* 4344 */ // MIs[0] src1
6865 /* 4344 */ // No operand predicates
6866 /* 4344 */ // MIs[0] src2
6867 /* 4344 */ // No operand predicates
6868 /* 4344 */ // Combiner Rule #134: narrow_binop_feeding_and
6869 /* 4344 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
6870 /* 4347 */ // Label 215: @4347
6871 /* 4347 */ GIM_Try, /*On fail goto*//*Label 216*/ GIMT_Encode4(4358), // Rule ID 199 //
6872 /* 4352 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule149Enabled),
6873 /* 4355 */ // MIs[0] dst
6874 /* 4355 */ // No operand predicates
6875 /* 4355 */ // MIs[0] src1
6876 /* 4355 */ // No operand predicates
6877 /* 4355 */ // MIs[0] src2
6878 /* 4355 */ // No operand predicates
6879 /* 4355 */ // Combiner Rule #149: redundant_and
6880 /* 4355 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
6881 /* 4358 */ // Label 216: @4358
6882 /* 4358 */ GIM_Try, /*On fail goto*//*Label 217*/ GIMT_Encode4(4369), // Rule ID 223 //
6883 /* 4363 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
6884 /* 4366 */ // MIs[0] dst
6885 /* 4366 */ // No operand predicates
6886 /* 4366 */ // MIs[0] x
6887 /* 4366 */ // No operand predicates
6888 /* 4366 */ // MIs[0] y
6889 /* 4366 */ // No operand predicates
6890 /* 4366 */ // Combiner Rule #173: overlapping_and
6891 /* 4366 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner65),
6892 /* 4369 */ // Label 217: @4369
6893 /* 4369 */ GIM_Try, /*On fail goto*//*Label 218*/ GIMT_Encode4(4380), // Rule ID 282 //
6894 /* 4374 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
6895 /* 4377 */ // MIs[0] d
6896 /* 4377 */ // No operand predicates
6897 /* 4377 */ // MIs[0] mi.src0
6898 /* 4377 */ // No operand predicates
6899 /* 4377 */ // MIs[0] mi.src1
6900 /* 4377 */ // No operand predicates
6901 /* 4377 */ // Combiner Rule #210: constant_fold_binop @ [mi[2]]
6902 /* 4377 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
6903 /* 4380 */ // Label 218: @4380
6904 /* 4380 */ GIM_Try, /*On fail goto*//*Label 219*/ GIMT_Encode4(4391), // Rule ID 332 //
6905 /* 4385 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule224Enabled),
6906 /* 4388 */ // MIs[0] dst
6907 /* 4388 */ // No operand predicates
6908 /* 4388 */ // MIs[0] src1
6909 /* 4388 */ // No operand predicates
6910 /* 4388 */ // MIs[0] src2
6911 /* 4388 */ // No operand predicates
6912 /* 4388 */ // Combiner Rule #224: and_or_disjoint_mask
6913 /* 4388 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
6914 /* 4391 */ // Label 219: @4391
6915 /* 4391 */ GIM_Try, /*On fail goto*//*Label 220*/ GIMT_Encode4(4402), // Rule ID 344 //
6916 /* 4396 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
6917 /* 4399 */ // MIs[0] root
6918 /* 4399 */ // No operand predicates
6919 /* 4399 */ // MIs[0] mi.x
6920 /* 4399 */ // No operand predicates
6921 /* 4399 */ // MIs[0] mi.y
6922 /* 4399 */ // No operand predicates
6923 /* 4399 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[3]]
6924 /* 4399 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
6925 /* 4402 */ // Label 220: @4402
6926 /* 4402 */ GIM_Try, /*On fail goto*//*Label 221*/ GIMT_Encode4(4413), // Rule ID 410 //
6927 /* 4407 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule278Enabled),
6928 /* 4410 */ // MIs[0] dst
6929 /* 4410 */ // No operand predicates
6930 /* 4410 */ // MIs[0] src1
6931 /* 4410 */ // No operand predicates
6932 /* 4410 */ // MIs[0] src2
6933 /* 4410 */ // No operand predicates
6934 /* 4410 */ // Combiner Rule #278: match_ands
6935 /* 4410 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
6936 /* 4413 */ // Label 221: @4413
6937 /* 4413 */ GIM_Try, /*On fail goto*//*Label 222*/ GIMT_Encode4(4424), // Rule ID 455 //
6938 /* 4418 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule322Enabled),
6939 /* 4421 */ // MIs[0] root
6940 /* 4421 */ // No operand predicates
6941 /* 4421 */ // MIs[0] mi.x
6942 /* 4421 */ // No operand predicates
6943 /* 4421 */ // MIs[0] mi.y
6944 /* 4421 */ // No operand predicates
6945 /* 4421 */ // Combiner Rule #322: binop_with_neg @ [mi[0]]
6946 /* 4421 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6947 /* 4424 */ // Label 222: @4424
6948 /* 4424 */ GIM_Reject,
6949 /* 4425 */ // Label 9: @4425
6950 /* 4425 */ GIM_Try, /*On fail goto*//*Label 223*/ GIMT_Encode4(4511), // Rule ID 413 //
6951 /* 4430 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule281Enabled),
6952 /* 4433 */ // MIs[0] root
6953 /* 4433 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
6954 /* 4437 */ // MIs[0] and
6955 /* 4437 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6956 /* 4441 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
6957 /* 4445 */ // MIs[1] x
6958 /* 4445 */ // No operand predicates
6959 /* 4445 */ // MIs[1] y
6960 /* 4445 */ // No operand predicates
6961 /* 4445 */ // MIs[0] not
6962 /* 4445 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6963 /* 4449 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
6964 /* 4453 */ // MIs[2] y
6965 /* 4453 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
6966 /* 4458 */ // MIs[2] Operand 2
6967 /* 4458 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
6968 /* 4462 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6969 /* 4464 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6970 /* 4467 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(18446744073709551615u),
6971 /* 4477 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6972 /* 4480 */ // Combiner Rule #281: or_and_xor_to_xor_or
6973 /* 4480 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
6974 /* 4483 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
6975 /* 4488 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
6976 /* 4492 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/1,
6977 /* 4495 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
6978 /* 4499 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
6979 /* 4503 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // x
6980 /* 4507 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
6981 /* 4510 */ GIR_EraseRootFromParent_Done,
6982 /* 4511 */ // Label 223: @4511
6983 /* 4511 */ GIM_Try, /*On fail goto*//*Label 224*/ GIMT_Encode4(4598), // Rule ID 482 //
6984 /* 4516 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule343Enabled),
6985 /* 4519 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i64,
6986 /* 4522 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_i64,
6987 /* 4525 */ // MIs[0] dst
6988 /* 4525 */ // No operand predicates
6989 /* 4525 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6990 /* 4529 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6991 /* 4533 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_i32,
6992 /* 4537 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
6993 /* 4541 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6994 /* 4543 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
6995 /* 4546 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
6996 /* 4549 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
6997 /* 4552 */ // Combiner Rule #343: combine_or_s64_s32 @ [dst[1]]
6998 /* 4552 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
6999 /* 4555 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7000 /* 4560 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7001 /* 4565 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
7002 /* 4567 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7003 /* 4571 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7004 /* 4576 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7005 /* 4579 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // y
7006 /* 4583 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
7007 /* 4587 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
7008 /* 4591 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
7009 /* 4594 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
7010 /* 4597 */ GIR_EraseRootFromParent_Done,
7011 /* 4598 */ // Label 224: @4598
7012 /* 4598 */ GIM_Try, /*On fail goto*//*Label 225*/ GIMT_Encode4(4645), // Rule ID 266 //
7013 /* 4603 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7014 /* 4606 */ // MIs[0] root
7015 /* 4606 */ // No operand predicates
7016 /* 4606 */ // MIs[0] out1
7017 /* 4606 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7018 /* 4610 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHL),
7019 /* 4614 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
7020 /* 4614 */ // No operand predicates
7021 /* 4614 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
7022 /* 4614 */ // No operand predicates
7023 /* 4614 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
7024 /* 4614 */ // No operand predicates
7025 /* 4614 */ // MIs[0] out2
7026 /* 4614 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7027 /* 4618 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SHL),
7028 /* 4622 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
7029 /* 4622 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
7030 /* 4627 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
7031 /* 4627 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
7032 /* 4632 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7033 /* 4637 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7034 /* 4639 */ // Combiner Rule #200: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[0]]
7035 /* 4639 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7036 /* 4644 */ GIR_EraseRootFromParent_Done,
7037 /* 4645 */ // Label 225: @4645
7038 /* 4645 */ GIM_Try, /*On fail goto*//*Label 226*/ GIMT_Encode4(4692), // Rule ID 268 //
7039 /* 4650 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule201Enabled),
7040 /* 4653 */ // MIs[0] root
7041 /* 4653 */ // No operand predicates
7042 /* 4653 */ // MIs[0] out1
7043 /* 4653 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7044 /* 4657 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHR),
7045 /* 4661 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
7046 /* 4661 */ // No operand predicates
7047 /* 4661 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
7048 /* 4661 */ // No operand predicates
7049 /* 4661 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
7050 /* 4661 */ // No operand predicates
7051 /* 4661 */ // MIs[0] out2
7052 /* 4661 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7053 /* 4665 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
7054 /* 4669 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
7055 /* 4669 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
7056 /* 4674 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
7057 /* 4674 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
7058 /* 4679 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7059 /* 4684 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7060 /* 4686 */ // Combiner Rule #201: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[0]]
7061 /* 4686 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7062 /* 4691 */ GIR_EraseRootFromParent_Done,
7063 /* 4692 */ // Label 226: @4692
7064 /* 4692 */ GIM_Try, /*On fail goto*//*Label 227*/ GIMT_Encode4(4790), // Rule ID 178 //
7065 /* 4697 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule128Enabled),
7066 /* 4700 */ // MIs[0] root
7067 /* 4700 */ // No operand predicates
7068 /* 4700 */ // MIs[0] d1
7069 /* 4700 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7070 /* 4704 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
7071 /* 4708 */ // MIs[1] p
7072 /* 4708 */ // No operand predicates
7073 /* 4708 */ // MIs[1] s1
7074 /* 4708 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
7075 /* 4712 */ // MIs[1] Operand 3
7076 /* 4712 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
7077 /* 4716 */ // MIs[0] d2
7078 /* 4716 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7079 /* 4720 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
7080 /* 4724 */ // MIs[2] p
7081 /* 4724 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
7082 /* 4729 */ // MIs[2] s2
7083 /* 4729 */ // No operand predicates
7084 /* 4729 */ // MIs[2] Operand 3
7085 /* 4729 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
7086 /* 4733 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner23),
7087 /* 4737 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7088 /* 4739 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
7089 /* 4742 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
7090 /* 4752 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7091 /* 4755 */ // Combiner Rule #128: double_icmp_zero_or_combine
7092 /* 4755 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7093 /* 4758 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7094 /* 4763 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
7095 /* 4767 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
7096 /* 4771 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
7097 /* 4775 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
7098 /* 4779 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
7099 /* 4783 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7100 /* 4786 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
7101 /* 4789 */ GIR_EraseRootFromParent_Done,
7102 /* 4790 */ // Label 227: @4790
7103 /* 4790 */ GIM_Try, /*On fail goto*//*Label 228*/ GIMT_Encode4(4839), // Rule ID 412 //
7104 /* 4795 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule280Enabled),
7105 /* 4798 */ // MIs[0] root
7106 /* 4798 */ // No operand predicates
7107 /* 4798 */ // MIs[0] and
7108 /* 4798 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7109 /* 4802 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
7110 /* 4806 */ // MIs[1] x
7111 /* 4806 */ // No operand predicates
7112 /* 4806 */ // MIs[1] not
7113 /* 4806 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
7114 /* 4810 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_XOR),
7115 /* 4814 */ // MIs[2] y
7116 /* 4814 */ // No operand predicates
7117 /* 4814 */ // MIs[2] Operand 2
7118 /* 4814 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/2, 255,
7119 /* 4818 */ // MIs[0] y
7120 /* 4818 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
7121 /* 4823 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7122 /* 4825 */ // Combiner Rule #280: or_and_xor_to_or
7123 /* 4825 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7124 /* 4828 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7125 /* 4830 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7126 /* 4834 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
7127 /* 4838 */ GIR_EraseRootFromParent_Done,
7128 /* 4839 */ // Label 228: @4839
7129 /* 4839 */ GIM_Try, /*On fail goto*//*Label 229*/ GIMT_Encode4(4873), // Rule ID 466 //
7130 /* 4844 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule331Enabled),
7131 /* 4847 */ // MIs[0] dst
7132 /* 4847 */ // No operand predicates
7133 /* 4847 */ // MIs[0] __combine_or_of_and_match_0.and
7134 /* 4847 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7135 /* 4851 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
7136 /* 4855 */ // MIs[1] x
7137 /* 4855 */ // No operand predicates
7138 /* 4855 */ // MIs[1] y
7139 /* 4855 */ // No operand predicates
7140 /* 4855 */ // MIs[0] x
7141 /* 4855 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
7142 /* 4860 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
7143 /* 4865 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7144 /* 4867 */ // Combiner Rule #331: combine_or_of_and @ [__combine_or_of_and_match_0[0]]
7145 /* 4867 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
7146 /* 4872 */ GIR_EraseRootFromParent_Done,
7147 /* 4873 */ // Label 229: @4873
7148 /* 4873 */ GIM_Try, /*On fail goto*//*Label 230*/ GIMT_Encode4(4907), // Rule ID 467 //
7149 /* 4878 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule331Enabled),
7150 /* 4881 */ // MIs[0] dst
7151 /* 4881 */ // No operand predicates
7152 /* 4881 */ // MIs[0] __combine_or_of_and_match_0.and
7153 /* 4881 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7154 /* 4885 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
7155 /* 4889 */ // MIs[1] y
7156 /* 4889 */ // No operand predicates
7157 /* 4889 */ // MIs[1] x
7158 /* 4889 */ // No operand predicates
7159 /* 4889 */ // MIs[0] x
7160 /* 4889 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
7161 /* 4894 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
7162 /* 4899 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7163 /* 4901 */ // Combiner Rule #331: combine_or_of_and @ [__combine_or_of_and_match_0[1]]
7164 /* 4901 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
7165 /* 4906 */ GIR_EraseRootFromParent_Done,
7166 /* 4907 */ // Label 230: @4907
7167 /* 4907 */ GIM_Try, /*On fail goto*//*Label 231*/ GIMT_Encode4(4954), // Rule ID 269 //
7168 /* 4912 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule201Enabled),
7169 /* 4915 */ // MIs[0] root
7170 /* 4915 */ // No operand predicates
7171 /* 4915 */ // MIs[0] out2
7172 /* 4915 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7173 /* 4919 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
7174 /* 4923 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
7175 /* 4923 */ // No operand predicates
7176 /* 4923 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
7177 /* 4923 */ // No operand predicates
7178 /* 4923 */ // MIs[0] out1
7179 /* 4923 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7180 /* 4927 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHR),
7181 /* 4931 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
7182 /* 4931 */ // No operand predicates
7183 /* 4931 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
7184 /* 4931 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
7185 /* 4936 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
7186 /* 4936 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
7187 /* 4941 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
7188 /* 4946 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7189 /* 4948 */ // Combiner Rule #201: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[1]]
7190 /* 4948 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
7191 /* 4953 */ GIR_EraseRootFromParent_Done,
7192 /* 4954 */ // Label 231: @4954
7193 /* 4954 */ GIM_Try, /*On fail goto*//*Label 232*/ GIMT_Encode4(5001), // Rule ID 267 //
7194 /* 4959 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
7195 /* 4962 */ // MIs[0] root
7196 /* 4962 */ // No operand predicates
7197 /* 4962 */ // MIs[0] out2
7198 /* 4962 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7199 /* 4966 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
7200 /* 4970 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
7201 /* 4970 */ // No operand predicates
7202 /* 4970 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
7203 /* 4970 */ // No operand predicates
7204 /* 4970 */ // MIs[0] out1
7205 /* 4970 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7206 /* 4974 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHL),
7207 /* 4978 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
7208 /* 4978 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
7209 /* 4983 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
7210 /* 4983 */ // No operand predicates
7211 /* 4983 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
7212 /* 4983 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
7213 /* 4988 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
7214 /* 4993 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7215 /* 4995 */ // Combiner Rule #200: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[1]]
7216 /* 4995 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
7217 /* 5000 */ GIR_EraseRootFromParent_Done,
7218 /* 5001 */ // Label 232: @5001
7219 /* 5001 */ GIM_Try, /*On fail goto*//*Label 233*/ GIMT_Encode4(5051), // Rule ID 417 //
7220 /* 5006 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule285Enabled),
7221 /* 5009 */ // MIs[0] root
7222 /* 5009 */ // No operand predicates
7223 /* 5009 */ // MIs[0] xor
7224 /* 5009 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7225 /* 5013 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
7226 /* 5017 */ // MIs[1] x
7227 /* 5017 */ // No operand predicates
7228 /* 5017 */ // MIs[1] y
7229 /* 5017 */ // No operand predicates
7230 /* 5017 */ // MIs[0] and
7231 /* 5017 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7232 /* 5021 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_AND),
7233 /* 5025 */ // MIs[2] x
7234 /* 5025 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
7235 /* 5030 */ // MIs[2] y
7236 /* 5030 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
7237 /* 5035 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7238 /* 5037 */ // Combiner Rule #285: or_xor_and
7239 /* 5037 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7240 /* 5040 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7241 /* 5042 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7242 /* 5046 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
7243 /* 5050 */ GIR_EraseRootFromParent_Done,
7244 /* 5051 */ // Label 233: @5051
7245 /* 5051 */ GIM_Try, /*On fail goto*//*Label 234*/ GIMT_Encode4(5101), // Rule ID 416 //
7246 /* 5056 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule284Enabled),
7247 /* 5059 */ // MIs[0] root
7248 /* 5059 */ // No operand predicates
7249 /* 5059 */ // MIs[0] xor
7250 /* 5059 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7251 /* 5063 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
7252 /* 5067 */ // MIs[1] x
7253 /* 5067 */ // No operand predicates
7254 /* 5067 */ // MIs[1] y
7255 /* 5067 */ // No operand predicates
7256 /* 5067 */ // MIs[0] or
7257 /* 5067 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7258 /* 5071 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_OR),
7259 /* 5075 */ // MIs[2] x
7260 /* 5075 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
7261 /* 5080 */ // MIs[2] y
7262 /* 5080 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
7263 /* 5085 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7264 /* 5087 */ // Combiner Rule #284: or_xor_or
7265 /* 5087 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7266 /* 5090 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7267 /* 5092 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7268 /* 5096 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // y
7269 /* 5100 */ GIR_EraseRootFromParent_Done,
7270 /* 5101 */ // Label 234: @5101
7271 /* 5101 */ GIM_Try, /*On fail goto*//*Label 235*/ GIMT_Encode4(5122), // Rule ID 88 //
7272 /* 5106 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
7273 /* 5109 */ // MIs[0] dst
7274 /* 5109 */ // No operand predicates
7275 /* 5109 */ // MIs[0] __undef_to_negative_one_match_0.x
7276 /* 5109 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7277 /* 5113 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7278 /* 5117 */ // MIs[0] __undef_to_negative_one_match_0.y
7279 /* 5117 */ // No operand predicates
7280 /* 5117 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7281 /* 5119 */ // Combiner Rule #78: undef_to_negative_one @ [__undef_to_negative_one_match_0[0]]
7282 /* 5119 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
7283 /* 5122 */ // Label 235: @5122
7284 /* 5122 */ GIM_Try, /*On fail goto*//*Label 236*/ GIMT_Encode4(5323),
7285 /* 5127 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i64,
7286 /* 5130 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_i64,
7287 /* 5133 */ GIM_Try, /*On fail goto*//*Label 237*/ GIMT_Encode4(5214), // Rule ID 481 //
7288 /* 5138 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule343Enabled),
7289 /* 5141 */ // MIs[0] dst
7290 /* 5141 */ // No operand predicates
7291 /* 5141 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7292 /* 5145 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
7293 /* 5149 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_i32,
7294 /* 5153 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
7295 /* 5157 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7296 /* 5159 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
7297 /* 5162 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
7298 /* 5165 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7299 /* 5168 */ // Combiner Rule #343: combine_or_s64_s32 @ [dst[0]]
7300 /* 5168 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
7301 /* 5171 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7302 /* 5176 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7303 /* 5181 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
7304 /* 5183 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7305 /* 5187 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7306 /* 5192 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
7307 /* 5195 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // y
7308 /* 5199 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
7309 /* 5203 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
7310 /* 5207 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
7311 /* 5210 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
7312 /* 5213 */ GIR_EraseRootFromParent_Done,
7313 /* 5214 */ // Label 237: @5214
7314 /* 5214 */ GIM_Try, /*On fail goto*//*Label 238*/ GIMT_Encode4(5322), // Rule ID 479 //
7315 /* 5219 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule341Enabled),
7316 /* 5222 */ // MIs[0] dst
7317 /* 5222 */ // No operand predicates
7318 /* 5222 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner65),
7319 /* 5226 */ GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_i32,
7320 /* 5229 */ GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_i32,
7321 /* 5232 */ GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_i32,
7322 /* 5235 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_i32,
7323 /* 5238 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_i32,
7324 /* 5241 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_i32,
7325 /* 5244 */ // Combiner Rule #341: combine_or_s64_with_s32_mask
7326 /* 5244 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
7327 /* 5247 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7328 /* 5252 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7329 /* 5257 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
7330 /* 5259 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
7331 /* 5263 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7332 /* 5268 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7333 /* 5273 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // y
7334 /* 5277 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7335 /* 5281 */ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7336 /* 5286 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
7337 /* 5289 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
7338 /* 5292 */ GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7339 /* 5296 */ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
7340 /* 5301 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/1,
7341 /* 5304 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
7342 /* 5307 */ GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
7343 /* 5311 */ GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/0, // dst
7344 /* 5315 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
7345 /* 5318 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/5,
7346 /* 5321 */ GIR_EraseRootFromParent_Done,
7347 /* 5322 */ // Label 238: @5322
7348 /* 5322 */ GIM_Reject,
7349 /* 5323 */ // Label 236: @5323
7350 /* 5323 */ GIM_Try, /*On fail goto*//*Label 239*/ GIMT_Encode4(5347), // Rule ID 129 //
7351 /* 5328 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
7352 /* 5331 */ // MIs[0] dst
7353 /* 5331 */ // No operand predicates
7354 /* 5331 */ // MIs[0] src
7355 /* 5331 */ // No operand predicates
7356 /* 5331 */ // MIs[0] src
7357 /* 5331 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
7358 /* 5336 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7359 /* 5341 */ // Combiner Rule #93: binop_same_val @ [__binop_same_val_match_0[1]]
7360 /* 5341 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7361 /* 5346 */ GIR_EraseRootFromParent_Done,
7362 /* 5347 */ // Label 239: @5347
7363 /* 5347 */ GIM_Try, /*On fail goto*//*Label 240*/ GIMT_Encode4(5381), // Rule ID 468 //
7364 /* 5352 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule331Enabled),
7365 /* 5355 */ // MIs[0] dst
7366 /* 5355 */ // No operand predicates
7367 /* 5355 */ // MIs[0] x
7368 /* 5355 */ // No operand predicates
7369 /* 5355 */ // MIs[0] __combine_or_of_and_match_0.and
7370 /* 5355 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7371 /* 5359 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
7372 /* 5363 */ // MIs[1] x
7373 /* 5363 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
7374 /* 5368 */ // MIs[1] y
7375 /* 5368 */ // No operand predicates
7376 /* 5368 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7377 /* 5373 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7378 /* 5375 */ // Combiner Rule #331: combine_or_of_and @ [__combine_or_of_and_match_0[2]]
7379 /* 5375 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7380 /* 5380 */ GIR_EraseRootFromParent_Done,
7381 /* 5381 */ // Label 240: @5381
7382 /* 5381 */ GIM_Try, /*On fail goto*//*Label 241*/ GIMT_Encode4(5415), // Rule ID 469 //
7383 /* 5386 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule331Enabled),
7384 /* 5389 */ // MIs[0] dst
7385 /* 5389 */ // No operand predicates
7386 /* 5389 */ // MIs[0] x
7387 /* 5389 */ // No operand predicates
7388 /* 5389 */ // MIs[0] __combine_or_of_and_match_0.and
7389 /* 5389 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7390 /* 5393 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
7391 /* 5397 */ // MIs[1] y
7392 /* 5397 */ // No operand predicates
7393 /* 5397 */ // MIs[1] x
7394 /* 5397 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
7395 /* 5402 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7396 /* 5407 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7397 /* 5409 */ // Combiner Rule #331: combine_or_of_and @ [__combine_or_of_and_match_0[3]]
7398 /* 5409 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7399 /* 5414 */ GIR_EraseRootFromParent_Done,
7400 /* 5415 */ // Label 241: @5415
7401 /* 5415 */ GIM_Try, /*On fail goto*//*Label 242*/ GIMT_Encode4(5436), // Rule ID 89 //
7402 /* 5420 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
7403 /* 5423 */ // MIs[0] dst
7404 /* 5423 */ // No operand predicates
7405 /* 5423 */ // MIs[0] __undef_to_negative_one_match_0.x
7406 /* 5423 */ // No operand predicates
7407 /* 5423 */ // MIs[0] __undef_to_negative_one_match_0.y
7408 /* 5423 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7409 /* 5427 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7410 /* 5431 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7411 /* 5433 */ // Combiner Rule #78: undef_to_negative_one @ [__undef_to_negative_one_match_0[1]]
7412 /* 5433 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
7413 /* 5436 */ // Label 242: @5436
7414 /* 5436 */ GIM_Try, /*On fail goto*//*Label 243*/ GIMT_Encode4(5459), // Rule ID 120 //
7415 /* 5441 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
7416 /* 5444 */ // MIs[0] dst
7417 /* 5444 */ // No operand predicates
7418 /* 5444 */ // MIs[0] lhs
7419 /* 5444 */ // No operand predicates
7420 /* 5444 */ // MIs[0] Operand 2
7421 /* 5444 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7422 /* 5448 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7423 /* 5453 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[2]]
7424 /* 5453 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7425 /* 5458 */ GIR_EraseRootFromParent_Done,
7426 /* 5459 */ // Label 243: @5459
7427 /* 5459 */ GIM_Try, /*On fail goto*//*Label 244*/ GIMT_Encode4(5484), // Rule ID 384 //
7428 /* 5464 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule252Enabled),
7429 /* 5467 */ // MIs[0] dst
7430 /* 5467 */ // No operand predicates
7431 /* 5467 */ // MIs[0] lhs
7432 /* 5467 */ // No operand predicates
7433 /* 5467 */ // MIs[0] rhs
7434 /* 5467 */ // No operand predicates
7435 /* 5467 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
7436 /* 5471 */ // Combiner Rule #252: G_OR_commute_constant_to_rhs
7437 /* 5471 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
7438 /* 5474 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7439 /* 5476 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
7440 /* 5478 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
7441 /* 5480 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
7442 /* 5483 */ GIR_EraseRootFromParent_Done,
7443 /* 5484 */ // Label 244: @5484
7444 /* 5484 */ GIM_Try, /*On fail goto*//*Label 245*/ GIMT_Encode4(5495), // Rule ID 165 //
7445 /* 5489 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
7446 /* 5492 */ // MIs[0] root
7447 /* 5492 */ // No operand predicates
7448 /* 5492 */ // MIs[0] mi.x
7449 /* 5492 */ // No operand predicates
7450 /* 5492 */ // MIs[0] mi.y
7451 /* 5492 */ // No operand predicates
7452 /* 5492 */ // Combiner Rule #118: hoist_logic_op_with_same_opcode_hands @ [mi[1]]
7453 /* 5492 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
7454 /* 5495 */ // Label 245: @5495
7455 /* 5495 */ GIM_Try, /*On fail goto*//*Label 246*/ GIMT_Encode4(5506), // Rule ID 200 //
7456 /* 5500 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
7457 /* 5503 */ // MIs[0] dst
7458 /* 5503 */ // No operand predicates
7459 /* 5503 */ // MIs[0] src1
7460 /* 5503 */ // No operand predicates
7461 /* 5503 */ // MIs[0] src2
7462 /* 5503 */ // No operand predicates
7463 /* 5503 */ // Combiner Rule #150: redundant_or
7464 /* 5503 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
7465 /* 5506 */ // Label 246: @5506
7466 /* 5506 */ GIM_Try, /*On fail goto*//*Label 247*/ GIMT_Encode4(5517), // Rule ID 254 //
7467 /* 5511 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
7468 /* 5514 */ // MIs[0] dst
7469 /* 5514 */ // No operand predicates
7470 /* 5514 */ // MIs[0] src1
7471 /* 5514 */ // No operand predicates
7472 /* 5514 */ // MIs[0] src2
7473 /* 5514 */ // No operand predicates
7474 /* 5514 */ // Combiner Rule #192: load_or_combine
7475 /* 5514 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner71),
7476 /* 5517 */ // Label 247: @5517
7477 /* 5517 */ GIM_Try, /*On fail goto*//*Label 248*/ GIMT_Encode4(5528), // Rule ID 259 //
7478 /* 5522 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
7479 /* 5525 */ // MIs[0] dst
7480 /* 5525 */ // No operand predicates
7481 /* 5525 */ // MIs[0] src1
7482 /* 5525 */ // No operand predicates
7483 /* 5525 */ // MIs[0] src2
7484 /* 5525 */ // No operand predicates
7485 /* 5525 */ // Combiner Rule #194: funnel_shift_from_or_shift
7486 /* 5525 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner73),
7487 /* 5528 */ // Label 248: @5528
7488 /* 5528 */ GIM_Try, /*On fail goto*//*Label 249*/ GIMT_Encode4(5539), // Rule ID 286 //
7489 /* 5533 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
7490 /* 5536 */ // MIs[0] d
7491 /* 5536 */ // No operand predicates
7492 /* 5536 */ // MIs[0] mi.src0
7493 /* 5536 */ // No operand predicates
7494 /* 5536 */ // MIs[0] mi.src1
7495 /* 5536 */ // No operand predicates
7496 /* 5536 */ // Combiner Rule #210: constant_fold_binop @ [mi[6]]
7497 /* 5536 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
7498 /* 5539 */ // Label 249: @5539
7499 /* 5539 */ GIM_Try, /*On fail goto*//*Label 250*/ GIMT_Encode4(5550), // Rule ID 345 //
7500 /* 5544 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
7501 /* 5547 */ // MIs[0] root
7502 /* 5547 */ // No operand predicates
7503 /* 5547 */ // MIs[0] mi.x
7504 /* 5547 */ // No operand predicates
7505 /* 5547 */ // MIs[0] mi.y
7506 /* 5547 */ // No operand predicates
7507 /* 5547 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[4]]
7508 /* 5547 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
7509 /* 5550 */ // Label 250: @5550
7510 /* 5550 */ GIM_Try, /*On fail goto*//*Label 251*/ GIMT_Encode4(5561), // Rule ID 411 //
7511 /* 5555 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule279Enabled),
7512 /* 5558 */ // MIs[0] dst
7513 /* 5558 */ // No operand predicates
7514 /* 5558 */ // MIs[0] src1
7515 /* 5558 */ // No operand predicates
7516 /* 5558 */ // MIs[0] src2
7517 /* 5558 */ // No operand predicates
7518 /* 5558 */ // Combiner Rule #279: match_ors
7519 /* 5558 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7520 /* 5561 */ // Label 251: @5561
7521 /* 5561 */ GIM_Try, /*On fail goto*//*Label 252*/ GIMT_Encode4(5572), // Rule ID 456 //
7522 /* 5566 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule322Enabled),
7523 /* 5569 */ // MIs[0] root
7524 /* 5569 */ // No operand predicates
7525 /* 5569 */ // MIs[0] mi.x
7526 /* 5569 */ // No operand predicates
7527 /* 5569 */ // MIs[0] mi.y
7528 /* 5569 */ // No operand predicates
7529 /* 5569 */ // Combiner Rule #322: binop_with_neg @ [mi[1]]
7530 /* 5569 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7531 /* 5572 */ // Label 252: @5572
7532 /* 5572 */ GIM_Reject,
7533 /* 5573 */ // Label 10: @5573
7534 /* 5573 */ GIM_Try, /*On fail goto*//*Label 253*/ GIMT_Encode4(5633), // Rule ID 13 //
7535 /* 5578 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
7536 /* 5581 */ // MIs[0] root
7537 /* 5581 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
7538 /* 5585 */ // MIs[0] add
7539 /* 5585 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7540 /* 5589 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
7541 /* 5593 */ // MIs[1] A
7542 /* 5593 */ // No operand predicates
7543 /* 5593 */ // MIs[1] Operand 2
7544 /* 5593 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 255,
7545 /* 5597 */ // MIs[0] Operand 2
7546 /* 5597 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
7547 /* 5601 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
7548 /* 5605 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7549 /* 5607 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7550 /* 5610 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
7551 /* 5620 */ // Combiner Rule #13: NotAPlusNegOne
7552 /* 5620 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
7553 /* 5623 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7554 /* 5625 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
7555 /* 5628 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
7556 /* 5632 */ GIR_EraseRootFromParent_Done,
7557 /* 5633 */ // Label 253: @5633
7558 /* 5633 */ GIM_Try, /*On fail goto*//*Label 254*/ GIMT_Encode4(5657), // Rule ID 106 //
7559 /* 5638 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
7560 /* 5641 */ // MIs[0] dst
7561 /* 5641 */ // No operand predicates
7562 /* 5641 */ // MIs[0] __propagate_undef_any_op_match_0.x
7563 /* 5641 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7564 /* 5645 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7565 /* 5649 */ // MIs[0] __propagate_undef_any_op_match_0.y
7566 /* 5649 */ // No operand predicates
7567 /* 5649 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7568 /* 5651 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[2]]
7569 /* 5651 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7570 /* 5654 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7571 /* 5656 */ GIR_EraseRootFromParent_Done,
7572 /* 5657 */ // Label 254: @5657
7573 /* 5657 */ GIM_Try, /*On fail goto*//*Label 255*/ GIMT_Encode4(5696), // Rule ID 131 //
7574 /* 5662 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
7575 /* 5665 */ // MIs[0] dst
7576 /* 5665 */ // No operand predicates
7577 /* 5665 */ // MIs[0] x
7578 /* 5665 */ GIM_RecordRegType, /*MI*/0, /*Op*/1, /*TempTypeIdx*/255,
7579 /* 5669 */ // MIs[0] x
7580 /* 5669 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
7581 /* 5674 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
7582 /* 5677 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
7583 /* 5687 */ // Combiner Rule #94: same_val_zero @ [__same_val_zero_match_0[1]]
7584 /* 5687 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7585 /* 5690 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7586 /* 5692 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
7587 /* 5695 */ GIR_EraseRootFromParent_Done,
7588 /* 5696 */ // Label 255: @5696
7589 /* 5696 */ GIM_Try, /*On fail goto*//*Label 256*/ GIMT_Encode4(5720), // Rule ID 109 //
7590 /* 5701 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
7591 /* 5704 */ // MIs[0] dst
7592 /* 5704 */ // No operand predicates
7593 /* 5704 */ // MIs[0] __propagate_undef_any_op_match_0.x
7594 /* 5704 */ // No operand predicates
7595 /* 5704 */ // MIs[0] __propagate_undef_any_op_match_0.y
7596 /* 5704 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7597 /* 5708 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7598 /* 5712 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7599 /* 5714 */ // Combiner Rule #83: propagate_undef_any_op @ [__propagate_undef_any_op_match_0[5]]
7600 /* 5714 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7601 /* 5717 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7602 /* 5719 */ GIR_EraseRootFromParent_Done,
7603 /* 5720 */ // Label 256: @5720
7604 /* 5720 */ GIM_Try, /*On fail goto*//*Label 257*/ GIMT_Encode4(5743), // Rule ID 121 //
7605 /* 5725 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
7606 /* 5728 */ // MIs[0] dst
7607 /* 5728 */ // No operand predicates
7608 /* 5728 */ // MIs[0] lhs
7609 /* 5728 */ // No operand predicates
7610 /* 5728 */ // MIs[0] Operand 2
7611 /* 5728 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7612 /* 5732 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7613 /* 5737 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[3]]
7614 /* 5737 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7615 /* 5742 */ GIR_EraseRootFromParent_Done,
7616 /* 5743 */ // Label 257: @5743
7617 /* 5743 */ GIM_Try, /*On fail goto*//*Label 258*/ GIMT_Encode4(5768), // Rule ID 385 //
7618 /* 5748 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule253Enabled),
7619 /* 5751 */ // MIs[0] dst
7620 /* 5751 */ // No operand predicates
7621 /* 5751 */ // MIs[0] lhs
7622 /* 5751 */ // No operand predicates
7623 /* 5751 */ // MIs[0] rhs
7624 /* 5751 */ // No operand predicates
7625 /* 5751 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
7626 /* 5755 */ // Combiner Rule #253: G_XOR_commute_constant_to_rhs
7627 /* 5755 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_XOR),
7628 /* 5758 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7629 /* 5760 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
7630 /* 5762 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
7631 /* 5764 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
7632 /* 5767 */ GIR_EraseRootFromParent_Done,
7633 /* 5768 */ // Label 258: @5768
7634 /* 5768 */ GIM_Try, /*On fail goto*//*Label 259*/ GIMT_Encode4(5779), // Rule ID 166 //
7635 /* 5773 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
7636 /* 5776 */ // MIs[0] root
7637 /* 5776 */ // No operand predicates
7638 /* 5776 */ // MIs[0] mi.x
7639 /* 5776 */ // No operand predicates
7640 /* 5776 */ // MIs[0] mi.y
7641 /* 5776 */ // No operand predicates
7642 /* 5776 */ // Combiner Rule #118: hoist_logic_op_with_same_opcode_hands @ [mi[2]]
7643 /* 5776 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
7644 /* 5779 */ // Label 259: @5779
7645 /* 5779 */ GIM_Try, /*On fail goto*//*Label 260*/ GIMT_Encode4(5790), // Rule ID 205 //
7646 /* 5784 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
7647 /* 5787 */ // MIs[0] dst
7648 /* 5787 */ // No operand predicates
7649 /* 5787 */ // MIs[0] src1
7650 /* 5787 */ // No operand predicates
7651 /* 5787 */ // MIs[0] src2
7652 /* 5787 */ // No operand predicates
7653 /* 5787 */ // Combiner Rule #155: not_cmp_fold
7654 /* 5787 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner61),
7655 /* 5790 */ // Label 260: @5790
7656 /* 5790 */ GIM_Try, /*On fail goto*//*Label 261*/ GIMT_Encode4(5801), // Rule ID 241 //
7657 /* 5795 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
7658 /* 5798 */ // MIs[0] dst
7659 /* 5798 */ // No operand predicates
7660 /* 5798 */ // MIs[0] src1
7661 /* 5798 */ // No operand predicates
7662 /* 5798 */ // MIs[0] src2
7663 /* 5798 */ // No operand predicates
7664 /* 5798 */ // Combiner Rule #187: xor_of_and_with_same_reg
7665 /* 5798 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner68),
7666 /* 5801 */ // Label 261: @5801
7667 /* 5801 */ GIM_Try, /*On fail goto*//*Label 262*/ GIMT_Encode4(5812), // Rule ID 289 //
7668 /* 5806 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
7669 /* 5809 */ // MIs[0] d
7670 /* 5809 */ // No operand predicates
7671 /* 5809 */ // MIs[0] mi.src0
7672 /* 5809 */ // No operand predicates
7673 /* 5809 */ // MIs[0] mi.src1
7674 /* 5809 */ // No operand predicates
7675 /* 5809 */ // Combiner Rule #210: constant_fold_binop @ [mi[9]]
7676 /* 5809 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
7677 /* 5812 */ // Label 262: @5812
7678 /* 5812 */ GIM_Try, /*On fail goto*//*Label 263*/ GIMT_Encode4(5823), // Rule ID 346 //
7679 /* 5817 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
7680 /* 5820 */ // MIs[0] root
7681 /* 5820 */ // No operand predicates
7682 /* 5820 */ // MIs[0] mi.x
7683 /* 5820 */ // No operand predicates
7684 /* 5820 */ // MIs[0] mi.y
7685 /* 5820 */ // No operand predicates
7686 /* 5820 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[5]]
7687 /* 5820 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
7688 /* 5823 */ // Label 263: @5823
7689 /* 5823 */ GIM_Try, /*On fail goto*//*Label 264*/ GIMT_Encode4(5834), // Rule ID 457 //
7690 /* 5828 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule322Enabled),
7691 /* 5831 */ // MIs[0] root
7692 /* 5831 */ // No operand predicates
7693 /* 5831 */ // MIs[0] mi.x
7694 /* 5831 */ // No operand predicates
7695 /* 5831 */ // MIs[0] mi.y
7696 /* 5831 */ // No operand predicates
7697 /* 5831 */ // Combiner Rule #322: binop_with_neg @ [mi[2]]
7698 /* 5831 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7699 /* 5834 */ // Label 264: @5834
7700 /* 5834 */ GIM_Reject,
7701 /* 5835 */ // Label 11: @5835
7702 /* 5835 */ GIM_Try, /*On fail goto*//*Label 265*/ GIMT_Encode4(5849), // Rule ID 161 //
7703 /* 5840 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule116Enabled),
7704 /* 5843 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
7705 /* 5846 */ // MIs[0] dst
7706 /* 5846 */ // No operand predicates
7707 /* 5846 */ // MIs[0] srcs
7708 /* 5846 */ // No operand predicates
7709 /* 5846 */ // Combiner Rule #116: extend_through_phis
7710 /* 5846 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
7711 /* 5849 */ // Label 265: @5849
7712 /* 5849 */ GIM_Reject,
7713 /* 5850 */ // Label 12: @5850
7714 /* 5850 */ GIM_Try, /*On fail goto*//*Label 266*/ GIMT_Encode4(5861), // Rule ID 427 //
7715 /* 5855 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule295Enabled),
7716 /* 5858 */ // Combiner Rule #295: unmerge_anyext_build_vector; wip_match_opcode 'G_UNMERGE_VALUES'
7717 /* 5858 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
7718 /* 5861 */ // Label 266: @5861
7719 /* 5861 */ GIM_Try, /*On fail goto*//*Label 267*/ GIMT_Encode4(5872), // Rule ID 428 //
7720 /* 5866 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule296Enabled),
7721 /* 5869 */ // Combiner Rule #296: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES'
7722 /* 5869 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114),
7723 /* 5872 */ // Label 267: @5872
7724 /* 5872 */ GIM_Try, /*On fail goto*//*Label 268*/ GIMT_Encode4(5883), // Rule ID 430 //
7725 /* 5877 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule298Enabled),
7726 /* 5880 */ // Combiner Rule #298: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES'
7727 /* 5880 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner116),
7728 /* 5883 */ // Label 268: @5883
7729 /* 5883 */ GIM_Try, /*On fail goto*//*Label 269*/ GIMT_Encode4(5894), // Rule ID 431 //
7730 /* 5888 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule299Enabled),
7731 /* 5891 */ // Combiner Rule #299: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES'
7732 /* 5891 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner117),
7733 /* 5894 */ // Label 269: @5894
7734 /* 5894 */ GIM_Try, /*On fail goto*//*Label 270*/ GIMT_Encode4(5905), // Rule ID 432 //
7735 /* 5899 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule300Enabled),
7736 /* 5902 */ // Combiner Rule #300: unmerge_dead_to_trunc; wip_match_opcode 'G_UNMERGE_VALUES'
7737 /* 5902 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7738 /* 5905 */ // Label 270: @5905
7739 /* 5905 */ GIM_Try, /*On fail goto*//*Label 271*/ GIMT_Encode4(5916), // Rule ID 433 //
7740 /* 5910 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule301Enabled),
7741 /* 5913 */ // Combiner Rule #301: unmerge_zext_to_zext; wip_match_opcode 'G_UNMERGE_VALUES'
7742 /* 5913 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
7743 /* 5916 */ // Label 271: @5916
7744 /* 5916 */ GIM_Reject,
7745 /* 5917 */ // Label 13: @5917
7746 /* 5917 */ GIM_Try, /*On fail goto*//*Label 272*/ GIMT_Encode4(5931), // Rule ID 429 //
7747 /* 5922 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule297Enabled),
7748 /* 5925 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
7749 /* 5928 */ // MIs[0] dst
7750 /* 5928 */ // No operand predicates
7751 /* 5928 */ // MIs[0] merge_srcs
7752 /* 5928 */ // No operand predicates
7753 /* 5928 */ // Combiner Rule #297: merge_unmerge
7754 /* 5928 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner115),
7755 /* 5931 */ // Label 272: @5931
7756 /* 5931 */ GIM_Try, /*On fail goto*//*Label 273*/ GIMT_Encode4(6011),
7757 /* 5936 */ GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
7758 /* 5939 */ GIM_Try, /*On fail goto*//*Label 274*/ GIMT_Encode4(5969), // Rule ID 434 //
7759 /* 5944 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule302Enabled),
7760 /* 5947 */ // MIs[0] root
7761 /* 5947 */ // No operand predicates
7762 /* 5947 */ // MIs[0] x
7763 /* 5947 */ // No operand predicates
7764 /* 5947 */ // MIs[0] undef
7765 /* 5947 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7766 /* 5951 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7767 /* 5955 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner50),
7768 /* 5959 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7769 /* 5961 */ // Combiner Rule #302: merge_of_x_and_undef
7770 /* 5961 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ANYEXT),
7771 /* 5964 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7772 /* 5966 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
7773 /* 5968 */ GIR_EraseRootFromParent_Done,
7774 /* 5969 */ // Label 274: @5969
7775 /* 5969 */ GIM_Try, /*On fail goto*//*Label 275*/ GIMT_Encode4(6010), // Rule ID 435 //
7776 /* 5974 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule303Enabled),
7777 /* 5977 */ // MIs[0] root
7778 /* 5977 */ // No operand predicates
7779 /* 5977 */ // MIs[0] x
7780 /* 5977 */ // No operand predicates
7781 /* 5977 */ // MIs[0] zero
7782 /* 5977 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7783 /* 5981 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7784 /* 5985 */ // MIs[1] Operand 1
7785 /* 5985 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
7786 /* 5996 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner51),
7787 /* 6000 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7788 /* 6002 */ // Combiner Rule #303: merge_of_x_and_zero
7789 /* 6002 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ZEXT),
7790 /* 6005 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7791 /* 6007 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
7792 /* 6009 */ GIR_EraseRootFromParent_Done,
7793 /* 6010 */ // Label 275: @6010
7794 /* 6010 */ GIM_Reject,
7795 /* 6011 */ // Label 273: @6011
7796 /* 6011 */ GIM_Reject,
7797 /* 6012 */ // Label 14: @6012
7798 /* 6012 */ GIM_Try, /*On fail goto*//*Label 276*/ GIMT_Encode4(6083),
7799 /* 6017 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
7800 /* 6020 */ GIM_Try, /*On fail goto*//*Label 277*/ GIMT_Encode4(6038), // Rule ID 111 //
7801 /* 6025 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
7802 /* 6028 */ // MIs[0] root
7803 /* 6028 */ // No operand predicates
7804 /* 6028 */ // MIs[0] srcs
7805 /* 6028 */ // No operand predicates
7806 /* 6028 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner7),
7807 /* 6032 */ // Combiner Rule #85: propagate_undef_all_ops_build_vector
7808 /* 6032 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7809 /* 6035 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7810 /* 6037 */ GIR_EraseRootFromParent_Done,
7811 /* 6038 */ // Label 277: @6038
7812 /* 6038 */ GIM_Try, /*On fail goto*//*Label 278*/ GIMT_Encode4(6049), // Rule ID 76 //
7813 /* 6043 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled),
7814 /* 6046 */ // MIs[0] dst
7815 /* 6046 */ // No operand predicates
7816 /* 6046 */ // MIs[0] srcs
7817 /* 6046 */ // No operand predicates
7818 /* 6046 */ // Combiner Rule #72: extract_all_elts_from_build_vector
7819 /* 6046 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner26),
7820 /* 6049 */ // Label 278: @6049
7821 /* 6049 */ GIM_Try, /*On fail goto*//*Label 279*/ GIMT_Encode4(6060), // Rule ID 151 //
7822 /* 6054 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
7823 /* 6057 */ // MIs[0] build_vector
7824 /* 6057 */ // No operand predicates
7825 /* 6057 */ // MIs[0] srcs
7826 /* 6057 */ // No operand predicates
7827 /* 6057 */ // Combiner Rule #106: buildvector_identity_fold_bv
7828 /* 6057 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
7829 /* 6060 */ // Label 279: @6060
7830 /* 6060 */ GIM_Try, /*On fail goto*//*Label 280*/ GIMT_Encode4(6071), // Rule ID 426 //
7831 /* 6065 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule294Enabled),
7832 /* 6068 */ // MIs[0] dst
7833 /* 6068 */ // No operand predicates
7834 /* 6068 */ // MIs[0] unused
7835 /* 6068 */ // No operand predicates
7836 /* 6068 */ // Combiner Rule #294: combine_use_vector_truncate
7837 /* 6068 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner112),
7838 /* 6071 */ // Label 280: @6071
7839 /* 6071 */ GIM_Try, /*On fail goto*//*Label 281*/ GIMT_Encode4(6082), // Rule ID 436 //
7840 /* 6076 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule304Enabled),
7841 /* 6079 */ // MIs[0] dst
7842 /* 6079 */ // No operand predicates
7843 /* 6079 */ // MIs[0] unused
7844 /* 6079 */ // No operand predicates
7845 /* 6079 */ // Combiner Rule #304: combine_build_unmerge
7846 /* 6079 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
7847 /* 6082 */ // Label 281: @6082
7848 /* 6082 */ GIM_Reject,
7849 /* 6083 */ // Label 276: @6083
7850 /* 6083 */ GIM_Reject,
7851 /* 6084 */ // Label 15: @6084
7852 /* 6084 */ GIM_Try, /*On fail goto*//*Label 282*/ GIMT_Encode4(6098), // Rule ID 152 //
7853 /* 6089 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule107Enabled),
7854 /* 6092 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
7855 /* 6095 */ // MIs[0] build_vector
7856 /* 6095 */ // No operand predicates
7857 /* 6095 */ // MIs[0] srcs
7858 /* 6095 */ // No operand predicates
7859 /* 6095 */ // Combiner Rule #107: buildvector_identity_fold_bvt
7860 /* 6095 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
7861 /* 6098 */ // Label 282: @6098
7862 /* 6098 */ GIM_Reject,
7863 /* 6099 */ // Label 16: @6099
7864 /* 6099 */ GIM_Try, /*On fail goto*//*Label 283*/ GIMT_Encode4(6113), // Rule ID 419 //
7865 /* 6104 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule287Enabled),
7866 /* 6107 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
7867 /* 6110 */ // MIs[0] dst
7868 /* 6110 */ // No operand predicates
7869 /* 6110 */ // MIs[0] srcs
7870 /* 6110 */ // No operand predicates
7871 /* 6110 */ // Combiner Rule #287: combine_concat_vector
7872 /* 6110 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
7873 /* 6113 */ // Label 283: @6113
7874 /* 6113 */ GIM_Reject,
7875 /* 6114 */ // Label 17: @6114
7876 /* 6114 */ GIM_Try, /*On fail goto*//*Label 284*/ GIMT_Encode4(6146), // Rule ID 142 //
7877 /* 6119 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule98Enabled),
7878 /* 6122 */ // MIs[0] dst
7879 /* 6122 */ // No operand predicates
7880 /* 6122 */ // MIs[0] t
7881 /* 6122 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7882 /* 6126 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
7883 /* 6130 */ // MIs[1] ptr
7884 /* 6130 */ // No operand predicates
7885 /* 6130 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner14),
7886 /* 6134 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7887 /* 6136 */ // Combiner Rule #98: i2p_to_p2i_same_size
7888 /* 6136 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
7889 /* 6139 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7890 /* 6141 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ptr
7891 /* 6145 */ GIR_EraseRootFromParent_Done,
7892 /* 6146 */ // Label 284: @6146
7893 /* 6146 */ GIM_Try, /*On fail goto*//*Label 285*/ GIMT_Encode4(6178), // Rule ID 143 //
7894 /* 6151 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule99Enabled),
7895 /* 6154 */ // MIs[0] dst
7896 /* 6154 */ // No operand predicates
7897 /* 6154 */ // MIs[0] t
7898 /* 6154 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7899 /* 6158 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
7900 /* 6162 */ // MIs[1] ptr
7901 /* 6162 */ // No operand predicates
7902 /* 6162 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner15),
7903 /* 6166 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7904 /* 6168 */ // Combiner Rule #99: i2p_to_p2i_zext
7905 /* 6168 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ZEXT),
7906 /* 6171 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7907 /* 6173 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ptr
7908 /* 6177 */ GIR_EraseRootFromParent_Done,
7909 /* 6178 */ // Label 285: @6178
7910 /* 6178 */ GIM_Try, /*On fail goto*//*Label 286*/ GIMT_Encode4(6210), // Rule ID 144 //
7911 /* 6183 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule100Enabled),
7912 /* 6186 */ // MIs[0] dst
7913 /* 6186 */ // No operand predicates
7914 /* 6186 */ // MIs[0] t
7915 /* 6186 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7916 /* 6190 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
7917 /* 6194 */ // MIs[1] ptr
7918 /* 6194 */ // No operand predicates
7919 /* 6194 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner16),
7920 /* 6198 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7921 /* 6200 */ // Combiner Rule #100: i2p_to_p2i_trunc
7922 /* 6200 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_TRUNC),
7923 /* 6203 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7924 /* 6205 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // ptr
7925 /* 6209 */ GIR_EraseRootFromParent_Done,
7926 /* 6210 */ // Label 286: @6210
7927 /* 6210 */ GIM_Try, /*On fail goto*//*Label 287*/ GIMT_Encode4(6234), // Rule ID 100 //
7928 /* 6215 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
7929 /* 6218 */ // MIs[0] dst
7930 /* 6218 */ // No operand predicates
7931 /* 6218 */ // MIs[0] __unary_undef_to_undef_match_0.x
7932 /* 6218 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7933 /* 6222 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7934 /* 6226 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7935 /* 6228 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[3]]
7936 /* 6228 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7937 /* 6231 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7938 /* 6233 */ GIR_EraseRootFromParent_Done,
7939 /* 6234 */ // Label 287: @6234
7940 /* 6234 */ GIM_Reject,
7941 /* 6235 */ // Label 18: @6235
7942 /* 6235 */ GIM_Try, /*On fail goto*//*Label 288*/ GIMT_Encode4(6268), // Rule ID 141 //
7943 /* 6240 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule97Enabled),
7944 /* 6243 */ // MIs[0] dst
7945 /* 6243 */ // No operand predicates
7946 /* 6243 */ // MIs[0] mid
7947 /* 6243 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7948 /* 6247 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_PTRTOINT),
7949 /* 6251 */ // MIs[1] x
7950 /* 6251 */ // No operand predicates
7951 /* 6251 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
7952 /* 6255 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
7953 /* 6260 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7954 /* 6262 */ // Combiner Rule #97: p2i_to_i2p
7955 /* 6262 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
7956 /* 6267 */ GIR_EraseRootFromParent_Done,
7957 /* 6268 */ // Label 288: @6268
7958 /* 6268 */ GIM_Try, /*On fail goto*//*Label 289*/ GIMT_Encode4(6292), // Rule ID 101 //
7959 /* 6273 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
7960 /* 6276 */ // MIs[0] dst
7961 /* 6276 */ // No operand predicates
7962 /* 6276 */ // MIs[0] __unary_undef_to_undef_match_0.x
7963 /* 6276 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7964 /* 6280 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7965 /* 6284 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7966 /* 6286 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[4]]
7967 /* 6286 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7968 /* 6289 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7969 /* 6291 */ GIR_EraseRootFromParent_Done,
7970 /* 6292 */ // Label 289: @6292
7971 /* 6292 */ GIM_Reject,
7972 /* 6293 */ // Label 19: @6293
7973 /* 6293 */ GIM_Try, /*On fail goto*//*Label 290*/ GIMT_Encode4(6326), // Rule ID 155 //
7974 /* 6298 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule110Enabled),
7975 /* 6301 */ // MIs[0] dst
7976 /* 6301 */ // No operand predicates
7977 /* 6301 */ // MIs[0] src1
7978 /* 6301 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7979 /* 6305 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
7980 /* 6309 */ // MIs[1] src0
7981 /* 6309 */ // No operand predicates
7982 /* 6309 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
7983 /* 6313 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
7984 /* 6318 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7985 /* 6320 */ // Combiner Rule #110: bitcast_bitcast_fold
7986 /* 6320 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
7987 /* 6325 */ GIR_EraseRootFromParent_Done,
7988 /* 6326 */ // Label 290: @6326
7989 /* 6326 */ GIM_Try, /*On fail goto*//*Label 291*/ GIMT_Encode4(6358), // Rule ID 156 //
7990 /* 6331 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled),
7991 /* 6334 */ // MIs[0] dst
7992 /* 6334 */ // No operand predicates
7993 /* 6334 */ // MIs[0] src1
7994 /* 6334 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7995 /* 6338 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
7996 /* 6342 */ // MIs[1] src0
7997 /* 6342 */ // No operand predicates
7998 /* 6342 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner18),
7999 /* 6346 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8000 /* 6348 */ // Combiner Rule #111: bitcast_bitcast_to_bitcast
8001 /* 6348 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_BITCAST),
8002 /* 6351 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8003 /* 6353 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src0
8004 /* 6357 */ GIR_EraseRootFromParent_Done,
8005 /* 6358 */ // Label 291: @6358
8006 /* 6358 */ GIM_Try, /*On fail goto*//*Label 292*/ GIMT_Encode4(6382), // Rule ID 98 //
8007 /* 6363 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
8008 /* 6366 */ // MIs[0] dst
8009 /* 6366 */ // No operand predicates
8010 /* 6366 */ // MIs[0] __unary_undef_to_undef_match_0.x
8011 /* 6366 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8012 /* 6370 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8013 /* 6374 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8014 /* 6376 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[1]]
8015 /* 6376 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8016 /* 6379 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8017 /* 6381 */ GIR_EraseRootFromParent_Done,
8018 /* 6382 */ // Label 292: @6382
8019 /* 6382 */ GIM_Reject,
8020 /* 6383 */ // Label 20: @6383
8021 /* 6383 */ GIM_Try, /*On fail goto*//*Label 293*/ GIMT_Encode4(6412), // Rule ID 25 //
8022 /* 6388 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
8023 /* 6391 */ // MIs[0] dst
8024 /* 6391 */ // No operand predicates
8025 /* 6391 */ // MIs[0] src
8026 /* 6391 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8027 /* 6395 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREEZE),
8028 /* 6399 */ // MIs[1] __idempotent_prop_match_0.x
8029 /* 6399 */ // No operand predicates
8030 /* 6399 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8031 /* 6404 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8032 /* 6406 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[0]]
8033 /* 6406 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8034 /* 6411 */ GIR_EraseRootFromParent_Done,
8035 /* 6412 */ // Label 293: @6412
8036 /* 6412 */ GIM_Try, /*On fail goto*//*Label 294*/ GIMT_Encode4(6435), // Rule ID 50 //
8037 /* 6417 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
8038 /* 6420 */ // MIs[0] root
8039 /* 6420 */ // No operand predicates
8040 /* 6420 */ // MIs[0] src
8041 /* 6420 */ // No operand predicates
8042 /* 6420 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner6),
8043 /* 6424 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8044 /* 6429 */ // Combiner Rule #46: freeze_of_non_undef_non_poison
8045 /* 6429 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8046 /* 6434 */ GIR_EraseRootFromParent_Done,
8047 /* 6435 */ // Label 294: @6435
8048 /* 6435 */ GIM_Try, /*On fail goto*//*Label 295*/ GIMT_Encode4(6446), // Rule ID 51 //
8049 /* 6440 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled),
8050 /* 6443 */ // MIs[0] dst
8051 /* 6443 */ // No operand predicates
8052 /* 6443 */ // MIs[0] src
8053 /* 6443 */ // No operand predicates
8054 /* 6443 */ // Combiner Rule #47: push_freeze_to_prevent_poison_from_propagating
8055 /* 6443 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
8056 /* 6446 */ // Label 295: @6446
8057 /* 6446 */ GIM_Reject,
8058 /* 6447 */ // Label 21: @6447
8059 /* 6447 */ GIM_Try, /*On fail goto*//*Label 296*/ GIMT_Encode4(6468), // Rule ID 215 //
8060 /* 6452 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
8061 /* 6455 */ // MIs[0] dst
8062 /* 6455 */ // No operand predicates
8063 /* 6455 */ // MIs[0] src0
8064 /* 6455 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8065 /* 6459 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8066 /* 6463 */ // MIs[1] cst
8067 /* 6463 */ // No operand predicates
8068 /* 6463 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8069 /* 6465 */ // Combiner Rule #165: constant_fold_intrinsic_trunc
8070 /* 6465 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
8071 /* 6468 */ // Label 296: @6468
8072 /* 6468 */ GIM_Reject,
8073 /* 6469 */ // Label 22: @6469
8074 /* 6469 */ GIM_Try, /*On fail goto*//*Label 297*/ GIMT_Encode4(6490), // Rule ID 216 //
8075 /* 6474 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
8076 /* 6477 */ // MIs[0] dst
8077 /* 6477 */ // No operand predicates
8078 /* 6477 */ // MIs[0] src0
8079 /* 6477 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8080 /* 6481 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8081 /* 6485 */ // MIs[1] cst
8082 /* 6485 */ // No operand predicates
8083 /* 6485 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8084 /* 6487 */ // Combiner Rule #166: constant_fold_intrinsic_round
8085 /* 6487 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
8086 /* 6490 */ // Label 297: @6490
8087 /* 6490 */ GIM_Reject,
8088 /* 6491 */ // Label 23: @6491
8089 /* 6491 */ GIM_Try, /*On fail goto*//*Label 298*/ GIMT_Encode4(6512), // Rule ID 217 //
8090 /* 6496 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
8091 /* 6499 */ // MIs[0] dst
8092 /* 6499 */ // No operand predicates
8093 /* 6499 */ // MIs[0] src0
8094 /* 6499 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8095 /* 6503 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8096 /* 6507 */ // MIs[1] cst
8097 /* 6507 */ // No operand predicates
8098 /* 6507 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8099 /* 6509 */ // Combiner Rule #167: constant_fold_intrinsic_roundeven
8100 /* 6509 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
8101 /* 6512 */ // Label 298: @6512
8102 /* 6512 */ GIM_Reject,
8103 /* 6513 */ // Label 24: @6513
8104 /* 6513 */ GIM_Try, /*On fail goto*//*Label 299*/ GIMT_Encode4(6524), // Rule ID 77 //
8105 /* 6518 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
8106 /* 6521 */ // MIs[0] root
8107 /* 6521 */ // No operand predicates
8108 /* 6521 */ // MIs[0] mi.ptr
8109 /* 6521 */ // No operand predicates
8110 /* 6521 */ // Combiner Rule #73: extending_loads @ [mi[0]]
8111 /* 6521 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27),
8112 /* 6524 */ // Label 299: @6524
8113 /* 6524 */ GIM_Reject,
8114 /* 6525 */ // Label 25: @6525
8115 /* 6525 */ GIM_Try, /*On fail goto*//*Label 300*/ GIMT_Encode4(6536), // Rule ID 78 //
8116 /* 6530 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
8117 /* 6533 */ // MIs[0] root
8118 /* 6533 */ // No operand predicates
8119 /* 6533 */ // MIs[0] mi.ptr
8120 /* 6533 */ // No operand predicates
8121 /* 6533 */ // Combiner Rule #73: extending_loads @ [mi[1]]
8122 /* 6533 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27),
8123 /* 6536 */ // Label 300: @6536
8124 /* 6536 */ GIM_Reject,
8125 /* 6537 */ // Label 26: @6537
8126 /* 6537 */ GIM_Try, /*On fail goto*//*Label 301*/ GIMT_Encode4(6548), // Rule ID 79 //
8127 /* 6542 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
8128 /* 6545 */ // MIs[0] root
8129 /* 6545 */ // No operand predicates
8130 /* 6545 */ // MIs[0] mi.ptr
8131 /* 6545 */ // No operand predicates
8132 /* 6545 */ // Combiner Rule #73: extending_loads @ [mi[2]]
8133 /* 6545 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27),
8134 /* 6548 */ // Label 301: @6548
8135 /* 6548 */ GIM_Reject,
8136 /* 6549 */ // Label 27: @6549
8137 /* 6549 */ GIM_Try, /*On fail goto*//*Label 302*/ GIMT_Encode4(6572), // Rule ID 113 //
8138 /* 6554 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
8139 /* 6557 */ // MIs[0] val
8140 /* 6557 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/0, // MIs[1]
8141 /* 6561 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8142 /* 6565 */ // MIs[0] ptr
8143 /* 6565 */ // No operand predicates
8144 /* 6565 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
8145 /* 6569 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8146 /* 6571 */ // Combiner Rule #87: erase_undef_store
8147 /* 6571 */ GIR_EraseRootFromParent_Done,
8148 /* 6572 */ // Label 302: @6572
8149 /* 6572 */ GIM_Reject,
8150 /* 6573 */ // Label 28: @6573
8151 /* 6573 */ GIM_Try, /*On fail goto*//*Label 303*/ GIMT_Encode4(6594), // Rule ID 64 //
8152 /* 6578 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled),
8153 /* 6581 */ // MIs[0] root
8154 /* 6581 */ // No operand predicates
8155 /* 6581 */ // MIs[0] select
8156 /* 6581 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8157 /* 6585 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
8158 /* 6589 */ // MIs[1] cond
8159 /* 6589 */ // No operand predicates
8160 /* 6589 */ // MIs[1] true
8161 /* 6589 */ // No operand predicates
8162 /* 6589 */ // MIs[1] false
8163 /* 6589 */ // No operand predicates
8164 /* 6589 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8165 /* 6591 */ // Combiner Rule #60: select_of_anyext
8166 /* 6591 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
8167 /* 6594 */ // Label 303: @6594
8168 /* 6594 */ GIM_Try, /*On fail goto*//*Label 304*/ GIMT_Encode4(6615), // Rule ID 59 //
8169 /* 6599 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
8170 /* 6602 */ // MIs[0] root
8171 /* 6602 */ // No operand predicates
8172 /* 6602 */ // MIs[0] second
8173 /* 6602 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8174 /* 6606 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8175 /* 6610 */ // MIs[1] src
8176 /* 6610 */ // No operand predicates
8177 /* 6610 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8178 /* 6612 */ // Combiner Rule #55: anyext_of_anyext
8179 /* 6612 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
8180 /* 6615 */ // Label 304: @6615
8181 /* 6615 */ GIM_Try, /*On fail goto*//*Label 305*/ GIMT_Encode4(6636), // Rule ID 61 //
8182 /* 6620 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled),
8183 /* 6623 */ // MIs[0] root
8184 /* 6623 */ // No operand predicates
8185 /* 6623 */ // MIs[0] second
8186 /* 6623 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8187 /* 6627 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
8188 /* 6631 */ // MIs[1] src
8189 /* 6631 */ // No operand predicates
8190 /* 6631 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8191 /* 6633 */ // Combiner Rule #57: anyext_of_sext
8192 /* 6633 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
8193 /* 6636 */ // Label 305: @6636
8194 /* 6636 */ GIM_Try, /*On fail goto*//*Label 306*/ GIMT_Encode4(6657), // Rule ID 60 //
8195 /* 6641 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled),
8196 /* 6644 */ // MIs[0] root
8197 /* 6644 */ // No operand predicates
8198 /* 6644 */ // MIs[0] second
8199 /* 6644 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8200 /* 6648 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
8201 /* 6652 */ // MIs[1] src
8202 /* 6652 */ // No operand predicates
8203 /* 6652 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8204 /* 6654 */ // Combiner Rule #56: anyext_of_zext
8205 /* 6654 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
8206 /* 6657 */ // Label 306: @6657
8207 /* 6657 */ GIM_Try, /*On fail goto*//*Label 307*/ GIMT_Encode4(6681), // Rule ID 99 //
8208 /* 6662 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
8209 /* 6665 */ // MIs[0] dst
8210 /* 6665 */ // No operand predicates
8211 /* 6665 */ // MIs[0] __unary_undef_to_undef_match_0.x
8212 /* 6665 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8213 /* 6669 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8214 /* 6673 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8215 /* 6675 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[2]]
8216 /* 6675 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8217 /* 6678 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8218 /* 6680 */ GIR_EraseRootFromParent_Done,
8219 /* 6681 */ // Label 307: @6681
8220 /* 6681 */ GIM_Try, /*On fail goto*//*Label 308*/ GIMT_Encode4(6692), // Rule ID 145 //
8221 /* 6686 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
8222 /* 6689 */ // MIs[0] dst
8223 /* 6689 */ // No operand predicates
8224 /* 6689 */ // MIs[0] src
8225 /* 6689 */ // No operand predicates
8226 /* 6689 */ // Combiner Rule #101: anyext_trunc_fold
8227 /* 6689 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
8228 /* 6692 */ // Label 308: @6692
8229 /* 6692 */ GIM_Try, /*On fail goto*//*Label 309*/ GIMT_Encode4(6703), // Rule ID 314 //
8230 /* 6697 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
8231 /* 6700 */ // MIs[0] dst
8232 /* 6700 */ // No operand predicates
8233 /* 6700 */ // MIs[0] d.src
8234 /* 6700 */ // No operand predicates
8235 /* 6700 */ // Combiner Rule #213: constant_fold_cast_op @ [d[2]]
8236 /* 6700 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
8237 /* 6703 */ // Label 309: @6703
8238 /* 6703 */ GIM_Reject,
8239 /* 6704 */ // Label 29: @6704
8240 /* 6704 */ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/GIMT_Encode2(0), GIMT_Encode2(5), /*)*//*default:*//*Label 313*/ GIMT_Encode4(6970),
8241 /* 6715 */ /*GILLT_i16*//*Label 310*/ GIMT_Encode4(6735), GIMT_Encode4(0), GIMT_Encode4(0),
8242 /* 6727 */ /*GILLT_f16*//*Label 311*/ GIMT_Encode4(6802),
8243 /* 6731 */ /*GILLT_bf16*//*Label 312*/ GIMT_Encode4(6886),
8244 /* 6735 */ // Label 310: @6735
8245 /* 6735 */ GIM_Try, /*On fail goto*//*Label 314*/ GIMT_Encode4(6801), // Rule ID 476 //
8246 /* 6740 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule338Enabled),
8247 /* 6743 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i32,
8248 /* 6746 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8249 /* 6750 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
8250 /* 6754 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_i32,
8251 /* 6758 */ // MIs[1] src
8252 /* 6758 */ // No operand predicates
8253 /* 6758 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
8254 /* 6762 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8255 /* 6766 */ // MIs[2] Operand 1
8256 /* 6766 */ GIM_CheckLiteralInt, /*MI*/2, /*Op*/1, GIMT_Encode8(16),
8257 /* 6777 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner64),
8258 /* 6781 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8259 /* 6783 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_i16,
8260 /* 6786 */ // Combiner Rule #338: trunc_lshr16_unmerge_i16
8261 /* 6786 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
8262 /* 6789 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8263 /* 6794 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8264 /* 6796 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
8265 /* 6800 */ GIR_EraseRootFromParent_Done,
8266 /* 6801 */ // Label 314: @6801
8267 /* 6801 */ GIM_Reject,
8268 /* 6802 */ // Label 311: @6802
8269 /* 6802 */ GIM_Try, /*On fail goto*//*Label 315*/ GIMT_Encode4(6885), // Rule ID 477 //
8270 /* 6807 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule339Enabled),
8271 /* 6810 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i32,
8272 /* 6813 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8273 /* 6817 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
8274 /* 6821 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_i32,
8275 /* 6825 */ // MIs[1] src
8276 /* 6825 */ // No operand predicates
8277 /* 6825 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
8278 /* 6829 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8279 /* 6833 */ // MIs[2] Operand 1
8280 /* 6833 */ GIM_CheckLiteralInt, /*MI*/2, /*Op*/1, GIMT_Encode8(16),
8281 /* 6844 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner64),
8282 /* 6848 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8283 /* 6850 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_i16,
8284 /* 6853 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_i16,
8285 /* 6856 */ // Combiner Rule #339: trunc_lshr16_unmerge_f16
8286 /* 6856 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
8287 /* 6859 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8288 /* 6864 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8289 /* 6869 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
8290 /* 6873 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_BITCAST),
8291 /* 6877 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
8292 /* 6881 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
8293 /* 6884 */ GIR_EraseRootFromParent_Done,
8294 /* 6885 */ // Label 315: @6885
8295 /* 6885 */ GIM_Reject,
8296 /* 6886 */ // Label 312: @6886
8297 /* 6886 */ GIM_Try, /*On fail goto*//*Label 316*/ GIMT_Encode4(6969), // Rule ID 478 //
8298 /* 6891 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule340Enabled),
8299 /* 6894 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_i32,
8300 /* 6897 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8301 /* 6901 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
8302 /* 6905 */ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_i32,
8303 /* 6909 */ // MIs[1] src
8304 /* 6909 */ // No operand predicates
8305 /* 6909 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
8306 /* 6913 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8307 /* 6917 */ // MIs[2] Operand 1
8308 /* 6917 */ GIM_CheckLiteralInt, /*MI*/2, /*Op*/1, GIMT_Encode8(16),
8309 /* 6928 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner64),
8310 /* 6932 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8311 /* 6934 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_i16,
8312 /* 6937 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_i16,
8313 /* 6940 */ // Combiner Rule #340: trunc_lshr16_unmerge_bf16
8314 /* 6940 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
8315 /* 6943 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8316 /* 6948 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8317 /* 6953 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
8318 /* 6957 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_BITCAST),
8319 /* 6961 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
8320 /* 6965 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
8321 /* 6968 */ GIR_EraseRootFromParent_Done,
8322 /* 6969 */ // Label 316: @6969
8323 /* 6969 */ GIM_Reject,
8324 /* 6970 */ // Label 313: @6970
8325 /* 6970 */ GIM_Try, /*On fail goto*//*Label 317*/ GIMT_Encode4(6991), // Rule ID 65 //
8326 /* 6975 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule61Enabled),
8327 /* 6978 */ // MIs[0] root
8328 /* 6978 */ // No operand predicates
8329 /* 6978 */ // MIs[0] select
8330 /* 6978 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8331 /* 6982 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
8332 /* 6986 */ // MIs[1] cond
8333 /* 6986 */ // No operand predicates
8334 /* 6986 */ // MIs[1] true
8335 /* 6986 */ // No operand predicates
8336 /* 6986 */ // MIs[1] false
8337 /* 6986 */ // No operand predicates
8338 /* 6986 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8339 /* 6988 */ // Combiner Rule #61: select_of_truncate
8340 /* 6988 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
8341 /* 6991 */ // Label 317: @6991
8342 /* 6991 */ GIM_Try, /*On fail goto*//*Label 318*/ GIMT_Encode4(7020), // Rule ID 67 //
8343 /* 6996 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule63Enabled),
8344 /* 6999 */ // MIs[0] root
8345 /* 6999 */ // No operand predicates
8346 /* 6999 */ // MIs[0] binop
8347 /* 6999 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8348 /* 7003 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
8349 /* 7007 */ // MIs[1] x
8350 /* 7007 */ // No operand predicates
8351 /* 7007 */ // MIs[1] const
8352 /* 7007 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
8353 /* 7011 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8354 /* 7015 */ // MIs[2] imm
8355 /* 7015 */ // No operand predicates
8356 /* 7015 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8357 /* 7017 */ // Combiner Rule #63: narrow_binop_add
8358 /* 7017 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
8359 /* 7020 */ // Label 318: @7020
8360 /* 7020 */ GIM_Try, /*On fail goto*//*Label 319*/ GIMT_Encode4(7049), // Rule ID 70 //
8361 /* 7025 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule66Enabled),
8362 /* 7028 */ // MIs[0] root
8363 /* 7028 */ // No operand predicates
8364 /* 7028 */ // MIs[0] binop
8365 /* 7028 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8366 /* 7032 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
8367 /* 7036 */ // MIs[1] x
8368 /* 7036 */ // No operand predicates
8369 /* 7036 */ // MIs[1] const
8370 /* 7036 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
8371 /* 7040 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8372 /* 7044 */ // MIs[2] imm
8373 /* 7044 */ // No operand predicates
8374 /* 7044 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8375 /* 7046 */ // Combiner Rule #66: narrow_binop_and
8376 /* 7046 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
8377 /* 7049 */ // Label 319: @7049
8378 /* 7049 */ GIM_Try, /*On fail goto*//*Label 320*/ GIMT_Encode4(7078), // Rule ID 69 //
8379 /* 7054 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
8380 /* 7057 */ // MIs[0] root
8381 /* 7057 */ // No operand predicates
8382 /* 7057 */ // MIs[0] binop
8383 /* 7057 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8384 /* 7061 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
8385 /* 7065 */ // MIs[1] x
8386 /* 7065 */ // No operand predicates
8387 /* 7065 */ // MIs[1] const
8388 /* 7065 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
8389 /* 7069 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8390 /* 7073 */ // MIs[2] imm
8391 /* 7073 */ // No operand predicates
8392 /* 7073 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8393 /* 7075 */ // Combiner Rule #65: narrow_binop_mul
8394 /* 7075 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
8395 /* 7078 */ // Label 320: @7078
8396 /* 7078 */ GIM_Try, /*On fail goto*//*Label 321*/ GIMT_Encode4(7107), // Rule ID 71 //
8397 /* 7083 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule67Enabled),
8398 /* 7086 */ // MIs[0] root
8399 /* 7086 */ // No operand predicates
8400 /* 7086 */ // MIs[0] binop
8401 /* 7086 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8402 /* 7090 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
8403 /* 7094 */ // MIs[1] x
8404 /* 7094 */ // No operand predicates
8405 /* 7094 */ // MIs[1] const
8406 /* 7094 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
8407 /* 7098 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8408 /* 7102 */ // MIs[2] imm
8409 /* 7102 */ // No operand predicates
8410 /* 7102 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8411 /* 7104 */ // Combiner Rule #67: narrow_binop_or
8412 /* 7104 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
8413 /* 7107 */ // Label 321: @7107
8414 /* 7107 */ GIM_Try, /*On fail goto*//*Label 322*/ GIMT_Encode4(7136), // Rule ID 68 //
8415 /* 7112 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
8416 /* 7115 */ // MIs[0] root
8417 /* 7115 */ // No operand predicates
8418 /* 7115 */ // MIs[0] binop
8419 /* 7115 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8420 /* 7119 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
8421 /* 7123 */ // MIs[1] x
8422 /* 7123 */ // No operand predicates
8423 /* 7123 */ // MIs[1] const
8424 /* 7123 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
8425 /* 7127 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8426 /* 7131 */ // MIs[2] imm
8427 /* 7131 */ // No operand predicates
8428 /* 7131 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8429 /* 7133 */ // Combiner Rule #64: narrow_binop_sub
8430 /* 7133 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
8431 /* 7136 */ // Label 322: @7136
8432 /* 7136 */ GIM_Try, /*On fail goto*//*Label 323*/ GIMT_Encode4(7168), // Rule ID 445 //
8433 /* 7141 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule313Enabled),
8434 /* 7144 */ // MIs[0] dst
8435 /* 7144 */ // No operand predicates
8436 /* 7144 */ // MIs[0] min
8437 /* 7144 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8438 /* 7148 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMIN),
8439 /* 7152 */ // MIs[1] x
8440 /* 7152 */ // No operand predicates
8441 /* 7152 */ // MIs[1] y
8442 /* 7152 */ // No operand predicates
8443 /* 7152 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner53),
8444 /* 7156 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8445 /* 7158 */ // Combiner Rule #313: trunc_usatu
8446 /* 7158 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_TRUNC_USAT_U),
8447 /* 7161 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8448 /* 7163 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
8449 /* 7167 */ GIR_EraseRootFromParent_Done,
8450 /* 7168 */ // Label 323: @7168
8451 /* 7168 */ GIM_Try, /*On fail goto*//*Label 324*/ GIMT_Encode4(7197), // Rule ID 72 //
8452 /* 7173 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
8453 /* 7176 */ // MIs[0] root
8454 /* 7176 */ // No operand predicates
8455 /* 7176 */ // MIs[0] binop
8456 /* 7176 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8457 /* 7180 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
8458 /* 7184 */ // MIs[1] x
8459 /* 7184 */ // No operand predicates
8460 /* 7184 */ // MIs[1] const
8461 /* 7184 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
8462 /* 7188 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8463 /* 7192 */ // MIs[2] imm
8464 /* 7192 */ // No operand predicates
8465 /* 7192 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8466 /* 7194 */ // Combiner Rule #68: narrow_binop_xor
8467 /* 7194 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
8468 /* 7197 */ // Label 324: @7197
8469 /* 7197 */ GIM_Try, /*On fail goto*//*Label 325*/ GIMT_Encode4(7218), // Rule ID 54 //
8470 /* 7202 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
8471 /* 7205 */ // MIs[0] root
8472 /* 7205 */ // No operand predicates
8473 /* 7205 */ // MIs[0] ext
8474 /* 7205 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8475 /* 7209 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8476 /* 7213 */ // MIs[1] src
8477 /* 7213 */ // No operand predicates
8478 /* 7213 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8479 /* 7215 */ // Combiner Rule #50: truncate_of_anyext
8480 /* 7215 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
8481 /* 7218 */ // Label 325: @7218
8482 /* 7218 */ GIM_Try, /*On fail goto*//*Label 326*/ GIMT_Encode4(7242), // Rule ID 66 //
8483 /* 7223 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled),
8484 /* 7226 */ // MIs[0] root
8485 /* 7226 */ // No operand predicates
8486 /* 7226 */ // MIs[0] bv
8487 /* 7226 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8488 /* 7230 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
8489 /* 7234 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
8490 /* 7237 */ // MIs[1] unused
8491 /* 7237 */ // No operand predicates
8492 /* 7237 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8493 /* 7239 */ // Combiner Rule #62: buildvector_of_truncate
8494 /* 7239 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
8495 /* 7242 */ // Label 326: @7242
8496 /* 7242 */ GIM_Try, /*On fail goto*//*Label 327*/ GIMT_Encode4(7263), // Rule ID 53 //
8497 /* 7247 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
8498 /* 7250 */ // MIs[0] root
8499 /* 7250 */ // No operand predicates
8500 /* 7250 */ // MIs[0] ext
8501 /* 7250 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8502 /* 7254 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
8503 /* 7258 */ // MIs[1] src
8504 /* 7258 */ // No operand predicates
8505 /* 7258 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8506 /* 7260 */ // Combiner Rule #49: truncate_of_sext
8507 /* 7260 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
8508 /* 7263 */ // Label 327: @7263
8509 /* 7263 */ GIM_Try, /*On fail goto*//*Label 328*/ GIMT_Encode4(7284), // Rule ID 52 //
8510 /* 7268 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled),
8511 /* 7271 */ // MIs[0] root
8512 /* 7271 */ // No operand predicates
8513 /* 7271 */ // MIs[0] ext
8514 /* 7271 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8515 /* 7275 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
8516 /* 7279 */ // MIs[1] src
8517 /* 7279 */ // No operand predicates
8518 /* 7279 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8519 /* 7281 */ // Combiner Rule #48: truncate_of_zext
8520 /* 7281 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
8521 /* 7284 */ // Label 328: @7284
8522 /* 7284 */ GIM_Try, /*On fail goto*//*Label 329*/ GIMT_Encode4(7308), // Rule ID 97 //
8523 /* 7289 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
8524 /* 7292 */ // MIs[0] dst
8525 /* 7292 */ // No operand predicates
8526 /* 7292 */ // MIs[0] __unary_undef_to_undef_match_0.x
8527 /* 7292 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8528 /* 7296 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8529 /* 7300 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8530 /* 7302 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[0]]
8531 /* 7302 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8532 /* 7305 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8533 /* 7307 */ GIR_EraseRootFromParent_Done,
8534 /* 7308 */ // Label 329: @7308
8535 /* 7308 */ GIM_Try, /*On fail goto*//*Label 330*/ GIMT_Encode4(7329), // Rule ID 73 //
8536 /* 7313 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled),
8537 /* 7316 */ // MIs[0] root
8538 /* 7316 */ // No operand predicates
8539 /* 7316 */ // MIs[0] int
8540 /* 7316 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8541 /* 7320 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8542 /* 7324 */ // MIs[1] imm
8543 /* 7324 */ // No operand predicates
8544 /* 7324 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8545 /* 7326 */ // Combiner Rule #69: integer_of_truncate
8546 /* 7326 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
8547 /* 7329 */ // Label 330: @7329
8548 /* 7329 */ GIM_Try, /*On fail goto*//*Label 331*/ GIMT_Encode4(7340), // Rule ID 153 //
8549 /* 7334 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule108Enabled),
8550 /* 7337 */ // MIs[0] dst
8551 /* 7337 */ // No operand predicates
8552 /* 7337 */ // MIs[0] src
8553 /* 7337 */ // No operand predicates
8554 /* 7337 */ // Combiner Rule #108: trunc_buildvector_fold
8555 /* 7337 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
8556 /* 7340 */ // Label 331: @7340
8557 /* 7340 */ GIM_Try, /*On fail goto*//*Label 332*/ GIMT_Encode4(7351), // Rule ID 154 //
8558 /* 7345 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule109Enabled),
8559 /* 7348 */ // MIs[0] dst
8560 /* 7348 */ // No operand predicates
8561 /* 7348 */ // MIs[0] src
8562 /* 7348 */ // No operand predicates
8563 /* 7348 */ // Combiner Rule #109: trunc_lshr_buildvector_fold
8564 /* 7348 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
8565 /* 7351 */ // Label 332: @7351
8566 /* 7351 */ GIM_Try, /*On fail goto*//*Label 333*/ GIMT_Encode4(7362), // Rule ID 204 //
8567 /* 7356 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule154Enabled),
8568 /* 7359 */ // MIs[0] dst
8569 /* 7359 */ // No operand predicates
8570 /* 7359 */ // MIs[0] src
8571 /* 7359 */ // No operand predicates
8572 /* 7359 */ // Combiner Rule #154: trunc_shift
8573 /* 7359 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner60),
8574 /* 7362 */ // Label 333: @7362
8575 /* 7362 */ GIM_Try, /*On fail goto*//*Label 334*/ GIMT_Encode4(7373), // Rule ID 443 //
8576 /* 7367 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule311Enabled),
8577 /* 7370 */ // MIs[0] dst
8578 /* 7370 */ // No operand predicates
8579 /* 7370 */ // MIs[0] src
8580 /* 7370 */ // No operand predicates
8581 /* 7370 */ // Combiner Rule #311: trunc_ssats
8582 /* 7370 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
8583 /* 7373 */ // Label 334: @7373
8584 /* 7373 */ GIM_Try, /*On fail goto*//*Label 335*/ GIMT_Encode4(7384), // Rule ID 444 //
8585 /* 7378 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule312Enabled),
8586 /* 7381 */ // MIs[0] dst
8587 /* 7381 */ // No operand predicates
8588 /* 7381 */ // MIs[0] src
8589 /* 7381 */ // No operand predicates
8590 /* 7381 */ // Combiner Rule #312: trunc_ssatu
8591 /* 7381 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner124),
8592 /* 7384 */ // Label 335: @7384
8593 /* 7384 */ GIM_Try, /*On fail goto*//*Label 336*/ GIMT_Encode4(7395), // Rule ID 471 //
8594 /* 7389 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule333Enabled),
8595 /* 7392 */ // MIs[0] dst
8596 /* 7392 */ // No operand predicates
8597 /* 7392 */ // MIs[0] src
8598 /* 7392 */ // No operand predicates
8599 /* 7392 */ // Combiner Rule #333: clamp_i64_to_i16
8600 /* 7392 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
8601 /* 7395 */ // Label 336: @7395
8602 /* 7395 */ GIM_Reject,
8603 /* 7396 */ // Label 30: @7396
8604 /* 7396 */ GIM_Try, /*On fail goto*//*Label 337*/ GIMT_Encode4(7428), // Rule ID 446 //
8605 /* 7401 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule314Enabled),
8606 /* 7404 */ // MIs[0] dst
8607 /* 7404 */ // No operand predicates
8608 /* 7404 */ // MIs[0] src
8609 /* 7404 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8610 /* 7408 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPTOUI),
8611 /* 7412 */ // MIs[1] x
8612 /* 7412 */ // No operand predicates
8613 /* 7412 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner54),
8614 /* 7416 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8615 /* 7418 */ // Combiner Rule #314: truncusatu_to_fptouisat
8616 /* 7418 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FPTOUI_SAT),
8617 /* 7421 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8618 /* 7423 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
8619 /* 7427 */ GIR_EraseRootFromParent_Done,
8620 /* 7428 */ // Label 337: @7428
8621 /* 7428 */ GIM_Reject,
8622 /* 7429 */ // Label 31: @7429
8623 /* 7429 */ GIM_Try, /*On fail goto*//*Label 338*/ GIMT_Encode4(7450), // Rule ID 58 //
8624 /* 7434 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled),
8625 /* 7437 */ // MIs[0] root
8626 /* 7437 */ // No operand predicates
8627 /* 7437 */ // MIs[0] second
8628 /* 7437 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8629 /* 7441 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8630 /* 7445 */ // MIs[1] src
8631 /* 7445 */ // No operand predicates
8632 /* 7445 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8633 /* 7447 */ // Combiner Rule #54: sext_of_anyext
8634 /* 7447 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
8635 /* 7450 */ // Label 338: @7450
8636 /* 7450 */ GIM_Try, /*On fail goto*//*Label 339*/ GIMT_Encode4(7471), // Rule ID 57 //
8637 /* 7455 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
8638 /* 7458 */ // MIs[0] root
8639 /* 7458 */ // No operand predicates
8640 /* 7458 */ // MIs[0] second
8641 /* 7458 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8642 /* 7462 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
8643 /* 7466 */ // MIs[1] src
8644 /* 7466 */ // No operand predicates
8645 /* 7466 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8646 /* 7468 */ // Combiner Rule #53: sext_of_sext
8647 /* 7468 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
8648 /* 7471 */ // Label 339: @7471
8649 /* 7471 */ GIM_Try, /*On fail goto*//*Label 340*/ GIMT_Encode4(7492), // Rule ID 420 //
8650 /* 7476 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule288Enabled),
8651 /* 7479 */ // MIs[0] root
8652 /* 7479 */ // No operand predicates
8653 /* 7479 */ // MIs[0] src
8654 /* 7479 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8655 /* 7483 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
8656 /* 7487 */ // MIs[1] x
8657 /* 7487 */ // No operand predicates
8658 /* 7487 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8659 /* 7489 */ // Combiner Rule #288: sext_trunc
8660 /* 7489 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
8661 /* 7492 */ // Label 340: @7492
8662 /* 7492 */ GIM_Try, /*On fail goto*//*Label 341*/ GIMT_Encode4(7503), // Rule ID 313 //
8663 /* 7497 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
8664 /* 7500 */ // MIs[0] dst
8665 /* 7500 */ // No operand predicates
8666 /* 7500 */ // MIs[0] d.src
8667 /* 7500 */ // No operand predicates
8668 /* 7500 */ // Combiner Rule #213: constant_fold_cast_op @ [d[1]]
8669 /* 7500 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
8670 /* 7503 */ // Label 341: @7503
8671 /* 7503 */ GIM_Reject,
8672 /* 7504 */ // Label 32: @7504
8673 /* 7504 */ GIM_Try, /*On fail goto*//*Label 342*/ GIMT_Encode4(7525), // Rule ID 62 //
8674 /* 7509 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled),
8675 /* 7512 */ // MIs[0] dst
8676 /* 7512 */ // No operand predicates
8677 /* 7512 */ // MIs[0] x
8678 /* 7512 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8679 /* 7516 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
8680 /* 7520 */ // MIs[1] src
8681 /* 7520 */ // No operand predicates
8682 /* 7520 */ // MIs[1] a
8683 /* 7520 */ // No operand predicates
8684 /* 7520 */ // MIs[0] b
8685 /* 7520 */ // No operand predicates
8686 /* 7520 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8687 /* 7522 */ // Combiner Rule #58: sext_inreg_of_sext_inreg
8688 /* 7522 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
8689 /* 7525 */ // Label 342: @7525
8690 /* 7525 */ GIM_Try, /*On fail goto*//*Label 343*/ GIMT_Encode4(7565), // Rule ID 198 //
8691 /* 7530 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
8692 /* 7533 */ // MIs[0] dst
8693 /* 7533 */ // No operand predicates
8694 /* 7533 */ // MIs[0] tmp4
8695 /* 7533 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8696 /* 7537 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8697 /* 7541 */ // MIs[1] tmp2
8698 /* 7541 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8699 /* 7545 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
8700 /* 7549 */ GIM_CheckNumOperands, /*MI*/2, /*Expected*/3,
8701 /* 7552 */ // MIs[2] tmp3
8702 /* 7552 */ // No operand predicates
8703 /* 7552 */ // MIs[2] tmp1
8704 /* 7552 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
8705 /* 7556 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8706 /* 7560 */ // MIs[3] src
8707 /* 7560 */ // No operand predicates
8708 /* 7560 */ // MIs[0] amt
8709 /* 7560 */ // No operand predicates
8710 /* 7560 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
8711 /* 7562 */ // Combiner Rule #148: redundant_aext_unmerge_sext_inreg
8712 /* 7562 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
8713 /* 7565 */ // Label 343: @7565
8714 /* 7565 */ GIM_Try, /*On fail goto*//*Label 344*/ GIMT_Encode4(7597), // Rule ID 196 //
8715 /* 7570 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
8716 /* 7573 */ // MIs[0] dst
8717 /* 7573 */ // No operand predicates
8718 /* 7573 */ // MIs[0] tmp
8719 /* 7573 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8720 /* 7577 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8721 /* 7581 */ // MIs[1] src
8722 /* 7581 */ // No operand predicates
8723 /* 7581 */ // MIs[0] amt
8724 /* 7581 */ // No operand predicates
8725 /* 7581 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner29),
8726 /* 7585 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8727 /* 7587 */ // Combiner Rule #146: redundant_aext_sext_inreg
8728 /* 7587 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
8729 /* 7590 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8730 /* 7592 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
8731 /* 7596 */ GIR_EraseRootFromParent_Done,
8732 /* 7597 */ // Label 344: @7597
8733 /* 7597 */ GIM_Try, /*On fail goto*//*Label 345*/ GIMT_Encode4(7637), // Rule ID 197 //
8734 /* 7602 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
8735 /* 7605 */ // MIs[0] dst
8736 /* 7605 */ // No operand predicates
8737 /* 7605 */ // MIs[0] tmp4
8738 /* 7605 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8739 /* 7609 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
8740 /* 7613 */ // MIs[1] tmp2
8741 /* 7613 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8742 /* 7617 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
8743 /* 7621 */ GIM_CheckNumOperands, /*MI*/2, /*Expected*/3,
8744 /* 7624 */ // MIs[2] tmp3
8745 /* 7624 */ // No operand predicates
8746 /* 7624 */ // MIs[2] tmp1
8747 /* 7624 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
8748 /* 7628 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ZEXT),
8749 /* 7632 */ // MIs[3] src
8750 /* 7632 */ // No operand predicates
8751 /* 7632 */ // MIs[0] amt
8752 /* 7632 */ // No operand predicates
8753 /* 7632 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
8754 /* 7634 */ // Combiner Rule #147: redundant_zext_unmerge_sext_inreg
8755 /* 7634 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
8756 /* 7637 */ // Label 345: @7637
8757 /* 7637 */ GIM_Try, /*On fail goto*//*Label 346*/ GIMT_Encode4(7669), // Rule ID 195 //
8758 /* 7642 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
8759 /* 7645 */ // MIs[0] dst
8760 /* 7645 */ // No operand predicates
8761 /* 7645 */ // MIs[0] tmp
8762 /* 7645 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8763 /* 7649 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
8764 /* 7653 */ // MIs[1] src
8765 /* 7653 */ // No operand predicates
8766 /* 7653 */ // MIs[0] amt
8767 /* 7653 */ // No operand predicates
8768 /* 7653 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner29),
8769 /* 7657 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8770 /* 7659 */ // Combiner Rule #145: redundant_zext_sext_inreg
8771 /* 7659 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
8772 /* 7662 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
8773 /* 7664 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
8774 /* 7668 */ GIR_EraseRootFromParent_Done,
8775 /* 7669 */ // Label 346: @7669
8776 /* 7669 */ GIM_Try, /*On fail goto*//*Label 347*/ GIMT_Encode4(7692), // Rule ID 194 //
8777 /* 7674 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule144Enabled),
8778 /* 7677 */ // MIs[0] dst
8779 /* 7677 */ // No operand predicates
8780 /* 7677 */ // MIs[0] src
8781 /* 7677 */ // No operand predicates
8782 /* 7677 */ // MIs[0] sz
8783 /* 7677 */ // No operand predicates
8784 /* 7677 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner28),
8785 /* 7681 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8786 /* 7686 */ // Combiner Rule #144: redundant_sext_inreg
8787 /* 7686 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
8788 /* 7691 */ GIR_EraseRootFromParent_Done,
8789 /* 7692 */ // Label 347: @7692
8790 /* 7692 */ GIM_Try, /*On fail goto*//*Label 348*/ GIMT_Encode4(7703), // Rule ID 182 //
8791 /* 7697 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule132Enabled),
8792 /* 7700 */ // MIs[0] dst
8793 /* 7700 */ // No operand predicates
8794 /* 7700 */ // MIs[0] src
8795 /* 7700 */ // No operand predicates
8796 /* 7700 */ // MIs[0] sz
8797 /* 7700 */ // No operand predicates
8798 /* 7700 */ // Combiner Rule #132: sext_inreg_of_load
8799 /* 7700 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner49),
8800 /* 7703 */ // Label 348: @7703
8801 /* 7703 */ GIM_Try, /*On fail goto*//*Label 349*/ GIMT_Encode4(7714), // Rule ID 203 //
8802 /* 7708 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
8803 /* 7711 */ // MIs[0] dst
8804 /* 7711 */ // No operand predicates
8805 /* 7711 */ // MIs[0] src
8806 /* 7711 */ // No operand predicates
8807 /* 7711 */ // MIs[0] imm
8808 /* 7711 */ // No operand predicates
8809 /* 7711 */ // Combiner Rule #153: sext_inreg_to_zext_inreg
8810 /* 7711 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner59),
8811 /* 7714 */ // Label 349: @7714
8812 /* 7714 */ GIM_Try, /*On fail goto*//*Label 350*/ GIMT_Encode4(7725), // Rule ID 274 //
8813 /* 7719 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
8814 /* 7722 */ // MIs[0] dst
8815 /* 7722 */ // No operand predicates
8816 /* 7722 */ // MIs[0] src
8817 /* 7722 */ // No operand predicates
8818 /* 7722 */ // MIs[0] sz
8819 /* 7722 */ // No operand predicates
8820 /* 7722 */ // Combiner Rule #206: bitfield_extract_from_sext_inreg
8821 /* 7722 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner75),
8822 /* 7725 */ // Label 350: @7725
8823 /* 7725 */ GIM_Reject,
8824 /* 7726 */ // Label 33: @7726
8825 /* 7726 */ GIM_Try, /*On fail goto*//*Label 351*/ GIMT_Encode4(7747), // Rule ID 63 //
8826 /* 7731 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled),
8827 /* 7734 */ // MIs[0] root
8828 /* 7734 */ // No operand predicates
8829 /* 7734 */ // MIs[0] select
8830 /* 7734 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8831 /* 7738 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
8832 /* 7742 */ // MIs[1] cond
8833 /* 7742 */ // No operand predicates
8834 /* 7742 */ // MIs[1] true
8835 /* 7742 */ // No operand predicates
8836 /* 7742 */ // MIs[1] false
8837 /* 7742 */ // No operand predicates
8838 /* 7742 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8839 /* 7744 */ // Combiner Rule #59: select_of_zext
8840 /* 7744 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
8841 /* 7747 */ // Label 351: @7747
8842 /* 7747 */ GIM_Try, /*On fail goto*//*Label 352*/ GIMT_Encode4(7768), // Rule ID 56 //
8843 /* 7752 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
8844 /* 7755 */ // MIs[0] root
8845 /* 7755 */ // No operand predicates
8846 /* 7755 */ // MIs[0] second
8847 /* 7755 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8848 /* 7759 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
8849 /* 7763 */ // MIs[1] src
8850 /* 7763 */ // No operand predicates
8851 /* 7763 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8852 /* 7765 */ // Combiner Rule #52: zext_of_anyext
8853 /* 7765 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
8854 /* 7768 */ // Label 352: @7768
8855 /* 7768 */ GIM_Try, /*On fail goto*//*Label 353*/ GIMT_Encode4(7795), // Rule ID 421 //
8856 /* 7773 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule289Enabled),
8857 /* 7776 */ // MIs[0] root
8858 /* 7776 */ // No operand predicates
8859 /* 7776 */ // MIs[0] src
8860 /* 7776 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8861 /* 7780 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
8862 /* 7784 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::NoUWrap),
8863 /* 7790 */ // MIs[1] x
8864 /* 7790 */ // No operand predicates
8865 /* 7790 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8866 /* 7792 */ // Combiner Rule #289: zext_trunc
8867 /* 7792 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
8868 /* 7795 */ // Label 353: @7795
8869 /* 7795 */ GIM_Try, /*On fail goto*//*Label 354*/ GIMT_Encode4(7816), // Rule ID 55 //
8870 /* 7800 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled),
8871 /* 7803 */ // MIs[0] root
8872 /* 7803 */ // No operand predicates
8873 /* 7803 */ // MIs[0] second
8874 /* 7803 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8875 /* 7807 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
8876 /* 7811 */ // MIs[1] src
8877 /* 7811 */ // No operand predicates
8878 /* 7811 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8879 /* 7813 */ // Combiner Rule #51: zext_of_zext
8880 /* 7813 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
8881 /* 7816 */ // Label 354: @7816
8882 /* 7816 */ GIM_Try, /*On fail goto*//*Label 355*/ GIMT_Encode4(7833), // Rule ID 422 //
8883 /* 7821 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule290Enabled),
8884 /* 7824 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NonNeg),
8885 /* 7830 */ // MIs[0] root
8886 /* 7830 */ // No operand predicates
8887 /* 7830 */ // MIs[0] x
8888 /* 7830 */ // No operand predicates
8889 /* 7830 */ // Combiner Rule #290: nneg_zext
8890 /* 7830 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
8891 /* 7833 */ // Label 355: @7833
8892 /* 7833 */ GIM_Try, /*On fail goto*//*Label 356*/ GIMT_Encode4(7844), // Rule ID 202 //
8893 /* 7838 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
8894 /* 7841 */ // MIs[0] dst
8895 /* 7841 */ // No operand predicates
8896 /* 7841 */ // MIs[0] src
8897 /* 7841 */ // No operand predicates
8898 /* 7841 */ // Combiner Rule #152: zext_trunc_fold
8899 /* 7841 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner58),
8900 /* 7844 */ // Label 356: @7844
8901 /* 7844 */ GIM_Try, /*On fail goto*//*Label 357*/ GIMT_Encode4(7855), // Rule ID 312 //
8902 /* 7849 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
8903 /* 7852 */ // MIs[0] dst
8904 /* 7852 */ // No operand predicates
8905 /* 7852 */ // MIs[0] d.src
8906 /* 7852 */ // No operand predicates
8907 /* 7852 */ // Combiner Rule #213: constant_fold_cast_op @ [d[0]]
8908 /* 7852 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
8909 /* 7855 */ // Label 357: @7855
8910 /* 7855 */ GIM_Reject,
8911 /* 7856 */ // Label 34: @7856
8912 /* 7856 */ GIM_Try, /*On fail goto*//*Label 358*/ GIMT_Encode4(7934), // Rule ID 272 //
8913 /* 7861 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
8914 /* 7864 */ // MIs[0] dst
8915 /* 7864 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
8916 /* 7868 */ // MIs[0] binop_dst
8917 /* 7868 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8918 /* 7872 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
8919 /* 7876 */ // MIs[1] x
8920 /* 7876 */ // No operand predicates
8921 /* 7876 */ // MIs[1] c1
8922 /* 7876 */ // No operand predicates
8923 /* 7876 */ // MIs[0] c2
8924 /* 7876 */ // No operand predicates
8925 /* 7876 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner40),
8926 /* 7880 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8927 /* 7882 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
8928 /* 7885 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
8929 /* 7888 */ // Combiner Rule #204: commute_shift_add
8930 /* 7888 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
8931 /* 7891 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8932 /* 7896 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
8933 /* 7900 */ GIR_RootToRootCopy, /*OpIdx*/2, // c2
8934 /* 7902 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
8935 /* 7906 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8936 /* 7911 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/2, // c1
8937 /* 7915 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // c2
8938 /* 7919 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
8939 /* 7923 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
8940 /* 7927 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
8941 /* 7930 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
8942 /* 7933 */ GIR_EraseRootFromParent_Done,
8943 /* 7934 */ // Label 358: @7934
8944 /* 7934 */ GIM_Try, /*On fail goto*//*Label 359*/ GIMT_Encode4(8012), // Rule ID 273 //
8945 /* 7939 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule205Enabled),
8946 /* 7942 */ // MIs[0] dst
8947 /* 7942 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
8948 /* 7946 */ // MIs[0] binop_dst
8949 /* 7946 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8950 /* 7950 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
8951 /* 7954 */ // MIs[1] x
8952 /* 7954 */ // No operand predicates
8953 /* 7954 */ // MIs[1] c1
8954 /* 7954 */ // No operand predicates
8955 /* 7954 */ // MIs[0] c2
8956 /* 7954 */ // No operand predicates
8957 /* 7954 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner40),
8958 /* 7958 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8959 /* 7960 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
8960 /* 7963 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
8961 /* 7966 */ // Combiner Rule #205: commute_shift_or
8962 /* 7966 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
8963 /* 7969 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8964 /* 7974 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
8965 /* 7978 */ GIR_RootToRootCopy, /*OpIdx*/2, // c2
8966 /* 7980 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
8967 /* 7984 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
8968 /* 7989 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/2, // c1
8969 /* 7993 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // c2
8970 /* 7997 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
8971 /* 8001 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
8972 /* 8005 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
8973 /* 8008 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
8974 /* 8011 */ GIR_EraseRootFromParent_Done,
8975 /* 8012 */ // Label 359: @8012
8976 /* 8012 */ GIM_Try, /*On fail goto*//*Label 360*/ GIMT_Encode4(8047), // Rule ID 48 //
8977 /* 8017 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
8978 /* 8020 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
8979 /* 8026 */ // MIs[0] root
8980 /* 8026 */ // No operand predicates
8981 /* 8026 */ // MIs[0] left
8982 /* 8026 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8983 /* 8030 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
8984 /* 8034 */ // MIs[1] imm
8985 /* 8034 */ // No operand predicates
8986 /* 8034 */ // MIs[0] x
8987 /* 8034 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
8988 /* 8038 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8989 /* 8042 */ // MIs[2] imm1
8990 /* 8042 */ // No operand predicates
8991 /* 8042 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8992 /* 8044 */ // Combiner Rule #44: shl_of_vscale
8993 /* 8044 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
8994 /* 8047 */ // Label 360: @8047
8995 /* 8047 */ GIM_Try, /*On fail goto*//*Label 361*/ GIMT_Encode4(8068), // Rule ID 90 //
8996 /* 8052 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
8997 /* 8055 */ // MIs[0] dst
8998 /* 8055 */ // No operand predicates
8999 /* 8055 */ // MIs[0] __binop_left_undef_to_zero_match_0.x
9000 /* 8055 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9001 /* 8059 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9002 /* 8063 */ // MIs[0] __binop_left_undef_to_zero_match_0.y
9003 /* 8063 */ // No operand predicates
9004 /* 8063 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9005 /* 8065 */ // Combiner Rule #79: binop_left_undef_to_zero @ [__binop_left_undef_to_zero_match_0[0]]
9006 /* 8065 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
9007 /* 8068 */ // Label 361: @8068
9008 /* 8068 */ GIM_Try, /*On fail goto*//*Label 362*/ GIMT_Encode4(8092), // Rule ID 93 //
9009 /* 8073 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
9010 /* 8076 */ // MIs[0] dst
9011 /* 8076 */ // No operand predicates
9012 /* 8076 */ // MIs[0] __binop_right_undef_to_undef_match_0.x
9013 /* 8076 */ // No operand predicates
9014 /* 8076 */ // MIs[0] __binop_right_undef_to_undef_match_0.y
9015 /* 8076 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9016 /* 8080 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9017 /* 8084 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9018 /* 8086 */ // Combiner Rule #80: binop_right_undef_to_undef @ [__binop_right_undef_to_undef_match_0[0]]
9019 /* 8086 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9020 /* 8089 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9021 /* 8091 */ GIR_EraseRootFromParent_Done,
9022 /* 8092 */ // Label 362: @8092
9023 /* 8092 */ GIM_Try, /*On fail goto*//*Label 363*/ GIMT_Encode4(8115), // Rule ID 122 //
9024 /* 8097 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
9025 /* 8100 */ // MIs[0] dst
9026 /* 8100 */ // No operand predicates
9027 /* 8100 */ // MIs[0] lhs
9028 /* 8100 */ // No operand predicates
9029 /* 8100 */ // MIs[0] Operand 2
9030 /* 8100 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
9031 /* 8104 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9032 /* 8109 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[4]]
9033 /* 8109 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9034 /* 8114 */ GIR_EraseRootFromParent_Done,
9035 /* 8115 */ // Label 363: @8115
9036 /* 8115 */ GIM_Try, /*On fail goto*//*Label 364*/ GIMT_Encode4(8138), // Rule ID 132 //
9037 /* 8120 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
9038 /* 8123 */ // MIs[0] dst
9039 /* 8123 */ // No operand predicates
9040 /* 8123 */ // MIs[0] zero
9041 /* 8123 */ // No operand predicates
9042 /* 8123 */ // MIs[0] rhs
9043 /* 8123 */ // No operand predicates
9044 /* 8123 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
9045 /* 8127 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9046 /* 8132 */ // Combiner Rule #95: binop_left_to_zero @ [__binop_left_to_zero_match_0[0]]
9047 /* 8132 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9048 /* 8137 */ GIR_EraseRootFromParent_Done,
9049 /* 8138 */ // Label 364: @8138
9050 /* 8138 */ GIM_Try, /*On fail goto*//*Label 365*/ GIMT_Encode4(8149), // Rule ID 167 //
9051 /* 8143 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
9052 /* 8146 */ // MIs[0] root
9053 /* 8146 */ // No operand predicates
9054 /* 8146 */ // MIs[0] mi.shifted
9055 /* 8146 */ // No operand predicates
9056 /* 8146 */ // MIs[0] mi.amt
9057 /* 8146 */ // No operand predicates
9058 /* 8146 */ // Combiner Rule #119: shifts_too_big @ [mi[0]]
9059 /* 8146 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
9060 /* 8149 */ // Label 365: @8149
9061 /* 8149 */ GIM_Try, /*On fail goto*//*Label 366*/ GIMT_Encode4(8160), // Rule ID 183 //
9062 /* 8154 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule133Enabled),
9063 /* 8157 */ // MIs[0] dst
9064 /* 8157 */ // No operand predicates
9065 /* 8157 */ // MIs[0] src0
9066 /* 8157 */ // No operand predicates
9067 /* 8157 */ // MIs[0] src1
9068 /* 8157 */ // No operand predicates
9069 /* 8157 */ // Combiner Rule #133: reduce_shl_of_extend
9070 /* 8157 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner50),
9071 /* 8160 */ // Label 366: @8160
9072 /* 8160 */ GIM_Try, /*On fail goto*//*Label 367*/ GIMT_Encode4(8171), // Rule ID 244 //
9073 /* 8165 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
9074 /* 8168 */ // MIs[0] d
9075 /* 8168 */ // No operand predicates
9076 /* 8168 */ // MIs[0] mi.base
9077 /* 8168 */ // No operand predicates
9078 /* 8168 */ // MIs[0] mi.amt
9079 /* 8168 */ // No operand predicates
9080 /* 8168 */ // Combiner Rule #190: shift_immed_chain @ [mi[0]]
9081 /* 8168 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
9082 /* 8171 */ // Label 367: @8171
9083 /* 8171 */ GIM_Try, /*On fail goto*//*Label 368*/ GIMT_Encode4(8182), // Rule ID 249 //
9084 /* 8176 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9085 /* 8179 */ // MIs[0] d
9086 /* 8179 */ // No operand predicates
9087 /* 8179 */ // MIs[0] mi.base
9088 /* 8179 */ // No operand predicates
9089 /* 8179 */ // MIs[0] mi.amt
9090 /* 8179 */ // No operand predicates
9091 /* 8179 */ // Combiner Rule #191: shift_of_shifted_logic_chain @ [mi[0]]
9092 /* 8179 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
9093 /* 8182 */ // Label 368: @8182
9094 /* 8182 */ GIM_Try, /*On fail goto*//*Label 369*/ GIMT_Encode4(8193), // Rule ID 287 //
9095 /* 8187 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
9096 /* 8190 */ // MIs[0] d
9097 /* 8190 */ // No operand predicates
9098 /* 8190 */ // MIs[0] mi.src0
9099 /* 8190 */ // No operand predicates
9100 /* 8190 */ // MIs[0] mi.src1
9101 /* 8190 */ // No operand predicates
9102 /* 8190 */ // Combiner Rule #210: constant_fold_binop @ [mi[7]]
9103 /* 8190 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
9104 /* 8193 */ // Label 369: @8193
9105 /* 8193 */ GIM_Try, /*On fail goto*//*Label 370*/ GIMT_Encode4(8204), // Rule ID 353 //
9106 /* 8198 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
9107 /* 8201 */ // MIs[0] root
9108 /* 8201 */ // No operand predicates
9109 /* 8201 */ // MIs[0] mi.x
9110 /* 8201 */ // No operand predicates
9111 /* 8201 */ // MIs[0] mi.y
9112 /* 8201 */ // No operand predicates
9113 /* 8201 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[12]]
9114 /* 8201 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
9115 /* 8204 */ // Label 370: @8204
9116 /* 8204 */ GIM_Reject,
9117 /* 8205 */ // Label 35: @8205
9118 /* 8205 */ GIM_Try, /*On fail goto*//*Label 371*/ GIMT_Encode4(8294), // Rule ID 464 //
9119 /* 8210 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule329Enabled),
9120 /* 8213 */ // MIs[0] dst
9121 /* 8213 */ // No operand predicates
9122 /* 8213 */ // MIs[0] sum
9123 /* 8213 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9124 /* 8217 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
9125 /* 8221 */ // MIs[1] inner
9126 /* 8221 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
9127 /* 8225 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
9128 /* 8229 */ // MIs[2] ext1
9129 /* 8229 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
9130 /* 8233 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ZEXT),
9131 /* 8237 */ // MIs[3] x
9132 /* 8237 */ GIM_RecordRegType, /*MI*/3, /*Op*/1, /*TempTypeIdx*/255,
9133 /* 8241 */ // MIs[2] ext2
9134 /* 8241 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/4, /*MI*/2, /*OpIdx*/2, // MIs[4]
9135 /* 8245 */ GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_ZEXT),
9136 /* 8249 */ // MIs[4] y
9137 /* 8249 */ // No operand predicates
9138 /* 8249 */ // MIs[1] Operand 2
9139 /* 8249 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
9140 /* 8253 */ // MIs[0] Operand 2
9141 /* 8253 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
9142 /* 8257 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner62),
9143 /* 8261 */ GIM_CheckIsSafeToFold, /*NumInsns*/4,
9144 /* 8263 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
9145 /* 8266 */ // Combiner Rule #329: avgceil_u_match
9146 /* 8266 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UAVGCEIL),
9147 /* 8269 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
9148 /* 8274 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // x
9149 /* 8278 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // y
9150 /* 8282 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ZEXT),
9151 /* 8286 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
9152 /* 8290 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9153 /* 8293 */ GIR_EraseRootFromParent_Done,
9154 /* 8294 */ // Label 371: @8294
9155 /* 8294 */ GIM_Try, /*On fail goto*//*Label 372*/ GIMT_Encode4(8371), // Rule ID 462 //
9156 /* 8299 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule327Enabled),
9157 /* 8302 */ // MIs[0] dst
9158 /* 8302 */ // No operand predicates
9159 /* 8302 */ // MIs[0] sum
9160 /* 8302 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9161 /* 8306 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
9162 /* 8310 */ // MIs[1] ext1
9163 /* 8310 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
9164 /* 8314 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ZEXT),
9165 /* 8318 */ // MIs[2] x
9166 /* 8318 */ GIM_RecordRegType, /*MI*/2, /*Op*/1, /*TempTypeIdx*/255,
9167 /* 8322 */ // MIs[1] ext2
9168 /* 8322 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
9169 /* 8326 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_ZEXT),
9170 /* 8330 */ // MIs[3] y
9171 /* 8330 */ // No operand predicates
9172 /* 8330 */ // MIs[0] Operand 2
9173 /* 8330 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
9174 /* 8334 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner60),
9175 /* 8338 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
9176 /* 8340 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
9177 /* 8343 */ // Combiner Rule #327: avgfloor_u_match
9178 /* 8343 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UAVGFLOOR),
9179 /* 8346 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
9180 /* 8351 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // x
9181 /* 8355 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // y
9182 /* 8359 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ZEXT),
9183 /* 8363 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
9184 /* 8367 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9185 /* 8370 */ GIR_EraseRootFromParent_Done,
9186 /* 8371 */ // Label 372: @8371
9187 /* 8371 */ GIM_Try, /*On fail goto*//*Label 373*/ GIMT_Encode4(8400), // Rule ID 447 //
9188 /* 8376 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule315Enabled),
9189 /* 8379 */ // MIs[0] dst
9190 /* 8379 */ // No operand predicates
9191 /* 8379 */ // MIs[0] d2
9192 /* 8379 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9193 /* 8383 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
9194 /* 8387 */ // MIs[1] d1
9195 /* 8387 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
9196 /* 8391 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
9197 /* 8395 */ // MIs[2] x
9198 /* 8395 */ // No operand predicates
9199 /* 8395 */ // MIs[2] y
9200 /* 8395 */ // No operand predicates
9201 /* 8395 */ // MIs[0] z
9202 /* 8395 */ // No operand predicates
9203 /* 8395 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
9204 /* 8397 */ // Combiner Rule #315: lshr_of_trunc_of_lshr
9205 /* 8397 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner125),
9206 /* 8400 */ // Label 373: @8400
9207 /* 8400 */ GIM_Try, /*On fail goto*//*Label 374*/ GIMT_Encode4(8424), // Rule ID 95 //
9208 /* 8405 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
9209 /* 8408 */ // MIs[0] dst
9210 /* 8408 */ // No operand predicates
9211 /* 8408 */ // MIs[0] __binop_right_undef_to_undef_match_0.x
9212 /* 8408 */ // No operand predicates
9213 /* 8408 */ // MIs[0] __binop_right_undef_to_undef_match_0.y
9214 /* 8408 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9215 /* 8412 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9216 /* 8416 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9217 /* 8418 */ // Combiner Rule #80: binop_right_undef_to_undef @ [__binop_right_undef_to_undef_match_0[2]]
9218 /* 8418 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9219 /* 8421 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9220 /* 8423 */ GIR_EraseRootFromParent_Done,
9221 /* 8424 */ // Label 374: @8424
9222 /* 8424 */ GIM_Try, /*On fail goto*//*Label 375*/ GIMT_Encode4(8447), // Rule ID 124 //
9223 /* 8429 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
9224 /* 8432 */ // MIs[0] dst
9225 /* 8432 */ // No operand predicates
9226 /* 8432 */ // MIs[0] lhs
9227 /* 8432 */ // No operand predicates
9228 /* 8432 */ // MIs[0] Operand 2
9229 /* 8432 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
9230 /* 8436 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9231 /* 8441 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[6]]
9232 /* 8441 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9233 /* 8446 */ GIR_EraseRootFromParent_Done,
9234 /* 8447 */ // Label 375: @8447
9235 /* 8447 */ GIM_Try, /*On fail goto*//*Label 376*/ GIMT_Encode4(8470), // Rule ID 133 //
9236 /* 8452 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
9237 /* 8455 */ // MIs[0] dst
9238 /* 8455 */ // No operand predicates
9239 /* 8455 */ // MIs[0] zero
9240 /* 8455 */ // No operand predicates
9241 /* 8455 */ // MIs[0] rhs
9242 /* 8455 */ // No operand predicates
9243 /* 8455 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
9244 /* 8459 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9245 /* 8464 */ // Combiner Rule #95: binop_left_to_zero @ [__binop_left_to_zero_match_0[1]]
9246 /* 8464 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9247 /* 8469 */ GIR_EraseRootFromParent_Done,
9248 /* 8470 */ // Label 376: @8470
9249 /* 8470 */ GIM_Try, /*On fail goto*//*Label 377*/ GIMT_Encode4(8481), // Rule ID 169 //
9250 /* 8475 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
9251 /* 8478 */ // MIs[0] root
9252 /* 8478 */ // No operand predicates
9253 /* 8478 */ // MIs[0] mi.shifted
9254 /* 8478 */ // No operand predicates
9255 /* 8478 */ // MIs[0] mi.amt
9256 /* 8478 */ // No operand predicates
9257 /* 8478 */ // Combiner Rule #119: shifts_too_big @ [mi[2]]
9258 /* 8478 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
9259 /* 8481 */ // Label 377: @8481
9260 /* 8481 */ GIM_Try, /*On fail goto*//*Label 378*/ GIMT_Encode4(8492), // Rule ID 246 //
9261 /* 8486 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
9262 /* 8489 */ // MIs[0] d
9263 /* 8489 */ // No operand predicates
9264 /* 8489 */ // MIs[0] mi.base
9265 /* 8489 */ // No operand predicates
9266 /* 8489 */ // MIs[0] mi.amt
9267 /* 8489 */ // No operand predicates
9268 /* 8489 */ // Combiner Rule #190: shift_immed_chain @ [mi[2]]
9269 /* 8489 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
9270 /* 8492 */ // Label 378: @8492
9271 /* 8492 */ GIM_Try, /*On fail goto*//*Label 379*/ GIMT_Encode4(8503), // Rule ID 251 //
9272 /* 8497 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9273 /* 8500 */ // MIs[0] d
9274 /* 8500 */ // No operand predicates
9275 /* 8500 */ // MIs[0] mi.base
9276 /* 8500 */ // No operand predicates
9277 /* 8500 */ // MIs[0] mi.amt
9278 /* 8500 */ // No operand predicates
9279 /* 8500 */ // Combiner Rule #191: shift_of_shifted_logic_chain @ [mi[2]]
9280 /* 8500 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
9281 /* 8503 */ // Label 379: @8503
9282 /* 8503 */ GIM_Try, /*On fail goto*//*Label 380*/ GIMT_Encode4(8514), // Rule ID 277 //
9283 /* 8508 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
9284 /* 8511 */ // MIs[0] dst
9285 /* 8511 */ // No operand predicates
9286 /* 8511 */ // MIs[0] root.src
9287 /* 8511 */ // No operand predicates
9288 /* 8511 */ // MIs[0] root.amt
9289 /* 8511 */ // No operand predicates
9290 /* 8511 */ // Combiner Rule #208: bitfield_extract_from_shr @ [root[1]]
9291 /* 8511 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
9292 /* 8514 */ // Label 380: @8514
9293 /* 8514 */ GIM_Try, /*On fail goto*//*Label 381*/ GIMT_Encode4(8525), // Rule ID 279 //
9294 /* 8519 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
9295 /* 8522 */ // MIs[0] dst
9296 /* 8522 */ // No operand predicates
9297 /* 8522 */ // MIs[0] root.src
9298 /* 8522 */ // No operand predicates
9299 /* 8522 */ // MIs[0] root.amt
9300 /* 8522 */ // No operand predicates
9301 /* 8522 */ // Combiner Rule #209: bitfield_extract_from_shr_and @ [root[1]]
9302 /* 8522 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
9303 /* 8525 */ // Label 381: @8525
9304 /* 8525 */ GIM_Try, /*On fail goto*//*Label 382*/ GIMT_Encode4(8536), // Rule ID 284 //
9305 /* 8530 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
9306 /* 8533 */ // MIs[0] d
9307 /* 8533 */ // No operand predicates
9308 /* 8533 */ // MIs[0] mi.src0
9309 /* 8533 */ // No operand predicates
9310 /* 8533 */ // MIs[0] mi.src1
9311 /* 8533 */ // No operand predicates
9312 /* 8533 */ // Combiner Rule #210: constant_fold_binop @ [mi[4]]
9313 /* 8533 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
9314 /* 8536 */ // Label 382: @8536
9315 /* 8536 */ GIM_Try, /*On fail goto*//*Label 383*/ GIMT_Encode4(8547), // Rule ID 351 //
9316 /* 8541 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
9317 /* 8544 */ // MIs[0] root
9318 /* 8544 */ // No operand predicates
9319 /* 8544 */ // MIs[0] mi.x
9320 /* 8544 */ // No operand predicates
9321 /* 8544 */ // MIs[0] mi.y
9322 /* 8544 */ // No operand predicates
9323 /* 8544 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[10]]
9324 /* 8544 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
9325 /* 8547 */ // Label 383: @8547
9326 /* 8547 */ GIM_Reject,
9327 /* 8548 */ // Label 36: @8548
9328 /* 8548 */ GIM_Try, /*On fail goto*//*Label 384*/ GIMT_Encode4(8637), // Rule ID 465 //
9329 /* 8553 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule330Enabled),
9330 /* 8556 */ // MIs[0] dst
9331 /* 8556 */ // No operand predicates
9332 /* 8556 */ // MIs[0] sum
9333 /* 8556 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9334 /* 8560 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
9335 /* 8564 */ // MIs[1] inner
9336 /* 8564 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
9337 /* 8568 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
9338 /* 8572 */ // MIs[2] ext1
9339 /* 8572 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
9340 /* 8576 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_SEXT),
9341 /* 8580 */ // MIs[3] x
9342 /* 8580 */ GIM_RecordRegType, /*MI*/3, /*Op*/1, /*TempTypeIdx*/255,
9343 /* 8584 */ // MIs[2] ext2
9344 /* 8584 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/4, /*MI*/2, /*OpIdx*/2, // MIs[4]
9345 /* 8588 */ GIM_CheckOpcode, /*MI*/4, GIMT_Encode2(TargetOpcode::G_SEXT),
9346 /* 8592 */ // MIs[4] y
9347 /* 8592 */ // No operand predicates
9348 /* 8592 */ // MIs[1] Operand 2
9349 /* 8592 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
9350 /* 8596 */ // MIs[0] Operand 2
9351 /* 8596 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
9352 /* 8600 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner63),
9353 /* 8604 */ GIM_CheckIsSafeToFold, /*NumInsns*/4,
9354 /* 8606 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
9355 /* 8609 */ // Combiner Rule #330: avgceil_s_match
9356 /* 8609 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SAVGCEIL),
9357 /* 8612 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
9358 /* 8617 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // x
9359 /* 8621 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/4, /*OpIdx*/1, // y
9360 /* 8625 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
9361 /* 8629 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
9362 /* 8633 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9363 /* 8636 */ GIR_EraseRootFromParent_Done,
9364 /* 8637 */ // Label 384: @8637
9365 /* 8637 */ GIM_Try, /*On fail goto*//*Label 385*/ GIMT_Encode4(8714), // Rule ID 463 //
9366 /* 8642 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule328Enabled),
9367 /* 8645 */ // MIs[0] dst
9368 /* 8645 */ // No operand predicates
9369 /* 8645 */ // MIs[0] sum
9370 /* 8645 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9371 /* 8649 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
9372 /* 8653 */ // MIs[1] ext1
9373 /* 8653 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
9374 /* 8657 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SEXT),
9375 /* 8661 */ // MIs[2] x
9376 /* 8661 */ GIM_RecordRegType, /*MI*/2, /*Op*/1, /*TempTypeIdx*/255,
9377 /* 8665 */ // MIs[1] ext2
9378 /* 8665 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/1, /*OpIdx*/2, // MIs[3]
9379 /* 8669 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_SEXT),
9380 /* 8673 */ // MIs[3] y
9381 /* 8673 */ // No operand predicates
9382 /* 8673 */ // MIs[0] Operand 2
9383 /* 8673 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
9384 /* 8677 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner61),
9385 /* 8681 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
9386 /* 8683 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
9387 /* 8686 */ // Combiner Rule #328: avgfloor_s_match
9388 /* 8686 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SAVGFLOOR),
9389 /* 8689 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
9390 /* 8694 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // x
9391 /* 8698 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/3, /*OpIdx*/1, // y
9392 /* 8702 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT),
9393 /* 8706 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
9394 /* 8710 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9395 /* 8713 */ GIR_EraseRootFromParent_Done,
9396 /* 8714 */ // Label 385: @8714
9397 /* 8714 */ GIM_Try, /*On fail goto*//*Label 386*/ GIMT_Encode4(8738), // Rule ID 94 //
9398 /* 8719 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
9399 /* 8722 */ // MIs[0] dst
9400 /* 8722 */ // No operand predicates
9401 /* 8722 */ // MIs[0] __binop_right_undef_to_undef_match_0.x
9402 /* 8722 */ // No operand predicates
9403 /* 8722 */ // MIs[0] __binop_right_undef_to_undef_match_0.y
9404 /* 8722 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
9405 /* 8726 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9406 /* 8730 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9407 /* 8732 */ // Combiner Rule #80: binop_right_undef_to_undef @ [__binop_right_undef_to_undef_match_0[1]]
9408 /* 8732 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9409 /* 8735 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9410 /* 8737 */ GIR_EraseRootFromParent_Done,
9411 /* 8738 */ // Label 386: @8738
9412 /* 8738 */ GIM_Try, /*On fail goto*//*Label 387*/ GIMT_Encode4(8761), // Rule ID 123 //
9413 /* 8743 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
9414 /* 8746 */ // MIs[0] dst
9415 /* 8746 */ // No operand predicates
9416 /* 8746 */ // MIs[0] lhs
9417 /* 8746 */ // No operand predicates
9418 /* 8746 */ // MIs[0] Operand 2
9419 /* 8746 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
9420 /* 8750 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9421 /* 8755 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[5]]
9422 /* 8755 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9423 /* 8760 */ GIR_EraseRootFromParent_Done,
9424 /* 8761 */ // Label 387: @8761
9425 /* 8761 */ GIM_Try, /*On fail goto*//*Label 388*/ GIMT_Encode4(8784), // Rule ID 134 //
9426 /* 8766 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
9427 /* 8769 */ // MIs[0] dst
9428 /* 8769 */ // No operand predicates
9429 /* 8769 */ // MIs[0] zero
9430 /* 8769 */ // No operand predicates
9431 /* 8769 */ // MIs[0] rhs
9432 /* 8769 */ // No operand predicates
9433 /* 8769 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
9434 /* 8773 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9435 /* 8778 */ // Combiner Rule #95: binop_left_to_zero @ [__binop_left_to_zero_match_0[2]]
9436 /* 8778 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9437 /* 8783 */ GIR_EraseRootFromParent_Done,
9438 /* 8784 */ // Label 388: @8784
9439 /* 8784 */ GIM_Try, /*On fail goto*//*Label 389*/ GIMT_Encode4(8795), // Rule ID 168 //
9440 /* 8789 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
9441 /* 8792 */ // MIs[0] root
9442 /* 8792 */ // No operand predicates
9443 /* 8792 */ // MIs[0] mi.shifted
9444 /* 8792 */ // No operand predicates
9445 /* 8792 */ // MIs[0] mi.amt
9446 /* 8792 */ // No operand predicates
9447 /* 8792 */ // Combiner Rule #119: shifts_too_big @ [mi[1]]
9448 /* 8792 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
9449 /* 8795 */ // Label 389: @8795
9450 /* 8795 */ GIM_Try, /*On fail goto*//*Label 390*/ GIMT_Encode4(8806), // Rule ID 180 //
9451 /* 8800 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule130Enabled),
9452 /* 8803 */ // MIs[0] dst
9453 /* 8803 */ // No operand predicates
9454 /* 8803 */ // MIs[0] src1
9455 /* 8803 */ // No operand predicates
9456 /* 8803 */ // MIs[0] src2
9457 /* 8803 */ // No operand predicates
9458 /* 8803 */ // Combiner Rule #130: shl_ashr_to_sext_inreg
9459 /* 8803 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
9460 /* 8806 */ // Label 390: @8806
9461 /* 8806 */ GIM_Try, /*On fail goto*//*Label 391*/ GIMT_Encode4(8817), // Rule ID 245 //
9462 /* 8811 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
9463 /* 8814 */ // MIs[0] d
9464 /* 8814 */ // No operand predicates
9465 /* 8814 */ // MIs[0] mi.base
9466 /* 8814 */ // No operand predicates
9467 /* 8814 */ // MIs[0] mi.amt
9468 /* 8814 */ // No operand predicates
9469 /* 8814 */ // Combiner Rule #190: shift_immed_chain @ [mi[1]]
9470 /* 8814 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
9471 /* 8817 */ // Label 391: @8817
9472 /* 8817 */ GIM_Try, /*On fail goto*//*Label 392*/ GIMT_Encode4(8828), // Rule ID 250 //
9473 /* 8822 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
9474 /* 8825 */ // MIs[0] d
9475 /* 8825 */ // No operand predicates
9476 /* 8825 */ // MIs[0] mi.base
9477 /* 8825 */ // No operand predicates
9478 /* 8825 */ // MIs[0] mi.amt
9479 /* 8825 */ // No operand predicates
9480 /* 8825 */ // Combiner Rule #191: shift_of_shifted_logic_chain @ [mi[1]]
9481 /* 8825 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
9482 /* 8828 */ // Label 392: @8828
9483 /* 8828 */ GIM_Try, /*On fail goto*//*Label 393*/ GIMT_Encode4(8839), // Rule ID 276 //
9484 /* 8833 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
9485 /* 8836 */ // MIs[0] dst
9486 /* 8836 */ // No operand predicates
9487 /* 8836 */ // MIs[0] root.src
9488 /* 8836 */ // No operand predicates
9489 /* 8836 */ // MIs[0] root.amt
9490 /* 8836 */ // No operand predicates
9491 /* 8836 */ // Combiner Rule #208: bitfield_extract_from_shr @ [root[0]]
9492 /* 8836 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
9493 /* 8839 */ // Label 393: @8839
9494 /* 8839 */ GIM_Try, /*On fail goto*//*Label 394*/ GIMT_Encode4(8850), // Rule ID 278 //
9495 /* 8844 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
9496 /* 8847 */ // MIs[0] dst
9497 /* 8847 */ // No operand predicates
9498 /* 8847 */ // MIs[0] root.src
9499 /* 8847 */ // No operand predicates
9500 /* 8847 */ // MIs[0] root.amt
9501 /* 8847 */ // No operand predicates
9502 /* 8847 */ // Combiner Rule #209: bitfield_extract_from_shr_and @ [root[0]]
9503 /* 8847 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
9504 /* 8850 */ // Label 394: @8850
9505 /* 8850 */ GIM_Try, /*On fail goto*//*Label 395*/ GIMT_Encode4(8861), // Rule ID 283 //
9506 /* 8855 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
9507 /* 8858 */ // MIs[0] d
9508 /* 8858 */ // No operand predicates
9509 /* 8858 */ // MIs[0] mi.src0
9510 /* 8858 */ // No operand predicates
9511 /* 8858 */ // MIs[0] mi.src1
9512 /* 8858 */ // No operand predicates
9513 /* 8858 */ // Combiner Rule #210: constant_fold_binop @ [mi[3]]
9514 /* 8858 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
9515 /* 8861 */ // Label 395: @8861
9516 /* 8861 */ GIM_Try, /*On fail goto*//*Label 396*/ GIMT_Encode4(8872), // Rule ID 352 //
9517 /* 8866 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
9518 /* 8869 */ // MIs[0] root
9519 /* 8869 */ // No operand predicates
9520 /* 8869 */ // MIs[0] mi.x
9521 /* 8869 */ // No operand predicates
9522 /* 8869 */ // MIs[0] mi.y
9523 /* 8869 */ // No operand predicates
9524 /* 8869 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[11]]
9525 /* 8869 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
9526 /* 8872 */ // Label 396: @8872
9527 /* 8872 */ GIM_Reject,
9528 /* 8873 */ // Label 37: @8873
9529 /* 8873 */ GIM_Try, /*On fail goto*//*Label 397*/ GIMT_Encode4(8900), // Rule ID 260 //
9530 /* 8878 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
9531 /* 8881 */ // MIs[0] dst
9532 /* 8881 */ // No operand predicates
9533 /* 8881 */ // MIs[0] x
9534 /* 8881 */ // No operand predicates
9535 /* 8881 */ // MIs[0] x
9536 /* 8881 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
9537 /* 8886 */ // MIs[0] amt
9538 /* 8886 */ // No operand predicates
9539 /* 8886 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner36),
9540 /* 8890 */ // Combiner Rule #195: funnel_shift_to_rotate_left
9541 /* 8890 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ROTL),
9542 /* 8893 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9543 /* 8895 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
9544 /* 8897 */ GIR_RootToRootCopy, /*OpIdx*/3, // amt
9545 /* 8899 */ GIR_EraseRootFromParent_Done,
9546 /* 8900 */ // Label 397: @8900
9547 /* 8900 */ GIM_Try, /*On fail goto*//*Label 398*/ GIMT_Encode4(8920), // Rule ID 263 //
9548 /* 8905 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
9549 /* 8908 */ // MIs[0] x
9550 /* 8908 */ // No operand predicates
9551 /* 8908 */ // MIs[0] y
9552 /* 8908 */ // No operand predicates
9553 /* 8908 */ // MIs[0] z
9554 /* 8908 */ // No operand predicates
9555 /* 8908 */ // MIs[0] Operand 3
9556 /* 8908 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
9557 /* 8912 */ // Combiner Rule #198: funnel_shift_left_zero
9558 /* 8912 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9559 /* 8915 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
9560 /* 8917 */ GIR_RootToRootCopy, /*OpIdx*/1, // y
9561 /* 8919 */ GIR_EraseRootFromParent_Done,
9562 /* 8920 */ // Label 398: @8920
9563 /* 8920 */ GIM_Try, /*On fail goto*//*Label 399*/ GIMT_Encode4(8931), // Rule ID 264 //
9564 /* 8925 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule199Enabled),
9565 /* 8928 */ // MIs[0] dst
9566 /* 8928 */ // No operand predicates
9567 /* 8928 */ // MIs[0] root.x
9568 /* 8928 */ // No operand predicates
9569 /* 8928 */ // MIs[0] root.y
9570 /* 8928 */ // No operand predicates
9571 /* 8928 */ // MIs[0] root.amt
9572 /* 8928 */ // No operand predicates
9573 /* 8928 */ // Combiner Rule #199: funnel_shift_overshift @ [root[0]]
9574 /* 8928 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner74),
9575 /* 8931 */ // Label 399: @8931
9576 /* 8931 */ GIM_Reject,
9577 /* 8932 */ // Label 38: @8932
9578 /* 8932 */ GIM_Try, /*On fail goto*//*Label 400*/ GIMT_Encode4(8959), // Rule ID 261 //
9579 /* 8937 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule196Enabled),
9580 /* 8940 */ // MIs[0] dst
9581 /* 8940 */ // No operand predicates
9582 /* 8940 */ // MIs[0] x
9583 /* 8940 */ // No operand predicates
9584 /* 8940 */ // MIs[0] x
9585 /* 8940 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
9586 /* 8945 */ // MIs[0] amt
9587 /* 8945 */ // No operand predicates
9588 /* 8945 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner37),
9589 /* 8949 */ // Combiner Rule #196: funnel_shift_to_rotate_right
9590 /* 8949 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ROTR),
9591 /* 8952 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9592 /* 8954 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
9593 /* 8956 */ GIR_RootToRootCopy, /*OpIdx*/3, // amt
9594 /* 8958 */ GIR_EraseRootFromParent_Done,
9595 /* 8959 */ // Label 400: @8959
9596 /* 8959 */ GIM_Try, /*On fail goto*//*Label 401*/ GIMT_Encode4(8979), // Rule ID 262 //
9597 /* 8964 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
9598 /* 8967 */ // MIs[0] x
9599 /* 8967 */ // No operand predicates
9600 /* 8967 */ // MIs[0] y
9601 /* 8967 */ // No operand predicates
9602 /* 8967 */ // MIs[0] z
9603 /* 8967 */ // No operand predicates
9604 /* 8967 */ // MIs[0] Operand 3
9605 /* 8967 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
9606 /* 8971 */ // Combiner Rule #197: funnel_shift_right_zero
9607 /* 8971 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
9608 /* 8974 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
9609 /* 8976 */ GIR_RootToRootCopy, /*OpIdx*/2, // z
9610 /* 8978 */ GIR_EraseRootFromParent_Done,
9611 /* 8979 */ // Label 401: @8979
9612 /* 8979 */ GIM_Try, /*On fail goto*//*Label 402*/ GIMT_Encode4(8990), // Rule ID 265 //
9613 /* 8984 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule199Enabled),
9614 /* 8987 */ // MIs[0] dst
9615 /* 8987 */ // No operand predicates
9616 /* 8987 */ // MIs[0] root.x
9617 /* 8987 */ // No operand predicates
9618 /* 8987 */ // MIs[0] root.y
9619 /* 8987 */ // No operand predicates
9620 /* 8987 */ // MIs[0] root.amt
9621 /* 8987 */ // No operand predicates
9622 /* 8987 */ // Combiner Rule #199: funnel_shift_overshift @ [root[1]]
9623 /* 8987 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner74),
9624 /* 8990 */ // Label 402: @8990
9625 /* 8990 */ GIM_Reject,
9626 /* 8991 */ // Label 39: @8991
9627 /* 8991 */ GIM_Try, /*On fail goto*//*Label 403*/ GIMT_Encode4(9014), // Rule ID 127 //
9628 /* 8996 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
9629 /* 8999 */ // MIs[0] dst
9630 /* 8999 */ // No operand predicates
9631 /* 8999 */ // MIs[0] lhs
9632 /* 8999 */ // No operand predicates
9633 /* 8999 */ // MIs[0] Operand 2
9634 /* 8999 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
9635 /* 9003 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9636 /* 9008 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[9]]
9637 /* 9008 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9638 /* 9013 */ GIR_EraseRootFromParent_Done,
9639 /* 9014 */ // Label 403: @9014
9640 /* 9014 */ GIM_Reject,
9641 /* 9015 */ // Label 40: @9015
9642 /* 9015 */ GIM_Try, /*On fail goto*//*Label 404*/ GIMT_Encode4(9038), // Rule ID 126 //
9643 /* 9020 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
9644 /* 9023 */ // MIs[0] dst
9645 /* 9023 */ // No operand predicates
9646 /* 9023 */ // MIs[0] lhs
9647 /* 9023 */ // No operand predicates
9648 /* 9023 */ // MIs[0] Operand 2
9649 /* 9023 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
9650 /* 9027 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9651 /* 9032 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[8]]
9652 /* 9032 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
9653 /* 9037 */ GIR_EraseRootFromParent_Done,
9654 /* 9038 */ // Label 404: @9038
9655 /* 9038 */ GIM_Reject,
9656 /* 9039 */ // Label 41: @9039
9657 /* 9039 */ GIM_Try, /*On fail goto*//*Label 405*/ GIMT_Encode4(9050), // Rule ID 173 //
9658 /* 9044 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule123Enabled),
9659 /* 9047 */ // MIs[0] root
9660 /* 9047 */ // No operand predicates
9661 /* 9047 */ // MIs[0] pred
9662 /* 9047 */ // No operand predicates
9663 /* 9047 */ // MIs[0] lhs
9664 /* 9047 */ // No operand predicates
9665 /* 9047 */ // MIs[0] rhs
9666 /* 9047 */ // No operand predicates
9667 /* 9047 */ // Combiner Rule #123: canonicalize_icmp
9668 /* 9047 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
9669 /* 9050 */ // Label 405: @9050
9670 /* 9050 */ GIM_Try, /*On fail goto*//*Label 406*/ GIMT_Encode4(9061), // Rule ID 175 //
9671 /* 9055 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule125Enabled),
9672 /* 9058 */ // MIs[0] dst
9673 /* 9058 */ // No operand predicates
9674 /* 9058 */ // MIs[0] pred
9675 /* 9058 */ // No operand predicates
9676 /* 9058 */ // MIs[0] src1
9677 /* 9058 */ // No operand predicates
9678 /* 9058 */ // MIs[0] src2
9679 /* 9058 */ // No operand predicates
9680 /* 9058 */ // Combiner Rule #125: icmp_to_true_false_known_bits
9681 /* 9058 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
9682 /* 9061 */ // Label 406: @9061
9683 /* 9061 */ GIM_Try, /*On fail goto*//*Label 407*/ GIMT_Encode4(9072), // Rule ID 176 //
9684 /* 9066 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule126Enabled),
9685 /* 9069 */ // MIs[0] dst
9686 /* 9069 */ // No operand predicates
9687 /* 9069 */ // MIs[0] pred
9688 /* 9069 */ // No operand predicates
9689 /* 9069 */ // MIs[0] src1
9690 /* 9069 */ // No operand predicates
9691 /* 9069 */ // MIs[0] src2
9692 /* 9069 */ // No operand predicates
9693 /* 9069 */ // Combiner Rule #126: icmp_to_lhs_known_bits
9694 /* 9069 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46),
9695 /* 9072 */ // Label 407: @9072
9696 /* 9072 */ GIM_Try, /*On fail goto*//*Label 408*/ GIMT_Encode4(9083), // Rule ID 179 //
9697 /* 9077 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule129Enabled),
9698 /* 9080 */ // MIs[0] dst
9699 /* 9080 */ // No operand predicates
9700 /* 9080 */ // MIs[0] pred
9701 /* 9080 */ // No operand predicates
9702 /* 9080 */ // MIs[0] src1
9703 /* 9080 */ // No operand predicates
9704 /* 9080 */ // MIs[0] src2
9705 /* 9080 */ // No operand predicates
9706 /* 9080 */ // Combiner Rule #129: redundant_binop_in_equality
9707 /* 9080 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47),
9708 /* 9083 */ // Label 408: @9083
9709 /* 9083 */ GIM_Reject,
9710 /* 9084 */ // Label 42: @9084
9711 /* 9084 */ GIM_Try, /*On fail goto*//*Label 409*/ GIMT_Encode4(9095), // Rule ID 174 //
9712 /* 9089 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule124Enabled),
9713 /* 9092 */ // MIs[0] root
9714 /* 9092 */ // No operand predicates
9715 /* 9092 */ // MIs[0] pred
9716 /* 9092 */ // No operand predicates
9717 /* 9092 */ // MIs[0] lhs
9718 /* 9092 */ // No operand predicates
9719 /* 9092 */ // MIs[0] rhs
9720 /* 9092 */ // No operand predicates
9721 /* 9092 */ // Combiner Rule #124: canonicalize_fcmp
9722 /* 9092 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner44),
9723 /* 9095 */ // Label 409: @9095
9724 /* 9095 */ GIM_Reject,
9725 /* 9096 */ // Label 43: @9096
9726 /* 9096 */ GIM_Try, /*On fail goto*//*Label 410*/ GIMT_Encode4(9145), // Rule ID 192 //
9727 /* 9101 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule142Enabled),
9728 /* 9104 */ // MIs[0] dst
9729 /* 9104 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
9730 /* 9108 */ // MIs[0] c
9731 /* 9108 */ // No operand predicates
9732 /* 9108 */ // MIs[0] x
9733 /* 9108 */ // No operand predicates
9734 /* 9108 */ // MIs[0] Operand 3
9735 /* 9108 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
9736 /* 9112 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner27),
9737 /* 9116 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
9738 /* 9119 */ // Combiner Rule #142: select_zero_false
9739 /* 9119 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FREEZE),
9740 /* 9122 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
9741 /* 9127 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
9742 /* 9129 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
9743 /* 9133 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
9744 /* 9137 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // c
9745 /* 9141 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
9746 /* 9144 */ GIR_EraseRootFromParent_Done,
9747 /* 9145 */ // Label 410: @9145
9748 /* 9145 */ GIM_Try, /*On fail goto*//*Label 411*/ GIMT_Encode4(9166), // Rule ID 190 //
9749 /* 9150 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule140Enabled),
9750 /* 9153 */ // MIs[0] root
9751 /* 9153 */ // No operand predicates
9752 /* 9153 */ // MIs[0] tst
9753 /* 9153 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9754 /* 9157 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
9755 /* 9161 */ // MIs[1] tst1
9756 /* 9161 */ // No operand predicates
9757 /* 9161 */ // MIs[1] a
9758 /* 9161 */ // No operand predicates
9759 /* 9161 */ // MIs[1] b
9760 /* 9161 */ // No operand predicates
9761 /* 9161 */ // MIs[0] x
9762 /* 9161 */ // No operand predicates
9763 /* 9161 */ // MIs[0] y
9764 /* 9161 */ // No operand predicates
9765 /* 9161 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9766 /* 9163 */ // Combiner Rule #140: select_to_iminmax
9767 /* 9163 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner52),
9768 /* 9166 */ // Label 411: @9166
9769 /* 9166 */ GIM_Try, /*On fail goto*//*Label 412*/ GIMT_Encode4(9202), // Rule ID 193 //
9770 /* 9171 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule143Enabled),
9771 /* 9174 */ // MIs[0] dst
9772 /* 9174 */ // No operand predicates
9773 /* 9174 */ // MIs[0] c
9774 /* 9174 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9775 /* 9178 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
9776 /* 9182 */ // MIs[1] src
9777 /* 9182 */ // No operand predicates
9778 /* 9182 */ // MIs[1] Operand 2
9779 /* 9182 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 255,
9780 /* 9186 */ // MIs[0] x
9781 /* 9186 */ // No operand predicates
9782 /* 9186 */ // MIs[0] y
9783 /* 9186 */ // No operand predicates
9784 /* 9186 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9785 /* 9188 */ // Combiner Rule #143: select_not
9786 /* 9188 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SELECT),
9787 /* 9191 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9788 /* 9193 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // src
9789 /* 9197 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
9790 /* 9199 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
9791 /* 9201 */ GIR_EraseRootFromParent_Done,
9792 /* 9202 */ // Label 412: @9202
9793 /* 9202 */ GIM_Try, /*On fail goto*//*Label 413*/ GIMT_Encode4(9231), // Rule ID 185 //
9794 /* 9207 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule135Enabled),
9795 /* 9210 */ // MIs[0] dst
9796 /* 9210 */ // No operand predicates
9797 /* 9210 */ // MIs[0] undef
9798 /* 9210 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9799 /* 9214 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9800 /* 9218 */ // MIs[0] x
9801 /* 9218 */ // No operand predicates
9802 /* 9218 */ // MIs[0] y
9803 /* 9218 */ // No operand predicates
9804 /* 9218 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
9805 /* 9223 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9806 /* 9225 */ // Combiner Rule #135: select_undef_cmp
9807 /* 9225 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
9808 /* 9230 */ GIR_EraseRootFromParent_Done,
9809 /* 9231 */ // Label 413: @9231
9810 /* 9231 */ GIM_Try, /*On fail goto*//*Label 414*/ GIMT_Encode4(9271), // Rule ID 186 //
9811 /* 9236 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule136Enabled),
9812 /* 9239 */ // MIs[0] dst
9813 /* 9239 */ // No operand predicates
9814 /* 9239 */ // MIs[0] cond
9815 /* 9239 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9816 /* 9243 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
9817 /* 9247 */ // MIs[1] Operand 1
9818 /* 9247 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
9819 /* 9258 */ // MIs[0] tval
9820 /* 9258 */ // No operand predicates
9821 /* 9258 */ // MIs[0] fval
9822 /* 9258 */ // No operand predicates
9823 /* 9258 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
9824 /* 9263 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9825 /* 9265 */ // Combiner Rule #136: select_constant_cmp_false
9826 /* 9265 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
9827 /* 9270 */ GIR_EraseRootFromParent_Done,
9828 /* 9271 */ // Label 414: @9271
9829 /* 9271 */ GIM_Try, /*On fail goto*//*Label 415*/ GIMT_Encode4(9311), // Rule ID 187 //
9830 /* 9276 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule137Enabled),
9831 /* 9279 */ // MIs[0] dst
9832 /* 9279 */ // No operand predicates
9833 /* 9279 */ // MIs[0] cond
9834 /* 9279 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
9835 /* 9283 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
9836 /* 9287 */ // MIs[1] Operand 1
9837 /* 9287 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(1),
9838 /* 9298 */ // MIs[0] tval
9839 /* 9298 */ // No operand predicates
9840 /* 9298 */ // MIs[0] fval
9841 /* 9298 */ // No operand predicates
9842 /* 9298 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9843 /* 9303 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
9844 /* 9305 */ // Combiner Rule #137: select_constant_cmp_true
9845 /* 9305 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9846 /* 9310 */ GIR_EraseRootFromParent_Done,
9847 /* 9311 */ // Label 415: @9311
9848 /* 9311 */ GIM_Try, /*On fail goto*//*Label 416*/ GIMT_Encode4(9335), // Rule ID 116 //
9849 /* 9316 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
9850 /* 9319 */ // MIs[0] dst
9851 /* 9319 */ // No operand predicates
9852 /* 9319 */ // MIs[0] cond
9853 /* 9319 */ // No operand predicates
9854 /* 9319 */ // MIs[0] x
9855 /* 9319 */ // No operand predicates
9856 /* 9319 */ // MIs[0] x
9857 /* 9319 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/0, /*OtherOpIdx*/2,
9858 /* 9324 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9859 /* 9329 */ // Combiner Rule #90: select_same_val_trivial
9860 /* 9329 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9861 /* 9334 */ GIR_EraseRootFromParent_Done,
9862 /* 9335 */ // Label 416: @9335
9863 /* 9335 */ GIM_Try, /*On fail goto*//*Label 417*/ GIMT_Encode4(9358), // Rule ID 117 //
9864 /* 9340 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
9865 /* 9343 */ // MIs[0] dst
9866 /* 9343 */ // No operand predicates
9867 /* 9343 */ // MIs[0] cond
9868 /* 9343 */ // No operand predicates
9869 /* 9343 */ // MIs[0] tval
9870 /* 9343 */ // No operand predicates
9871 /* 9343 */ // MIs[0] fval
9872 /* 9343 */ // No operand predicates
9873 /* 9343 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner11),
9874 /* 9347 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9875 /* 9352 */ // Combiner Rule #91: select_same_val_equiv
9876 /* 9352 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9877 /* 9357 */ GIR_EraseRootFromParent_Done,
9878 /* 9358 */ // Label 417: @9358
9879 /* 9358 */ GIM_Try, /*On fail goto*//*Label 418*/ GIMT_Encode4(9381), // Rule ID 188 //
9880 /* 9363 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule138Enabled),
9881 /* 9366 */ // MIs[0] dst
9882 /* 9366 */ // No operand predicates
9883 /* 9366 */ // MIs[0] cond
9884 /* 9366 */ // No operand predicates
9885 /* 9366 */ // MIs[0] tval
9886 /* 9366 */ // No operand predicates
9887 /* 9366 */ // MIs[0] fval
9888 /* 9366 */ // No operand predicates
9889 /* 9366 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner25),
9890 /* 9370 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
9891 /* 9375 */ // Combiner Rule #138: select_constant_cmp_general_false
9892 /* 9375 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
9893 /* 9380 */ GIR_EraseRootFromParent_Done,
9894 /* 9381 */ // Label 418: @9381
9895 /* 9381 */ GIM_Try, /*On fail goto*//*Label 419*/ GIMT_Encode4(9404), // Rule ID 189 //
9896 /* 9386 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule139Enabled),
9897 /* 9389 */ // MIs[0] dst
9898 /* 9389 */ // No operand predicates
9899 /* 9389 */ // MIs[0] cond
9900 /* 9389 */ // No operand predicates
9901 /* 9389 */ // MIs[0] tval
9902 /* 9389 */ // No operand predicates
9903 /* 9389 */ // MIs[0] fval
9904 /* 9389 */ // No operand predicates
9905 /* 9389 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner26),
9906 /* 9393 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9907 /* 9398 */ // Combiner Rule #139: select_constant_cmp_general_true
9908 /* 9398 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
9909 /* 9403 */ GIR_EraseRootFromParent_Done,
9910 /* 9404 */ // Label 419: @9404
9911 /* 9404 */ GIM_Try, /*On fail goto*//*Label 420*/ GIMT_Encode4(9415), // Rule ID 191 //
9912 /* 9409 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule141Enabled),
9913 /* 9412 */ // MIs[0] dst
9914 /* 9412 */ // No operand predicates
9915 /* 9412 */ // MIs[0] cond
9916 /* 9412 */ // No operand predicates
9917 /* 9412 */ // MIs[0] tval
9918 /* 9412 */ // No operand predicates
9919 /* 9412 */ // MIs[0] fval
9920 /* 9412 */ // No operand predicates
9921 /* 9412 */ // Combiner Rule #141: match_selects
9922 /* 9412 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner53),
9923 /* 9415 */ // Label 420: @9415
9924 /* 9415 */ GIM_Try, /*On fail goto*//*Label 421*/ GIMT_Encode4(9426), // Rule ID 379 //
9925 /* 9420 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule247Enabled),
9926 /* 9423 */ // MIs[0] dst
9927 /* 9423 */ // No operand predicates
9928 /* 9423 */ // MIs[0] cond
9929 /* 9423 */ // No operand predicates
9930 /* 9423 */ // MIs[0] tval
9931 /* 9423 */ // No operand predicates
9932 /* 9423 */ // MIs[0] fval
9933 /* 9423 */ // No operand predicates
9934 /* 9423 */ // Combiner Rule #247: select_to_minmax
9935 /* 9423 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
9936 /* 9426 */ // Label 421: @9426
9937 /* 9426 */ GIM_Reject,
9938 /* 9427 */ // Label 44: @9427
9939 /* 9427 */ GIM_Try, /*On fail goto*//*Label 422*/ GIMT_Encode4(9454), // Rule ID 398 //
9940 /* 9432 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule266Enabled),
9941 /* 9435 */ // MIs[0] dst
9942 /* 9435 */ // No operand predicates
9943 /* 9435 */ // MIs[0] carry
9944 /* 9435 */ // No operand predicates
9945 /* 9435 */ // MIs[0] lhs
9946 /* 9435 */ // No operand predicates
9947 /* 9435 */ // MIs[0] rhs
9948 /* 9435 */ // No operand predicates
9949 /* 9435 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
9950 /* 9439 */ // Combiner Rule #266: G_UADDO_commute_constant_to_rhs
9951 /* 9439 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UADDO),
9952 /* 9442 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9953 /* 9444 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry
9954 /* 9446 */ GIR_RootToRootCopy, /*OpIdx*/3, // rhs
9955 /* 9448 */ GIR_RootToRootCopy, /*OpIdx*/2, // lhs
9956 /* 9450 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
9957 /* 9453 */ GIR_EraseRootFromParent_Done,
9958 /* 9454 */ // Label 422: @9454
9959 /* 9454 */ GIM_Try, /*On fail goto*//*Label 423*/ GIMT_Encode4(9484), // Rule ID 438 //
9960 /* 9459 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule306Enabled),
9961 /* 9462 */ // MIs[0] dst
9962 /* 9462 */ // No operand predicates
9963 /* 9462 */ // MIs[0] carry
9964 /* 9462 */ // No operand predicates
9965 /* 9462 */ // MIs[0] x
9966 /* 9462 */ // No operand predicates
9967 /* 9462 */ // MIs[0] y
9968 /* 9462 */ // No operand predicates
9969 /* 9462 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner52),
9970 /* 9466 */ // Combiner Rule #306: match_addos_uaddo_dead_carry
9971 /* 9466 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
9972 /* 9469 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
9973 /* 9471 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
9974 /* 9473 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
9975 /* 9475 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
9976 /* 9479 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // carry
9977 /* 9483 */ GIR_EraseRootFromParent_Done,
9978 /* 9484 */ // Label 423: @9484
9979 /* 9484 */ GIM_Try, /*On fail goto*//*Label 424*/ GIMT_Encode4(9495), // Rule ID 440 //
9980 /* 9489 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule308Enabled),
9981 /* 9492 */ // MIs[0] dst
9982 /* 9492 */ // No operand predicates
9983 /* 9492 */ // MIs[0] carry
9984 /* 9492 */ // No operand predicates
9985 /* 9492 */ // MIs[0] x
9986 /* 9492 */ // No operand predicates
9987 /* 9492 */ // MIs[0] y
9988 /* 9492 */ // No operand predicates
9989 /* 9492 */ // Combiner Rule #308: match_addos_uaddo
9990 /* 9492 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
9991 /* 9495 */ // Label 424: @9495
9992 /* 9495 */ GIM_Reject,
9993 /* 9496 */ // Label 45: @9496
9994 /* 9496 */ GIM_Try, /*On fail goto*//*Label 425*/ GIMT_Encode4(9523), // Rule ID 228 //
9995 /* 9501 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
9996 /* 9504 */ // MIs[0] dst
9997 /* 9504 */ // No operand predicates
9998 /* 9504 */ // MIs[0] carry_out
9999 /* 9504 */ // No operand predicates
10000 /* 9504 */ // MIs[0] x
10001 /* 9504 */ // No operand predicates
10002 /* 9504 */ // MIs[0] y
10003 /* 9504 */ // No operand predicates
10004 /* 9504 */ // MIs[0] carry_in
10005 /* 9504 */ // No operand predicates
10006 /* 9504 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner31),
10007 /* 9508 */ // Combiner Rule #178: adde_to_addo_uadde
10008 /* 9508 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UADDO),
10009 /* 9511 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10010 /* 9513 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry_out
10011 /* 9515 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10012 /* 9517 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
10013 /* 9519 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10014 /* 9522 */ GIR_EraseRootFromParent_Done,
10015 /* 9523 */ // Label 425: @9523
10016 /* 9523 */ GIM_Reject,
10017 /* 9524 */ // Label 46: @9524
10018 /* 9524 */ GIM_Try, /*On fail goto*//*Label 426*/ GIMT_Encode4(9535), // Rule ID 442 //
10019 /* 9529 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule310Enabled),
10020 /* 9532 */ // MIs[0] dst
10021 /* 9532 */ // No operand predicates
10022 /* 9532 */ // MIs[0] carry
10023 /* 9532 */ // No operand predicates
10024 /* 9532 */ // MIs[0] x
10025 /* 9532 */ // No operand predicates
10026 /* 9532 */ // MIs[0] y
10027 /* 9532 */ // No operand predicates
10028 /* 9532 */ // Combiner Rule #310: match_subo_no_overflow_usubo
10029 /* 9532 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122),
10030 /* 9535 */ // Label 426: @9535
10031 /* 9535 */ GIM_Reject,
10032 /* 9536 */ // Label 47: @9536
10033 /* 9536 */ GIM_Try, /*On fail goto*//*Label 427*/ GIMT_Encode4(9563), // Rule ID 230 //
10034 /* 9541 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
10035 /* 9544 */ // MIs[0] dst
10036 /* 9544 */ // No operand predicates
10037 /* 9544 */ // MIs[0] carry_out
10038 /* 9544 */ // No operand predicates
10039 /* 9544 */ // MIs[0] x
10040 /* 9544 */ // No operand predicates
10041 /* 9544 */ // MIs[0] y
10042 /* 9544 */ // No operand predicates
10043 /* 9544 */ // MIs[0] carry_in
10044 /* 9544 */ // No operand predicates
10045 /* 9544 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner31),
10046 /* 9548 */ // Combiner Rule #180: adde_to_addo_usube
10047 /* 9548 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_USUBO),
10048 /* 9551 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10049 /* 9553 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry_out
10050 /* 9555 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10051 /* 9557 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
10052 /* 9559 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10053 /* 9562 */ GIR_EraseRootFromParent_Done,
10054 /* 9563 */ // Label 427: @9563
10055 /* 9563 */ GIM_Reject,
10056 /* 9564 */ // Label 48: @9564
10057 /* 9564 */ GIM_Try, /*On fail goto*//*Label 428*/ GIMT_Encode4(9591), // Rule ID 399 //
10058 /* 9569 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule267Enabled),
10059 /* 9572 */ // MIs[0] dst
10060 /* 9572 */ // No operand predicates
10061 /* 9572 */ // MIs[0] carry
10062 /* 9572 */ // No operand predicates
10063 /* 9572 */ // MIs[0] lhs
10064 /* 9572 */ // No operand predicates
10065 /* 9572 */ // MIs[0] rhs
10066 /* 9572 */ // No operand predicates
10067 /* 9572 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10068 /* 9576 */ // Combiner Rule #267: G_SADDO_commute_constant_to_rhs
10069 /* 9576 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SADDO),
10070 /* 9579 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10071 /* 9581 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry
10072 /* 9583 */ GIR_RootToRootCopy, /*OpIdx*/3, // rhs
10073 /* 9585 */ GIR_RootToRootCopy, /*OpIdx*/2, // lhs
10074 /* 9587 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10075 /* 9590 */ GIR_EraseRootFromParent_Done,
10076 /* 9591 */ // Label 428: @9591
10077 /* 9591 */ GIM_Try, /*On fail goto*//*Label 429*/ GIMT_Encode4(9621), // Rule ID 437 //
10078 /* 9596 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule305Enabled),
10079 /* 9599 */ // MIs[0] dst
10080 /* 9599 */ // No operand predicates
10081 /* 9599 */ // MIs[0] carry
10082 /* 9599 */ // No operand predicates
10083 /* 9599 */ // MIs[0] x
10084 /* 9599 */ // No operand predicates
10085 /* 9599 */ // MIs[0] y
10086 /* 9599 */ // No operand predicates
10087 /* 9599 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner52),
10088 /* 9603 */ // Combiner Rule #305: match_addos_saddo_dead_carry
10089 /* 9603 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ADD),
10090 /* 9606 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10091 /* 9608 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10092 /* 9610 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
10093 /* 9612 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
10094 /* 9616 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // carry
10095 /* 9620 */ GIR_EraseRootFromParent_Done,
10096 /* 9621 */ // Label 429: @9621
10097 /* 9621 */ GIM_Try, /*On fail goto*//*Label 430*/ GIMT_Encode4(9632), // Rule ID 439 //
10098 /* 9626 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule307Enabled),
10099 /* 9629 */ // MIs[0] dst
10100 /* 9629 */ // No operand predicates
10101 /* 9629 */ // MIs[0] carry
10102 /* 9629 */ // No operand predicates
10103 /* 9629 */ // MIs[0] x
10104 /* 9629 */ // No operand predicates
10105 /* 9629 */ // MIs[0] y
10106 /* 9629 */ // No operand predicates
10107 /* 9629 */ // Combiner Rule #307: match_addos_saddo
10108 /* 9629 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
10109 /* 9632 */ // Label 430: @9632
10110 /* 9632 */ GIM_Reject,
10111 /* 9633 */ // Label 49: @9633
10112 /* 9633 */ GIM_Try, /*On fail goto*//*Label 431*/ GIMT_Encode4(9660), // Rule ID 229 //
10113 /* 9638 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
10114 /* 9641 */ // MIs[0] dst
10115 /* 9641 */ // No operand predicates
10116 /* 9641 */ // MIs[0] carry_out
10117 /* 9641 */ // No operand predicates
10118 /* 9641 */ // MIs[0] x
10119 /* 9641 */ // No operand predicates
10120 /* 9641 */ // MIs[0] y
10121 /* 9641 */ // No operand predicates
10122 /* 9641 */ // MIs[0] carry_in
10123 /* 9641 */ // No operand predicates
10124 /* 9641 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner31),
10125 /* 9645 */ // Combiner Rule #179: adde_to_addo_sadde
10126 /* 9645 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SADDO),
10127 /* 9648 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10128 /* 9650 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry_out
10129 /* 9652 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10130 /* 9654 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
10131 /* 9656 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10132 /* 9659 */ GIR_EraseRootFromParent_Done,
10133 /* 9660 */ // Label 431: @9660
10134 /* 9660 */ GIM_Reject,
10135 /* 9661 */ // Label 50: @9661
10136 /* 9661 */ GIM_Try, /*On fail goto*//*Label 432*/ GIMT_Encode4(9672), // Rule ID 441 //
10137 /* 9666 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule309Enabled),
10138 /* 9669 */ // MIs[0] dst
10139 /* 9669 */ // No operand predicates
10140 /* 9669 */ // MIs[0] carry
10141 /* 9669 */ // No operand predicates
10142 /* 9669 */ // MIs[0] x
10143 /* 9669 */ // No operand predicates
10144 /* 9669 */ // MIs[0] y
10145 /* 9669 */ // No operand predicates
10146 /* 9669 */ // Combiner Rule #309: match_subo_no_overflow_ssubo
10147 /* 9669 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122),
10148 /* 9672 */ // Label 432: @9672
10149 /* 9672 */ GIM_Reject,
10150 /* 9673 */ // Label 51: @9673
10151 /* 9673 */ GIM_Try, /*On fail goto*//*Label 433*/ GIMT_Encode4(9700), // Rule ID 231 //
10152 /* 9678 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
10153 /* 9681 */ // MIs[0] dst
10154 /* 9681 */ // No operand predicates
10155 /* 9681 */ // MIs[0] carry_out
10156 /* 9681 */ // No operand predicates
10157 /* 9681 */ // MIs[0] x
10158 /* 9681 */ // No operand predicates
10159 /* 9681 */ // MIs[0] y
10160 /* 9681 */ // No operand predicates
10161 /* 9681 */ // MIs[0] carry_in
10162 /* 9681 */ // No operand predicates
10163 /* 9681 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner31),
10164 /* 9685 */ // Combiner Rule #181: adde_to_addo_ssube
10165 /* 9685 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SSUBO),
10166 /* 9688 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10167 /* 9690 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry_out
10168 /* 9692 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10169 /* 9694 */ GIR_RootToRootCopy, /*OpIdx*/3, // y
10170 /* 9696 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10171 /* 9699 */ GIR_EraseRootFromParent_Done,
10172 /* 9700 */ // Label 433: @9700
10173 /* 9700 */ GIM_Reject,
10174 /* 9701 */ // Label 52: @9701
10175 /* 9701 */ GIM_Try, /*On fail goto*//*Label 434*/ GIMT_Encode4(9728), // Rule ID 224 //
10176 /* 9706 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
10177 /* 9709 */ // MIs[0] dst
10178 /* 9709 */ // No operand predicates
10179 /* 9709 */ // MIs[0] carry
10180 /* 9709 */ // No operand predicates
10181 /* 9709 */ // MIs[0] x
10182 /* 9709 */ // No operand predicates
10183 /* 9709 */ // MIs[0] rhs
10184 /* 9709 */ // No operand predicates
10185 /* 9709 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner30),
10186 /* 9713 */ // Combiner Rule #174: mulo_by_2_umulo
10187 /* 9713 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UADDO),
10188 /* 9716 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10189 /* 9718 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry
10190 /* 9720 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10191 /* 9722 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10192 /* 9724 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10193 /* 9727 */ GIR_EraseRootFromParent_Done,
10194 /* 9728 */ // Label 434: @9728
10195 /* 9728 */ GIM_Try, /*On fail goto*//*Label 435*/ GIMT_Encode4(9755), // Rule ID 400 //
10196 /* 9733 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule268Enabled),
10197 /* 9736 */ // MIs[0] dst
10198 /* 9736 */ // No operand predicates
10199 /* 9736 */ // MIs[0] carry
10200 /* 9736 */ // No operand predicates
10201 /* 9736 */ // MIs[0] lhs
10202 /* 9736 */ // No operand predicates
10203 /* 9736 */ // MIs[0] rhs
10204 /* 9736 */ // No operand predicates
10205 /* 9736 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10206 /* 9740 */ // Combiner Rule #268: G_UMULO_commute_constant_to_rhs
10207 /* 9740 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMULO),
10208 /* 9743 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10209 /* 9745 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry
10210 /* 9747 */ GIR_RootToRootCopy, /*OpIdx*/3, // rhs
10211 /* 9749 */ GIR_RootToRootCopy, /*OpIdx*/2, // lhs
10212 /* 9751 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10213 /* 9754 */ GIR_EraseRootFromParent_Done,
10214 /* 9755 */ // Label 435: @9755
10215 /* 9755 */ GIM_Try, /*On fail goto*//*Label 436*/ GIMT_Encode4(9766), // Rule ID 226 //
10216 /* 9760 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
10217 /* 9763 */ // MIs[0] dst
10218 /* 9763 */ // No operand predicates
10219 /* 9763 */ // MIs[0] carry
10220 /* 9763 */ // No operand predicates
10221 /* 9763 */ // MIs[0] x
10222 /* 9763 */ // No operand predicates
10223 /* 9763 */ // MIs[0] y
10224 /* 9763 */ // No operand predicates
10225 /* 9763 */ // Combiner Rule #176: mulo_by_0_umulo
10226 /* 9763 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner66),
10227 /* 9766 */ // Label 436: @9766
10228 /* 9766 */ GIM_Reject,
10229 /* 9767 */ // Label 53: @9767
10230 /* 9767 */ GIM_Try, /*On fail goto*//*Label 437*/ GIMT_Encode4(9794), // Rule ID 225 //
10231 /* 9772 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
10232 /* 9775 */ // MIs[0] dst
10233 /* 9775 */ // No operand predicates
10234 /* 9775 */ // MIs[0] carry
10235 /* 9775 */ // No operand predicates
10236 /* 9775 */ // MIs[0] x
10237 /* 9775 */ // No operand predicates
10238 /* 9775 */ // MIs[0] rhs
10239 /* 9775 */ // No operand predicates
10240 /* 9775 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner30),
10241 /* 9779 */ // Combiner Rule #175: mulo_by_2_smulo
10242 /* 9779 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SADDO),
10243 /* 9782 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10244 /* 9784 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry
10245 /* 9786 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10246 /* 9788 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10247 /* 9790 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10248 /* 9793 */ GIR_EraseRootFromParent_Done,
10249 /* 9794 */ // Label 437: @9794
10250 /* 9794 */ GIM_Try, /*On fail goto*//*Label 438*/ GIMT_Encode4(9821), // Rule ID 401 //
10251 /* 9799 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule269Enabled),
10252 /* 9802 */ // MIs[0] dst
10253 /* 9802 */ // No operand predicates
10254 /* 9802 */ // MIs[0] carry
10255 /* 9802 */ // No operand predicates
10256 /* 9802 */ // MIs[0] lhs
10257 /* 9802 */ // No operand predicates
10258 /* 9802 */ // MIs[0] rhs
10259 /* 9802 */ // No operand predicates
10260 /* 9802 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10261 /* 9806 */ // Combiner Rule #269: G_SMULO_commute_constant_to_rhs
10262 /* 9806 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMULO),
10263 /* 9809 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10264 /* 9811 */ GIR_RootToRootCopy, /*OpIdx*/1, // carry
10265 /* 9813 */ GIR_RootToRootCopy, /*OpIdx*/3, // rhs
10266 /* 9815 */ GIR_RootToRootCopy, /*OpIdx*/2, // lhs
10267 /* 9817 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10268 /* 9820 */ GIR_EraseRootFromParent_Done,
10269 /* 9821 */ // Label 438: @9821
10270 /* 9821 */ GIM_Try, /*On fail goto*//*Label 439*/ GIMT_Encode4(9832), // Rule ID 227 //
10271 /* 9826 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled),
10272 /* 9829 */ // MIs[0] dst
10273 /* 9829 */ // No operand predicates
10274 /* 9829 */ // MIs[0] carry
10275 /* 9829 */ // No operand predicates
10276 /* 9829 */ // MIs[0] x
10277 /* 9829 */ // No operand predicates
10278 /* 9829 */ // MIs[0] y
10279 /* 9829 */ // No operand predicates
10280 /* 9829 */ // Combiner Rule #177: mulo_by_0_smulo
10281 /* 9829 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner66),
10282 /* 9832 */ // Label 439: @9832
10283 /* 9832 */ GIM_Reject,
10284 /* 9833 */ // Label 54: @9833
10285 /* 9833 */ GIM_Try, /*On fail goto*//*Label 440*/ GIMT_Encode4(9858), // Rule ID 390 //
10286 /* 9838 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule258Enabled),
10287 /* 9841 */ // MIs[0] dst
10288 /* 9841 */ // No operand predicates
10289 /* 9841 */ // MIs[0] lhs
10290 /* 9841 */ // No operand predicates
10291 /* 9841 */ // MIs[0] rhs
10292 /* 9841 */ // No operand predicates
10293 /* 9841 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10294 /* 9845 */ // Combiner Rule #258: G_UMULH_commute_constant_to_rhs
10295 /* 9845 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMULH),
10296 /* 9848 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10297 /* 9850 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10298 /* 9852 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10299 /* 9854 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10300 /* 9857 */ GIR_EraseRootFromParent_Done,
10301 /* 9858 */ // Label 440: @9858
10302 /* 9858 */ GIM_Try, /*On fail goto*//*Label 441*/ GIMT_Encode4(9869), // Rule ID 324 //
10303 /* 9863 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
10304 /* 9866 */ // MIs[0] dst
10305 /* 9866 */ // No operand predicates
10306 /* 9866 */ // MIs[0] src1
10307 /* 9866 */ // No operand predicates
10308 /* 9866 */ // MIs[0] src2
10309 /* 9866 */ // No operand predicates
10310 /* 9866 */ // Combiner Rule #216: mulh_to_lshr
10311 /* 9866 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
10312 /* 9869 */ // Label 441: @9869
10313 /* 9869 */ GIM_Reject,
10314 /* 9870 */ // Label 55: @9870
10315 /* 9870 */ GIM_Try, /*On fail goto*//*Label 442*/ GIMT_Encode4(9895), // Rule ID 391 //
10316 /* 9875 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule259Enabled),
10317 /* 9878 */ // MIs[0] dst
10318 /* 9878 */ // No operand predicates
10319 /* 9878 */ // MIs[0] lhs
10320 /* 9878 */ // No operand predicates
10321 /* 9878 */ // MIs[0] rhs
10322 /* 9878 */ // No operand predicates
10323 /* 9878 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10324 /* 9882 */ // Combiner Rule #259: G_SMULH_commute_constant_to_rhs
10325 /* 9882 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMULH),
10326 /* 9885 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10327 /* 9887 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10328 /* 9889 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10329 /* 9891 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10330 /* 9894 */ GIR_EraseRootFromParent_Done,
10331 /* 9895 */ // Label 442: @9895
10332 /* 9895 */ GIM_Reject,
10333 /* 9896 */ // Label 56: @9896
10334 /* 9896 */ GIM_Try, /*On fail goto*//*Label 443*/ GIMT_Encode4(9921), // Rule ID 392 //
10335 /* 9901 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule260Enabled),
10336 /* 9904 */ // MIs[0] dst
10337 /* 9904 */ // No operand predicates
10338 /* 9904 */ // MIs[0] lhs
10339 /* 9904 */ // No operand predicates
10340 /* 9904 */ // MIs[0] rhs
10341 /* 9904 */ // No operand predicates
10342 /* 9904 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10343 /* 9908 */ // Combiner Rule #260: G_UADDSAT_commute_constant_to_rhs
10344 /* 9908 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UADDSAT),
10345 /* 9911 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10346 /* 9913 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10347 /* 9915 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10348 /* 9917 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10349 /* 9920 */ GIR_EraseRootFromParent_Done,
10350 /* 9921 */ // Label 443: @9921
10351 /* 9921 */ GIM_Reject,
10352 /* 9922 */ // Label 57: @9922
10353 /* 9922 */ GIM_Try, /*On fail goto*//*Label 444*/ GIMT_Encode4(9947), // Rule ID 393 //
10354 /* 9927 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule261Enabled),
10355 /* 9930 */ // MIs[0] dst
10356 /* 9930 */ // No operand predicates
10357 /* 9930 */ // MIs[0] lhs
10358 /* 9930 */ // No operand predicates
10359 /* 9930 */ // MIs[0] rhs
10360 /* 9930 */ // No operand predicates
10361 /* 9930 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10362 /* 9934 */ // Combiner Rule #261: G_SADDSAT_commute_constant_to_rhs
10363 /* 9934 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SADDSAT),
10364 /* 9937 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10365 /* 9939 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10366 /* 9941 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10367 /* 9943 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10368 /* 9946 */ GIR_EraseRootFromParent_Done,
10369 /* 9947 */ // Label 444: @9947
10370 /* 9947 */ GIM_Reject,
10371 /* 9948 */ // Label 58: @9948
10372 /* 9948 */ GIM_Try, /*On fail goto*//*Label 445*/ GIMT_Encode4(9959), // Rule ID 248 //
10373 /* 9953 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
10374 /* 9956 */ // MIs[0] d
10375 /* 9956 */ // No operand predicates
10376 /* 9956 */ // MIs[0] mi.base
10377 /* 9956 */ // No operand predicates
10378 /* 9956 */ // MIs[0] mi.amt
10379 /* 9956 */ // No operand predicates
10380 /* 9956 */ // Combiner Rule #190: shift_immed_chain @ [mi[4]]
10381 /* 9956 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
10382 /* 9959 */ // Label 445: @9959
10383 /* 9959 */ GIM_Try, /*On fail goto*//*Label 446*/ GIMT_Encode4(9970), // Rule ID 253 //
10384 /* 9964 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
10385 /* 9967 */ // MIs[0] d
10386 /* 9967 */ // No operand predicates
10387 /* 9967 */ // MIs[0] mi.base
10388 /* 9967 */ // No operand predicates
10389 /* 9967 */ // MIs[0] mi.amt
10390 /* 9967 */ // No operand predicates
10391 /* 9967 */ // Combiner Rule #191: shift_of_shifted_logic_chain @ [mi[4]]
10392 /* 9967 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
10393 /* 9970 */ // Label 446: @9970
10394 /* 9970 */ GIM_Reject,
10395 /* 9971 */ // Label 59: @9971
10396 /* 9971 */ GIM_Try, /*On fail goto*//*Label 447*/ GIMT_Encode4(9982), // Rule ID 247 //
10397 /* 9976 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
10398 /* 9979 */ // MIs[0] d
10399 /* 9979 */ // No operand predicates
10400 /* 9979 */ // MIs[0] mi.base
10401 /* 9979 */ // No operand predicates
10402 /* 9979 */ // MIs[0] mi.amt
10403 /* 9979 */ // No operand predicates
10404 /* 9979 */ // Combiner Rule #190: shift_immed_chain @ [mi[3]]
10405 /* 9979 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
10406 /* 9982 */ // Label 447: @9982
10407 /* 9982 */ GIM_Try, /*On fail goto*//*Label 448*/ GIMT_Encode4(9993), // Rule ID 252 //
10408 /* 9987 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
10409 /* 9990 */ // MIs[0] d
10410 /* 9990 */ // No operand predicates
10411 /* 9990 */ // MIs[0] mi.base
10412 /* 9990 */ // No operand predicates
10413 /* 9990 */ // MIs[0] mi.amt
10414 /* 9990 */ // No operand predicates
10415 /* 9990 */ // Combiner Rule #191: shift_of_shifted_logic_chain @ [mi[3]]
10416 /* 9990 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
10417 /* 9993 */ // Label 448: @9993
10418 /* 9993 */ GIM_Reject,
10419 /* 9994 */ // Label 60: @9994
10420 /* 9994 */ GIM_Try, /*On fail goto*//*Label 449*/ GIMT_Encode4(10021), // Rule ID 394 //
10421 /* 9999 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule262Enabled),
10422 /* 10002 */ // MIs[0] dst
10423 /* 10002 */ // No operand predicates
10424 /* 10002 */ // MIs[0] lhs
10425 /* 10002 */ // No operand predicates
10426 /* 10002 */ // MIs[0] rhs
10427 /* 10002 */ // No operand predicates
10428 /* 10002 */ // MIs[0] scale
10429 /* 10002 */ // No operand predicates
10430 /* 10002 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10431 /* 10006 */ // Combiner Rule #262: G_SMULFIX_commute_constant_to_rhs
10432 /* 10006 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMULFIX),
10433 /* 10009 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10434 /* 10011 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10435 /* 10013 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10436 /* 10015 */ GIR_RootToRootCopy, /*OpIdx*/3, // scale
10437 /* 10017 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10438 /* 10020 */ GIR_EraseRootFromParent_Done,
10439 /* 10021 */ // Label 449: @10021
10440 /* 10021 */ GIM_Reject,
10441 /* 10022 */ // Label 61: @10022
10442 /* 10022 */ GIM_Try, /*On fail goto*//*Label 450*/ GIMT_Encode4(10049), // Rule ID 395 //
10443 /* 10027 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule263Enabled),
10444 /* 10030 */ // MIs[0] dst
10445 /* 10030 */ // No operand predicates
10446 /* 10030 */ // MIs[0] lhs
10447 /* 10030 */ // No operand predicates
10448 /* 10030 */ // MIs[0] rhs
10449 /* 10030 */ // No operand predicates
10450 /* 10030 */ // MIs[0] scale
10451 /* 10030 */ // No operand predicates
10452 /* 10030 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10453 /* 10034 */ // Combiner Rule #263: G_UMULFIX_commute_constant_to_rhs
10454 /* 10034 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMULFIX),
10455 /* 10037 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10456 /* 10039 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10457 /* 10041 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10458 /* 10043 */ GIR_RootToRootCopy, /*OpIdx*/3, // scale
10459 /* 10045 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10460 /* 10048 */ GIR_EraseRootFromParent_Done,
10461 /* 10049 */ // Label 450: @10049
10462 /* 10049 */ GIM_Reject,
10463 /* 10050 */ // Label 62: @10050
10464 /* 10050 */ GIM_Try, /*On fail goto*//*Label 451*/ GIMT_Encode4(10077), // Rule ID 396 //
10465 /* 10055 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule264Enabled),
10466 /* 10058 */ // MIs[0] dst
10467 /* 10058 */ // No operand predicates
10468 /* 10058 */ // MIs[0] lhs
10469 /* 10058 */ // No operand predicates
10470 /* 10058 */ // MIs[0] rhs
10471 /* 10058 */ // No operand predicates
10472 /* 10058 */ // MIs[0] scale
10473 /* 10058 */ // No operand predicates
10474 /* 10058 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10475 /* 10062 */ // Combiner Rule #264: G_SMULFIXSAT_commute_constant_to_rhs
10476 /* 10062 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMULFIXSAT),
10477 /* 10065 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10478 /* 10067 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10479 /* 10069 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10480 /* 10071 */ GIR_RootToRootCopy, /*OpIdx*/3, // scale
10481 /* 10073 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10482 /* 10076 */ GIR_EraseRootFromParent_Done,
10483 /* 10077 */ // Label 451: @10077
10484 /* 10077 */ GIM_Reject,
10485 /* 10078 */ // Label 63: @10078
10486 /* 10078 */ GIM_Try, /*On fail goto*//*Label 452*/ GIMT_Encode4(10105), // Rule ID 397 //
10487 /* 10083 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule265Enabled),
10488 /* 10086 */ // MIs[0] dst
10489 /* 10086 */ // No operand predicates
10490 /* 10086 */ // MIs[0] lhs
10491 /* 10086 */ // No operand predicates
10492 /* 10086 */ // MIs[0] rhs
10493 /* 10086 */ // No operand predicates
10494 /* 10086 */ // MIs[0] scale
10495 /* 10086 */ // No operand predicates
10496 /* 10086 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
10497 /* 10090 */ // Combiner Rule #265: G_UMULFIXSAT_commute_constant_to_rhs
10498 /* 10090 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMULFIXSAT),
10499 /* 10093 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10500 /* 10095 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10501 /* 10097 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10502 /* 10099 */ GIR_RootToRootCopy, /*OpIdx*/3, // scale
10503 /* 10101 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10504 /* 10104 */ GIR_EraseRootFromParent_Done,
10505 /* 10105 */ // Label 452: @10105
10506 /* 10105 */ GIM_Reject,
10507 /* 10106 */ // Label 64: @10106
10508 /* 10106 */ GIM_Try, /*On fail goto*//*Label 453*/ GIMT_Encode4(10143), // Rule ID 326 //
10509 /* 10111 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule218Enabled),
10510 /* 10114 */ // MIs[0] dst
10511 /* 10114 */ // No operand predicates
10512 /* 10114 */ // MIs[0] negy
10513 /* 10114 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10514 /* 10118 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
10515 /* 10122 */ // MIs[1] y
10516 /* 10122 */ // No operand predicates
10517 /* 10122 */ // MIs[0] x
10518 /* 10122 */ // No operand predicates
10519 /* 10122 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner41),
10520 /* 10126 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10521 /* 10128 */ // Combiner Rule #218: redundant_neg_operands_fadd_lhs
10522 /* 10128 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FSUB),
10523 /* 10131 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10524 /* 10133 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
10525 /* 10135 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // y
10526 /* 10139 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10527 /* 10142 */ GIR_EraseRootFromParent_Done,
10528 /* 10143 */ // Label 453: @10143
10529 /* 10143 */ GIM_Try, /*On fail goto*//*Label 454*/ GIMT_Encode4(10180), // Rule ID 325 //
10530 /* 10148 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
10531 /* 10151 */ // MIs[0] dst
10532 /* 10151 */ // No operand predicates
10533 /* 10151 */ // MIs[0] x
10534 /* 10151 */ // No operand predicates
10535 /* 10151 */ // MIs[0] negy
10536 /* 10151 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
10537 /* 10155 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
10538 /* 10159 */ // MIs[1] y
10539 /* 10159 */ // No operand predicates
10540 /* 10159 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner41),
10541 /* 10163 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10542 /* 10165 */ // Combiner Rule #217: redundant_neg_operands_fadd_rhs
10543 /* 10165 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FSUB),
10544 /* 10168 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10545 /* 10170 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
10546 /* 10172 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // y
10547 /* 10176 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10548 /* 10179 */ GIR_EraseRootFromParent_Done,
10549 /* 10180 */ // Label 454: @10180
10550 /* 10180 */ GIM_Try, /*On fail goto*//*Label 455*/ GIMT_Encode4(10203), // Rule ID 158 //
10551 /* 10185 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
10552 /* 10188 */ // MIs[0] dst
10553 /* 10188 */ // No operand predicates
10554 /* 10188 */ // MIs[0] x
10555 /* 10188 */ // No operand predicates
10556 /* 10188 */ // MIs[0] y
10557 /* 10188 */ // No operand predicates
10558 /* 10188 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner19),
10559 /* 10192 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10560 /* 10197 */ // Combiner Rule #113: right_identity_neg_zero_fp
10561 /* 10197 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10562 /* 10202 */ GIR_EraseRootFromParent_Done,
10563 /* 10203 */ // Label 455: @10203
10564 /* 10203 */ GIM_Try, /*On fail goto*//*Label 456*/ GIMT_Encode4(10228), // Rule ID 402 //
10565 /* 10208 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule270Enabled),
10566 /* 10211 */ // MIs[0] dst
10567 /* 10211 */ // No operand predicates
10568 /* 10211 */ // MIs[0] lhs
10569 /* 10211 */ // No operand predicates
10570 /* 10211 */ // MIs[0] rhs
10571 /* 10211 */ // No operand predicates
10572 /* 10211 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
10573 /* 10215 */ // Combiner Rule #270: G_FADD_commute_fp_constant_to_rhs
10574 /* 10215 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FADD),
10575 /* 10218 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10576 /* 10220 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10577 /* 10222 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10578 /* 10224 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10579 /* 10227 */ GIR_EraseRootFromParent_Done,
10580 /* 10228 */ // Label 456: @10228
10581 /* 10228 */ GIM_Try, /*On fail goto*//*Label 457*/ GIMT_Encode4(10257), // Rule ID 159 //
10582 /* 10233 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
10583 /* 10236 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmNsz),
10584 /* 10242 */ // MIs[0] dst
10585 /* 10242 */ // No operand predicates
10586 /* 10242 */ // MIs[0] x
10587 /* 10242 */ // No operand predicates
10588 /* 10242 */ // MIs[0] y
10589 /* 10242 */ // No operand predicates
10590 /* 10242 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner20),
10591 /* 10246 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10592 /* 10251 */ // Combiner Rule #114: right_identity_neg_zero_fp_nsz
10593 /* 10251 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10594 /* 10256 */ GIR_EraseRootFromParent_Done,
10595 /* 10257 */ // Label 457: @10257
10596 /* 10257 */ GIM_Try, /*On fail goto*//*Label 458*/ GIMT_Encode4(10268), // Rule ID 298 //
10597 /* 10262 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
10598 /* 10265 */ // MIs[0] d
10599 /* 10265 */ // No operand predicates
10600 /* 10265 */ // MIs[0] mi.src0
10601 /* 10265 */ // No operand predicates
10602 /* 10265 */ // MIs[0] mi.src1
10603 /* 10265 */ // No operand predicates
10604 /* 10265 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[0]]
10605 /* 10265 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
10606 /* 10268 */ // Label 458: @10268
10607 /* 10268 */ GIM_Try, /*On fail goto*//*Label 459*/ GIMT_Encode4(10279), // Rule ID 333 //
10608 /* 10273 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule225Enabled),
10609 /* 10276 */ // MIs[0] dst
10610 /* 10276 */ // No operand predicates
10611 /* 10276 */ // MIs[0] src1
10612 /* 10276 */ // No operand predicates
10613 /* 10276 */ // MIs[0] src2
10614 /* 10276 */ // No operand predicates
10615 /* 10276 */ // Combiner Rule #225: combine_fadd_fmul_to_fmad_or_fma
10616 /* 10276 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
10617 /* 10279 */ // Label 459: @10279
10618 /* 10279 */ GIM_Try, /*On fail goto*//*Label 460*/ GIMT_Encode4(10290), // Rule ID 334 //
10619 /* 10284 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule226Enabled),
10620 /* 10287 */ // MIs[0] dst
10621 /* 10287 */ // No operand predicates
10622 /* 10287 */ // MIs[0] src1
10623 /* 10287 */ // No operand predicates
10624 /* 10287 */ // MIs[0] src2
10625 /* 10287 */ // No operand predicates
10626 /* 10287 */ // Combiner Rule #226: combine_fadd_fpext_fmul_to_fmad_or_fma
10627 /* 10287 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
10628 /* 10290 */ // Label 460: @10290
10629 /* 10290 */ GIM_Try, /*On fail goto*//*Label 461*/ GIMT_Encode4(10301), // Rule ID 335 //
10630 /* 10295 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
10631 /* 10298 */ // MIs[0] dst
10632 /* 10298 */ // No operand predicates
10633 /* 10298 */ // MIs[0] src1
10634 /* 10298 */ // No operand predicates
10635 /* 10298 */ // MIs[0] src2
10636 /* 10298 */ // No operand predicates
10637 /* 10298 */ // Combiner Rule #227: combine_fadd_fma_fmul_to_fmad_or_fma
10638 /* 10298 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
10639 /* 10301 */ // Label 461: @10301
10640 /* 10301 */ GIM_Try, /*On fail goto*//*Label 462*/ GIMT_Encode4(10312), // Rule ID 336 //
10641 /* 10306 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
10642 /* 10309 */ // MIs[0] dst
10643 /* 10309 */ // No operand predicates
10644 /* 10309 */ // MIs[0] src1
10645 /* 10309 */ // No operand predicates
10646 /* 10309 */ // MIs[0] src2
10647 /* 10309 */ // No operand predicates
10648 /* 10309 */ // Combiner Rule #228: combine_fadd_fpext_fma_fmul_to_fmad_or_fma
10649 /* 10309 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner89),
10650 /* 10312 */ // Label 462: @10312
10651 /* 10312 */ GIM_Try, /*On fail goto*//*Label 463*/ GIMT_Encode4(10323), // Rule ID 359 //
10652 /* 10317 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
10653 /* 10320 */ // MIs[0] root
10654 /* 10320 */ // No operand predicates
10655 /* 10320 */ // MIs[0] mi.x
10656 /* 10320 */ // No operand predicates
10657 /* 10320 */ // MIs[0] mi.y
10658 /* 10320 */ // No operand predicates
10659 /* 10320 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[5]]
10660 /* 10320 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
10661 /* 10323 */ // Label 463: @10323
10662 /* 10323 */ GIM_Reject,
10663 /* 10324 */ // Label 65: @10324
10664 /* 10324 */ GIM_Try, /*On fail goto*//*Label 464*/ GIMT_Encode4(10365), // Rule ID 380 //
10665 /* 10329 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule248Enabled),
10666 /* 10332 */ // MIs[0] dst
10667 /* 10332 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
10668 /* 10336 */ // MIs[0] lhs
10669 /* 10336 */ // No operand predicates
10670 /* 10336 */ // MIs[0] rhs
10671 /* 10336 */ // No operand predicates
10672 /* 10336 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner47),
10673 /* 10340 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
10674 /* 10343 */ // Combiner Rule #248: fsub_to_fneg
10675 /* 10343 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FCANONICALIZE),
10676 /* 10346 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
10677 /* 10351 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10678 /* 10353 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
10679 /* 10357 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
10680 /* 10361 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
10681 /* 10364 */ GIR_EraseRootFromParent_Done,
10682 /* 10365 */ // Label 464: @10365
10683 /* 10365 */ GIM_Try, /*On fail goto*//*Label 465*/ GIMT_Encode4(10402), // Rule ID 327 //
10684 /* 10370 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule219Enabled),
10685 /* 10373 */ // MIs[0] dst
10686 /* 10373 */ // No operand predicates
10687 /* 10373 */ // MIs[0] x
10688 /* 10373 */ // No operand predicates
10689 /* 10373 */ // MIs[0] negy
10690 /* 10373 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
10691 /* 10377 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
10692 /* 10381 */ // MIs[1] y
10693 /* 10381 */ // No operand predicates
10694 /* 10381 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner42),
10695 /* 10385 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10696 /* 10387 */ // Combiner Rule #219: redundant_neg_operands_fsub
10697 /* 10387 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FADD),
10698 /* 10390 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10699 /* 10392 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
10700 /* 10394 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // y
10701 /* 10398 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10702 /* 10401 */ GIR_EraseRootFromParent_Done,
10703 /* 10402 */ // Label 465: @10402
10704 /* 10402 */ GIM_Try, /*On fail goto*//*Label 466*/ GIMT_Encode4(10413), // Rule ID 299 //
10705 /* 10407 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
10706 /* 10410 */ // MIs[0] d
10707 /* 10410 */ // No operand predicates
10708 /* 10410 */ // MIs[0] mi.src0
10709 /* 10410 */ // No operand predicates
10710 /* 10410 */ // MIs[0] mi.src1
10711 /* 10410 */ // No operand predicates
10712 /* 10410 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[1]]
10713 /* 10410 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
10714 /* 10413 */ // Label 466: @10413
10715 /* 10413 */ GIM_Try, /*On fail goto*//*Label 467*/ GIMT_Encode4(10424), // Rule ID 337 //
10716 /* 10418 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule229Enabled),
10717 /* 10421 */ // MIs[0] dst
10718 /* 10421 */ // No operand predicates
10719 /* 10421 */ // MIs[0] src1
10720 /* 10421 */ // No operand predicates
10721 /* 10421 */ // MIs[0] src2
10722 /* 10421 */ // No operand predicates
10723 /* 10421 */ // Combiner Rule #229: combine_fsub_fmul_to_fmad_or_fma
10724 /* 10421 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner90),
10725 /* 10424 */ // Label 467: @10424
10726 /* 10424 */ GIM_Try, /*On fail goto*//*Label 468*/ GIMT_Encode4(10435), // Rule ID 338 //
10727 /* 10429 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule230Enabled),
10728 /* 10432 */ // MIs[0] dst
10729 /* 10432 */ // No operand predicates
10730 /* 10432 */ // MIs[0] src1
10731 /* 10432 */ // No operand predicates
10732 /* 10432 */ // MIs[0] src2
10733 /* 10432 */ // No operand predicates
10734 /* 10432 */ // Combiner Rule #230: combine_fsub_fneg_fmul_to_fmad_or_fma
10735 /* 10432 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
10736 /* 10435 */ // Label 468: @10435
10737 /* 10435 */ GIM_Try, /*On fail goto*//*Label 469*/ GIMT_Encode4(10446), // Rule ID 339 //
10738 /* 10440 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule231Enabled),
10739 /* 10443 */ // MIs[0] dst
10740 /* 10443 */ // No operand predicates
10741 /* 10443 */ // MIs[0] src1
10742 /* 10443 */ // No operand predicates
10743 /* 10443 */ // MIs[0] src2
10744 /* 10443 */ // No operand predicates
10745 /* 10443 */ // Combiner Rule #231: combine_fsub_fpext_fmul_to_fmad_or_fma
10746 /* 10443 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
10747 /* 10446 */ // Label 469: @10446
10748 /* 10446 */ GIM_Try, /*On fail goto*//*Label 470*/ GIMT_Encode4(10457), // Rule ID 340 //
10749 /* 10451 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule232Enabled),
10750 /* 10454 */ // MIs[0] dst
10751 /* 10454 */ // No operand predicates
10752 /* 10454 */ // MIs[0] src1
10753 /* 10454 */ // No operand predicates
10754 /* 10454 */ // MIs[0] src2
10755 /* 10454 */ // No operand predicates
10756 /* 10454 */ // Combiner Rule #232: combine_fsub_fpext_fneg_fmul_to_fmad_or_fma
10757 /* 10454 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
10758 /* 10457 */ // Label 470: @10457
10759 /* 10457 */ GIM_Try, /*On fail goto*//*Label 471*/ GIMT_Encode4(10468), // Rule ID 360 //
10760 /* 10462 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
10761 /* 10465 */ // MIs[0] root
10762 /* 10465 */ // No operand predicates
10763 /* 10465 */ // MIs[0] mi.x
10764 /* 10465 */ // No operand predicates
10765 /* 10465 */ // MIs[0] mi.y
10766 /* 10465 */ // No operand predicates
10767 /* 10465 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[6]]
10768 /* 10465 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
10769 /* 10468 */ // Label 471: @10468
10770 /* 10468 */ GIM_Reject,
10771 /* 10469 */ // Label 66: @10469
10772 /* 10469 */ GIM_Try, /*On fail goto*//*Label 472*/ GIMT_Encode4(10512), // Rule ID 328 //
10773 /* 10474 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
10774 /* 10477 */ // MIs[0] dst
10775 /* 10477 */ // No operand predicates
10776 /* 10477 */ // MIs[0] nx
10777 /* 10477 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10778 /* 10481 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
10779 /* 10485 */ // MIs[1] x
10780 /* 10485 */ // No operand predicates
10781 /* 10485 */ // MIs[0] ny
10782 /* 10485 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
10783 /* 10489 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
10784 /* 10493 */ // MIs[2] y
10785 /* 10493 */ // No operand predicates
10786 /* 10493 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
10787 /* 10495 */ // Combiner Rule #220: G_FMUL_fneg_fneg
10788 /* 10495 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMUL),
10789 /* 10498 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10790 /* 10500 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
10791 /* 10504 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
10792 /* 10508 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10793 /* 10511 */ GIR_EraseRootFromParent_Done,
10794 /* 10512 */ // Label 472: @10512
10795 /* 10512 */ GIM_Try, /*On fail goto*//*Label 473*/ GIMT_Encode4(10533), // Rule ID 470 //
10796 /* 10517 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule332Enabled),
10797 /* 10520 */ // MIs[0] dst
10798 /* 10520 */ // No operand predicates
10799 /* 10520 */ // MIs[0] x
10800 /* 10520 */ // No operand predicates
10801 /* 10520 */ // MIs[0] select
10802 /* 10520 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
10803 /* 10524 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
10804 /* 10528 */ // MIs[1] y
10805 /* 10528 */ // No operand predicates
10806 /* 10528 */ // MIs[1] A
10807 /* 10528 */ // No operand predicates
10808 /* 10528 */ // MIs[1] B
10809 /* 10528 */ // No operand predicates
10810 /* 10528 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
10811 /* 10530 */ // Combiner Rule #332: combine_fmul_with_select_to_fldexp
10812 /* 10530 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
10813 /* 10533 */ // Label 473: @10533
10814 /* 10533 */ GIM_Try, /*On fail goto*//*Label 474*/ GIMT_Encode4(10556), // Rule ID 148 //
10815 /* 10538 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
10816 /* 10541 */ // MIs[0] dst
10817 /* 10541 */ // No operand predicates
10818 /* 10541 */ // MIs[0] x
10819 /* 10541 */ // No operand predicates
10820 /* 10541 */ // MIs[0] y
10821 /* 10541 */ // No operand predicates
10822 /* 10541 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner17),
10823 /* 10545 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10824 /* 10550 */ // Combiner Rule #104: right_identity_one_fp
10825 /* 10550 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
10826 /* 10555 */ GIR_EraseRootFromParent_Done,
10827 /* 10556 */ // Label 474: @10556
10828 /* 10556 */ GIM_Try, /*On fail goto*//*Label 475*/ GIMT_Encode4(10576), // Rule ID 160 //
10829 /* 10561 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule115Enabled),
10830 /* 10564 */ // MIs[0] dst
10831 /* 10564 */ // No operand predicates
10832 /* 10564 */ // MIs[0] x
10833 /* 10564 */ // No operand predicates
10834 /* 10564 */ // MIs[0] y
10835 /* 10564 */ // No operand predicates
10836 /* 10564 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner21),
10837 /* 10568 */ // Combiner Rule #115: right_identity_neg_one_fp
10838 /* 10568 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
10839 /* 10571 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10840 /* 10573 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
10841 /* 10575 */ GIR_EraseRootFromParent_Done,
10842 /* 10576 */ // Label 475: @10576
10843 /* 10576 */ GIM_Try, /*On fail goto*//*Label 476*/ GIMT_Encode4(10601), // Rule ID 403 //
10844 /* 10581 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule271Enabled),
10845 /* 10584 */ // MIs[0] dst
10846 /* 10584 */ // No operand predicates
10847 /* 10584 */ // MIs[0] lhs
10848 /* 10584 */ // No operand predicates
10849 /* 10584 */ // MIs[0] rhs
10850 /* 10584 */ // No operand predicates
10851 /* 10584 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
10852 /* 10588 */ // Combiner Rule #271: G_FMUL_commute_fp_constant_to_rhs
10853 /* 10588 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMUL),
10854 /* 10591 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10855 /* 10593 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
10856 /* 10595 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
10857 /* 10597 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10858 /* 10600 */ GIR_EraseRootFromParent_Done,
10859 /* 10601 */ // Label 476: @10601
10860 /* 10601 */ GIM_Try, /*On fail goto*//*Label 477*/ GIMT_Encode4(10612), // Rule ID 300 //
10861 /* 10606 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
10862 /* 10609 */ // MIs[0] d
10863 /* 10609 */ // No operand predicates
10864 /* 10609 */ // MIs[0] mi.src0
10865 /* 10609 */ // No operand predicates
10866 /* 10609 */ // MIs[0] mi.src1
10867 /* 10609 */ // No operand predicates
10868 /* 10609 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[2]]
10869 /* 10609 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
10870 /* 10612 */ // Label 477: @10612
10871 /* 10612 */ GIM_Try, /*On fail goto*//*Label 478*/ GIMT_Encode4(10623), // Rule ID 358 //
10872 /* 10617 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
10873 /* 10620 */ // MIs[0] root
10874 /* 10620 */ // No operand predicates
10875 /* 10620 */ // MIs[0] mi.x
10876 /* 10620 */ // No operand predicates
10877 /* 10620 */ // MIs[0] mi.y
10878 /* 10620 */ // No operand predicates
10879 /* 10620 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[4]]
10880 /* 10620 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
10881 /* 10623 */ // Label 478: @10623
10882 /* 10623 */ GIM_Reject,
10883 /* 10624 */ // Label 67: @10624
10884 /* 10624 */ GIM_Try, /*On fail goto*//*Label 479*/ GIMT_Encode4(10669), // Rule ID 331 //
10885 /* 10629 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule223Enabled),
10886 /* 10632 */ // MIs[0] dst
10887 /* 10632 */ // No operand predicates
10888 /* 10632 */ // MIs[0] nx
10889 /* 10632 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10890 /* 10636 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
10891 /* 10640 */ // MIs[1] x
10892 /* 10640 */ // No operand predicates
10893 /* 10640 */ // MIs[0] ny
10894 /* 10640 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
10895 /* 10644 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
10896 /* 10648 */ // MIs[2] y
10897 /* 10648 */ // No operand predicates
10898 /* 10648 */ // MIs[0] z
10899 /* 10648 */ // No operand predicates
10900 /* 10648 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
10901 /* 10650 */ // Combiner Rule #223: G_FMA_fneg_fneg
10902 /* 10650 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMA),
10903 /* 10653 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10904 /* 10655 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
10905 /* 10659 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
10906 /* 10663 */ GIR_RootToRootCopy, /*OpIdx*/3, // z
10907 /* 10665 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10908 /* 10668 */ GIR_EraseRootFromParent_Done,
10909 /* 10669 */ // Label 479: @10669
10910 /* 10669 */ GIM_Try, /*On fail goto*//*Label 480*/ GIMT_Encode4(10680), // Rule ID 311 //
10911 /* 10674 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
10912 /* 10677 */ // MIs[0] dst
10913 /* 10677 */ // No operand predicates
10914 /* 10677 */ // MIs[0] d.src0
10915 /* 10677 */ // No operand predicates
10916 /* 10677 */ // MIs[0] d.src1
10917 /* 10677 */ // No operand predicates
10918 /* 10677 */ // MIs[0] d.src2
10919 /* 10677 */ // No operand predicates
10920 /* 10677 */ // Combiner Rule #212: constant_fold_fma @ [d[1]]
10921 /* 10677 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
10922 /* 10680 */ // Label 480: @10680
10923 /* 10680 */ GIM_Reject,
10924 /* 10681 */ // Label 68: @10681
10925 /* 10681 */ GIM_Try, /*On fail goto*//*Label 481*/ GIMT_Encode4(10726), // Rule ID 330 //
10926 /* 10686 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule222Enabled),
10927 /* 10689 */ // MIs[0] dst
10928 /* 10689 */ // No operand predicates
10929 /* 10689 */ // MIs[0] nx
10930 /* 10689 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10931 /* 10693 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
10932 /* 10697 */ // MIs[1] x
10933 /* 10697 */ // No operand predicates
10934 /* 10697 */ // MIs[0] ny
10935 /* 10697 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
10936 /* 10701 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
10937 /* 10705 */ // MIs[2] y
10938 /* 10705 */ // No operand predicates
10939 /* 10705 */ // MIs[0] z
10940 /* 10705 */ // No operand predicates
10941 /* 10705 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
10942 /* 10707 */ // Combiner Rule #222: G_FMAD_fneg_fneg
10943 /* 10707 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMAD),
10944 /* 10710 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10945 /* 10712 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
10946 /* 10716 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
10947 /* 10720 */ GIR_RootToRootCopy, /*OpIdx*/3, // z
10948 /* 10722 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10949 /* 10725 */ GIR_EraseRootFromParent_Done,
10950 /* 10726 */ // Label 481: @10726
10951 /* 10726 */ GIM_Try, /*On fail goto*//*Label 482*/ GIMT_Encode4(10737), // Rule ID 310 //
10952 /* 10731 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
10953 /* 10734 */ // MIs[0] dst
10954 /* 10734 */ // No operand predicates
10955 /* 10734 */ // MIs[0] d.src0
10956 /* 10734 */ // No operand predicates
10957 /* 10734 */ // MIs[0] d.src1
10958 /* 10734 */ // No operand predicates
10959 /* 10734 */ // MIs[0] d.src2
10960 /* 10734 */ // No operand predicates
10961 /* 10734 */ // Combiner Rule #212: constant_fold_fma @ [d[0]]
10962 /* 10734 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
10963 /* 10737 */ // Label 482: @10737
10964 /* 10737 */ GIM_Reject,
10965 /* 10738 */ // Label 69: @10738
10966 /* 10738 */ GIM_Try, /*On fail goto*//*Label 483*/ GIMT_Encode4(10781), // Rule ID 329 //
10967 /* 10743 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
10968 /* 10746 */ // MIs[0] dst
10969 /* 10746 */ // No operand predicates
10970 /* 10746 */ // MIs[0] nx
10971 /* 10746 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
10972 /* 10750 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
10973 /* 10754 */ // MIs[1] x
10974 /* 10754 */ // No operand predicates
10975 /* 10754 */ // MIs[0] ny
10976 /* 10754 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
10977 /* 10758 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FNEG),
10978 /* 10762 */ // MIs[2] y
10979 /* 10762 */ // No operand predicates
10980 /* 10762 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
10981 /* 10764 */ // Combiner Rule #221: G_FDIV_fneg_fneg
10982 /* 10764 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FDIV),
10983 /* 10767 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
10984 /* 10769 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
10985 /* 10773 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // y
10986 /* 10777 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
10987 /* 10780 */ GIR_EraseRootFromParent_Done,
10988 /* 10781 */ // Label 483: @10781
10989 /* 10781 */ GIM_Try, /*On fail goto*//*Label 484*/ GIMT_Encode4(10792), // Rule ID 301 //
10990 /* 10786 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
10991 /* 10789 */ // MIs[0] d
10992 /* 10789 */ // No operand predicates
10993 /* 10789 */ // MIs[0] mi.src0
10994 /* 10789 */ // No operand predicates
10995 /* 10789 */ // MIs[0] mi.src1
10996 /* 10789 */ // No operand predicates
10997 /* 10789 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[3]]
10998 /* 10789 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
10999 /* 10792 */ // Label 484: @10792
11000 /* 10792 */ GIM_Try, /*On fail goto*//*Label 485*/ GIMT_Encode4(10803), // Rule ID 361 //
11001 /* 10797 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11002 /* 10800 */ // MIs[0] root
11003 /* 10800 */ // No operand predicates
11004 /* 10800 */ // MIs[0] mi.x
11005 /* 10800 */ // No operand predicates
11006 /* 10800 */ // MIs[0] mi.y
11007 /* 10800 */ // No operand predicates
11008 /* 10800 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[7]]
11009 /* 10800 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11010 /* 10803 */ // Label 485: @10803
11011 /* 10803 */ GIM_Try, /*On fail goto*//*Label 486*/ GIMT_Encode4(10814), // Rule ID 374 //
11012 /* 10808 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule242Enabled),
11013 /* 10811 */ // MIs[0] dst
11014 /* 10811 */ // No operand predicates
11015 /* 10811 */ // MIs[0] src1
11016 /* 10811 */ // No operand predicates
11017 /* 10811 */ // MIs[0] src2
11018 /* 10811 */ // No operand predicates
11019 /* 10811 */ // Combiner Rule #242: fdiv_repeated_divison
11020 /* 10811 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner100),
11021 /* 10814 */ // Label 486: @10814
11022 /* 10814 */ GIM_Reject,
11023 /* 10815 */ // Label 70: @10815
11024 /* 10815 */ GIM_Try, /*On fail goto*//*Label 487*/ GIMT_Encode4(10826), // Rule ID 302 //
11025 /* 10820 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
11026 /* 10823 */ // MIs[0] d
11027 /* 10823 */ // No operand predicates
11028 /* 10823 */ // MIs[0] mi.src0
11029 /* 10823 */ // No operand predicates
11030 /* 10823 */ // MIs[0] mi.src1
11031 /* 10823 */ // No operand predicates
11032 /* 10823 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[4]]
11033 /* 10823 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
11034 /* 10826 */ // Label 487: @10826
11035 /* 10826 */ GIM_Try, /*On fail goto*//*Label 488*/ GIMT_Encode4(10837), // Rule ID 362 //
11036 /* 10831 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11037 /* 10834 */ // MIs[0] root
11038 /* 10834 */ // No operand predicates
11039 /* 10834 */ // MIs[0] mi.x
11040 /* 10834 */ // No operand predicates
11041 /* 10834 */ // MIs[0] mi.y
11042 /* 10834 */ // No operand predicates
11043 /* 10834 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[8]]
11044 /* 10834 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11045 /* 10837 */ // Label 488: @10837
11046 /* 10837 */ GIM_Reject,
11047 /* 10838 */ // Label 71: @10838
11048 /* 10838 */ GIM_Try, /*On fail goto*//*Label 489*/ GIMT_Encode4(10859), // Rule ID 240 //
11049 /* 10843 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
11050 /* 10846 */ // MIs[0] dst
11051 /* 10846 */ // No operand predicates
11052 /* 10846 */ // MIs[0] float
11053 /* 10846 */ // No operand predicates
11054 /* 10846 */ // MIs[0] int
11055 /* 10846 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
11056 /* 10850 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
11057 /* 10854 */ // MIs[1] imm
11058 /* 10854 */ // No operand predicates
11059 /* 10854 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11060 /* 10856 */ // Combiner Rule #186: expand_const_fpowi
11061 /* 10856 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner67),
11062 /* 10859 */ // Label 489: @10859
11063 /* 10859 */ GIM_Reject,
11064 /* 10860 */ // Label 72: @10860
11065 /* 10860 */ GIM_Try, /*On fail goto*//*Label 490*/ GIMT_Encode4(10881), // Rule ID 210 //
11066 /* 10865 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule160Enabled),
11067 /* 10868 */ // MIs[0] dst
11068 /* 10868 */ // No operand predicates
11069 /* 10868 */ // MIs[0] src0
11070 /* 10868 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11071 /* 10872 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
11072 /* 10876 */ // MIs[1] cst
11073 /* 10876 */ // No operand predicates
11074 /* 10876 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11075 /* 10878 */ // Combiner Rule #160: constant_fold_flog2
11076 /* 10878 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
11077 /* 10881 */ // Label 490: @10881
11078 /* 10881 */ GIM_Reject,
11079 /* 10882 */ // Label 73: @10882
11080 /* 10882 */ GIM_Try, /*On fail goto*//*Label 491*/ GIMT_Encode4(10903), // Rule ID 207 //
11081 /* 10887 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
11082 /* 10890 */ // MIs[0] dst
11083 /* 10890 */ // No operand predicates
11084 /* 10890 */ // MIs[0] src0
11085 /* 10890 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11086 /* 10894 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
11087 /* 10898 */ // MIs[1] cst
11088 /* 10898 */ // No operand predicates
11089 /* 10898 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11090 /* 10900 */ // Combiner Rule #157: constant_fold_fneg
11091 /* 10900 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
11092 /* 10903 */ // Label 491: @10903
11093 /* 10903 */ GIM_Try, /*On fail goto*//*Label 492*/ GIMT_Encode4(10932), // Rule ID 146 //
11094 /* 10908 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
11095 /* 10911 */ // MIs[0] dst
11096 /* 10911 */ // No operand predicates
11097 /* 10911 */ // MIs[0] t
11098 /* 10911 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11099 /* 10915 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
11100 /* 10919 */ // MIs[1] src
11101 /* 10919 */ // No operand predicates
11102 /* 10919 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
11103 /* 10924 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11104 /* 10926 */ // Combiner Rule #102: fneg_fneg_fold
11105 /* 10926 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
11106 /* 10931 */ GIR_EraseRootFromParent_Done,
11107 /* 10932 */ // Label 492: @10932
11108 /* 10932 */ GIM_Try, /*On fail goto*//*Label 493*/ GIMT_Encode4(10943), // Rule ID 472 //
11109 /* 10937 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule334Enabled),
11110 /* 10940 */ // MIs[0] dst
11111 /* 10940 */ // No operand predicates
11112 /* 10940 */ // MIs[0] src
11113 /* 10940 */ // No operand predicates
11114 /* 10940 */ // Combiner Rule #334: foldable_fneg
11115 /* 10940 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
11116 /* 10943 */ // Label 493: @10943
11117 /* 10943 */ GIM_Reject,
11118 /* 10944 */ // Label 74: @10944
11119 /* 10944 */ GIM_Try, /*On fail goto*//*Label 494*/ GIMT_Encode4(10965), // Rule ID 212 //
11120 /* 10949 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
11121 /* 10952 */ // MIs[0] dst
11122 /* 10952 */ // No operand predicates
11123 /* 10952 */ // MIs[0] src0
11124 /* 10952 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11125 /* 10956 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
11126 /* 10960 */ // MIs[1] cst
11127 /* 10960 */ // No operand predicates
11128 /* 10960 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11129 /* 10962 */ // Combiner Rule #162: constant_fold_fpext
11130 /* 10962 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
11131 /* 10965 */ // Label 494: @10965
11132 /* 10965 */ GIM_Reject,
11133 /* 10966 */ // Label 75: @10966
11134 /* 10966 */ GIM_Try, /*On fail goto*//*Label 495*/ GIMT_Encode4(10987), // Rule ID 211 //
11135 /* 10971 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
11136 /* 10974 */ // MIs[0] dst
11137 /* 10974 */ // No operand predicates
11138 /* 10974 */ // MIs[0] src0
11139 /* 10974 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11140 /* 10978 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
11141 /* 10982 */ // MIs[1] cst
11142 /* 10982 */ // No operand predicates
11143 /* 10982 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11144 /* 10984 */ // Combiner Rule #161: constant_fold_fptrunc
11145 /* 10984 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
11146 /* 10987 */ // Label 495: @10987
11147 /* 10987 */ GIM_Try, /*On fail goto*//*Label 496*/ GIMT_Encode4(11020), // Rule ID 157 //
11148 /* 10992 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
11149 /* 10995 */ // MIs[0] dst
11150 /* 10995 */ // No operand predicates
11151 /* 10995 */ // MIs[0] src1
11152 /* 10995 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11153 /* 10999 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT),
11154 /* 11003 */ // MIs[1] src0
11155 /* 11003 */ // No operand predicates
11156 /* 11003 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
11157 /* 11007 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
11158 /* 11012 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11159 /* 11014 */ // Combiner Rule #112: fptrunc_fpext_fold
11160 /* 11014 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
11161 /* 11019 */ GIR_EraseRootFromParent_Done,
11162 /* 11020 */ // Label 496: @11020
11163 /* 11020 */ GIM_Reject,
11164 /* 11021 */ // Label 76: @11021
11165 /* 11021 */ GIM_Try, /*On fail goto*//*Label 497*/ GIMT_Encode4(11045), // Rule ID 102 //
11166 /* 11026 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
11167 /* 11029 */ // MIs[0] dst
11168 /* 11029 */ // No operand predicates
11169 /* 11029 */ // MIs[0] __unary_undef_to_undef_match_0.x
11170 /* 11029 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11171 /* 11033 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
11172 /* 11037 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11173 /* 11039 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[5]]
11174 /* 11039 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
11175 /* 11042 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11176 /* 11044 */ GIR_EraseRootFromParent_Done,
11177 /* 11045 */ // Label 497: @11045
11178 /* 11045 */ GIM_Reject,
11179 /* 11046 */ // Label 77: @11046
11180 /* 11046 */ GIM_Try, /*On fail goto*//*Label 498*/ GIMT_Encode4(11070), // Rule ID 103 //
11181 /* 11051 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
11182 /* 11054 */ // MIs[0] dst
11183 /* 11054 */ // No operand predicates
11184 /* 11054 */ // MIs[0] __unary_undef_to_undef_match_0.x
11185 /* 11054 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11186 /* 11058 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
11187 /* 11062 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11188 /* 11064 */ // Combiner Rule #82: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[6]]
11189 /* 11064 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
11190 /* 11067 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11191 /* 11069 */ GIR_EraseRootFromParent_Done,
11192 /* 11070 */ // Label 498: @11070
11193 /* 11070 */ GIM_Reject,
11194 /* 11071 */ // Label 78: @11071
11195 /* 11071 */ GIM_Try, /*On fail goto*//*Label 499*/ GIMT_Encode4(11092), // Rule ID 83 //
11196 /* 11076 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
11197 /* 11079 */ // MIs[0] dst
11198 /* 11079 */ // No operand predicates
11199 /* 11079 */ // MIs[0] __undef_to_fp_zero_match_0.x
11200 /* 11079 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11201 /* 11083 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
11202 /* 11087 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11203 /* 11089 */ // Combiner Rule #76: undef_to_fp_zero @ [__undef_to_fp_zero_match_0[1]]
11204 /* 11089 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
11205 /* 11092 */ // Label 499: @11092
11206 /* 11092 */ GIM_Try, /*On fail goto*//*Label 500*/ GIMT_Encode4(11107), // Rule ID 220 //
11207 /* 11097 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
11208 /* 11100 */ // MIs[0] dst
11209 /* 11100 */ // No operand predicates
11210 /* 11100 */ // MIs[0] Operand 1
11211 /* 11100 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
11212 /* 11104 */ // Combiner Rule #170: itof_const_zero_fold_si
11213 /* 11104 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
11214 /* 11107 */ // Label 500: @11107
11215 /* 11107 */ GIM_Reject,
11216 /* 11108 */ // Label 79: @11108
11217 /* 11108 */ GIM_Try, /*On fail goto*//*Label 501*/ GIMT_Encode4(11129), // Rule ID 82 //
11218 /* 11113 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
11219 /* 11116 */ // MIs[0] dst
11220 /* 11116 */ // No operand predicates
11221 /* 11116 */ // MIs[0] __undef_to_fp_zero_match_0.x
11222 /* 11116 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11223 /* 11120 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
11224 /* 11124 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11225 /* 11126 */ // Combiner Rule #76: undef_to_fp_zero @ [__undef_to_fp_zero_match_0[0]]
11226 /* 11126 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
11227 /* 11129 */ // Label 501: @11129
11228 /* 11129 */ GIM_Try, /*On fail goto*//*Label 502*/ GIMT_Encode4(11144), // Rule ID 221 //
11229 /* 11134 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
11230 /* 11137 */ // MIs[0] dst
11231 /* 11137 */ // No operand predicates
11232 /* 11137 */ // MIs[0] Operand 1
11233 /* 11137 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
11234 /* 11141 */ // Combiner Rule #171: itof_const_zero_fold_ui
11235 /* 11141 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
11236 /* 11144 */ // Label 502: @11144
11237 /* 11144 */ GIM_Reject,
11238 /* 11145 */ // Label 80: @11145
11239 /* 11145 */ GIM_Try, /*On fail goto*//*Label 503*/ GIMT_Encode4(11174), // Rule ID 26 //
11240 /* 11150 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
11241 /* 11153 */ // MIs[0] dst
11242 /* 11153 */ // No operand predicates
11243 /* 11153 */ // MIs[0] src
11244 /* 11153 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11245 /* 11157 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FABS),
11246 /* 11161 */ // MIs[1] __idempotent_prop_match_0.x
11247 /* 11161 */ // No operand predicates
11248 /* 11161 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11249 /* 11166 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11250 /* 11168 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[1]]
11251 /* 11168 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11252 /* 11173 */ GIR_EraseRootFromParent_Done,
11253 /* 11174 */ // Label 503: @11174
11254 /* 11174 */ GIM_Try, /*On fail goto*//*Label 504*/ GIMT_Encode4(11195), // Rule ID 208 //
11255 /* 11179 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule158Enabled),
11256 /* 11182 */ // MIs[0] dst
11257 /* 11182 */ // No operand predicates
11258 /* 11182 */ // MIs[0] src0
11259 /* 11182 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11260 /* 11186 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
11261 /* 11190 */ // MIs[1] cst
11262 /* 11190 */ // No operand predicates
11263 /* 11190 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11264 /* 11192 */ // Combiner Rule #158: constant_fold_fabs
11265 /* 11192 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
11266 /* 11195 */ // Label 504: @11195
11267 /* 11195 */ GIM_Try, /*On fail goto*//*Label 505*/ GIMT_Encode4(11223), // Rule ID 323 //
11268 /* 11200 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
11269 /* 11203 */ // MIs[0] dst
11270 /* 11203 */ // No operand predicates
11271 /* 11203 */ // MIs[0] tmp
11272 /* 11203 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11273 /* 11207 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
11274 /* 11211 */ // MIs[1] x
11275 /* 11211 */ // No operand predicates
11276 /* 11211 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11277 /* 11213 */ // Combiner Rule #215: fabs_fneg_fold
11278 /* 11213 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FABS),
11279 /* 11216 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11280 /* 11218 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
11281 /* 11222 */ GIR_EraseRootFromParent_Done,
11282 /* 11223 */ // Label 505: @11223
11283 /* 11223 */ GIM_Try, /*On fail goto*//*Label 506*/ GIMT_Encode4(11244), // Rule ID 473 //
11284 /* 11228 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule335Enabled),
11285 /* 11231 */ // MIs[0] dst
11286 /* 11231 */ // No operand predicates
11287 /* 11231 */ // MIs[0] round
11288 /* 11231 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11289 /* 11235 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPTRUNC),
11290 /* 11239 */ // MIs[1] src
11291 /* 11239 */ // No operand predicates
11292 /* 11239 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11293 /* 11241 */ // Combiner Rule #335: fold_fabs_fptrunc
11294 /* 11241 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
11295 /* 11244 */ // Label 506: @11244
11296 /* 11244 */ GIM_Reject,
11297 /* 11245 */ // Label 81: @11245
11298 /* 11245 */ GIM_Try, /*On fail goto*//*Label 507*/ GIMT_Encode4(11256), // Rule ID 303 //
11299 /* 11250 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
11300 /* 11253 */ // MIs[0] d
11301 /* 11253 */ // No operand predicates
11302 /* 11253 */ // MIs[0] mi.src0
11303 /* 11253 */ // No operand predicates
11304 /* 11253 */ // MIs[0] mi.src1
11305 /* 11253 */ // No operand predicates
11306 /* 11253 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[5]]
11307 /* 11253 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
11308 /* 11256 */ // Label 507: @11256
11309 /* 11256 */ GIM_Reject,
11310 /* 11257 */ // Label 82: @11257
11311 /* 11257 */ GIM_Try, /*On fail goto*//*Label 508*/ GIMT_Encode4(11286), // Rule ID 27 //
11312 /* 11262 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
11313 /* 11265 */ // MIs[0] dst
11314 /* 11265 */ // No operand predicates
11315 /* 11265 */ // MIs[0] src
11316 /* 11265 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11317 /* 11269 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCANONICALIZE),
11318 /* 11273 */ // MIs[1] __idempotent_prop_match_0.x
11319 /* 11273 */ // No operand predicates
11320 /* 11273 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11321 /* 11278 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11322 /* 11280 */ // Combiner Rule #24: idempotent_prop @ [__idempotent_prop_match_0[2]]
11323 /* 11280 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11324 /* 11285 */ GIR_EraseRootFromParent_Done,
11325 /* 11286 */ // Label 508: @11286
11326 /* 11286 */ GIM_Reject,
11327 /* 11287 */ // Label 83: @11287
11328 /* 11287 */ GIM_Try, /*On fail goto*//*Label 509*/ GIMT_Encode4(11310), // Rule ID 232 //
11329 /* 11292 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
11330 /* 11295 */ // MIs[0] dst
11331 /* 11295 */ // No operand predicates
11332 /* 11295 */ // MIs[0] lhs
11333 /* 11295 */ // No operand predicates
11334 /* 11295 */ // MIs[0] rhs
11335 /* 11295 */ // No operand predicates
11336 /* 11295 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner32),
11337 /* 11299 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
11338 /* 11304 */ // Combiner Rule #182: minmax_nan_num_lhs @ [__minmax_nan_num_lhs_match_0[0]]
11339 /* 11304 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
11340 /* 11309 */ GIR_EraseRootFromParent_Done,
11341 /* 11310 */ // Label 509: @11310
11342 /* 11310 */ GIM_Try, /*On fail goto*//*Label 510*/ GIMT_Encode4(11333), // Rule ID 234 //
11343 /* 11315 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
11344 /* 11318 */ // MIs[0] dst
11345 /* 11318 */ // No operand predicates
11346 /* 11318 */ // MIs[0] lhs
11347 /* 11318 */ // No operand predicates
11348 /* 11318 */ // MIs[0] rhs
11349 /* 11318 */ // No operand predicates
11350 /* 11318 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner33),
11351 /* 11322 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11352 /* 11327 */ // Combiner Rule #183: minmax_nan_num_rhs @ [__minmax_nan_num_rhs_match_0[0]]
11353 /* 11327 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11354 /* 11332 */ GIR_EraseRootFromParent_Done,
11355 /* 11333 */ // Label 510: @11333
11356 /* 11333 */ GIM_Try, /*On fail goto*//*Label 511*/ GIMT_Encode4(11358), // Rule ID 404 //
11357 /* 11338 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule272Enabled),
11358 /* 11341 */ // MIs[0] dst
11359 /* 11341 */ // No operand predicates
11360 /* 11341 */ // MIs[0] lhs
11361 /* 11341 */ // No operand predicates
11362 /* 11341 */ // MIs[0] rhs
11363 /* 11341 */ // No operand predicates
11364 /* 11341 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
11365 /* 11345 */ // Combiner Rule #272: G_FMINNUM_commute_fp_constant_to_rhs
11366 /* 11345 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMINNUM),
11367 /* 11348 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11368 /* 11350 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11369 /* 11352 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11370 /* 11354 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11371 /* 11357 */ GIR_EraseRootFromParent_Done,
11372 /* 11358 */ // Label 511: @11358
11373 /* 11358 */ GIM_Try, /*On fail goto*//*Label 512*/ GIMT_Encode4(11369), // Rule ID 304 //
11374 /* 11363 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
11375 /* 11366 */ // MIs[0] d
11376 /* 11366 */ // No operand predicates
11377 /* 11366 */ // MIs[0] mi.src0
11378 /* 11366 */ // No operand predicates
11379 /* 11366 */ // MIs[0] mi.src1
11380 /* 11366 */ // No operand predicates
11381 /* 11366 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[6]]
11382 /* 11366 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
11383 /* 11369 */ // Label 512: @11369
11384 /* 11369 */ GIM_Try, /*On fail goto*//*Label 513*/ GIMT_Encode4(11380), // Rule ID 363 //
11385 /* 11374 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11386 /* 11377 */ // MIs[0] root
11387 /* 11377 */ // No operand predicates
11388 /* 11377 */ // MIs[0] mi.x
11389 /* 11377 */ // No operand predicates
11390 /* 11377 */ // MIs[0] mi.y
11391 /* 11377 */ // No operand predicates
11392 /* 11377 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[9]]
11393 /* 11377 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11394 /* 11380 */ // Label 513: @11380
11395 /* 11380 */ GIM_Reject,
11396 /* 11381 */ // Label 84: @11381
11397 /* 11381 */ GIM_Try, /*On fail goto*//*Label 514*/ GIMT_Encode4(11404), // Rule ID 233 //
11398 /* 11386 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
11399 /* 11389 */ // MIs[0] dst
11400 /* 11389 */ // No operand predicates
11401 /* 11389 */ // MIs[0] lhs
11402 /* 11389 */ // No operand predicates
11403 /* 11389 */ // MIs[0] rhs
11404 /* 11389 */ // No operand predicates
11405 /* 11389 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner32),
11406 /* 11393 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
11407 /* 11398 */ // Combiner Rule #182: minmax_nan_num_lhs @ [__minmax_nan_num_lhs_match_0[1]]
11408 /* 11398 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
11409 /* 11403 */ GIR_EraseRootFromParent_Done,
11410 /* 11404 */ // Label 514: @11404
11411 /* 11404 */ GIM_Try, /*On fail goto*//*Label 515*/ GIMT_Encode4(11427), // Rule ID 235 //
11412 /* 11409 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
11413 /* 11412 */ // MIs[0] dst
11414 /* 11412 */ // No operand predicates
11415 /* 11412 */ // MIs[0] lhs
11416 /* 11412 */ // No operand predicates
11417 /* 11412 */ // MIs[0] rhs
11418 /* 11412 */ // No operand predicates
11419 /* 11412 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner33),
11420 /* 11416 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11421 /* 11421 */ // Combiner Rule #183: minmax_nan_num_rhs @ [__minmax_nan_num_rhs_match_0[1]]
11422 /* 11421 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11423 /* 11426 */ GIR_EraseRootFromParent_Done,
11424 /* 11427 */ // Label 515: @11427
11425 /* 11427 */ GIM_Try, /*On fail goto*//*Label 516*/ GIMT_Encode4(11452), // Rule ID 405 //
11426 /* 11432 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule273Enabled),
11427 /* 11435 */ // MIs[0] dst
11428 /* 11435 */ // No operand predicates
11429 /* 11435 */ // MIs[0] lhs
11430 /* 11435 */ // No operand predicates
11431 /* 11435 */ // MIs[0] rhs
11432 /* 11435 */ // No operand predicates
11433 /* 11435 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
11434 /* 11439 */ // Combiner Rule #273: G_FMAXNUM_commute_fp_constant_to_rhs
11435 /* 11439 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMAXNUM),
11436 /* 11442 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11437 /* 11444 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11438 /* 11446 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11439 /* 11448 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11440 /* 11451 */ GIR_EraseRootFromParent_Done,
11441 /* 11452 */ // Label 516: @11452
11442 /* 11452 */ GIM_Try, /*On fail goto*//*Label 517*/ GIMT_Encode4(11463), // Rule ID 305 //
11443 /* 11457 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
11444 /* 11460 */ // MIs[0] d
11445 /* 11460 */ // No operand predicates
11446 /* 11460 */ // MIs[0] mi.src0
11447 /* 11460 */ // No operand predicates
11448 /* 11460 */ // MIs[0] mi.src1
11449 /* 11460 */ // No operand predicates
11450 /* 11460 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[7]]
11451 /* 11460 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
11452 /* 11463 */ // Label 517: @11463
11453 /* 11463 */ GIM_Try, /*On fail goto*//*Label 518*/ GIMT_Encode4(11474), // Rule ID 364 //
11454 /* 11468 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11455 /* 11471 */ // MIs[0] root
11456 /* 11471 */ // No operand predicates
11457 /* 11471 */ // MIs[0] mi.x
11458 /* 11471 */ // No operand predicates
11459 /* 11471 */ // MIs[0] mi.y
11460 /* 11471 */ // No operand predicates
11461 /* 11471 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[10]]
11462 /* 11471 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11463 /* 11474 */ // Label 518: @11474
11464 /* 11474 */ GIM_Reject,
11465 /* 11475 */ // Label 85: @11475
11466 /* 11475 */ GIM_Try, /*On fail goto*//*Label 519*/ GIMT_Encode4(11500), // Rule ID 406 //
11467 /* 11480 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule274Enabled),
11468 /* 11483 */ // MIs[0] dst
11469 /* 11483 */ // No operand predicates
11470 /* 11483 */ // MIs[0] lhs
11471 /* 11483 */ // No operand predicates
11472 /* 11483 */ // MIs[0] rhs
11473 /* 11483 */ // No operand predicates
11474 /* 11483 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
11475 /* 11487 */ // Combiner Rule #274: G_FMINNUM_IEEE_commute_fp_constant_to_rhs
11476 /* 11487 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMINNUM_IEEE),
11477 /* 11490 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11478 /* 11492 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11479 /* 11494 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11480 /* 11496 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11481 /* 11499 */ GIR_EraseRootFromParent_Done,
11482 /* 11500 */ // Label 519: @11500
11483 /* 11500 */ GIM_Reject,
11484 /* 11501 */ // Label 86: @11501
11485 /* 11501 */ GIM_Try, /*On fail goto*//*Label 520*/ GIMT_Encode4(11526), // Rule ID 407 //
11486 /* 11506 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule275Enabled),
11487 /* 11509 */ // MIs[0] dst
11488 /* 11509 */ // No operand predicates
11489 /* 11509 */ // MIs[0] lhs
11490 /* 11509 */ // No operand predicates
11491 /* 11509 */ // MIs[0] rhs
11492 /* 11509 */ // No operand predicates
11493 /* 11509 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
11494 /* 11513 */ // Combiner Rule #275: G_FMAXNUM_IEEE_commute_fp_constant_to_rhs
11495 /* 11513 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMAXNUM_IEEE),
11496 /* 11516 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11497 /* 11518 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11498 /* 11520 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11499 /* 11522 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11500 /* 11525 */ GIR_EraseRootFromParent_Done,
11501 /* 11526 */ // Label 520: @11526
11502 /* 11526 */ GIM_Reject,
11503 /* 11527 */ // Label 87: @11527
11504 /* 11527 */ GIM_Try, /*On fail goto*//*Label 521*/ GIMT_Encode4(11550), // Rule ID 236 //
11505 /* 11532 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
11506 /* 11535 */ // MIs[0] dst
11507 /* 11535 */ // No operand predicates
11508 /* 11535 */ // MIs[0] lhs
11509 /* 11535 */ // No operand predicates
11510 /* 11535 */ // MIs[0] rhs
11511 /* 11535 */ // No operand predicates
11512 /* 11535 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner32),
11513 /* 11539 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11514 /* 11544 */ // Combiner Rule #184: minmax_nan_ieee_lhs @ [__minmax_nan_ieee_lhs_match_0[0]]
11515 /* 11544 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11516 /* 11549 */ GIR_EraseRootFromParent_Done,
11517 /* 11550 */ // Label 521: @11550
11518 /* 11550 */ GIM_Try, /*On fail goto*//*Label 522*/ GIMT_Encode4(11573), // Rule ID 238 //
11519 /* 11555 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
11520 /* 11558 */ // MIs[0] dst
11521 /* 11558 */ // No operand predicates
11522 /* 11558 */ // MIs[0] lhs
11523 /* 11558 */ // No operand predicates
11524 /* 11558 */ // MIs[0] rhs
11525 /* 11558 */ // No operand predicates
11526 /* 11558 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner33),
11527 /* 11562 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
11528 /* 11567 */ // Combiner Rule #185: minmax_nan_ieee_rhs @ [__minmax_nan_ieee_rhs_match_0[0]]
11529 /* 11567 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
11530 /* 11572 */ GIR_EraseRootFromParent_Done,
11531 /* 11573 */ // Label 522: @11573
11532 /* 11573 */ GIM_Try, /*On fail goto*//*Label 523*/ GIMT_Encode4(11598), // Rule ID 408 //
11533 /* 11578 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule276Enabled),
11534 /* 11581 */ // MIs[0] dst
11535 /* 11581 */ // No operand predicates
11536 /* 11581 */ // MIs[0] lhs
11537 /* 11581 */ // No operand predicates
11538 /* 11581 */ // MIs[0] rhs
11539 /* 11581 */ // No operand predicates
11540 /* 11581 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
11541 /* 11585 */ // Combiner Rule #276: G_FMINIMUM_commute_fp_constant_to_rhs
11542 /* 11585 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMINIMUM),
11543 /* 11588 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11544 /* 11590 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11545 /* 11592 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11546 /* 11594 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11547 /* 11597 */ GIR_EraseRootFromParent_Done,
11548 /* 11598 */ // Label 523: @11598
11549 /* 11598 */ GIM_Try, /*On fail goto*//*Label 524*/ GIMT_Encode4(11609), // Rule ID 306 //
11550 /* 11603 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
11551 /* 11606 */ // MIs[0] d
11552 /* 11606 */ // No operand predicates
11553 /* 11606 */ // MIs[0] mi.src0
11554 /* 11606 */ // No operand predicates
11555 /* 11606 */ // MIs[0] mi.src1
11556 /* 11606 */ // No operand predicates
11557 /* 11606 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[8]]
11558 /* 11606 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
11559 /* 11609 */ // Label 524: @11609
11560 /* 11609 */ GIM_Try, /*On fail goto*//*Label 525*/ GIMT_Encode4(11620), // Rule ID 365 //
11561 /* 11614 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11562 /* 11617 */ // MIs[0] root
11563 /* 11617 */ // No operand predicates
11564 /* 11617 */ // MIs[0] mi.x
11565 /* 11617 */ // No operand predicates
11566 /* 11617 */ // MIs[0] mi.y
11567 /* 11617 */ // No operand predicates
11568 /* 11617 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[11]]
11569 /* 11617 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11570 /* 11620 */ // Label 525: @11620
11571 /* 11620 */ GIM_Reject,
11572 /* 11621 */ // Label 88: @11621
11573 /* 11621 */ GIM_Try, /*On fail goto*//*Label 526*/ GIMT_Encode4(11644), // Rule ID 237 //
11574 /* 11626 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
11575 /* 11629 */ // MIs[0] dst
11576 /* 11629 */ // No operand predicates
11577 /* 11629 */ // MIs[0] lhs
11578 /* 11629 */ // No operand predicates
11579 /* 11629 */ // MIs[0] rhs
11580 /* 11629 */ // No operand predicates
11581 /* 11629 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner32),
11582 /* 11633 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11583 /* 11638 */ // Combiner Rule #184: minmax_nan_ieee_lhs @ [__minmax_nan_ieee_lhs_match_0[1]]
11584 /* 11638 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11585 /* 11643 */ GIR_EraseRootFromParent_Done,
11586 /* 11644 */ // Label 526: @11644
11587 /* 11644 */ GIM_Try, /*On fail goto*//*Label 527*/ GIMT_Encode4(11667), // Rule ID 239 //
11588 /* 11649 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
11589 /* 11652 */ // MIs[0] dst
11590 /* 11652 */ // No operand predicates
11591 /* 11652 */ // MIs[0] lhs
11592 /* 11652 */ // No operand predicates
11593 /* 11652 */ // MIs[0] rhs
11594 /* 11652 */ // No operand predicates
11595 /* 11652 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner33),
11596 /* 11656 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
11597 /* 11661 */ // Combiner Rule #185: minmax_nan_ieee_rhs @ [__minmax_nan_ieee_rhs_match_0[1]]
11598 /* 11661 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
11599 /* 11666 */ GIR_EraseRootFromParent_Done,
11600 /* 11667 */ // Label 527: @11667
11601 /* 11667 */ GIM_Try, /*On fail goto*//*Label 528*/ GIMT_Encode4(11692), // Rule ID 409 //
11602 /* 11672 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule277Enabled),
11603 /* 11675 */ // MIs[0] dst
11604 /* 11675 */ // No operand predicates
11605 /* 11675 */ // MIs[0] lhs
11606 /* 11675 */ // No operand predicates
11607 /* 11675 */ // MIs[0] rhs
11608 /* 11675 */ // No operand predicates
11609 /* 11675 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner49),
11610 /* 11679 */ // Combiner Rule #277: G_FMAXIMUM_commute_fp_constant_to_rhs
11611 /* 11679 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FMAXIMUM),
11612 /* 11682 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11613 /* 11684 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11614 /* 11686 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11615 /* 11688 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11616 /* 11691 */ GIR_EraseRootFromParent_Done,
11617 /* 11692 */ // Label 528: @11692
11618 /* 11692 */ GIM_Try, /*On fail goto*//*Label 529*/ GIMT_Encode4(11703), // Rule ID 307 //
11619 /* 11697 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
11620 /* 11700 */ // MIs[0] d
11621 /* 11700 */ // No operand predicates
11622 /* 11700 */ // MIs[0] mi.src0
11623 /* 11700 */ // No operand predicates
11624 /* 11700 */ // MIs[0] mi.src1
11625 /* 11700 */ // No operand predicates
11626 /* 11700 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[9]]
11627 /* 11700 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
11628 /* 11703 */ // Label 529: @11703
11629 /* 11703 */ GIM_Try, /*On fail goto*//*Label 530*/ GIMT_Encode4(11714), // Rule ID 366 //
11630 /* 11708 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11631 /* 11711 */ // MIs[0] root
11632 /* 11711 */ // No operand predicates
11633 /* 11711 */ // MIs[0] mi.x
11634 /* 11711 */ // No operand predicates
11635 /* 11711 */ // MIs[0] mi.y
11636 /* 11711 */ // No operand predicates
11637 /* 11711 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[12]]
11638 /* 11711 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11639 /* 11714 */ // Label 530: @11714
11640 /* 11714 */ GIM_Reject,
11641 /* 11715 */ // Label 89: @11715
11642 /* 11715 */ GIM_Try, /*On fail goto*//*Label 531*/ GIMT_Encode4(11726), // Rule ID 308 //
11643 /* 11720 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
11644 /* 11723 */ // MIs[0] d
11645 /* 11723 */ // No operand predicates
11646 /* 11723 */ // MIs[0] mi.src0
11647 /* 11723 */ // No operand predicates
11648 /* 11723 */ // MIs[0] mi.src1
11649 /* 11723 */ // No operand predicates
11650 /* 11723 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[10]]
11651 /* 11723 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
11652 /* 11726 */ // Label 531: @11726
11653 /* 11726 */ GIM_Reject,
11654 /* 11727 */ // Label 90: @11727
11655 /* 11727 */ GIM_Try, /*On fail goto*//*Label 532*/ GIMT_Encode4(11738), // Rule ID 309 //
11656 /* 11732 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
11657 /* 11735 */ // MIs[0] d
11658 /* 11735 */ // No operand predicates
11659 /* 11735 */ // MIs[0] mi.src0
11660 /* 11735 */ // No operand predicates
11661 /* 11735 */ // MIs[0] mi.src1
11662 /* 11735 */ // No operand predicates
11663 /* 11735 */ // Combiner Rule #211: constant_fold_fp_binop @ [mi[11]]
11664 /* 11735 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
11665 /* 11738 */ // Label 532: @11738
11666 /* 11738 */ GIM_Reject,
11667 /* 11739 */ // Label 91: @11739
11668 /* 11739 */ GIM_Try, /*On fail goto*//*Label 533*/ GIMT_Encode4(11776), // Rule ID 222 //
11669 /* 11744 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
11670 /* 11747 */ // MIs[0] dst
11671 /* 11747 */ // No operand predicates
11672 /* 11747 */ // MIs[0] base
11673 /* 11747 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11674 /* 11751 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
11675 /* 11755 */ // MIs[1] c1reg
11676 /* 11755 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
11677 /* 11759 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
11678 /* 11763 */ // MIs[2] c1imm
11679 /* 11763 */ // No operand predicates
11680 /* 11763 */ // MIs[0] c2reg
11681 /* 11763 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
11682 /* 11767 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
11683 /* 11771 */ // MIs[3] c2imm
11684 /* 11771 */ // No operand predicates
11685 /* 11771 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
11686 /* 11773 */ // Combiner Rule #172: const_ptradd_to_i2p
11687 /* 11773 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner64),
11688 /* 11776 */ // Label 533: @11776
11689 /* 11776 */ GIM_Try, /*On fail goto*//*Label 534*/ GIMT_Encode4(11817), // Rule ID 242 //
11690 /* 11781 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
11691 /* 11784 */ // MIs[0] dst
11692 /* 11784 */ // No operand predicates
11693 /* 11784 */ // MIs[0] base
11694 /* 11784 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11695 /* 11788 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
11696 /* 11792 */ // MIs[1] Operand 1
11697 /* 11792 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
11698 /* 11803 */ // MIs[0] offset
11699 /* 11803 */ // No operand predicates
11700 /* 11803 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner34),
11701 /* 11807 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11702 /* 11809 */ // Combiner Rule #188: ptr_add_with_zero_scalar
11703 /* 11809 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_INTTOPTR),
11704 /* 11812 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11705 /* 11814 */ GIR_RootToRootCopy, /*OpIdx*/2, // offset
11706 /* 11816 */ GIR_EraseRootFromParent_Done,
11707 /* 11817 */ // Label 534: @11817
11708 /* 11817 */ GIM_Try, /*On fail goto*//*Label 535*/ GIMT_Encode4(11840), // Rule ID 125 //
11709 /* 11822 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
11710 /* 11825 */ // MIs[0] dst
11711 /* 11825 */ // No operand predicates
11712 /* 11825 */ // MIs[0] lhs
11713 /* 11825 */ // No operand predicates
11714 /* 11825 */ // MIs[0] Operand 2
11715 /* 11825 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
11716 /* 11829 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11717 /* 11834 */ // Combiner Rule #92: right_identity_zero @ [__right_identity_zero_match_0[7]]
11718 /* 11834 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11719 /* 11839 */ GIR_EraseRootFromParent_Done,
11720 /* 11840 */ // Label 535: @11840
11721 /* 11840 */ GIM_Try, /*On fail goto*//*Label 536*/ GIMT_Encode4(11860), // Rule ID 243 //
11722 /* 11845 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule189Enabled),
11723 /* 11848 */ // MIs[0] dst
11724 /* 11848 */ // No operand predicates
11725 /* 11848 */ // MIs[0] base
11726 /* 11848 */ // No operand predicates
11727 /* 11848 */ // MIs[0] offset
11728 /* 11848 */ // No operand predicates
11729 /* 11848 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner35),
11730 /* 11852 */ // Combiner Rule #189: ptr_add_with_zero_vector
11731 /* 11852 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_INTTOPTR),
11732 /* 11855 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11733 /* 11857 */ GIR_RootToRootCopy, /*OpIdx*/2, // offset
11734 /* 11859 */ GIR_EraseRootFromParent_Done,
11735 /* 11860 */ // Label 536: @11860
11736 /* 11860 */ GIM_Try, /*On fail goto*//*Label 537*/ GIMT_Encode4(11871), // Rule ID 170 //
11737 /* 11865 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule120Enabled),
11738 /* 11868 */ // MIs[0] dst
11739 /* 11868 */ // No operand predicates
11740 /* 11868 */ // MIs[0] base
11741 /* 11868 */ // No operand predicates
11742 /* 11868 */ // MIs[0] offset
11743 /* 11868 */ // No operand predicates
11744 /* 11868 */ // Combiner Rule #120: reassoc_ptradd
11745 /* 11868 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
11746 /* 11871 */ // Label 537: @11871
11747 /* 11871 */ GIM_Try, /*On fail goto*//*Label 538*/ GIMT_Encode4(11882), // Rule ID 172 //
11748 /* 11876 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule122Enabled),
11749 /* 11879 */ // MIs[0] dst
11750 /* 11879 */ // No operand predicates
11751 /* 11879 */ // MIs[0] base
11752 /* 11879 */ // No operand predicates
11753 /* 11879 */ // MIs[0] offset
11754 /* 11879 */ // No operand predicates
11755 /* 11879 */ // Combiner Rule #122: ptr_add_immed_chain
11756 /* 11879 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner42),
11757 /* 11882 */ // Label 538: @11882
11758 /* 11882 */ GIM_Try, /*On fail goto*//*Label 539*/ GIMT_Encode4(11893), // Rule ID 281 //
11759 /* 11887 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
11760 /* 11890 */ // MIs[0] d
11761 /* 11890 */ // No operand predicates
11762 /* 11890 */ // MIs[0] mi.src0
11763 /* 11890 */ // No operand predicates
11764 /* 11890 */ // MIs[0] mi.src1
11765 /* 11890 */ // No operand predicates
11766 /* 11890 */ // Combiner Rule #210: constant_fold_binop @ [mi[1]]
11767 /* 11890 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
11768 /* 11893 */ // Label 539: @11893
11769 /* 11893 */ GIM_Try, /*On fail goto*//*Label 540*/ GIMT_Encode4(11904), // Rule ID 343 //
11770 /* 11898 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
11771 /* 11901 */ // MIs[0] root
11772 /* 11901 */ // No operand predicates
11773 /* 11901 */ // MIs[0] mi.x
11774 /* 11901 */ // No operand predicates
11775 /* 11901 */ // MIs[0] mi.y
11776 /* 11901 */ // No operand predicates
11777 /* 11901 */ // Combiner Rule #233: fold_binop_into_select_a @ [mi[2]]
11778 /* 11901 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11779 /* 11904 */ // Label 540: @11904
11780 /* 11904 */ GIM_Reject,
11781 /* 11905 */ // Label 92: @11905
11782 /* 11905 */ GIM_Try, /*On fail goto*//*Label 541*/ GIMT_Encode4(11930), // Rule ID 386 //
11783 /* 11910 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule254Enabled),
11784 /* 11913 */ // MIs[0] dst
11785 /* 11913 */ // No operand predicates
11786 /* 11913 */ // MIs[0] lhs
11787 /* 11913 */ // No operand predicates
11788 /* 11913 */ // MIs[0] rhs
11789 /* 11913 */ // No operand predicates
11790 /* 11913 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
11791 /* 11917 */ // Combiner Rule #254: G_SMIN_commute_constant_to_rhs
11792 /* 11917 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMIN),
11793 /* 11920 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11794 /* 11922 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11795 /* 11924 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11796 /* 11926 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11797 /* 11929 */ GIR_EraseRootFromParent_Done,
11798 /* 11930 */ // Label 541: @11930
11799 /* 11930 */ GIM_Try, /*On fail goto*//*Label 542*/ GIMT_Encode4(11941), // Rule ID 294 //
11800 /* 11935 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
11801 /* 11938 */ // MIs[0] d
11802 /* 11938 */ // No operand predicates
11803 /* 11938 */ // MIs[0] mi.src0
11804 /* 11938 */ // No operand predicates
11805 /* 11938 */ // MIs[0] mi.src1
11806 /* 11938 */ // No operand predicates
11807 /* 11938 */ // Combiner Rule #210: constant_fold_binop @ [mi[14]]
11808 /* 11938 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
11809 /* 11941 */ // Label 542: @11941
11810 /* 11941 */ GIM_Try, /*On fail goto*//*Label 543*/ GIMT_Encode4(11952), // Rule ID 354 //
11811 /* 11946 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11812 /* 11949 */ // MIs[0] root
11813 /* 11949 */ // No operand predicates
11814 /* 11949 */ // MIs[0] mi.x
11815 /* 11949 */ // No operand predicates
11816 /* 11949 */ // MIs[0] mi.y
11817 /* 11949 */ // No operand predicates
11818 /* 11949 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[0]]
11819 /* 11949 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11820 /* 11952 */ // Label 543: @11952
11821 /* 11952 */ GIM_Reject,
11822 /* 11953 */ // Label 93: @11953
11823 /* 11953 */ GIM_Try, /*On fail goto*//*Label 544*/ GIMT_Encode4(11978), // Rule ID 387 //
11824 /* 11958 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule255Enabled),
11825 /* 11961 */ // MIs[0] dst
11826 /* 11961 */ // No operand predicates
11827 /* 11961 */ // MIs[0] lhs
11828 /* 11961 */ // No operand predicates
11829 /* 11961 */ // MIs[0] rhs
11830 /* 11961 */ // No operand predicates
11831 /* 11961 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
11832 /* 11965 */ // Combiner Rule #255: G_SMAX_commute_constant_to_rhs
11833 /* 11965 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SMAX),
11834 /* 11968 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11835 /* 11970 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11836 /* 11972 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11837 /* 11974 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11838 /* 11977 */ GIR_EraseRootFromParent_Done,
11839 /* 11978 */ // Label 544: @11978
11840 /* 11978 */ GIM_Try, /*On fail goto*//*Label 545*/ GIMT_Encode4(11989), // Rule ID 295 //
11841 /* 11983 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
11842 /* 11986 */ // MIs[0] d
11843 /* 11986 */ // No operand predicates
11844 /* 11986 */ // MIs[0] mi.src0
11845 /* 11986 */ // No operand predicates
11846 /* 11986 */ // MIs[0] mi.src1
11847 /* 11986 */ // No operand predicates
11848 /* 11986 */ // Combiner Rule #210: constant_fold_binop @ [mi[15]]
11849 /* 11986 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
11850 /* 11989 */ // Label 545: @11989
11851 /* 11989 */ GIM_Try, /*On fail goto*//*Label 546*/ GIMT_Encode4(12000), // Rule ID 355 //
11852 /* 11994 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11853 /* 11997 */ // MIs[0] root
11854 /* 11997 */ // No operand predicates
11855 /* 11997 */ // MIs[0] mi.x
11856 /* 11997 */ // No operand predicates
11857 /* 11997 */ // MIs[0] mi.y
11858 /* 11997 */ // No operand predicates
11859 /* 11997 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[1]]
11860 /* 11997 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11861 /* 12000 */ // Label 546: @12000
11862 /* 12000 */ GIM_Reject,
11863 /* 12001 */ // Label 94: @12001
11864 /* 12001 */ GIM_Try, /*On fail goto*//*Label 547*/ GIMT_Encode4(12026), // Rule ID 388 //
11865 /* 12006 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule256Enabled),
11866 /* 12009 */ // MIs[0] dst
11867 /* 12009 */ // No operand predicates
11868 /* 12009 */ // MIs[0] lhs
11869 /* 12009 */ // No operand predicates
11870 /* 12009 */ // MIs[0] rhs
11871 /* 12009 */ // No operand predicates
11872 /* 12009 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
11873 /* 12013 */ // Combiner Rule #256: G_UMIN_commute_constant_to_rhs
11874 /* 12013 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMIN),
11875 /* 12016 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11876 /* 12018 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11877 /* 12020 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11878 /* 12022 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11879 /* 12025 */ GIR_EraseRootFromParent_Done,
11880 /* 12026 */ // Label 547: @12026
11881 /* 12026 */ GIM_Try, /*On fail goto*//*Label 548*/ GIMT_Encode4(12037), // Rule ID 296 //
11882 /* 12031 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
11883 /* 12034 */ // MIs[0] d
11884 /* 12034 */ // No operand predicates
11885 /* 12034 */ // MIs[0] mi.src0
11886 /* 12034 */ // No operand predicates
11887 /* 12034 */ // MIs[0] mi.src1
11888 /* 12034 */ // No operand predicates
11889 /* 12034 */ // Combiner Rule #210: constant_fold_binop @ [mi[16]]
11890 /* 12034 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
11891 /* 12037 */ // Label 548: @12037
11892 /* 12037 */ GIM_Try, /*On fail goto*//*Label 549*/ GIMT_Encode4(12048), // Rule ID 356 //
11893 /* 12042 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11894 /* 12045 */ // MIs[0] root
11895 /* 12045 */ // No operand predicates
11896 /* 12045 */ // MIs[0] mi.x
11897 /* 12045 */ // No operand predicates
11898 /* 12045 */ // MIs[0] mi.y
11899 /* 12045 */ // No operand predicates
11900 /* 12045 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[2]]
11901 /* 12045 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11902 /* 12048 */ // Label 549: @12048
11903 /* 12048 */ GIM_Reject,
11904 /* 12049 */ // Label 95: @12049
11905 /* 12049 */ GIM_Try, /*On fail goto*//*Label 550*/ GIMT_Encode4(12074), // Rule ID 389 //
11906 /* 12054 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule257Enabled),
11907 /* 12057 */ // MIs[0] dst
11908 /* 12057 */ // No operand predicates
11909 /* 12057 */ // MIs[0] lhs
11910 /* 12057 */ // No operand predicates
11911 /* 12057 */ // MIs[0] rhs
11912 /* 12057 */ // No operand predicates
11913 /* 12057 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner48),
11914 /* 12061 */ // Combiner Rule #257: G_UMAX_commute_constant_to_rhs
11915 /* 12061 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UMAX),
11916 /* 12064 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
11917 /* 12066 */ GIR_RootToRootCopy, /*OpIdx*/2, // rhs
11918 /* 12068 */ GIR_RootToRootCopy, /*OpIdx*/1, // lhs
11919 /* 12070 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
11920 /* 12073 */ GIR_EraseRootFromParent_Done,
11921 /* 12074 */ // Label 550: @12074
11922 /* 12074 */ GIM_Try, /*On fail goto*//*Label 551*/ GIMT_Encode4(12085), // Rule ID 297 //
11923 /* 12079 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
11924 /* 12082 */ // MIs[0] d
11925 /* 12082 */ // No operand predicates
11926 /* 12082 */ // MIs[0] mi.src0
11927 /* 12082 */ // No operand predicates
11928 /* 12082 */ // MIs[0] mi.src1
11929 /* 12082 */ // No operand predicates
11930 /* 12082 */ // Combiner Rule #210: constant_fold_binop @ [mi[17]]
11931 /* 12082 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
11932 /* 12085 */ // Label 551: @12085
11933 /* 12085 */ GIM_Try, /*On fail goto*//*Label 552*/ GIMT_Encode4(12096), // Rule ID 357 //
11934 /* 12090 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
11935 /* 12093 */ // MIs[0] root
11936 /* 12093 */ // No operand predicates
11937 /* 12093 */ // MIs[0] mi.x
11938 /* 12093 */ // No operand predicates
11939 /* 12093 */ // MIs[0] mi.y
11940 /* 12093 */ // No operand predicates
11941 /* 12093 */ // Combiner Rule #234: fold_binop_into_select_b @ [mi[3]]
11942 /* 12093 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
11943 /* 12096 */ // Label 552: @12096
11944 /* 12096 */ GIM_Reject,
11945 /* 12097 */ // Label 96: @12097
11946 /* 12097 */ GIM_Try, /*On fail goto*//*Label 553*/ GIMT_Encode4(12118), // Rule ID 96 //
11947 /* 12102 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
11948 /* 12105 */ // MIs[0] dst
11949 /* 12105 */ // No operand predicates
11950 /* 12105 */ // MIs[0] __unary_undef_to_zero_match_0.x
11951 /* 12105 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
11952 /* 12109 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
11953 /* 12113 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11954 /* 12115 */ // Combiner Rule #81: unary_undef_to_zero @ [__unary_undef_to_zero_match_0[0]]
11955 /* 12115 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
11956 /* 12118 */ // Label 553: @12118
11957 /* 12118 */ GIM_Try, /*On fail goto*//*Label 554*/ GIMT_Encode4(12129), // Rule ID 320 //
11958 /* 12123 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
11959 /* 12126 */ // MIs[0] dst
11960 /* 12126 */ // No operand predicates
11961 /* 12126 */ // MIs[0] mi.src
11962 /* 12126 */ // No operand predicates
11963 /* 12126 */ // Combiner Rule #214: constant_fold_unary_int_op @ [mi[5]]
11964 /* 12126 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
11965 /* 12129 */ // Label 554: @12129
11966 /* 12129 */ GIM_Reject,
11967 /* 12130 */ // Label 97: @12130
11968 /* 12130 */ GIM_Try, /*On fail goto*//*Label 555*/ GIMT_Encode4(12141), // Rule ID 206 //
11969 /* 12135 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
11970 /* 12138 */ // MIs[0] tgt
11971 /* 12138 */ // No operand predicates
11972 /* 12138 */ // Combiner Rule #156: opt_brcond_by_inverting_cond
11973 /* 12138 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner62),
11974 /* 12141 */ // Label 555: @12141
11975 /* 12141 */ GIM_Reject,
11976 /* 12142 */ // Label 98: @12142
11977 /* 12142 */ GIM_Try, /*On fail goto*//*Label 556*/ GIMT_Encode4(12181), // Rule ID 45 //
11978 /* 12147 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
11979 /* 12150 */ // MIs[0] root
11980 /* 12150 */ // No operand predicates
11981 /* 12150 */ // MIs[0] src
11982 /* 12150 */ // No operand predicates
11983 /* 12150 */ // MIs[0] elt
11984 /* 12150 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
11985 /* 12154 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_EXTRACT_VECTOR_ELT),
11986 /* 12158 */ // MIs[1] src
11987 /* 12158 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
11988 /* 12163 */ // MIs[1] idx
11989 /* 12163 */ // No operand predicates
11990 /* 12163 */ // MIs[0] idx
11991 /* 12163 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
11992 /* 12168 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11993 /* 12173 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
11994 /* 12175 */ // Combiner Rule #41: insert_vector_element_extract_vector_element
11995 /* 12175 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
11996 /* 12180 */ GIR_EraseRootFromParent_Done,
11997 /* 12181 */ // Label 556: @12181
11998 /* 12181 */ GIM_Try, /*On fail goto*//*Label 557*/ GIMT_Encode4(12214), // Rule ID 31 //
11999 /* 12186 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
12000 /* 12189 */ // MIs[0] root
12001 /* 12189 */ // No operand predicates
12002 /* 12189 */ // MIs[0] src
12003 /* 12189 */ // No operand predicates
12004 /* 12189 */ // MIs[0] elt
12005 /* 12189 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
12006 /* 12193 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12007 /* 12197 */ // MIs[0] idx
12008 /* 12197 */ // No operand predicates
12009 /* 12197 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3),
12010 /* 12201 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
12011 /* 12206 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12012 /* 12208 */ // Combiner Rule #27: insert_vector_element_elt_undef
12013 /* 12208 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
12014 /* 12213 */ GIR_EraseRootFromParent_Done,
12015 /* 12214 */ // Label 557: @12214
12016 /* 12214 */ GIM_Try, /*On fail goto*//*Label 558*/ GIMT_Encode4(12238), // Rule ID 30 //
12017 /* 12219 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
12018 /* 12222 */ // MIs[0] root
12019 /* 12222 */ // No operand predicates
12020 /* 12222 */ // MIs[0] src
12021 /* 12222 */ // No operand predicates
12022 /* 12222 */ // MIs[0] elt
12023 /* 12222 */ // No operand predicates
12024 /* 12222 */ // MIs[0] idx
12025 /* 12222 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
12026 /* 12226 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12027 /* 12230 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12028 /* 12232 */ // Combiner Rule #26: insert_vector_element_idx_undef
12029 /* 12232 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12030 /* 12235 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
12031 /* 12237 */ GIR_EraseRootFromParent_Done,
12032 /* 12238 */ // Label 558: @12238
12033 /* 12238 */ GIM_Try, /*On fail goto*//*Label 559*/ GIMT_Encode4(12256), // Rule ID 33 //
12034 /* 12243 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
12035 /* 12246 */ // MIs[0] dst
12036 /* 12246 */ // No operand predicates
12037 /* 12246 */ // MIs[0] src
12038 /* 12246 */ // No operand predicates
12039 /* 12246 */ // MIs[0] elt
12040 /* 12246 */ // No operand predicates
12041 /* 12246 */ // MIs[0] idx
12042 /* 12246 */ // No operand predicates
12043 /* 12246 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner5),
12044 /* 12250 */ // Combiner Rule #29: insert_vector_elt_oob
12045 /* 12250 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12046 /* 12253 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
12047 /* 12255 */ GIR_EraseRootFromParent_Done,
12048 /* 12256 */ // Label 559: @12256
12049 /* 12256 */ GIM_Try, /*On fail goto*//*Label 560*/ GIMT_Encode4(12274), // Rule ID 114 //
12050 /* 12261 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
12051 /* 12264 */ // MIs[0] root
12052 /* 12264 */ // No operand predicates
12053 /* 12264 */ // MIs[0] vec
12054 /* 12264 */ // No operand predicates
12055 /* 12264 */ // MIs[0] elt
12056 /* 12264 */ // No operand predicates
12057 /* 12264 */ // MIs[0] idx
12058 /* 12264 */ // No operand predicates
12059 /* 12264 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner10),
12060 /* 12268 */ // Combiner Rule #88: insert_vec_elt_out_of_bounds
12061 /* 12268 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12062 /* 12271 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
12063 /* 12273 */ GIR_EraseRootFromParent_Done,
12064 /* 12274 */ // Label 560: @12274
12065 /* 12274 */ GIM_Try, /*On fail goto*//*Label 561*/ GIMT_Encode4(12285), // Rule ID 74 //
12066 /* 12279 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled),
12067 /* 12282 */ // MIs[0] dst
12068 /* 12282 */ // No operand predicates
12069 /* 12282 */ // MIs[0] src
12070 /* 12282 */ // No operand predicates
12071 /* 12282 */ // MIs[0] elt
12072 /* 12282 */ // No operand predicates
12073 /* 12282 */ // MIs[0] idx
12074 /* 12282 */ // No operand predicates
12075 /* 12282 */ // Combiner Rule #70: combine_insert_vec_elts_build_vector
12076 /* 12282 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
12077 /* 12285 */ // Label 561: @12285
12078 /* 12285 */ GIM_Reject,
12079 /* 12286 */ // Label 99: @12286
12080 /* 12286 */ GIM_Try, /*On fail goto*//*Label 562*/ GIMT_Encode4(12310), // Rule ID 43 //
12081 /* 12291 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
12082 /* 12294 */ // MIs[0] root
12083 /* 12294 */ // No operand predicates
12084 /* 12294 */ // MIs[0] src
12085 /* 12294 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12086 /* 12298 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
12087 /* 12302 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/9,
12088 /* 12305 */ // MIs[1] x
12089 /* 12305 */ // No operand predicates
12090 /* 12305 */ // MIs[1] y
12091 /* 12305 */ // No operand predicates
12092 /* 12305 */ // MIs[1] z
12093 /* 12305 */ // No operand predicates
12094 /* 12305 */ // MIs[1] a
12095 /* 12305 */ // No operand predicates
12096 /* 12305 */ // MIs[1] b
12097 /* 12305 */ // No operand predicates
12098 /* 12305 */ // MIs[1] c
12099 /* 12305 */ // No operand predicates
12100 /* 12305 */ // MIs[1] d
12101 /* 12305 */ // No operand predicates
12102 /* 12305 */ // MIs[1] e
12103 /* 12305 */ // No operand predicates
12104 /* 12305 */ // MIs[0] idx
12105 /* 12305 */ // No operand predicates
12106 /* 12305 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12107 /* 12307 */ // Combiner Rule #39: extract_vector_element_build_vector_trunc8
12108 /* 12307 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
12109 /* 12310 */ // Label 562: @12310
12110 /* 12310 */ GIM_Try, /*On fail goto*//*Label 563*/ GIMT_Encode4(12334), // Rule ID 42 //
12111 /* 12315 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
12112 /* 12318 */ // MIs[0] root
12113 /* 12318 */ // No operand predicates
12114 /* 12318 */ // MIs[0] src
12115 /* 12318 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12116 /* 12322 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
12117 /* 12326 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/8,
12118 /* 12329 */ // MIs[1] x
12119 /* 12329 */ // No operand predicates
12120 /* 12329 */ // MIs[1] y
12121 /* 12329 */ // No operand predicates
12122 /* 12329 */ // MIs[1] z
12123 /* 12329 */ // No operand predicates
12124 /* 12329 */ // MIs[1] a
12125 /* 12329 */ // No operand predicates
12126 /* 12329 */ // MIs[1] b
12127 /* 12329 */ // No operand predicates
12128 /* 12329 */ // MIs[1] c
12129 /* 12329 */ // No operand predicates
12130 /* 12329 */ // MIs[1] d
12131 /* 12329 */ // No operand predicates
12132 /* 12329 */ // MIs[0] idx
12133 /* 12329 */ // No operand predicates
12134 /* 12329 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12135 /* 12331 */ // Combiner Rule #38: extract_vector_element_build_vector_trunc7
12136 /* 12331 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
12137 /* 12334 */ // Label 563: @12334
12138 /* 12334 */ GIM_Try, /*On fail goto*//*Label 564*/ GIMT_Encode4(12358), // Rule ID 41 //
12139 /* 12339 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
12140 /* 12342 */ // MIs[0] root
12141 /* 12342 */ // No operand predicates
12142 /* 12342 */ // MIs[0] src
12143 /* 12342 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12144 /* 12346 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
12145 /* 12350 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/7,
12146 /* 12353 */ // MIs[1] x
12147 /* 12353 */ // No operand predicates
12148 /* 12353 */ // MIs[1] y
12149 /* 12353 */ // No operand predicates
12150 /* 12353 */ // MIs[1] z
12151 /* 12353 */ // No operand predicates
12152 /* 12353 */ // MIs[1] a
12153 /* 12353 */ // No operand predicates
12154 /* 12353 */ // MIs[1] b
12155 /* 12353 */ // No operand predicates
12156 /* 12353 */ // MIs[1] c
12157 /* 12353 */ // No operand predicates
12158 /* 12353 */ // MIs[0] idx
12159 /* 12353 */ // No operand predicates
12160 /* 12353 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12161 /* 12355 */ // Combiner Rule #37: extract_vector_element_build_vector_trunc6
12162 /* 12355 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
12163 /* 12358 */ // Label 564: @12358
12164 /* 12358 */ GIM_Try, /*On fail goto*//*Label 565*/ GIMT_Encode4(12382), // Rule ID 40 //
12165 /* 12363 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
12166 /* 12366 */ // MIs[0] root
12167 /* 12366 */ // No operand predicates
12168 /* 12366 */ // MIs[0] src
12169 /* 12366 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12170 /* 12370 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
12171 /* 12374 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/6,
12172 /* 12377 */ // MIs[1] x
12173 /* 12377 */ // No operand predicates
12174 /* 12377 */ // MIs[1] y
12175 /* 12377 */ // No operand predicates
12176 /* 12377 */ // MIs[1] z
12177 /* 12377 */ // No operand predicates
12178 /* 12377 */ // MIs[1] a
12179 /* 12377 */ // No operand predicates
12180 /* 12377 */ // MIs[1] b
12181 /* 12377 */ // No operand predicates
12182 /* 12377 */ // MIs[0] idx
12183 /* 12377 */ // No operand predicates
12184 /* 12377 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12185 /* 12379 */ // Combiner Rule #36: extract_vector_element_build_vector_trunc5
12186 /* 12379 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
12187 /* 12382 */ // Label 565: @12382
12188 /* 12382 */ GIM_Try, /*On fail goto*//*Label 566*/ GIMT_Encode4(12406), // Rule ID 39 //
12189 /* 12387 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
12190 /* 12390 */ // MIs[0] root
12191 /* 12390 */ // No operand predicates
12192 /* 12390 */ // MIs[0] src
12193 /* 12390 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12194 /* 12394 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
12195 /* 12398 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/5,
12196 /* 12401 */ // MIs[1] x
12197 /* 12401 */ // No operand predicates
12198 /* 12401 */ // MIs[1] y
12199 /* 12401 */ // No operand predicates
12200 /* 12401 */ // MIs[1] z
12201 /* 12401 */ // No operand predicates
12202 /* 12401 */ // MIs[1] a
12203 /* 12401 */ // No operand predicates
12204 /* 12401 */ // MIs[0] idx
12205 /* 12401 */ // No operand predicates
12206 /* 12401 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12207 /* 12403 */ // Combiner Rule #35: extract_vector_element_build_vector_trunc4
12208 /* 12403 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
12209 /* 12406 */ // Label 566: @12406
12210 /* 12406 */ GIM_Try, /*On fail goto*//*Label 567*/ GIMT_Encode4(12430), // Rule ID 38 //
12211 /* 12411 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
12212 /* 12414 */ // MIs[0] root
12213 /* 12414 */ // No operand predicates
12214 /* 12414 */ // MIs[0] src
12215 /* 12414 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12216 /* 12418 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
12217 /* 12422 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
12218 /* 12425 */ // MIs[1] x
12219 /* 12425 */ // No operand predicates
12220 /* 12425 */ // MIs[1] y
12221 /* 12425 */ // No operand predicates
12222 /* 12425 */ // MIs[1] z
12223 /* 12425 */ // No operand predicates
12224 /* 12425 */ // MIs[0] idx
12225 /* 12425 */ // No operand predicates
12226 /* 12425 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12227 /* 12427 */ // Combiner Rule #34: extract_vector_element_build_vector_trunc3
12228 /* 12427 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
12229 /* 12430 */ // Label 567: @12430
12230 /* 12430 */ GIM_Try, /*On fail goto*//*Label 568*/ GIMT_Encode4(12464), // Rule ID 34 //
12231 /* 12435 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
12232 /* 12438 */ // MIs[0] root
12233 /* 12438 */ // No operand predicates
12234 /* 12438 */ // MIs[0] src
12235 /* 12438 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12236 /* 12442 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
12237 /* 12446 */ // MIs[1] x
12238 /* 12446 */ // No operand predicates
12239 /* 12446 */ // MIs[1] value
12240 /* 12446 */ // No operand predicates
12241 /* 12446 */ // MIs[1] idx
12242 /* 12446 */ // No operand predicates
12243 /* 12446 */ // MIs[0] idx
12244 /* 12446 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
12245 /* 12451 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
12246 /* 12456 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12247 /* 12458 */ // Combiner Rule #30: extract_vector_element_not_const
12248 /* 12458 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
12249 /* 12463 */ GIR_EraseRootFromParent_Done,
12250 /* 12464 */ // Label 568: @12464
12251 /* 12464 */ GIM_Try, /*On fail goto*//*Label 569*/ GIMT_Encode4(12485), // Rule ID 35 //
12252 /* 12469 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
12253 /* 12472 */ // MIs[0] root
12254 /* 12472 */ // No operand predicates
12255 /* 12472 */ // MIs[0] src
12256 /* 12472 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12257 /* 12476 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
12258 /* 12480 */ // MIs[1] x
12259 /* 12480 */ // No operand predicates
12260 /* 12480 */ // MIs[1] value
12261 /* 12480 */ // No operand predicates
12262 /* 12480 */ // MIs[1] idx2
12263 /* 12480 */ // No operand predicates
12264 /* 12480 */ // MIs[0] idx1
12265 /* 12480 */ // No operand predicates
12266 /* 12480 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12267 /* 12482 */ // Combiner Rule #31: extract_vector_element_different_indices
12268 /* 12482 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner8),
12269 /* 12485 */ // Label 569: @12485
12270 /* 12485 */ GIM_Try, /*On fail goto*//*Label 570*/ GIMT_Encode4(12514), // Rule ID 44 //
12271 /* 12490 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
12272 /* 12493 */ // MIs[0] root
12273 /* 12493 */ // No operand predicates
12274 /* 12493 */ // MIs[0] src
12275 /* 12493 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12276 /* 12497 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHUFFLE_VECTOR),
12277 /* 12501 */ // MIs[1] src1
12278 /* 12501 */ // No operand predicates
12279 /* 12501 */ // MIs[1] src2
12280 /* 12501 */ // No operand predicates
12281 /* 12501 */ // MIs[1] mask
12282 /* 12501 */ // No operand predicates
12283 /* 12501 */ // MIs[0] idx
12284 /* 12501 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
12285 /* 12505 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
12286 /* 12509 */ // MIs[2] imm
12287 /* 12509 */ // No operand predicates
12288 /* 12509 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
12289 /* 12511 */ // Combiner Rule #40: extract_vector_element_shuffle_vector
12290 /* 12511 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11),
12291 /* 12514 */ // Label 570: @12514
12292 /* 12514 */ GIM_Try, /*On fail goto*//*Label 571*/ GIMT_Encode4(12538), // Rule ID 37 //
12293 /* 12519 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
12294 /* 12522 */ // MIs[0] root
12295 /* 12522 */ // No operand predicates
12296 /* 12522 */ // MIs[0] src
12297 /* 12522 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12298 /* 12526 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
12299 /* 12530 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
12300 /* 12533 */ // MIs[1] x
12301 /* 12533 */ // No operand predicates
12302 /* 12533 */ // MIs[1] y
12303 /* 12533 */ // No operand predicates
12304 /* 12533 */ // MIs[0] idx
12305 /* 12533 */ // No operand predicates
12306 /* 12533 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12307 /* 12535 */ // Combiner Rule #33: extract_vector_element_build_vector_trunc2
12308 /* 12535 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
12309 /* 12538 */ // Label 571: @12538
12310 /* 12538 */ GIM_Try, /*On fail goto*//*Label 572*/ GIMT_Encode4(12570), // Rule ID 36 //
12311 /* 12543 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
12312 /* 12546 */ // MIs[0] root
12313 /* 12546 */ // No operand predicates
12314 /* 12546 */ // MIs[0] src
12315 /* 12546 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12316 /* 12550 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
12317 /* 12554 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
12318 /* 12557 */ // MIs[1] unused
12319 /* 12557 */ // No operand predicates
12320 /* 12557 */ // MIs[0] idx
12321 /* 12557 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
12322 /* 12561 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
12323 /* 12565 */ // MIs[2] imm
12324 /* 12565 */ // No operand predicates
12325 /* 12565 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
12326 /* 12567 */ // Combiner Rule #32: extract_vector_element_build_vector
12327 /* 12567 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner9),
12328 /* 12570 */ // Label 572: @12570
12329 /* 12570 */ GIM_Try, /*On fail goto*//*Label 573*/ GIMT_Encode4(12594), // Rule ID 28 //
12330 /* 12575 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
12331 /* 12578 */ // MIs[0] root
12332 /* 12578 */ // No operand predicates
12333 /* 12578 */ // MIs[0] __extract_vector_element_undef_match_0.x
12334 /* 12578 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12335 /* 12582 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12336 /* 12586 */ // MIs[0] __extract_vector_element_undef_match_0.y
12337 /* 12586 */ // No operand predicates
12338 /* 12586 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12339 /* 12588 */ // Combiner Rule #25: extract_vector_element_undef @ [__extract_vector_element_undef_match_0[0]]
12340 /* 12588 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12341 /* 12591 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
12342 /* 12593 */ GIR_EraseRootFromParent_Done,
12343 /* 12594 */ // Label 573: @12594
12344 /* 12594 */ GIM_Try, /*On fail goto*//*Label 574*/ GIMT_Encode4(12618), // Rule ID 29 //
12345 /* 12599 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
12346 /* 12602 */ // MIs[0] root
12347 /* 12602 */ // No operand predicates
12348 /* 12602 */ // MIs[0] __extract_vector_element_undef_match_0.x
12349 /* 12602 */ // No operand predicates
12350 /* 12602 */ // MIs[0] __extract_vector_element_undef_match_0.y
12351 /* 12602 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
12352 /* 12606 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12353 /* 12610 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12354 /* 12612 */ // Combiner Rule #25: extract_vector_element_undef @ [__extract_vector_element_undef_match_0[1]]
12355 /* 12612 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12356 /* 12615 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
12357 /* 12617 */ GIR_EraseRootFromParent_Done,
12358 /* 12618 */ // Label 574: @12618
12359 /* 12618 */ GIM_Try, /*On fail goto*//*Label 575*/ GIMT_Encode4(12636), // Rule ID 32 //
12360 /* 12623 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
12361 /* 12626 */ // MIs[0] dst
12362 /* 12626 */ // No operand predicates
12363 /* 12626 */ // MIs[0] src
12364 /* 12626 */ // No operand predicates
12365 /* 12626 */ // MIs[0] idx
12366 /* 12626 */ // No operand predicates
12367 /* 12626 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner4),
12368 /* 12630 */ // Combiner Rule #28: match_extract_of_element
12369 /* 12630 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12370 /* 12633 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
12371 /* 12635 */ GIR_EraseRootFromParent_Done,
12372 /* 12636 */ // Label 575: @12636
12373 /* 12636 */ GIM_Try, /*On fail goto*//*Label 576*/ GIMT_Encode4(12654), // Rule ID 115 //
12374 /* 12641 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled),
12375 /* 12644 */ // MIs[0] root
12376 /* 12644 */ // No operand predicates
12377 /* 12644 */ // MIs[0] vec
12378 /* 12644 */ // No operand predicates
12379 /* 12644 */ // MIs[0] idx
12380 /* 12644 */ // No operand predicates
12381 /* 12644 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner10),
12382 /* 12648 */ // Combiner Rule #89: extract_vec_elt_out_of_bounds
12383 /* 12648 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12384 /* 12651 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
12385 /* 12653 */ GIR_EraseRootFromParent_Done,
12386 /* 12654 */ // Label 576: @12654
12387 /* 12654 */ GIM_Try, /*On fail goto*//*Label 577*/ GIMT_Encode4(12665), // Rule ID 75 //
12388 /* 12659 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
12389 /* 12662 */ // MIs[0] dst
12390 /* 12662 */ // No operand predicates
12391 /* 12662 */ // MIs[0] src
12392 /* 12662 */ // No operand predicates
12393 /* 12662 */ // MIs[0] idx
12394 /* 12662 */ // No operand predicates
12395 /* 12662 */ // Combiner Rule #71: extract_vec_elt_build_vec
12396 /* 12662 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
12397 /* 12665 */ // Label 577: @12665
12398 /* 12665 */ GIM_Try, /*On fail goto*//*Label 578*/ GIMT_Encode4(12676), // Rule ID 81 //
12399 /* 12670 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
12400 /* 12673 */ // MIs[0] dst
12401 /* 12673 */ // No operand predicates
12402 /* 12673 */ // MIs[0] src
12403 /* 12673 */ // No operand predicates
12404 /* 12673 */ // MIs[0] idx
12405 /* 12673 */ // No operand predicates
12406 /* 12673 */ // Combiner Rule #75: combine_extracted_vector_load
12407 /* 12673 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29),
12408 /* 12676 */ // Label 578: @12676
12409 /* 12676 */ GIM_Reject,
12410 /* 12677 */ // Label 100: @12677
12411 /* 12677 */ GIM_Try, /*On fail goto*//*Label 579*/ GIMT_Encode4(12698), // Rule ID 424 //
12412 /* 12682 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule292Enabled),
12413 /* 12685 */ // MIs[0] root
12414 /* 12685 */ // No operand predicates
12415 /* 12685 */ // MIs[0] src1
12416 /* 12685 */ // No operand predicates
12417 /* 12685 */ // MIs[0] undef
12418 /* 12685 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
12419 /* 12689 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12420 /* 12693 */ // MIs[0] mask
12421 /* 12693 */ // No operand predicates
12422 /* 12693 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12423 /* 12695 */ // Combiner Rule #292: combine_shuffle_undef_rhs
12424 /* 12695 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
12425 /* 12698 */ // Label 579: @12698
12426 /* 12698 */ GIM_Try, /*On fail goto*//*Label 580*/ GIMT_Encode4(12716), // Rule ID 110 //
12427 /* 12703 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
12428 /* 12706 */ // MIs[0] root
12429 /* 12706 */ // No operand predicates
12430 /* 12706 */ // MIs[0] src1
12431 /* 12706 */ // No operand predicates
12432 /* 12706 */ // MIs[0] src2
12433 /* 12706 */ // No operand predicates
12434 /* 12706 */ // MIs[0] mask
12435 /* 12706 */ // No operand predicates
12436 /* 12706 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner7),
12437 /* 12710 */ // Combiner Rule #84: propagate_undef_all_ops_shuffle_vector
12438 /* 12710 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12439 /* 12713 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
12440 /* 12715 */ GIR_EraseRootFromParent_Done,
12441 /* 12716 */ // Label 580: @12716
12442 /* 12716 */ GIM_Try, /*On fail goto*//*Label 581*/ GIMT_Encode4(12734), // Rule ID 112 //
12443 /* 12721 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
12444 /* 12724 */ // MIs[0] dst
12445 /* 12724 */ // No operand predicates
12446 /* 12724 */ // MIs[0] src1
12447 /* 12724 */ // No operand predicates
12448 /* 12724 */ // MIs[0] src2
12449 /* 12724 */ // No operand predicates
12450 /* 12724 */ // MIs[0] mask
12451 /* 12724 */ // No operand predicates
12452 /* 12724 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner8),
12453 /* 12728 */ // Combiner Rule #86: propagate_undef_shuffle_mask
12454 /* 12728 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
12455 /* 12731 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
12456 /* 12733 */ GIR_EraseRootFromParent_Done,
12457 /* 12734 */ // Label 581: @12734
12458 /* 12734 */ GIM_Try, /*On fail goto*//*Label 582*/ GIMT_Encode4(12745), // Rule ID 423 //
12459 /* 12739 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule291Enabled),
12460 /* 12742 */ // MIs[0] dst
12461 /* 12742 */ // No operand predicates
12462 /* 12742 */ // MIs[0] src1
12463 /* 12742 */ // No operand predicates
12464 /* 12742 */ // MIs[0] src2
12465 /* 12742 */ // No operand predicates
12466 /* 12742 */ // MIs[0] mask
12467 /* 12742 */ // No operand predicates
12468 /* 12742 */ // Combiner Rule #291: combine_shuffle_concat
12469 /* 12742 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
12470 /* 12745 */ // Label 582: @12745
12471 /* 12745 */ GIM_Try, /*On fail goto*//*Label 583*/ GIMT_Encode4(12756), // Rule ID 425 //
12472 /* 12750 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule293Enabled),
12473 /* 12753 */ // MIs[0] dst
12474 /* 12753 */ // No operand predicates
12475 /* 12753 */ // MIs[0] src1
12476 /* 12753 */ // No operand predicates
12477 /* 12753 */ // MIs[0] src2
12478 /* 12753 */ // No operand predicates
12479 /* 12753 */ // MIs[0] mask
12480 /* 12753 */ // No operand predicates
12481 /* 12753 */ // Combiner Rule #293: combine_shuffle_disjoint_mask
12482 /* 12753 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner111),
12483 /* 12756 */ // Label 583: @12756
12484 /* 12756 */ GIM_Try, /*On fail goto*//*Label 584*/ GIMT_Encode4(12767), // Rule ID 474 //
12485 /* 12761 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule336Enabled),
12486 /* 12764 */ // MIs[0] dst
12487 /* 12764 */ // No operand predicates
12488 /* 12764 */ // MIs[0] src1
12489 /* 12764 */ // No operand predicates
12490 /* 12764 */ // MIs[0] src2
12491 /* 12764 */ // No operand predicates
12492 /* 12764 */ // MIs[0] mask
12493 /* 12764 */ // No operand predicates
12494 /* 12764 */ // Combiner Rule #336: combine_shuffle_vector
12495 /* 12764 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132),
12496 /* 12767 */ // Label 584: @12767
12497 /* 12767 */ GIM_Try, /*On fail goto*//*Label 585*/ GIMT_Encode4(12778), // Rule ID 475 //
12498 /* 12772 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule337Enabled),
12499 /* 12775 */ // MIs[0] dst
12500 /* 12775 */ // No operand predicates
12501 /* 12775 */ // MIs[0] src1
12502 /* 12775 */ // No operand predicates
12503 /* 12775 */ // MIs[0] src2
12504 /* 12775 */ // No operand predicates
12505 /* 12775 */ // MIs[0] mask
12506 /* 12775 */ // No operand predicates
12507 /* 12775 */ // Combiner Rule #337: combine_shuffle_vector_to_build_vector
12508 /* 12775 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner133),
12509 /* 12778 */ // Label 585: @12778
12510 /* 12778 */ GIM_Reject,
12511 /* 12779 */ // Label 101: @12779
12512 /* 12779 */ GIM_Try, /*On fail goto*//*Label 586*/ GIMT_Encode4(12802), // Rule ID 451 //
12513 /* 12784 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule319Enabled),
12514 /* 12787 */ // MIs[0] dst
12515 /* 12787 */ // No operand predicates
12516 /* 12787 */ // MIs[0] src
12517 /* 12787 */ // No operand predicates
12518 /* 12787 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner56),
12519 /* 12791 */ // Combiner Rule #319: cttz_to_cttz_zero_poison
12520 /* 12791 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_CTTZ_ZERO_POISON),
12521 /* 12794 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
12522 /* 12796 */ GIR_RootToRootCopy, /*OpIdx*/1, // src
12523 /* 12798 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
12524 /* 12801 */ GIR_EraseRootFromParent_Done,
12525 /* 12802 */ // Label 586: @12802
12526 /* 12802 */ GIM_Try, /*On fail goto*//*Label 587*/ GIMT_Encode4(12813), // Rule ID 317 //
12527 /* 12807 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
12528 /* 12810 */ // MIs[0] dst
12529 /* 12810 */ // No operand predicates
12530 /* 12810 */ // MIs[0] mi.src
12531 /* 12810 */ // No operand predicates
12532 /* 12810 */ // Combiner Rule #214: constant_fold_unary_int_op @ [mi[2]]
12533 /* 12810 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
12534 /* 12813 */ // Label 587: @12813
12535 /* 12813 */ GIM_Reject,
12536 /* 12814 */ // Label 102: @12814
12537 /* 12814 */ GIM_Try, /*On fail goto*//*Label 588*/ GIMT_Encode4(12825), // Rule ID 318 //
12538 /* 12819 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
12539 /* 12822 */ // MIs[0] dst
12540 /* 12822 */ // No operand predicates
12541 /* 12822 */ // MIs[0] mi.src
12542 /* 12822 */ // No operand predicates
12543 /* 12822 */ // Combiner Rule #214: constant_fold_unary_int_op @ [mi[3]]
12544 /* 12822 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
12545 /* 12825 */ // Label 588: @12825
12546 /* 12825 */ GIM_Reject,
12547 /* 12826 */ // Label 103: @12826
12548 /* 12826 */ GIM_Try, /*On fail goto*//*Label 589*/ GIMT_Encode4(12849), // Rule ID 450 //
12549 /* 12831 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule318Enabled),
12550 /* 12834 */ // MIs[0] dst
12551 /* 12834 */ // No operand predicates
12552 /* 12834 */ // MIs[0] src
12553 /* 12834 */ // No operand predicates
12554 /* 12834 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner55),
12555 /* 12838 */ // Combiner Rule #318: ctlz_to_ctlz_zero_poison
12556 /* 12838 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_CTLZ_ZERO_POISON),
12557 /* 12841 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
12558 /* 12843 */ GIR_RootToRootCopy, /*OpIdx*/1, // src
12559 /* 12845 */ GIR_CopyMIFlags, /*InsnID*/0, /*OldInsnID*/0,
12560 /* 12848 */ GIR_EraseRootFromParent_Done,
12561 /* 12849 */ // Label 589: @12849
12562 /* 12849 */ GIM_Try, /*On fail goto*//*Label 590*/ GIMT_Encode4(12860), // Rule ID 315 //
12563 /* 12854 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
12564 /* 12857 */ // MIs[0] dst
12565 /* 12857 */ // No operand predicates
12566 /* 12857 */ // MIs[0] mi.src
12567 /* 12857 */ // No operand predicates
12568 /* 12857 */ // Combiner Rule #214: constant_fold_unary_int_op @ [mi[0]]
12569 /* 12857 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
12570 /* 12860 */ // Label 590: @12860
12571 /* 12860 */ GIM_Try, /*On fail goto*//*Label 591*/ GIMT_Encode4(12871), // Rule ID 448 //
12572 /* 12865 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule316Enabled),
12573 /* 12868 */ // MIs[0] dst
12574 /* 12868 */ // No operand predicates
12575 /* 12868 */ // MIs[0] src
12576 /* 12868 */ // No operand predicates
12577 /* 12868 */ // Combiner Rule #316: ctlz_to_ctls
12578 /* 12868 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner126),
12579 /* 12871 */ // Label 591: @12871
12580 /* 12871 */ GIM_Reject,
12581 /* 12872 */ // Label 104: @12872
12582 /* 12872 */ GIM_Try, /*On fail goto*//*Label 592*/ GIMT_Encode4(12883), // Rule ID 316 //
12583 /* 12877 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
12584 /* 12880 */ // MIs[0] dst
12585 /* 12880 */ // No operand predicates
12586 /* 12880 */ // MIs[0] mi.src
12587 /* 12880 */ // No operand predicates
12588 /* 12880 */ // Combiner Rule #214: constant_fold_unary_int_op @ [mi[1]]
12589 /* 12880 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
12590 /* 12883 */ // Label 592: @12883
12591 /* 12883 */ GIM_Try, /*On fail goto*//*Label 593*/ GIMT_Encode4(12894), // Rule ID 449 //
12592 /* 12888 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule317Enabled),
12593 /* 12891 */ // MIs[0] dst
12594 /* 12891 */ // No operand predicates
12595 /* 12891 */ // MIs[0] src
12596 /* 12891 */ // No operand predicates
12597 /* 12891 */ // Combiner Rule #317: ctlz_zero_poison_to_ctls
12598 /* 12891 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner126),
12599 /* 12894 */ // Label 593: @12894
12600 /* 12894 */ GIM_Reject,
12601 /* 12895 */ // Label 105: @12895
12602 /* 12895 */ GIM_Try, /*On fail goto*//*Label 594*/ GIMT_Encode4(12906), // Rule ID 319 //
12603 /* 12900 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
12604 /* 12903 */ // MIs[0] dst
12605 /* 12903 */ // No operand predicates
12606 /* 12903 */ // MIs[0] mi.src
12607 /* 12903 */ // No operand predicates
12608 /* 12903 */ // Combiner Rule #214: constant_fold_unary_int_op @ [mi[4]]
12609 /* 12903 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
12610 /* 12906 */ // Label 594: @12906
12611 /* 12906 */ GIM_Reject,
12612 /* 12907 */ // Label 106: @12907
12613 /* 12907 */ GIM_Try, /*On fail goto*//*Label 595*/ GIMT_Encode4(12918), // Rule ID 321 //
12614 /* 12912 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
12615 /* 12915 */ // MIs[0] dst
12616 /* 12915 */ // No operand predicates
12617 /* 12915 */ // MIs[0] mi.src
12618 /* 12915 */ // No operand predicates
12619 /* 12915 */ // Combiner Rule #214: constant_fold_unary_int_op @ [mi[6]]
12620 /* 12915 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
12621 /* 12918 */ // Label 595: @12918
12622 /* 12918 */ GIM_Reject,
12623 /* 12919 */ // Label 107: @12919
12624 /* 12919 */ GIM_Try, /*On fail goto*//*Label 596*/ GIMT_Encode4(12963), // Rule ID 271 //
12625 /* 12924 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule203Enabled),
12626 /* 12927 */ // MIs[0] d
12627 /* 12927 */ // No operand predicates
12628 /* 12927 */ // MIs[0] src
12629 /* 12927 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12630 /* 12931 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
12631 /* 12935 */ // MIs[1] rev
12632 /* 12935 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
12633 /* 12939 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
12634 /* 12943 */ // MIs[2] val
12635 /* 12943 */ // No operand predicates
12636 /* 12943 */ // MIs[1] amt
12637 /* 12943 */ // No operand predicates
12638 /* 12943 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner39),
12639 /* 12947 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
12640 /* 12949 */ // Combiner Rule #203: bitreverse_lshr
12641 /* 12949 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
12642 /* 12952 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
12643 /* 12954 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
12644 /* 12958 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
12645 /* 12962 */ GIR_EraseRootFromParent_Done,
12646 /* 12963 */ // Label 596: @12963
12647 /* 12963 */ GIM_Try, /*On fail goto*//*Label 597*/ GIMT_Encode4(13007), // Rule ID 270 //
12648 /* 12968 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule202Enabled),
12649 /* 12971 */ // MIs[0] d
12650 /* 12971 */ // No operand predicates
12651 /* 12971 */ // MIs[0] src
12652 /* 12971 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12653 /* 12975 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
12654 /* 12979 */ // MIs[1] rev
12655 /* 12979 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
12656 /* 12983 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
12657 /* 12987 */ // MIs[2] val
12658 /* 12987 */ // No operand predicates
12659 /* 12987 */ // MIs[1] amt
12660 /* 12987 */ // No operand predicates
12661 /* 12987 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner38),
12662 /* 12991 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
12663 /* 12993 */ // Combiner Rule #202: bitreverse_shl
12664 /* 12993 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_LSHR),
12665 /* 12996 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
12666 /* 12998 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
12667 /* 13002 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
12668 /* 13006 */ GIR_EraseRootFromParent_Done,
12669 /* 13007 */ // Label 597: @13007
12670 /* 13007 */ GIM_Try, /*On fail goto*//*Label 598*/ GIMT_Encode4(13018), // Rule ID 322 //
12671 /* 13012 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
12672 /* 13015 */ // MIs[0] dst
12673 /* 13015 */ // No operand predicates
12674 /* 13015 */ // MIs[0] mi.src
12675 /* 13015 */ // No operand predicates
12676 /* 13015 */ // Combiner Rule #214: constant_fold_unary_int_op @ [mi[7]]
12677 /* 13015 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
12678 /* 13018 */ // Label 598: @13018
12679 /* 13018 */ GIM_Reject,
12680 /* 13019 */ // Label 108: @13019
12681 /* 13019 */ GIM_Try, /*On fail goto*//*Label 599*/ GIMT_Encode4(13040), // Rule ID 213 //
12682 /* 13024 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled),
12683 /* 13027 */ // MIs[0] dst
12684 /* 13027 */ // No operand predicates
12685 /* 13027 */ // MIs[0] src0
12686 /* 13027 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12687 /* 13031 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
12688 /* 13035 */ // MIs[1] cst
12689 /* 13035 */ // No operand predicates
12690 /* 13035 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12691 /* 13037 */ // Combiner Rule #163: constant_fold_fceil
12692 /* 13037 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
12693 /* 13040 */ // Label 599: @13040
12694 /* 13040 */ GIM_Reject,
12695 /* 13041 */ // Label 109: @13041
12696 /* 13041 */ GIM_Try, /*On fail goto*//*Label 600*/ GIMT_Encode4(13062), // Rule ID 209 //
12697 /* 13046 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule159Enabled),
12698 /* 13049 */ // MIs[0] dst
12699 /* 13049 */ // No operand predicates
12700 /* 13049 */ // MIs[0] src0
12701 /* 13049 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12702 /* 13053 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
12703 /* 13057 */ // MIs[1] cst
12704 /* 13057 */ // No operand predicates
12705 /* 13057 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12706 /* 13059 */ // Combiner Rule #159: constant_fold_fsqrt
12707 /* 13059 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
12708 /* 13062 */ // Label 600: @13062
12709 /* 13062 */ GIM_Reject,
12710 /* 13063 */ // Label 110: @13063
12711 /* 13063 */ GIM_Try, /*On fail goto*//*Label 601*/ GIMT_Encode4(13084), // Rule ID 214 //
12712 /* 13068 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
12713 /* 13071 */ // MIs[0] dst
12714 /* 13071 */ // No operand predicates
12715 /* 13071 */ // MIs[0] src0
12716 /* 13071 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12717 /* 13075 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
12718 /* 13079 */ // MIs[1] cst
12719 /* 13079 */ // No operand predicates
12720 /* 13079 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12721 /* 13081 */ // Combiner Rule #164: constant_fold_ffloor
12722 /* 13081 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
12723 /* 13084 */ // Label 601: @13084
12724 /* 13084 */ GIM_Reject,
12725 /* 13085 */ // Label 111: @13085
12726 /* 13085 */ GIM_Try, /*On fail goto*//*Label 602*/ GIMT_Encode4(13106), // Rule ID 218 //
12727 /* 13090 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
12728 /* 13093 */ // MIs[0] dst
12729 /* 13093 */ // No operand predicates
12730 /* 13093 */ // MIs[0] src0
12731 /* 13093 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12732 /* 13097 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
12733 /* 13101 */ // MIs[1] cst
12734 /* 13101 */ // No operand predicates
12735 /* 13101 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12736 /* 13103 */ // Combiner Rule #168: constant_fold_frint
12737 /* 13103 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
12738 /* 13106 */ // Label 602: @13106
12739 /* 13106 */ GIM_Reject,
12740 /* 13107 */ // Label 112: @13107
12741 /* 13107 */ GIM_Try, /*On fail goto*//*Label 603*/ GIMT_Encode4(13128), // Rule ID 219 //
12742 /* 13112 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
12743 /* 13115 */ // MIs[0] dst
12744 /* 13115 */ // No operand predicates
12745 /* 13115 */ // MIs[0] src0
12746 /* 13115 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
12747 /* 13119 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
12748 /* 13123 */ // MIs[1] cst
12749 /* 13123 */ // No operand predicates
12750 /* 13123 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
12751 /* 13125 */ // Combiner Rule #169: constant_fold_fnearbyint
12752 /* 13125 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
12753 /* 13128 */ // Label 603: @13128
12754 /* 13128 */ GIM_Reject,
12755 /* 13129 */ // Label 113: @13129
12756 /* 13129 */ GIM_Reject,
12757 /* 13130 */ }; // Size: 13130 bytes
12758 return MatchTable0;
12759}
12760#undef GIMT_Encode2
12761#undef GIMT_Encode4
12762#undef GIMT_Encode8
12763
12764
12765#endif // GET_GICOMBINER_IMPL
12766
12767#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
12768
12769AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
12770AvailableFunctionFeatures()
12771
12772#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
12773
12774#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
12775
12776, State(0),
12777ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
12778
12779#endif // GET_GICOMBINER_CONSTRUCTOR_INITS
12780
12781