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#include "llvm/ADT/SparseBitVector.h"
11namespace llvm {
12extern cl::OptionCategory GICombinerOptionCategory;
13} // end namespace llvm
14#endif // ifdef GET_GICOMBINER_DEPS
15
16#ifdef GET_GICOMBINER_TYPES
17struct AMDGPUPreLegalizerCombinerImplRuleConfig {
18 SparseBitVector<> DisabledRules;
19
20 bool isRuleEnabled(unsigned RuleID) const;
21 bool parseCommandLineOption();
22 bool setRuleEnabled(StringRef RuleIdentifier);
23 bool setRuleDisabled(StringRef RuleIdentifier);
24};
25
26static std::optional<uint64_t> getRuleIdxForIdentifier(StringRef RuleIdentifier) {
27 uint64_t I;
28 // getAtInteger(...) returns false on success
29 bool Parsed = !RuleIdentifier.getAsInteger(0, I);
30 if (Parsed)
31 return I;
32
33#ifndef NDEBUG
34 switch (RuleIdentifier.size()) {
35 default: break;
36 case 9: // 6 strings to match.
37 switch (RuleIdentifier[0]) {
38 default: break;
39 case 'a': // 1 string to match.
40 if (memcmp(RuleIdentifier.data()+1, "dd_shift", 8) != 0)
41 break;
42 return 238; // "add_shift"
43 case 'c': // 1 string to match.
44 if (memcmp(RuleIdentifier.data()+1, "opy_prop", 8) != 0)
45 break;
46 return 15; // "copy_prop"
47 case 'm': // 3 strings to match.
48 switch (RuleIdentifier[1]) {
49 default: break;
50 case 'a': // 1 string to match.
51 if (memcmp(RuleIdentifier.data()+2, "tch_ors", 7) != 0)
52 break;
53 return 209; // "match_ors"
54 case 'u': // 2 strings to match.
55 if (memcmp(RuleIdentifier.data()+2, "lo_by_", 6) != 0)
56 break;
57 switch (RuleIdentifier[8]) {
58 default: break;
59 case '0': // 1 string to match.
60 return 155; // "mulo_by_0"
61 case '2': // 1 string to match.
62 return 154; // "mulo_by_2"
63 }
64 break;
65 }
66 break;
67 case 'n': // 1 string to match.
68 if (memcmp(RuleIdentifier.data()+1, "neg_zext", 8) != 0)
69 break;
70 return 214; // "nneg_zext"
71 }
72 break;
73 case 10: // 7 strings to match.
74 switch (RuleIdentifier[0]) {
75 default: break;
76 case 'i': // 1 string to match.
77 if (memcmp(RuleIdentifier.data()+1, "2p_to_p2i", 9) != 0)
78 break;
79 return 91; // "i2p_to_p2i"
80 case 'm': // 2 strings to match.
81 switch (RuleIdentifier[1]) {
82 default: break;
83 case 'a': // 1 string to match.
84 if (memcmp(RuleIdentifier.data()+2, "tch_ands", 8) != 0)
85 break;
86 return 208; // "match_ands"
87 case 'u': // 1 string to match.
88 if (memcmp(RuleIdentifier.data()+2, "l_to_shl", 8) != 0)
89 break;
90 return 16; // "mul_to_shl"
91 }
92 break;
93 case 'p': // 1 string to match.
94 if (memcmp(RuleIdentifier.data()+1, "2i_to_i2p", 9) != 0)
95 break;
96 return 90; // "p2i_to_i2p"
97 case 's': // 2 strings to match.
98 switch (RuleIdentifier[1]) {
99 default: break;
100 case 'e': // 1 string to match.
101 if (memcmp(RuleIdentifier.data()+2, "xt_trunc", 8) != 0)
102 break;
103 return 212; // "sext_trunc"
104 case 'u': // 1 string to match.
105 if (memcmp(RuleIdentifier.data()+2, "b_to_add", 8) != 0)
106 break;
107 return 17; // "sub_to_add"
108 }
109 break;
110 case 'z': // 1 string to match.
111 if (memcmp(RuleIdentifier.data()+1, "ext_trunc", 9) != 0)
112 break;
113 return 213; // "zext_trunc"
114 }
115 break;
116 case 11: // 8 strings to match.
117 switch (RuleIdentifier[0]) {
118 default: break;
119 case 'a': // 1 string to match.
120 if (memcmp(RuleIdentifier.data()+1, "dd_sub_reg", 10) != 0)
121 break;
122 return 96; // "add_sub_reg"
123 case 'm': // 1 string to match.
124 if (memcmp(RuleIdentifier.data()+1, "atch_addos", 10) != 0)
125 break;
126 return 229; // "match_addos"
127 case 's': // 1 string to match.
128 if (memcmp(RuleIdentifier.data()+1, "ub_add_reg", 10) != 0)
129 break;
130 return 203; // "sub_add_reg"
131 case 't': // 4 strings to match.
132 if (memcmp(RuleIdentifier.data()+1, "runc_", 5) != 0)
133 break;
134 switch (RuleIdentifier[6]) {
135 default: break;
136 case 's': // 3 strings to match.
137 switch (RuleIdentifier[7]) {
138 default: break;
139 case 'h': // 1 string to match.
140 if (memcmp(RuleIdentifier.data()+8, "ift", 3) != 0)
141 break;
142 return 134; // "trunc_shift"
143 case 's': // 2 strings to match.
144 if (memcmp(RuleIdentifier.data()+8, "at", 2) != 0)
145 break;
146 switch (RuleIdentifier[10]) {
147 default: break;
148 case 's': // 1 string to match.
149 return 231; // "trunc_ssats"
150 case 'u': // 1 string to match.
151 return 232; // "trunc_ssatu"
152 }
153 break;
154 }
155 break;
156 case 'u': // 1 string to match.
157 if (memcmp(RuleIdentifier.data()+7, "satu", 4) != 0)
158 break;
159 return 233; // "trunc_usatu"
160 }
161 break;
162 case 'u': // 1 string to match.
163 if (memcmp(RuleIdentifier.data()+1, "nmerge_cst", 10) != 0)
164 break;
165 return 222; // "unmerge_cst"
166 }
167 break;
168 case 12: // 12 strings to match.
169 switch (RuleIdentifier[0]) {
170 default: break;
171 case 'A': // 1 string to match.
172 if (memcmp(RuleIdentifier.data()+1, "PlusBMinusB", 11) != 0)
173 break;
174 return 4; // "APlusBMinusB"
175 case 'B': // 1 string to match.
176 if (memcmp(RuleIdentifier.data()+1, "MinusAPlusA", 11) != 0)
177 break;
178 return 5; // "BMinusAPlusA"
179 case 'a': // 1 string to match.
180 if (memcmp(RuleIdentifier.data()+1, "dde_to_addo", 11) != 0)
181 break;
182 return 156; // "adde_to_addo"
183 case 'c': // 1 string to match.
184 if (memcmp(RuleIdentifier.data()+1, "tlz_to_ctls", 11) != 0)
185 break;
186 return 236; // "ctlz_to_ctls"
187 case 'f': // 1 string to match.
188 if (memcmp(RuleIdentifier.data()+1, "sub_to_fneg", 11) != 0)
189 break;
190 return 205; // "fsub_to_fneg"
191 case 'm': // 1 string to match.
192 if (memcmp(RuleIdentifier.data()+1, "ulh_to_lshr", 11) != 0)
193 break;
194 return 184; // "mulh_to_lshr"
195 case 'n': // 1 string to match.
196 if (memcmp(RuleIdentifier.data()+1, "ot_cmp_fold", 11) != 0)
197 break;
198 return 135; // "not_cmp_fold"
199 case 'r': // 1 string to match.
200 if (memcmp(RuleIdentifier.data()+1, "edundant_or", 11) != 0)
201 break;
202 return 130; // "redundant_or"
203 case 's': // 2 strings to match.
204 switch (RuleIdentifier[1]) {
205 default: break;
206 case 'd': // 1 string to match.
207 if (memcmp(RuleIdentifier.data()+2, "iv_by_pow2", 10) != 0)
208 break;
209 return 199; // "sdiv_by_pow2"
210 case 'e': // 1 string to match.
211 if (memcmp(RuleIdentifier.data()+2, "xt_of_sext", 10) != 0)
212 break;
213 return 50; // "sext_of_sext"
214 }
215 break;
216 case 'u': // 1 string to match.
217 if (memcmp(RuleIdentifier.data()+1, "div_by_pow2", 11) != 0)
218 break;
219 return 198; // "udiv_by_pow2"
220 case 'z': // 1 string to match.
221 if (memcmp(RuleIdentifier.data()+1, "ext_of_zext", 11) != 0)
222 break;
223 return 48; // "zext_of_zext"
224 }
225 break;
226 case 13: // 16 strings to match.
227 switch (RuleIdentifier[0]) {
228 default: break;
229 case 'a': // 1 string to match.
230 if (memcmp(RuleIdentifier.data()+1, "dd_of_vscale", 12) != 0)
231 break;
232 return 39; // "add_of_vscale"
233 case 'c': // 1 string to match.
234 if (memcmp(RuleIdentifier.data()+1, "ommute_shift", 12) != 0)
235 break;
236 return 174; // "commute_shift"
237 case 'f': // 1 string to match.
238 if (memcmp(RuleIdentifier.data()+1, "oldable_fneg", 12) != 0)
239 break;
240 return 241; // "foldable_fneg"
241 case 'l': // 1 string to match.
242 if (memcmp(RuleIdentifier.data()+1, "oad_and_mask", 12) != 0)
243 break;
244 return 71; // "load_and_mask"
245 case 'm': // 3 strings to match.
246 switch (RuleIdentifier[1]) {
247 default: break;
248 case 'a': // 1 string to match.
249 if (memcmp(RuleIdentifier.data()+2, "tch_selects", 11) != 0)
250 break;
251 return 127; // "match_selects"
252 case 'e': // 1 string to match.
253 if (memcmp(RuleIdentifier.data()+2, "rge_unmerge", 11) != 0)
254 break;
255 return 221; // "merge_unmerge"
256 case 'u': // 1 string to match.
257 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
258 break;
259 return 40; // "mul_of_vscale"
260 }
261 break;
262 case 'r': // 1 string to match.
263 if (memcmp(RuleIdentifier.data()+1, "edundant_and", 12) != 0)
264 break;
265 return 128; // "redundant_and"
266 case 's': // 4 strings to match.
267 switch (RuleIdentifier[1]) {
268 default: break;
269 case 'd': // 1 string to match.
270 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
271 break;
272 return 201; // "sdiv_by_const"
273 case 'h': // 1 string to match.
274 if (memcmp(RuleIdentifier.data()+2, "l_of_vscale", 11) != 0)
275 break;
276 return 41; // "shl_of_vscale"
277 case 'r': // 1 string to match.
278 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
279 break;
280 return 197; // "srem_by_const"
281 case 'u': // 1 string to match.
282 if (memcmp(RuleIdentifier.data()+2, "b_of_vscale", 11) != 0)
283 break;
284 return 42; // "sub_of_vscale"
285 }
286 break;
287 case 'u': // 4 strings to match.
288 switch (RuleIdentifier[1]) {
289 default: break;
290 case 'd': // 1 string to match.
291 if (memcmp(RuleIdentifier.data()+2, "iv_by_const", 11) != 0)
292 break;
293 return 200; // "udiv_by_const"
294 case 'n': // 2 strings to match.
295 if (memcmp(RuleIdentifier.data()+2, "merge_", 6) != 0)
296 break;
297 switch (RuleIdentifier[8]) {
298 default: break;
299 case 'm': // 1 string to match.
300 if (memcmp(RuleIdentifier.data()+9, "erge", 4) != 0)
301 break;
302 return 220; // "unmerge_merge"
303 case 'u': // 1 string to match.
304 if (memcmp(RuleIdentifier.data()+9, "ndef", 4) != 0)
305 break;
306 return 223; // "unmerge_undef"
307 }
308 break;
309 case 'r': // 1 string to match.
310 if (memcmp(RuleIdentifier.data()+2, "em_by_const", 11) != 0)
311 break;
312 return 196; // "urem_by_const"
313 }
314 break;
315 }
316 break;
317 case 14: // 15 strings to match.
318 switch (RuleIdentifier[0]) {
319 default: break;
320 case 'A': // 2 strings to match.
321 switch (RuleIdentifier[1]) {
322 default: break;
323 case 'M': // 1 string to match.
324 if (memcmp(RuleIdentifier.data()+2, "inusC1PlusC2", 12) != 0)
325 break;
326 return 14; // "AMinusC1PlusC2"
327 case 'P': // 1 string to match.
328 if (memcmp(RuleIdentifier.data()+2, "lusC1MinusC2", 12) != 0)
329 break;
330 return 10; // "APlusC1MinusC2"
331 }
332 break;
333 case 'C': // 1 string to match.
334 if (memcmp(RuleIdentifier.data()+1, "2MinusAPlusC1", 13) != 0)
335 break;
336 return 11; // "C2MinusAPlusC1"
337 case 'a': // 2 strings to match.
338 if (memcmp(RuleIdentifier.data()+1, "nyext_of_", 9) != 0)
339 break;
340 switch (RuleIdentifier[10]) {
341 default: break;
342 case 's': // 1 string to match.
343 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
344 break;
345 return 54; // "anyext_of_sext"
346 case 'z': // 1 string to match.
347 if (memcmp(RuleIdentifier.data()+11, "ext", 3) != 0)
348 break;
349 return 53; // "anyext_of_zext"
350 }
351 break;
352 case 'b': // 2 strings to match.
353 if (RuleIdentifier[1] != 'i')
354 break;
355 switch (RuleIdentifier[2]) {
356 default: break;
357 case 'n': // 1 string to match.
358 if (memcmp(RuleIdentifier.data()+3, "op_same_val", 11) != 0)
359 break;
360 return 87; // "binop_same_val"
361 case 't': // 1 string to match.
362 if (memcmp(RuleIdentifier.data()+3, "reverse_shl", 11) != 0)
363 break;
364 return 172; // "bitreverse_shl"
365 }
366 break;
367 case 'f': // 2 strings to match.
368 switch (RuleIdentifier[1]) {
369 default: break;
370 case 'a': // 1 string to match.
371 if (memcmp(RuleIdentifier.data()+2, "bs_fneg_fold", 12) != 0)
372 break;
373 return 183; // "fabs_fneg_fold"
374 case 'n': // 1 string to match.
375 if (memcmp(RuleIdentifier.data()+2, "eg_fneg_fold", 12) != 0)
376 break;
377 return 93; // "fneg_fneg_fold"
378 }
379 break;
380 case 'm': // 1 string to match.
381 if (memcmp(RuleIdentifier.data()+1, "ul_by_neg_one", 13) != 0)
382 break;
383 return 19; // "mul_by_neg_one"
384 case 'r': // 1 string to match.
385 if (memcmp(RuleIdentifier.data()+1, "eassoc_ptradd", 13) != 0)
386 break;
387 return 109; // "reassoc_ptradd"
388 case 's': // 3 strings to match.
389 switch (RuleIdentifier[1]) {
390 default: break;
391 case 'e': // 2 strings to match.
392 switch (RuleIdentifier[2]) {
393 default: break;
394 case 'l': // 1 string to match.
395 if (memcmp(RuleIdentifier.data()+3, "ect_of_zext", 11) != 0)
396 break;
397 return 56; // "select_of_zext"
398 case 'x': // 1 string to match.
399 if (memcmp(RuleIdentifier.data()+3, "t_of_anyext", 11) != 0)
400 break;
401 return 51; // "sext_of_anyext"
402 }
403 break;
404 case 'h': // 1 string to match.
405 if (memcmp(RuleIdentifier.data()+2, "ifts_too_big", 12) != 0)
406 break;
407 return 108; // "shifts_too_big"
408 }
409 break;
410 case 'z': // 1 string to match.
411 if (memcmp(RuleIdentifier.data()+1, "ext_of_anyext", 13) != 0)
412 break;
413 return 49; // "zext_of_anyext"
414 }
415 break;
416 case 15: // 12 strings to match.
417 switch (RuleIdentifier[0]) {
418 default: break;
419 case 'A': // 2 strings to match.
420 switch (RuleIdentifier[1]) {
421 default: break;
422 case 'M': // 1 string to match.
423 if (memcmp(RuleIdentifier.data()+2, "inusC1MinusC2", 13) != 0)
424 break;
425 return 12; // "AMinusC1MinusC2"
426 case 'P': // 1 string to match.
427 if (memcmp(RuleIdentifier.data()+2, "lusZeroMinusB", 13) != 0)
428 break;
429 return 3; // "APlusZeroMinusB"
430 }
431 break;
432 case 'C': // 1 string to match.
433 if (memcmp(RuleIdentifier.data()+1, "1Minus2MinusC2", 14) != 0)
434 break;
435 return 13; // "C1Minus2MinusC2"
436 case 'Z': // 1 string to match.
437 if (memcmp(RuleIdentifier.data()+1, "eroMinusAPlusB", 14) != 0)
438 break;
439 return 2; // "ZeroMinusAPlusB"
440 case 'b': // 1 string to match.
441 if (memcmp(RuleIdentifier.data()+1, "itreverse_lshr", 14) != 0)
442 break;
443 return 173; // "bitreverse_lshr"
444 case 'e': // 1 string to match.
445 if (memcmp(RuleIdentifier.data()+1, "xtending_loads", 14) != 0)
446 break;
447 return 70; // "extending_loads"
448 case 'i': // 1 string to match.
449 if (memcmp(RuleIdentifier.data()+1, "dempotent_prop", 14) != 0)
450 break;
451 return 20; // "idempotent_prop"
452 case 'l': // 1 string to match.
453 if (memcmp(RuleIdentifier.data()+1, "oad_or_combine", 14) != 0)
454 break;
455 return 163; // "load_or_combine"
456 case 'n': // 1 string to match.
457 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_or", 14) != 0)
458 break;
459 return 64; // "narrow_binop_or"
460 case 'o': // 1 string to match.
461 if (memcmp(RuleIdentifier.data()+1, "verlapping_and", 14) != 0)
462 break;
463 return 153; // "overlapping_and"
464 case 's': // 1 string to match.
465 if (memcmp(RuleIdentifier.data()+1, "elect_same_val", 14) != 0)
466 break;
467 return 85; // "select_same_val"
468 case 'z': // 1 string to match.
469 if (memcmp(RuleIdentifier.data()+1, "ext_trunc_fold", 14) != 0)
470 break;
471 return 132; // "zext_trunc_fold"
472 }
473 break;
474 case 16: // 13 strings to match.
475 switch (RuleIdentifier[0]) {
476 default: break;
477 case 'a': // 1 string to match.
478 if (memcmp(RuleIdentifier.data()+1, "nyext_of_anyext", 15) != 0)
479 break;
480 return 52; // "anyext_of_anyext"
481 case 'c': // 1 string to match.
482 if (memcmp(RuleIdentifier.data()+1, "lamp_i64_to_i16", 15) != 0)
483 break;
484 return 240; // "clamp_i64_to_i16"
485 case 'n': // 5 strings to match.
486 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_", 12) != 0)
487 break;
488 switch (RuleIdentifier[13]) {
489 default: break;
490 case 'a': // 2 strings to match.
491 switch (RuleIdentifier[14]) {
492 default: break;
493 case 'd': // 1 string to match.
494 if (RuleIdentifier[15] != 'd')
495 break;
496 return 60; // "narrow_binop_add"
497 case 'n': // 1 string to match.
498 if (RuleIdentifier[15] != 'd')
499 break;
500 return 63; // "narrow_binop_and"
501 }
502 break;
503 case 'm': // 1 string to match.
504 if (memcmp(RuleIdentifier.data()+14, "ul", 2) != 0)
505 break;
506 return 62; // "narrow_binop_mul"
507 case 's': // 1 string to match.
508 if (memcmp(RuleIdentifier.data()+14, "ub", 2) != 0)
509 break;
510 return 61; // "narrow_binop_sub"
511 case 'x': // 1 string to match.
512 if (memcmp(RuleIdentifier.data()+14, "or", 2) != 0)
513 break;
514 return 65; // "narrow_binop_xor"
515 }
516 break;
517 case 's': // 3 strings to match.
518 if (memcmp(RuleIdentifier.data()+1, "elect_", 6) != 0)
519 break;
520 switch (RuleIdentifier[7]) {
521 default: break;
522 case 'o': // 1 string to match.
523 if (memcmp(RuleIdentifier.data()+8, "f_anyext", 8) != 0)
524 break;
525 return 57; // "select_of_anyext"
526 case 't': // 1 string to match.
527 if (memcmp(RuleIdentifier.data()+8, "o_minmax", 8) != 0)
528 break;
529 return 204; // "select_to_minmax"
530 case 'u': // 1 string to match.
531 if (memcmp(RuleIdentifier.data()+8, "ndef_cmp", 8) != 0)
532 break;
533 return 124; // "select_undef_cmp"
534 }
535 break;
536 case 't': // 2 strings to match.
537 if (memcmp(RuleIdentifier.data()+1, "runcate_of_", 11) != 0)
538 break;
539 switch (RuleIdentifier[12]) {
540 default: break;
541 case 's': // 1 string to match.
542 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
543 break;
544 return 46; // "truncate_of_sext"
545 case 'z': // 1 string to match.
546 if (memcmp(RuleIdentifier.data()+13, "ext", 3) != 0)
547 break;
548 return 45; // "truncate_of_zext"
549 }
550 break;
551 case 'u': // 1 string to match.
552 if (memcmp(RuleIdentifier.data()+1, "ndef_to_fp_zero", 15) != 0)
553 break;
554 return 73; // "undef_to_fp_zero"
555 }
556 break;
557 case 17: // 14 strings to match.
558 switch (RuleIdentifier[0]) {
559 default: break;
560 case 'A': // 2 strings to match.
561 if (memcmp(RuleIdentifier.data()+1, "PlusBMinus", 10) != 0)
562 break;
563 switch (RuleIdentifier[11]) {
564 default: break;
565 case 'A': // 1 string to match.
566 if (memcmp(RuleIdentifier.data()+12, "plusC", 5) != 0)
567 break;
568 return 8; // "APlusBMinusAplusC"
569 case 'C': // 1 string to match.
570 if (memcmp(RuleIdentifier.data()+12, "PlusA", 5) != 0)
571 break;
572 return 9; // "APlusBMinusCPlusA"
573 }
574 break;
575 case 'a': // 2 strings to match.
576 switch (RuleIdentifier[1]) {
577 default: break;
578 case 'd': // 1 string to match.
579 if (memcmp(RuleIdentifier.data()+2, "d_p2i_to_ptradd", 15) != 0)
580 break;
581 return 18; // "add_p2i_to_ptradd"
582 case 'n': // 1 string to match.
583 if (memcmp(RuleIdentifier.data()+2, "yext_trunc_fold", 15) != 0)
584 break;
585 return 92; // "anyext_trunc_fold"
586 }
587 break;
588 case 'c': // 3 strings to match.
589 switch (RuleIdentifier[1]) {
590 default: break;
591 case 'a': // 2 strings to match.
592 if (memcmp(RuleIdentifier.data()+2, "nonicalize_", 11) != 0)
593 break;
594 switch (RuleIdentifier[13]) {
595 default: break;
596 case 'f': // 1 string to match.
597 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
598 break;
599 return 113; // "canonicalize_fcmp"
600 case 'i': // 1 string to match.
601 if (memcmp(RuleIdentifier.data()+14, "cmp", 3) != 0)
602 break;
603 return 112; // "canonicalize_icmp"
604 }
605 break;
606 case 'o': // 1 string to match.
607 if (memcmp(RuleIdentifier.data()+2, "nstant_fold_fma", 15) != 0)
608 break;
609 return 181; // "constant_fold_fma"
610 }
611 break;
612 case 'd': // 1 string to match.
613 if (memcmp(RuleIdentifier.data()+1, "iv_rem_to_divrem", 16) != 0)
614 break;
615 return 164; // "div_rem_to_divrem"
616 case 'e': // 1 string to match.
617 if (memcmp(RuleIdentifier.data()+1, "rase_undef_store", 16) != 0)
618 break;
619 return 83; // "erase_undef_store"
620 case 'p': // 1 string to match.
621 if (memcmp(RuleIdentifier.data()+1, "tr_add_with_zero", 16) != 0)
622 break;
623 return 160; // "ptr_add_with_zero"
624 case 's': // 2 strings to match.
625 switch (RuleIdentifier[1]) {
626 default: break;
627 case 'e': // 1 string to match.
628 if (memcmp(RuleIdentifier.data()+2, "lect_to_iminmax", 15) != 0)
629 break;
630 return 126; // "select_to_iminmax"
631 case 'h': // 1 string to match.
632 if (memcmp(RuleIdentifier.data()+2, "ift_immed_chain", 15) != 0)
633 break;
634 return 161; // "shift_immed_chain"
635 }
636 break;
637 case 'u': // 2 strings to match.
638 switch (RuleIdentifier[1]) {
639 default: break;
640 case 'n': // 1 string to match.
641 if (memcmp(RuleIdentifier.data()+2, "def_to_int_zero", 15) != 0)
642 break;
643 return 74; // "undef_to_int_zero"
644 case 'r': // 1 string to match.
645 if (memcmp(RuleIdentifier.data()+2, "em_pow2_to_mask", 15) != 0)
646 break;
647 return 131; // "urem_pow2_to_mask"
648 }
649 break;
650 }
651 break;
652 case 18: // 13 strings to match.
653 switch (RuleIdentifier[0]) {
654 default: break;
655 case 'A': // 3 strings to match.
656 switch (RuleIdentifier[1]) {
657 default: break;
658 case 'M': // 2 strings to match.
659 if (memcmp(RuleIdentifier.data()+2, "inusBPlus", 9) != 0)
660 break;
661 switch (RuleIdentifier[11]) {
662 default: break;
663 case 'B': // 1 string to match.
664 if (memcmp(RuleIdentifier.data()+12, "MinusC", 6) != 0)
665 break;
666 return 7; // "AMinusBPlusBMinusC"
667 case 'C': // 1 string to match.
668 if (memcmp(RuleIdentifier.data()+12, "MinusA", 6) != 0)
669 break;
670 return 6; // "AMinusBPlusCMinusA"
671 }
672 break;
673 case 'P': // 1 string to match.
674 if (memcmp(RuleIdentifier.data()+2, "lusBMinusCMinusB", 16) != 0)
675 break;
676 return 0; // "APlusBMinusCMinusB"
677 }
678 break;
679 case 'b': // 1 string to match.
680 if (memcmp(RuleIdentifier.data()+1, "inop_left_to_zero", 17) != 0)
681 break;
682 return 88; // "binop_left_to_zero"
683 case 'c': // 4 strings to match.
684 if (RuleIdentifier[1] != 'o')
685 break;
686 switch (RuleIdentifier[2]) {
687 default: break;
688 case 'm': // 2 strings to match.
689 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
690 break;
691 switch (RuleIdentifier[8]) {
692 default: break;
693 case 'm': // 1 string to match.
694 if (memcmp(RuleIdentifier.data()+9, "inmax_nan", 9) != 0)
695 break;
696 return 157; // "combine_minmax_nan"
697 case 'o': // 1 string to match.
698 if (memcmp(RuleIdentifier.data()+9, "r_s64_s32", 9) != 0)
699 break;
700 return 245; // "combine_or_s64_s32"
701 }
702 break;
703 case 'n': // 2 strings to match.
704 if (memcmp(RuleIdentifier.data()+3, "stant_fold_f", 12) != 0)
705 break;
706 switch (RuleIdentifier[15]) {
707 default: break;
708 case 'a': // 1 string to match.
709 if (memcmp(RuleIdentifier.data()+16, "bs", 2) != 0)
710 break;
711 return 138; // "constant_fold_fabs"
712 case 'n': // 1 string to match.
713 if (memcmp(RuleIdentifier.data()+16, "eg", 2) != 0)
714 break;
715 return 137; // "constant_fold_fneg"
716 }
717 break;
718 }
719 break;
720 case 'e': // 1 string to match.
721 if (memcmp(RuleIdentifier.data()+1, "xpand_const_fpowi", 17) != 0)
722 break;
723 return 158; // "expand_const_fpowi"
724 case 'f': // 1 string to match.
725 if (memcmp(RuleIdentifier.data()+1, "ptrunc_fpext_fold", 17) != 0)
726 break;
727 return 101; // "fptrunc_fpext_fold"
728 case 's': // 2 strings to match.
729 if (RuleIdentifier[1] != 'e')
730 break;
731 switch (RuleIdentifier[2]) {
732 default: break;
733 case 'l': // 1 string to match.
734 if (memcmp(RuleIdentifier.data()+3, "ect_of_truncate", 15) != 0)
735 break;
736 return 58; // "select_of_truncate"
737 case 'x': // 1 string to match.
738 if (memcmp(RuleIdentifier.data()+3, "t_inreg_of_load", 15) != 0)
739 break;
740 return 121; // "sext_inreg_of_load"
741 }
742 break;
743 case 't': // 1 string to match.
744 if (memcmp(RuleIdentifier.data()+1, "runcate_of_anyext", 17) != 0)
745 break;
746 return 47; // "truncate_of_anyext"
747 }
748 break;
749 case 19: // 19 strings to match.
750 switch (RuleIdentifier[0]) {
751 default: break;
752 case 'A': // 1 string to match.
753 if (memcmp(RuleIdentifier.data()+1, "MinusBMinusCMinusC", 18) != 0)
754 break;
755 return 1; // "AMinusBMinusCMinusC"
756 case 'b': // 1 string to match.
757 if (memcmp(RuleIdentifier.data()+1, "inop_right_to_zero", 18) != 0)
758 break;
759 return 89; // "binop_right_to_zero"
760 case 'c': // 7 strings to match.
761 if (memcmp(RuleIdentifier.data()+1, "onst", 4) != 0)
762 break;
763 switch (RuleIdentifier[5]) {
764 default: break;
765 case '_': // 1 string to match.
766 if (memcmp(RuleIdentifier.data()+6, "ptradd_to_i2p", 13) != 0)
767 break;
768 return 152; // "const_ptradd_to_i2p"
769 case 'a': // 6 strings to match.
770 if (memcmp(RuleIdentifier.data()+6, "nt_fold_", 8) != 0)
771 break;
772 switch (RuleIdentifier[14]) {
773 default: break;
774 case 'b': // 1 string to match.
775 if (memcmp(RuleIdentifier.data()+15, "inop", 4) != 0)
776 break;
777 return 179; // "constant_fold_binop"
778 case 'f': // 5 strings to match.
779 switch (RuleIdentifier[15]) {
780 default: break;
781 case 'c': // 1 string to match.
782 if (memcmp(RuleIdentifier.data()+16, "eil", 3) != 0)
783 break;
784 return 143; // "constant_fold_fceil"
785 case 'l': // 1 string to match.
786 if (memcmp(RuleIdentifier.data()+16, "og2", 3) != 0)
787 break;
788 return 140; // "constant_fold_flog2"
789 case 'p': // 1 string to match.
790 if (memcmp(RuleIdentifier.data()+16, "ext", 3) != 0)
791 break;
792 return 142; // "constant_fold_fpext"
793 case 'r': // 1 string to match.
794 if (memcmp(RuleIdentifier.data()+16, "int", 3) != 0)
795 break;
796 return 148; // "constant_fold_frint"
797 case 's': // 1 string to match.
798 if (memcmp(RuleIdentifier.data()+16, "qrt", 3) != 0)
799 break;
800 return 139; // "constant_fold_fsqrt"
801 }
802 break;
803 }
804 break;
805 }
806 break;
807 case 'e': // 1 string to match.
808 if (memcmp(RuleIdentifier.data()+1, "xtend_through_phis", 18) != 0)
809 break;
810 return 105; // "extend_through_phis"
811 case 'i': // 1 string to match.
812 if (memcmp(RuleIdentifier.data()+1, "nteger_of_truncate", 18) != 0)
813 break;
814 return 66; // "integer_of_truncate"
815 case 'm': // 1 string to match.
816 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_zero", 18) != 0)
817 break;
818 return 227; // "merge_of_x_and_zero"
819 case 'p': // 1 string to match.
820 if (memcmp(RuleIdentifier.data()+1, "tr_add_immed_chain", 18) != 0)
821 break;
822 return 111; // "ptr_add_immed_chain"
823 case 'r': // 2 strings to match.
824 switch (RuleIdentifier[1]) {
825 default: break;
826 case 'e': // 1 string to match.
827 if (memcmp(RuleIdentifier.data()+2, "assoc_comm_binops", 17) != 0)
828 break;
829 return 110; // "reassoc_comm_binops"
830 case 'i': // 1 string to match.
831 if (memcmp(RuleIdentifier.data()+2, "ght_identity_zero", 17) != 0)
832 break;
833 return 86; // "right_identity_zero"
834 }
835 break;
836 case 's': // 3 strings to match.
837 switch (RuleIdentifier[1]) {
838 default: break;
839 case 'e': // 1 string to match.
840 if (memcmp(RuleIdentifier.data()+2, "lect_constant_cmp", 17) != 0)
841 break;
842 return 125; // "select_constant_cmp"
843 case 'i': // 2 strings to match.
844 if (memcmp(RuleIdentifier.data()+2, "mplify_", 7) != 0)
845 break;
846 switch (RuleIdentifier[9]) {
847 default: break;
848 case 'a': // 1 string to match.
849 if (memcmp(RuleIdentifier.data()+10, "dd_to_sub", 9) != 0)
850 break;
851 return 106; // "simplify_add_to_sub"
852 case 'n': // 1 string to match.
853 if (memcmp(RuleIdentifier.data()+10, "eg_minmax", 9) != 0)
854 break;
855 return 210; // "simplify_neg_minmax"
856 }
857 break;
858 }
859 break;
860 case 'u': // 1 string to match.
861 if (memcmp(RuleIdentifier.data()+1, "nary_undef_to_zero", 18) != 0)
862 break;
863 return 78; // "unary_undef_to_zero"
864 }
865 break;
866 case 20: // 8 strings to match.
867 switch (RuleIdentifier[0]) {
868 default: break;
869 case 'a': // 1 string to match.
870 if (memcmp(RuleIdentifier.data()+1, "nd_or_disjoint_mask", 19) != 0)
871 break;
872 return 186; // "and_or_disjoint_mask"
873 case 'b': // 1 string to match.
874 if (memcmp(RuleIdentifier.data()+1, "itcast_bitcast_fold", 19) != 0)
875 break;
876 return 100; // "bitcast_bitcast_fold"
877 case 'c': // 1 string to match.
878 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_ffloor", 19) != 0)
879 break;
880 return 144; // "constant_fold_ffloor"
881 case 'm': // 1 string to match.
882 if (memcmp(RuleIdentifier.data()+1, "erge_of_x_and_undef", 19) != 0)
883 break;
884 return 226; // "merge_of_x_and_undef"
885 case 'r': // 2 strings to match.
886 if (memcmp(RuleIdentifier.data()+1, "edu", 3) != 0)
887 break;
888 switch (RuleIdentifier[4]) {
889 default: break;
890 case 'c': // 1 string to match.
891 if (memcmp(RuleIdentifier.data()+5, "e_shl_of_extend", 15) != 0)
892 break;
893 return 122; // "reduce_shl_of_extend"
894 case 'n': // 1 string to match.
895 if (memcmp(RuleIdentifier.data()+5, "dant_sext_inreg", 15) != 0)
896 break;
897 return 129; // "redundant_sext_inreg"
898 }
899 break;
900 case 'u': // 2 strings to match.
901 if (RuleIdentifier[1] != 'n')
902 break;
903 switch (RuleIdentifier[2]) {
904 default: break;
905 case 'a': // 1 string to match.
906 if (memcmp(RuleIdentifier.data()+3, "ry_undef_to_undef", 17) != 0)
907 break;
908 return 79; // "unary_undef_to_undef"
909 case 'm': // 1 string to match.
910 if (memcmp(RuleIdentifier.data()+3, "erge_zext_to_zext", 17) != 0)
911 break;
912 return 225; // "unmerge_zext_to_zext"
913 }
914 break;
915 }
916 break;
917 case 21: // 10 strings to match.
918 switch (RuleIdentifier[0]) {
919 default: break;
920 case 'c': // 4 strings to match.
921 if (RuleIdentifier[1] != 'o')
922 break;
923 switch (RuleIdentifier[2]) {
924 default: break;
925 case 'm': // 2 strings to match.
926 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
927 break;
928 switch (RuleIdentifier[8]) {
929 default: break;
930 case 'b': // 1 string to match.
931 if (memcmp(RuleIdentifier.data()+9, "uild_unmerge", 12) != 0)
932 break;
933 return 228; // "combine_build_unmerge"
934 case 'c': // 1 string to match.
935 if (memcmp(RuleIdentifier.data()+9, "oncat_vector", 12) != 0)
936 break;
937 return 211; // "combine_concat_vector"
938 }
939 break;
940 case 'n': // 2 strings to match.
941 if (memcmp(RuleIdentifier.data()+3, "stant_fold_", 11) != 0)
942 break;
943 switch (RuleIdentifier[14]) {
944 default: break;
945 case 'c': // 1 string to match.
946 if (memcmp(RuleIdentifier.data()+15, "ast_op", 6) != 0)
947 break;
948 return 182; // "constant_fold_cast_op"
949 case 'f': // 1 string to match.
950 if (memcmp(RuleIdentifier.data()+15, "ptrunc", 6) != 0)
951 break;
952 return 141; // "constant_fold_fptrunc"
953 }
954 break;
955 }
956 break;
957 case 'f': // 1 string to match.
958 if (memcmp(RuleIdentifier.data()+1, "div_repeated_divison", 20) != 0)
959 break;
960 return 202; // "fdiv_repeated_divison"
961 case 'i': // 1 string to match.
962 if (memcmp(RuleIdentifier.data()+1, "nsert_vector_elt_oob", 20) != 0)
963 break;
964 return 26; // "insert_vector_elt_oob"
965 case 'l': // 1 string to match.
966 if (memcmp(RuleIdentifier.data()+1, "shr_of_trunc_of_lshr", 20) != 0)
967 break;
968 return 235; // "lshr_of_trunc_of_lshr"
969 case 'r': // 1 string to match.
970 if (memcmp(RuleIdentifier.data()+1, "ight_identity_one_fp", 20) != 0)
971 break;
972 return 95; // "right_identity_one_fp"
973 case 'u': // 2 strings to match.
974 if (RuleIdentifier[1] != 'n')
975 break;
976 switch (RuleIdentifier[2]) {
977 default: break;
978 case 'd': // 1 string to match.
979 if (memcmp(RuleIdentifier.data()+3, "ef_to_negative_one", 18) != 0)
980 break;
981 return 75; // "undef_to_negative_one"
982 case 'm': // 1 string to match.
983 if (memcmp(RuleIdentifier.data()+3, "erge_dead_to_trunc", 18) != 0)
984 break;
985 return 224; // "unmerge_dead_to_trunc"
986 }
987 break;
988 }
989 break;
990 case 22: // 13 strings to match.
991 switch (RuleIdentifier[0]) {
992 default: break;
993 case 'c': // 2 strings to match.
994 if (RuleIdentifier[1] != 'o')
995 break;
996 switch (RuleIdentifier[2]) {
997 default: break;
998 case 'm': // 1 string to match.
999 if (memcmp(RuleIdentifier.data()+3, "bine_shuffle_concat", 19) != 0)
1000 break;
1001 return 215; // "combine_shuffle_concat"
1002 case 'n': // 1 string to match.
1003 if (memcmp(RuleIdentifier.data()+3, "stant_fold_fp_binop", 19) != 0)
1004 break;
1005 return 180; // "constant_fold_fp_binop"
1006 }
1007 break;
1008 case 'f': // 4 strings to match.
1009 switch (RuleIdentifier[1]) {
1010 default: break;
1011 case 'o': // 1 string to match.
1012 if (memcmp(RuleIdentifier.data()+2, "ld_binop_into_select", 20) != 0)
1013 break;
1014 return 195; // "fold_binop_into_select"
1015 case 'u': // 3 strings to match.
1016 if (memcmp(RuleIdentifier.data()+2, "nnel_shift_", 11) != 0)
1017 break;
1018 switch (RuleIdentifier[13]) {
1019 default: break;
1020 case 'l': // 1 string to match.
1021 if (memcmp(RuleIdentifier.data()+14, "eft_zero", 8) != 0)
1022 break;
1023 return 168; // "funnel_shift_left_zero"
1024 case 'o': // 1 string to match.
1025 if (memcmp(RuleIdentifier.data()+14, "vershift", 8) != 0)
1026 break;
1027 return 169; // "funnel_shift_overshift"
1028 case 't': // 1 string to match.
1029 if (memcmp(RuleIdentifier.data()+14, "o_rotate", 8) != 0)
1030 break;
1031 return 166; // "funnel_shift_to_rotate"
1032 }
1033 break;
1034 }
1035 break;
1036 case 'i': // 1 string to match.
1037 if (memcmp(RuleIdentifier.data()+1, "cmp_to_lhs_known_bits", 21) != 0)
1038 break;
1039 return 115; // "icmp_to_lhs_known_bits"
1040 case 'm': // 1 string to match.
1041 if (memcmp(RuleIdentifier.data()+1, "atch_subo_no_overflow", 21) != 0)
1042 break;
1043 return 230; // "match_subo_no_overflow"
1044 case 'p': // 1 string to match.
1045 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_any_op", 21) != 0)
1046 break;
1047 return 80; // "propagate_undef_any_op"
1048 case 'r': // 2 strings to match.
1049 switch (RuleIdentifier[1]) {
1050 default: break;
1051 case 'e': // 1 string to match.
1052 if (memcmp(RuleIdentifier.data()+2, "dundant_neg_operands", 20) != 0)
1053 break;
1054 return 185; // "redundant_neg_operands"
1055 case 'i': // 1 string to match.
1056 if (memcmp(RuleIdentifier.data()+2, "ght_identity_one_int", 20) != 0)
1057 break;
1058 return 94; // "right_identity_one_int"
1059 }
1060 break;
1061 case 's': // 1 string to match.
1062 if (memcmp(RuleIdentifier.data()+1, "hl_ashr_to_sext_inreg", 21) != 0)
1063 break;
1064 return 119; // "shl_ashr_to_sext_inreg"
1065 case 't': // 1 string to match.
1066 if (memcmp(RuleIdentifier.data()+1, "runc_buildvector_fold", 21) != 0)
1067 break;
1068 return 98; // "trunc_buildvector_fold"
1069 }
1070 break;
1071 case 23: // 7 strings to match.
1072 switch (RuleIdentifier[0]) {
1073 default: break;
1074 case 'b': // 1 string to match.
1075 if (memcmp(RuleIdentifier.data()+1, "uildvector_of_truncate", 22) != 0)
1076 break;
1077 return 59; // "buildvector_of_truncate"
1078 case 'c': // 1 string to match.
1079 if (memcmp(RuleIdentifier.data()+1, "tlz_zero_undef_to_ctls", 22) != 0)
1080 break;
1081 return 237; // "ctlz_zero_undef_to_ctls"
1082 case 'f': // 1 string to match.
1083 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_right_zero", 22) != 0)
1084 break;
1085 return 167; // "funnel_shift_right_zero"
1086 case 'i': // 2 strings to match.
1087 if (memcmp(RuleIdentifier.data()+1, "tof_const_zero_fold_", 20) != 0)
1088 break;
1089 switch (RuleIdentifier[21]) {
1090 default: break;
1091 case 's': // 1 string to match.
1092 if (RuleIdentifier[22] != 'i')
1093 break;
1094 return 150; // "itof_const_zero_fold_si"
1095 case 'u': // 1 string to match.
1096 if (RuleIdentifier[22] != 'i')
1097 break;
1098 return 151; // "itof_const_zero_fold_ui"
1099 }
1100 break;
1101 case 'p': // 1 string to match.
1102 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_all_ops", 22) != 0)
1103 break;
1104 return 81; // "propagate_undef_all_ops"
1105 case 't': // 1 string to match.
1106 if (memcmp(RuleIdentifier.data()+1, "runcusatu_to_fptouisat", 22) != 0)
1107 break;
1108 return 234; // "truncusatu_to_fptouisat"
1109 }
1110 break;
1111 case 24: // 7 strings to match.
1112 switch (RuleIdentifier[0]) {
1113 default: break;
1114 case 'b': // 1 string to match.
1115 if (memcmp(RuleIdentifier.data()+1, "inop_left_undef_to_zero", 23) != 0)
1116 break;
1117 return 76; // "binop_left_undef_to_zero"
1118 case 'c': // 1 string to match.
1119 if (memcmp(RuleIdentifier.data()+1, "onstant_fold_fnearbyint", 23) != 0)
1120 break;
1121 return 149; // "constant_fold_fnearbyint"
1122 case 'm': // 1 string to match.
1123 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element", 23) != 0)
1124 break;
1125 return 25; // "match_extract_of_element"
1126 case 'n': // 1 string to match.
1127 if (memcmp(RuleIdentifier.data()+1, "arrow_binop_feeding_and", 23) != 0)
1128 break;
1129 return 123; // "narrow_binop_feeding_and"
1130 case 's': // 2 strings to match.
1131 if (memcmp(RuleIdentifier.data()+1, "ext_inreg_", 10) != 0)
1132 break;
1133 switch (RuleIdentifier[11]) {
1134 default: break;
1135 case 'o': // 1 string to match.
1136 if (memcmp(RuleIdentifier.data()+12, "f_sext_inreg", 12) != 0)
1137 break;
1138 return 55; // "sext_inreg_of_sext_inreg"
1139 case 't': // 1 string to match.
1140 if (memcmp(RuleIdentifier.data()+12, "o_zext_inreg", 12) != 0)
1141 break;
1142 return 133; // "sext_inreg_to_zext_inreg"
1143 }
1144 break;
1145 case 'x': // 1 string to match.
1146 if (memcmp(RuleIdentifier.data()+1, "or_of_and_with_same_reg", 23) != 0)
1147 break;
1148 return 159; // "xor_of_and_with_same_reg"
1149 }
1150 break;
1151 case 25: // 7 strings to match.
1152 switch (RuleIdentifier[0]) {
1153 default: break;
1154 case 'b': // 3 strings to match.
1155 switch (RuleIdentifier[1]) {
1156 default: break;
1157 case 'i': // 2 strings to match.
1158 if (memcmp(RuleIdentifier.data()+2, "tfield_extract_from_", 20) != 0)
1159 break;
1160 switch (RuleIdentifier[22]) {
1161 default: break;
1162 case 'a': // 1 string to match.
1163 if (memcmp(RuleIdentifier.data()+23, "nd", 2) != 0)
1164 break;
1165 return 176; // "bitfield_extract_from_and"
1166 case 's': // 1 string to match.
1167 if (memcmp(RuleIdentifier.data()+23, "hr", 2) != 0)
1168 break;
1169 return 177; // "bitfield_extract_from_shr"
1170 }
1171 break;
1172 case 'u': // 1 string to match.
1173 if (memcmp(RuleIdentifier.data()+2, "ildvector_identity_fold", 23) != 0)
1174 break;
1175 return 97; // "buildvector_identity_fold"
1176 }
1177 break;
1178 case 'c': // 1 string to match.
1179 if (memcmp(RuleIdentifier.data()+1, "ombine_shuffle_undef_rhs", 24) != 0)
1180 break;
1181 return 216; // "combine_shuffle_undef_rhs"
1182 case 'e': // 1 string to match.
1183 if (memcmp(RuleIdentifier.data()+1, "xtract_vec_elt_build_vec", 24) != 0)
1184 break;
1185 return 68; // "extract_vec_elt_build_vec"
1186 case 'n': // 1 string to match.
1187 if (memcmp(RuleIdentifier.data()+1, "eg_and_one_to_sext_inreg", 24) != 0)
1188 break;
1189 return 120; // "neg_and_one_to_sext_inreg"
1190 case 'r': // 1 string to match.
1191 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_one_fp", 24) != 0)
1192 break;
1193 return 104; // "right_identity_neg_one_fp"
1194 }
1195 break;
1196 case 26: // 4 strings to match.
1197 switch (RuleIdentifier[0]) {
1198 default: break;
1199 case 'b': // 1 string to match.
1200 if (memcmp(RuleIdentifier.data()+1, "inop_right_undef_to_undef", 25) != 0)
1201 break;
1202 return 77; // "binop_right_undef_to_undef"
1203 case 'c': // 1 string to match.
1204 if (memcmp(RuleIdentifier.data()+1, "ommute_fp_constant_to_rhs", 25) != 0)
1205 break;
1206 return 207; // "commute_fp_constant_to_rhs"
1207 case 'f': // 1 string to match.
1208 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_from_or_shift", 25) != 0)
1209 break;
1210 return 165; // "funnel_shift_from_or_shift"
1211 case 'r': // 1 string to match.
1212 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp", 25) != 0)
1213 break;
1214 return 102; // "right_identity_neg_zero_fp"
1215 }
1216 break;
1217 case 27: // 6 strings to match.
1218 switch (RuleIdentifier[0]) {
1219 default: break;
1220 case 'c': // 2 strings to match.
1221 if (memcmp(RuleIdentifier.data()+1, "om", 2) != 0)
1222 break;
1223 switch (RuleIdentifier[3]) {
1224 default: break;
1225 case 'b': // 1 string to match.
1226 if (memcmp(RuleIdentifier.data()+4, "ine_use_vector_truncate", 23) != 0)
1227 break;
1228 return 218; // "combine_use_vector_truncate"
1229 case 'm': // 1 string to match.
1230 if (memcmp(RuleIdentifier.data()+4, "ute_int_constant_to_rhs", 23) != 0)
1231 break;
1232 return 206; // "commute_int_constant_to_rhs"
1233 }
1234 break;
1235 case 'd': // 1 string to match.
1236 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_or_combine", 26) != 0)
1237 break;
1238 return 117; // "double_icmp_zero_or_combine"
1239 case 'r': // 1 string to match.
1240 if (memcmp(RuleIdentifier.data()+1, "edundant_binop_in_equality", 26) != 0)
1241 break;
1242 return 118; // "redundant_binop_in_equality"
1243 case 't': // 1 string to match.
1244 if (memcmp(RuleIdentifier.data()+1, "runc_lshr_buildvector_fold", 26) != 0)
1245 break;
1246 return 99; // "trunc_lshr_buildvector_fold"
1247 case 'u': // 1 string to match.
1248 if (memcmp(RuleIdentifier.data()+1, "nmerge_anyext_build_vector", 26) != 0)
1249 break;
1250 return 219; // "unmerge_anyext_build_vector"
1251 }
1252 break;
1253 case 28: // 5 strings to match.
1254 switch (RuleIdentifier[0]) {
1255 default: break;
1256 case 'c': // 1 string to match.
1257 if (memcmp(RuleIdentifier.data()+1, "ombine_or_s64_with_s32_mask", 27) != 0)
1258 break;
1259 return 243; // "combine_or_s64_with_s32_mask"
1260 case 'd': // 1 string to match.
1261 if (memcmp(RuleIdentifier.data()+1, "ouble_icmp_zero_and_combine", 27) != 0)
1262 break;
1263 return 116; // "double_icmp_zero_and_combine"
1264 case 'o': // 1 string to match.
1265 if (memcmp(RuleIdentifier.data()+1, "pt_brcond_by_inverting_cond", 27) != 0)
1266 break;
1267 return 136; // "opt_brcond_by_inverting_cond"
1268 case 'p': // 1 string to match.
1269 if (memcmp(RuleIdentifier.data()+1, "ropagate_undef_shuffle_mask", 27) != 0)
1270 break;
1271 return 82; // "propagate_undef_shuffle_mask"
1272 case 's': // 1 string to match.
1273 if (memcmp(RuleIdentifier.data()+1, "hift_of_shifted_logic_chain", 27) != 0)
1274 break;
1275 return 162; // "shift_of_shifted_logic_chain"
1276 }
1277 break;
1278 case 29: // 7 strings to match.
1279 switch (RuleIdentifier[0]) {
1280 default: break;
1281 case 'b': // 1 string to match.
1282 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_shr_and", 28) != 0)
1283 break;
1284 return 178; // "bitfield_extract_from_shr_and"
1285 case 'c': // 5 strings to match.
1286 if (RuleIdentifier[1] != 'o')
1287 break;
1288 switch (RuleIdentifier[2]) {
1289 default: break;
1290 case 'm': // 3 strings to match.
1291 if (memcmp(RuleIdentifier.data()+3, "bine_", 5) != 0)
1292 break;
1293 switch (RuleIdentifier[8]) {
1294 default: break;
1295 case 'a': // 1 string to match.
1296 if (memcmp(RuleIdentifier.data()+9, "nd_s64_with_s32_mask", 20) != 0)
1297 break;
1298 return 244; // "combine_and_s64_with_s32_mask"
1299 case 'e': // 1 string to match.
1300 if (memcmp(RuleIdentifier.data()+9, "xtracted_vector_load", 20) != 0)
1301 break;
1302 return 72; // "combine_extracted_vector_load"
1303 case 's': // 1 string to match.
1304 if (memcmp(RuleIdentifier.data()+9, "huffle_disjoint_mask", 20) != 0)
1305 break;
1306 return 217; // "combine_shuffle_disjoint_mask"
1307 }
1308 break;
1309 case 'n': // 2 strings to match.
1310 if (memcmp(RuleIdentifier.data()+3, "stant_fold_intrinsic_", 21) != 0)
1311 break;
1312 switch (RuleIdentifier[24]) {
1313 default: break;
1314 case 'r': // 1 string to match.
1315 if (memcmp(RuleIdentifier.data()+25, "ound", 4) != 0)
1316 break;
1317 return 146; // "constant_fold_intrinsic_round"
1318 case 't': // 1 string to match.
1319 if (memcmp(RuleIdentifier.data()+25, "runc", 4) != 0)
1320 break;
1321 return 145; // "constant_fold_intrinsic_trunc"
1322 }
1323 break;
1324 }
1325 break;
1326 case 'i': // 1 string to match.
1327 if (memcmp(RuleIdentifier.data()+1, "cmp_to_true_false_known_bits", 28) != 0)
1328 break;
1329 return 114; // "icmp_to_true_false_known_bits"
1330 }
1331 break;
1332 case 30: // 2 strings to match.
1333 switch (RuleIdentifier[0]) {
1334 default: break;
1335 case 'f': // 1 string to match.
1336 if (memcmp(RuleIdentifier.data()+1, "reeze_of_non_undef_non_poison", 29) != 0)
1337 break;
1338 return 43; // "freeze_of_non_undef_non_poison"
1339 case 'r': // 1 string to match.
1340 if (memcmp(RuleIdentifier.data()+1, "ight_identity_neg_zero_fp_nsz", 29) != 0)
1341 break;
1342 return 103; // "right_identity_neg_zero_fp_nsz"
1343 }
1344 break;
1345 case 31: // 2 strings to match.
1346 if (memcmp(RuleIdentifier.data()+0, "insert_vector_element_", 22) != 0)
1347 break;
1348 switch (RuleIdentifier[22]) {
1349 default: break;
1350 case 'e': // 1 string to match.
1351 if (memcmp(RuleIdentifier.data()+23, "lt_undef", 8) != 0)
1352 break;
1353 return 24; // "insert_vector_element_elt_undef"
1354 case 'i': // 1 string to match.
1355 if (memcmp(RuleIdentifier.data()+23, "dx_undef", 8) != 0)
1356 break;
1357 return 23; // "insert_vector_element_idx_undef"
1358 }
1359 break;
1360 case 32: // 4 strings to match.
1361 switch (RuleIdentifier[0]) {
1362 default: break;
1363 case 'b': // 1 string to match.
1364 if (memcmp(RuleIdentifier.data()+1, "itfield_extract_from_sext_inreg", 31) != 0)
1365 break;
1366 return 175; // "bitfield_extract_from_sext_inreg"
1367 case 'c': // 2 strings to match.
1368 if (memcmp(RuleIdentifier.data()+1, "ombine_f", 8) != 0)
1369 break;
1370 switch (RuleIdentifier[9]) {
1371 default: break;
1372 case 'a': // 1 string to match.
1373 if (memcmp(RuleIdentifier.data()+10, "dd_fmul_to_fmad_or_fma", 22) != 0)
1374 break;
1375 return 187; // "combine_fadd_fmul_to_fmad_or_fma"
1376 case 's': // 1 string to match.
1377 if (memcmp(RuleIdentifier.data()+10, "ub_fmul_to_fmad_or_fma", 22) != 0)
1378 break;
1379 return 191; // "combine_fsub_fmul_to_fmad_or_fma"
1380 }
1381 break;
1382 case 'e': // 1 string to match.
1383 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_not_const", 31) != 0)
1384 break;
1385 return 27; // "extract_vector_element_not_const"
1386 }
1387 break;
1388 case 33: // 1 string to match.
1389 if (memcmp(RuleIdentifier.data()+0, "constant_fold_intrinsic_roundeven", 33) != 0)
1390 break;
1391 return 147; // "constant_fold_intrinsic_roundeven"
1392 case 34: // 2 strings to match.
1393 switch (RuleIdentifier[0]) {
1394 default: break;
1395 case 'c': // 1 string to match.
1396 if (memcmp(RuleIdentifier.data()+1, "ombine_fmul_with_select_to_fldexp", 33) != 0)
1397 break;
1398 return 239; // "combine_fmul_with_select_to_fldexp"
1399 case 'e': // 1 string to match.
1400 if (memcmp(RuleIdentifier.data()+1, "xtract_all_elts_from_build_vector", 33) != 0)
1401 break;
1402 return 69; // "extract_all_elts_from_build_vector"
1403 }
1404 break;
1405 case 35: // 1 string to match.
1406 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_build_vector", 35) != 0)
1407 break;
1408 return 29; // "extract_vector_element_build_vector"
1409 case 36: // 4 strings to match.
1410 switch (RuleIdentifier[0]) {
1411 default: break;
1412 case 'c': // 2 strings to match.
1413 if (memcmp(RuleIdentifier.data()+1, "ombine_", 7) != 0)
1414 break;
1415 switch (RuleIdentifier[8]) {
1416 default: break;
1417 case 'f': // 1 string to match.
1418 if (memcmp(RuleIdentifier.data()+9, "add_fma_fmul_to_fmad_or_fma", 27) != 0)
1419 break;
1420 return 189; // "combine_fadd_fma_fmul_to_fmad_or_fma"
1421 case 'i': // 1 string to match.
1422 if (memcmp(RuleIdentifier.data()+9, "nsert_vec_elts_build_vector", 27) != 0)
1423 break;
1424 return 67; // "combine_insert_vec_elts_build_vector"
1425 }
1426 break;
1427 case 'i': // 1 string to match.
1428 if (memcmp(RuleIdentifier.data()+1, "nsert_extract_vec_elt_out_of_bounds", 35) != 0)
1429 break;
1430 return 84; // "insert_extract_vec_elt_out_of_bounds"
1431 case 'm': // 1 string to match.
1432 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_index", 35) != 0)
1433 break;
1434 return 22; // "match_extract_of_element_undef_index"
1435 }
1436 break;
1437 case 37: // 4 strings to match.
1438 switch (RuleIdentifier[0]) {
1439 default: break;
1440 case 'c': // 1 string to match.
1441 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fneg_fmul_to_fmad_or_fma", 36) != 0)
1442 break;
1443 return 192; // "combine_fsub_fneg_fmul_to_fmad_or_fma"
1444 case 'e': // 1 string to match.
1445 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_shuffle_vector", 36) != 0)
1446 break;
1447 return 37; // "extract_vector_element_shuffle_vector"
1448 case 'h': // 1 string to match.
1449 if (memcmp(RuleIdentifier.data()+1, "oist_logic_op_with_same_opcode_hands", 36) != 0)
1450 break;
1451 return 107; // "hoist_logic_op_with_same_opcode_hands"
1452 case 'm': // 1 string to match.
1453 if (memcmp(RuleIdentifier.data()+1, "atch_extract_of_element_undef_vector", 36) != 0)
1454 break;
1455 return 21; // "match_extract_of_element_undef_vector"
1456 }
1457 break;
1458 case 38: // 3 strings to match.
1459 if (memcmp(RuleIdentifier.data()+0, "combine_", 8) != 0)
1460 break;
1461 switch (RuleIdentifier[8]) {
1462 default: break;
1463 case 'f': // 2 strings to match.
1464 switch (RuleIdentifier[9]) {
1465 default: break;
1466 case 'a': // 1 string to match.
1467 if (memcmp(RuleIdentifier.data()+10, "dd_fpext_fmul_to_fmad_or_fma", 28) != 0)
1468 break;
1469 return 188; // "combine_fadd_fpext_fmul_to_fmad_or_fma"
1470 case 's': // 1 string to match.
1471 if (memcmp(RuleIdentifier.data()+10, "ub_fpext_fmul_to_fmad_or_fma", 28) != 0)
1472 break;
1473 return 193; // "combine_fsub_fpext_fmul_to_fmad_or_fma"
1474 }
1475 break;
1476 case 's': // 1 string to match.
1477 if (memcmp(RuleIdentifier.data()+9, "huffle_vector_to_build_vector", 29) != 0)
1478 break;
1479 return 242; // "combine_shuffle_vector_to_build_vector"
1480 }
1481 break;
1482 case 40: // 1 string to match.
1483 if (memcmp(RuleIdentifier.data()+0, "extract_vector_element_different_indices", 40) != 0)
1484 break;
1485 return 28; // "extract_vector_element_different_indices"
1486 case 42: // 9 strings to match.
1487 switch (RuleIdentifier[0]) {
1488 default: break;
1489 case 'c': // 1 string to match.
1490 if (memcmp(RuleIdentifier.data()+1, "ombine_fadd_fpext_fma_fmul_to_fmad_or_fma", 41) != 0)
1491 break;
1492 return 190; // "combine_fadd_fpext_fma_fmul_to_fmad_or_fma"
1493 case 'e': // 7 strings to match.
1494 if (memcmp(RuleIdentifier.data()+1, "xtract_vector_element_build_vector_trunc", 40) != 0)
1495 break;
1496 switch (RuleIdentifier[41]) {
1497 default: break;
1498 case '2': // 1 string to match.
1499 return 30; // "extract_vector_element_build_vector_trunc2"
1500 case '3': // 1 string to match.
1501 return 31; // "extract_vector_element_build_vector_trunc3"
1502 case '4': // 1 string to match.
1503 return 32; // "extract_vector_element_build_vector_trunc4"
1504 case '5': // 1 string to match.
1505 return 33; // "extract_vector_element_build_vector_trunc5"
1506 case '6': // 1 string to match.
1507 return 34; // "extract_vector_element_build_vector_trunc6"
1508 case '7': // 1 string to match.
1509 return 35; // "extract_vector_element_build_vector_trunc7"
1510 case '8': // 1 string to match.
1511 return 36; // "extract_vector_element_build_vector_trunc8"
1512 }
1513 break;
1514 case 'f': // 1 string to match.
1515 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_left", 41) != 0)
1516 break;
1517 return 170; // "funnel_shift_or_shift_to_funnel_shift_left"
1518 }
1519 break;
1520 case 43: // 2 strings to match.
1521 switch (RuleIdentifier[0]) {
1522 default: break;
1523 case 'c': // 1 string to match.
1524 if (memcmp(RuleIdentifier.data()+1, "ombine_fsub_fpext_fneg_fmul_to_fmad_or_fma", 42) != 0)
1525 break;
1526 return 194; // "combine_fsub_fpext_fneg_fmul_to_fmad_or_fma"
1527 case 'f': // 1 string to match.
1528 if (memcmp(RuleIdentifier.data()+1, "unnel_shift_or_shift_to_funnel_shift_right", 42) != 0)
1529 break;
1530 return 171; // "funnel_shift_or_shift_to_funnel_shift_right"
1531 }
1532 break;
1533 case 44: // 1 string to match.
1534 if (memcmp(RuleIdentifier.data()+0, "insert_vector_element_extract_vector_element", 44) != 0)
1535 break;
1536 return 38; // "insert_vector_element_extract_vector_element"
1537 case 46: // 1 string to match.
1538 if (memcmp(RuleIdentifier.data()+0, "push_freeze_to_prevent_poison_from_propagating", 46) != 0)
1539 break;
1540 return 44; // "push_freeze_to_prevent_poison_from_propagating"
1541 }
1542#endif // ifndef NDEBUG
1543
1544 return std::nullopt;
1545}
1546static std::optional<std::pair<uint64_t, uint64_t>> getRuleRangeForIdentifier(StringRef RuleIdentifier) {
1547 std::pair<StringRef, StringRef> RangePair = RuleIdentifier.split('-');
1548 if (!RangePair.second.empty()) {
1549 const auto First = getRuleIdxForIdentifier(RangePair.first);
1550 const auto Last = getRuleIdxForIdentifier(RangePair.second);
1551 if (!First || !Last)
1552 return std::nullopt;
1553 if (First >= Last)
1554 report_fatal_error("Beginning of range should be before end of range");
1555 return {{*First, *Last + 1}};
1556 }
1557 if (RangePair.first == "*") {
1558 return {{0, 246}};
1559 }
1560 const auto I = getRuleIdxForIdentifier(RangePair.first);
1561 if (!I)
1562 return std::nullopt;
1563 return {{*I, *I + 1}};
1564}
1565
1566bool AMDGPUPreLegalizerCombinerImplRuleConfig::setRuleEnabled(StringRef RuleIdentifier) {
1567 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1568 if (!MaybeRange)
1569 return false;
1570 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1571 DisabledRules.reset(I);
1572 return true;
1573}
1574
1575bool AMDGPUPreLegalizerCombinerImplRuleConfig::setRuleDisabled(StringRef RuleIdentifier) {
1576 auto MaybeRange = getRuleRangeForIdentifier(RuleIdentifier);
1577 if (!MaybeRange)
1578 return false;
1579 for (auto I = MaybeRange->first; I < MaybeRange->second; ++I)
1580 DisabledRules.set(I);
1581 return true;
1582}
1583
1584static std::vector<std::string> AMDGPUPreLegalizerCombinerOption;
1585static cl::list<std::string> AMDGPUPreLegalizerCombinerDisableOption(
1586 "amdgpuprelegalizercombiner-disable-rule",
1587 cl::desc("Disable one or more combiner rules temporarily in the AMDGPUPreLegalizerCombiner pass"),
1588 cl::CommaSeparated,
1589 cl::Hidden,
1590 cl::cat(GICombinerOptionCategory),
1591 cl::callback([](const std::string &Str) {
1592 AMDGPUPreLegalizerCombinerOption.push_back(Str);
1593 }));
1594static cl::list<std::string> AMDGPUPreLegalizerCombinerOnlyEnableOption(
1595 "amdgpuprelegalizercombiner-only-enable-rule",
1596 cl::desc("Disable all rules in the AMDGPUPreLegalizerCombiner pass then re-enable the specified ones"),
1597 cl::Hidden,
1598 cl::cat(GICombinerOptionCategory),
1599 cl::callback([](const std::string &CommaSeparatedArg) {
1600 StringRef Str = CommaSeparatedArg;
1601 AMDGPUPreLegalizerCombinerOption.push_back("*");
1602 do {
1603 auto X = Str.split(",");
1604 AMDGPUPreLegalizerCombinerOption.push_back(("!" + X.first).str());
1605 Str = X.second;
1606 } while (!Str.empty());
1607 }));
1608
1609
1610bool AMDGPUPreLegalizerCombinerImplRuleConfig::isRuleEnabled(unsigned RuleID) const {
1611 return !DisabledRules.test(RuleID);
1612}
1613bool AMDGPUPreLegalizerCombinerImplRuleConfig::parseCommandLineOption() {
1614 for (StringRef Identifier : AMDGPUPreLegalizerCombinerOption) {
1615 bool Enabled = Identifier.consume_front("!");
1616 if (Enabled && !setRuleEnabled(Identifier))
1617 return false;
1618 if (!Enabled && !setRuleDisabled(Identifier))
1619 return false;
1620 }
1621 return true;
1622}
1623
1624#endif // ifdef GET_GICOMBINER_TYPES
1625
1626#ifdef GET_GICOMBINER_TYPES
1627const unsigned MAX_SUBTARGET_PREDICATES = 0;
1628using PredicateBitset = llvm::Bitset<MAX_SUBTARGET_PREDICATES>;
1629#endif // ifdef GET_GICOMBINER_TYPES
1630
1631#ifdef GET_GICOMBINER_CLASS_MEMBERS
1632PredicateBitset AvailableModuleFeatures;
1633mutable PredicateBitset AvailableFunctionFeatures;
1634PredicateBitset getAvailableFeatures() const {
1635 return AvailableModuleFeatures | AvailableFunctionFeatures;
1636}
1637PredicateBitset
1638computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const;
1639PredicateBitset
1640computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget,
1641 const MachineFunction *MF) const;
1642void setupGeneratedPerFunctionState(MachineFunction &MF) override;
1643#endif // ifdef GET_GICOMBINER_CLASS_MEMBERS
1644#ifdef GET_GICOMBINER_CLASS_MEMBERS
1645 mutable MatcherState State;
1646 typedef ComplexRendererFns(AMDGPUPreLegalizerCombinerImpl::*ComplexMatcherMemFn)(MachineOperand &) const;
1647 typedef void(AMDGPUPreLegalizerCombinerImpl::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr &, int) const;
1648 const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ExecInfo;
1649 static AMDGPUPreLegalizerCombinerImpl::ComplexMatcherMemFn ComplexPredicateFns[];
1650 static AMDGPUPreLegalizerCombinerImpl::CustomRendererFn CustomRenderers[];
1651 bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
1652 bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
1653 bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
1654 const uint8_t *getMatchTable() const override;
1655 bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI, const MatcherState &State) const override;
1656 bool testMOPredicate_MO(unsigned PredicateID, const MachineOperand &MO, const MatcherState &State) const override;
1657 bool testSimplePredicate(unsigned PredicateID) const override;
1658 bool runCustomAction(unsigned FnID, const MatcherState &State, NewMIVector &OutMIs) const override;
1659#endif // ifdef GET_GICOMBINER_CLASS_MEMBERS
1660
1661#ifdef GET_GICOMBINER_IMPL
1662// LLT Objects.
1663enum {
1664 GILLT_s32,
1665 GILLT_s64,
1666};
1667const static size_t NumTypeObjects = 2;
1668const static LLT TypeObjects[] = {
1669 LLT::scalar(32),
1670 LLT::scalar(64),
1671};
1672
1673// Bits for subtarget features that participate in instruction matching.
1674enum SubtargetFeatureBits : uint8_t {
1675};
1676
1677PredicateBitset AMDGPUPreLegalizerCombinerImpl::
1678computeAvailableModuleFeatures(const AMDGPUSubtarget *Subtarget) const {
1679 PredicateBitset Features{};
1680 return Features;
1681}
1682
1683void AMDGPUPreLegalizerCombinerImpl::setupGeneratedPerFunctionState(MachineFunction &MF) {
1684 AvailableFunctionFeatures = computeAvailableFunctionFeatures((const AMDGPUSubtarget *)&MF.getSubtarget(), &MF);
1685}
1686PredicateBitset AMDGPUPreLegalizerCombinerImpl::
1687computeAvailableFunctionFeatures(const AMDGPUSubtarget *Subtarget, const MachineFunction *MF) const {
1688 PredicateBitset Features{};
1689 return Features;
1690}
1691
1692// Feature bitsets.
1693enum {
1694 GIFBS_Invalid,
1695};
1696constexpr static PredicateBitset FeatureBitsets[] {
1697 {}, // GIFBS_Invalid
1698};
1699
1700// ComplexPattern predicates.
1701enum {
1702 GICP_Invalid,
1703};
1704// See constructor for table contents
1705
1706AMDGPUPreLegalizerCombinerImpl::ComplexMatcherMemFn
1707AMDGPUPreLegalizerCombinerImpl::ComplexPredicateFns[] = {
1708 nullptr, // GICP_Invalid
1709};
1710
1711enum {
1712 GICXXPred_MI_Predicate_GICombiner0 = GICXXPred_Invalid + 1,
1713 GICXXPred_MI_Predicate_GICombiner1,
1714 GICXXPred_MI_Predicate_GICombiner2,
1715 GICXXPred_MI_Predicate_GICombiner3,
1716 GICXXPred_MI_Predicate_GICombiner4,
1717 GICXXPred_MI_Predicate_GICombiner5,
1718 GICXXPred_MI_Predicate_GICombiner6,
1719 GICXXPred_MI_Predicate_GICombiner7,
1720 GICXXPred_MI_Predicate_GICombiner8,
1721 GICXXPred_MI_Predicate_GICombiner9,
1722 GICXXPred_MI_Predicate_GICombiner10,
1723 GICXXPred_MI_Predicate_GICombiner11,
1724 GICXXPred_MI_Predicate_GICombiner12,
1725 GICXXPred_MI_Predicate_GICombiner13,
1726 GICXXPred_MI_Predicate_GICombiner14,
1727 GICXXPred_MI_Predicate_GICombiner15,
1728};
1729bool AMDGPUPreLegalizerCombinerImpl::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI, const MatcherState &State) const {
1730 switch (PredicateID) {
1731 case GICXXPred_MI_Predicate_GICombiner0: {
1732 return isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI);
1733 }
1734 case GICXXPred_MI_Predicate_GICombiner1: {
1735 return isGuaranteedNotToBeUndefOrPoison(State.MIs[0]->getOperand(1).getReg(), MRI);
1736 }
1737 case GICXXPred_MI_Predicate_GICombiner2: {
1738 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 1.0);
1739 }
1740 case GICXXPred_MI_Predicate_GICombiner3: {
1741 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -0.0);
1742 }
1743 case GICXXPred_MI_Predicate_GICombiner4: {
1744 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), 0.0);
1745 }
1746 case GICXXPred_MI_Predicate_GICombiner5: {
1747 return Helper.matchConstantFPOp(State.MIs[0]->getOperand(2), -1.0);
1748 }
1749 case GICXXPred_MI_Predicate_GICombiner6: {
1750 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_EQ &&
1751 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
1752 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
1753 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
1754 }
1755 case GICXXPred_MI_Predicate_GICombiner7: {
1756 return State.MIs[1]->getOperand(1).getPredicate() == CmpInst::ICMP_NE &&
1757 !MRI.getType(State.MIs[1]->getOperand(2).getReg()).getScalarType().isPointer() &&
1758 (MRI.getType(State.MIs[1]->getOperand(2).getReg()) ==
1759 MRI.getType(State.MIs[2]->getOperand(2).getReg()));
1760 }
1761 case GICXXPred_MI_Predicate_GICombiner8: {
1762 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
1763 Helper.isLegalOrBeforeLegalizer(
1764 {TargetOpcode::G_SEXT_INREG, {MRI.getType(State.MIs[1]->getOperand(1).getReg())}});
1765 }
1766 case GICXXPred_MI_Predicate_GICombiner9: {
1767 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_LSHR,
1768 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
1769 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
1770 }
1771 case GICXXPred_MI_Predicate_GICombiner10: {
1772 return Helper.isLegalOrBeforeLegalizer({TargetOpcode::G_SHL,
1773 {MRI.getType(State.MIs[2]->getOperand(1).getReg()),
1774 MRI.getType(State.MIs[1]->getOperand(2).getReg())}});
1775 }
1776 case GICXXPred_MI_Predicate_GICombiner11: {
1777 return Helper.matchTruncUSatU(*State.MIs[0], *State.MIs[1]);
1778 }
1779 case GICXXPred_MI_Predicate_GICombiner12: {
1780 return Helper.matchTruncUSatUToFPTOUISat(*State.MIs[0], *State.MIs[1]);
1781 }
1782 case GICXXPred_MI_Predicate_GICombiner13: {
1783 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(2).getReg()) &&
1784 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
1785 }
1786 case GICXXPred_MI_Predicate_GICombiner14: {
1787 return MRI.hasOneNonDBGUse(State.MIs[0]->getOperand(1).getReg()) &&
1788 MRI.hasOneNonDBGUse(State.MIs[1]->getOperand(1).getReg());
1789 }
1790 case GICXXPred_MI_Predicate_GICombiner15: {
1791 return Helper.matchConstantIs32BitMask(State.MIs[0]->getOperand(1).getReg()) ||
1792 Helper.matchConstantIs32BitMask(State.MIs[0]->getOperand(2).getReg());
1793 }
1794 }
1795 llvm_unreachable("Unknown predicate");
1796 return false;
1797}
1798bool AMDGPUPreLegalizerCombinerImpl::testMOPredicate_MO(unsigned PredicateID, const MachineOperand & MO, const MatcherState &State) const {
1799 llvm_unreachable("Unknown predicate");
1800 return false;
1801}
1802bool AMDGPUPreLegalizerCombinerImpl::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
1803 llvm_unreachable("Unknown predicate");
1804 return false;
1805}
1806bool AMDGPUPreLegalizerCombinerImpl::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
1807 llvm_unreachable("Unknown predicate");
1808 return false;
1809}
1810bool AMDGPUPreLegalizerCombinerImpl::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
1811 llvm_unreachable("Unknown predicate");
1812 return false;
1813}
1814enum {
1815 GICXXPred_Simple_IsRule0Enabled = GICXXPred_Invalid + 1,
1816 GICXXPred_Simple_IsRule1Enabled,
1817 GICXXPred_Simple_IsRule2Enabled,
1818 GICXXPred_Simple_IsRule3Enabled,
1819 GICXXPred_Simple_IsRule4Enabled,
1820 GICXXPred_Simple_IsRule5Enabled,
1821 GICXXPred_Simple_IsRule6Enabled,
1822 GICXXPred_Simple_IsRule7Enabled,
1823 GICXXPred_Simple_IsRule8Enabled,
1824 GICXXPred_Simple_IsRule9Enabled,
1825 GICXXPred_Simple_IsRule10Enabled,
1826 GICXXPred_Simple_IsRule11Enabled,
1827 GICXXPred_Simple_IsRule12Enabled,
1828 GICXXPred_Simple_IsRule13Enabled,
1829 GICXXPred_Simple_IsRule14Enabled,
1830 GICXXPred_Simple_IsRule15Enabled,
1831 GICXXPred_Simple_IsRule16Enabled,
1832 GICXXPred_Simple_IsRule17Enabled,
1833 GICXXPred_Simple_IsRule18Enabled,
1834 GICXXPred_Simple_IsRule19Enabled,
1835 GICXXPred_Simple_IsRule20Enabled,
1836 GICXXPred_Simple_IsRule21Enabled,
1837 GICXXPred_Simple_IsRule22Enabled,
1838 GICXXPred_Simple_IsRule23Enabled,
1839 GICXXPred_Simple_IsRule24Enabled,
1840 GICXXPred_Simple_IsRule25Enabled,
1841 GICXXPred_Simple_IsRule26Enabled,
1842 GICXXPred_Simple_IsRule27Enabled,
1843 GICXXPred_Simple_IsRule28Enabled,
1844 GICXXPred_Simple_IsRule29Enabled,
1845 GICXXPred_Simple_IsRule30Enabled,
1846 GICXXPred_Simple_IsRule31Enabled,
1847 GICXXPred_Simple_IsRule32Enabled,
1848 GICXXPred_Simple_IsRule33Enabled,
1849 GICXXPred_Simple_IsRule34Enabled,
1850 GICXXPred_Simple_IsRule35Enabled,
1851 GICXXPred_Simple_IsRule36Enabled,
1852 GICXXPred_Simple_IsRule37Enabled,
1853 GICXXPred_Simple_IsRule38Enabled,
1854 GICXXPred_Simple_IsRule39Enabled,
1855 GICXXPred_Simple_IsRule40Enabled,
1856 GICXXPred_Simple_IsRule41Enabled,
1857 GICXXPred_Simple_IsRule42Enabled,
1858 GICXXPred_Simple_IsRule43Enabled,
1859 GICXXPred_Simple_IsRule44Enabled,
1860 GICXXPred_Simple_IsRule45Enabled,
1861 GICXXPred_Simple_IsRule46Enabled,
1862 GICXXPred_Simple_IsRule47Enabled,
1863 GICXXPred_Simple_IsRule48Enabled,
1864 GICXXPred_Simple_IsRule49Enabled,
1865 GICXXPred_Simple_IsRule50Enabled,
1866 GICXXPred_Simple_IsRule51Enabled,
1867 GICXXPred_Simple_IsRule52Enabled,
1868 GICXXPred_Simple_IsRule53Enabled,
1869 GICXXPred_Simple_IsRule54Enabled,
1870 GICXXPred_Simple_IsRule55Enabled,
1871 GICXXPred_Simple_IsRule56Enabled,
1872 GICXXPred_Simple_IsRule57Enabled,
1873 GICXXPred_Simple_IsRule58Enabled,
1874 GICXXPred_Simple_IsRule59Enabled,
1875 GICXXPred_Simple_IsRule60Enabled,
1876 GICXXPred_Simple_IsRule61Enabled,
1877 GICXXPred_Simple_IsRule62Enabled,
1878 GICXXPred_Simple_IsRule63Enabled,
1879 GICXXPred_Simple_IsRule64Enabled,
1880 GICXXPred_Simple_IsRule65Enabled,
1881 GICXXPred_Simple_IsRule66Enabled,
1882 GICXXPred_Simple_IsRule67Enabled,
1883 GICXXPred_Simple_IsRule68Enabled,
1884 GICXXPred_Simple_IsRule69Enabled,
1885 GICXXPred_Simple_IsRule70Enabled,
1886 GICXXPred_Simple_IsRule71Enabled,
1887 GICXXPred_Simple_IsRule72Enabled,
1888 GICXXPred_Simple_IsRule73Enabled,
1889 GICXXPred_Simple_IsRule74Enabled,
1890 GICXXPred_Simple_IsRule75Enabled,
1891 GICXXPred_Simple_IsRule76Enabled,
1892 GICXXPred_Simple_IsRule77Enabled,
1893 GICXXPred_Simple_IsRule78Enabled,
1894 GICXXPred_Simple_IsRule79Enabled,
1895 GICXXPred_Simple_IsRule80Enabled,
1896 GICXXPred_Simple_IsRule81Enabled,
1897 GICXXPred_Simple_IsRule82Enabled,
1898 GICXXPred_Simple_IsRule83Enabled,
1899 GICXXPred_Simple_IsRule84Enabled,
1900 GICXXPred_Simple_IsRule85Enabled,
1901 GICXXPred_Simple_IsRule86Enabled,
1902 GICXXPred_Simple_IsRule87Enabled,
1903 GICXXPred_Simple_IsRule88Enabled,
1904 GICXXPred_Simple_IsRule89Enabled,
1905 GICXXPred_Simple_IsRule90Enabled,
1906 GICXXPred_Simple_IsRule91Enabled,
1907 GICXXPred_Simple_IsRule92Enabled,
1908 GICXXPred_Simple_IsRule93Enabled,
1909 GICXXPred_Simple_IsRule94Enabled,
1910 GICXXPred_Simple_IsRule95Enabled,
1911 GICXXPred_Simple_IsRule96Enabled,
1912 GICXXPred_Simple_IsRule97Enabled,
1913 GICXXPred_Simple_IsRule98Enabled,
1914 GICXXPred_Simple_IsRule99Enabled,
1915 GICXXPred_Simple_IsRule100Enabled,
1916 GICXXPred_Simple_IsRule101Enabled,
1917 GICXXPred_Simple_IsRule102Enabled,
1918 GICXXPred_Simple_IsRule103Enabled,
1919 GICXXPred_Simple_IsRule104Enabled,
1920 GICXXPred_Simple_IsRule105Enabled,
1921 GICXXPred_Simple_IsRule106Enabled,
1922 GICXXPred_Simple_IsRule107Enabled,
1923 GICXXPred_Simple_IsRule108Enabled,
1924 GICXXPred_Simple_IsRule109Enabled,
1925 GICXXPred_Simple_IsRule110Enabled,
1926 GICXXPred_Simple_IsRule111Enabled,
1927 GICXXPred_Simple_IsRule112Enabled,
1928 GICXXPred_Simple_IsRule113Enabled,
1929 GICXXPred_Simple_IsRule114Enabled,
1930 GICXXPred_Simple_IsRule115Enabled,
1931 GICXXPred_Simple_IsRule116Enabled,
1932 GICXXPred_Simple_IsRule117Enabled,
1933 GICXXPred_Simple_IsRule118Enabled,
1934 GICXXPred_Simple_IsRule119Enabled,
1935 GICXXPred_Simple_IsRule120Enabled,
1936 GICXXPred_Simple_IsRule121Enabled,
1937 GICXXPred_Simple_IsRule122Enabled,
1938 GICXXPred_Simple_IsRule123Enabled,
1939 GICXXPred_Simple_IsRule124Enabled,
1940 GICXXPred_Simple_IsRule125Enabled,
1941 GICXXPred_Simple_IsRule126Enabled,
1942 GICXXPred_Simple_IsRule127Enabled,
1943 GICXXPred_Simple_IsRule128Enabled,
1944 GICXXPred_Simple_IsRule129Enabled,
1945 GICXXPred_Simple_IsRule130Enabled,
1946 GICXXPred_Simple_IsRule131Enabled,
1947 GICXXPred_Simple_IsRule132Enabled,
1948 GICXXPred_Simple_IsRule133Enabled,
1949 GICXXPred_Simple_IsRule134Enabled,
1950 GICXXPred_Simple_IsRule135Enabled,
1951 GICXXPred_Simple_IsRule136Enabled,
1952 GICXXPred_Simple_IsRule137Enabled,
1953 GICXXPred_Simple_IsRule138Enabled,
1954 GICXXPred_Simple_IsRule139Enabled,
1955 GICXXPred_Simple_IsRule140Enabled,
1956 GICXXPred_Simple_IsRule141Enabled,
1957 GICXXPred_Simple_IsRule142Enabled,
1958 GICXXPred_Simple_IsRule143Enabled,
1959 GICXXPred_Simple_IsRule144Enabled,
1960 GICXXPred_Simple_IsRule145Enabled,
1961 GICXXPred_Simple_IsRule146Enabled,
1962 GICXXPred_Simple_IsRule147Enabled,
1963 GICXXPred_Simple_IsRule148Enabled,
1964 GICXXPred_Simple_IsRule149Enabled,
1965 GICXXPred_Simple_IsRule150Enabled,
1966 GICXXPred_Simple_IsRule151Enabled,
1967 GICXXPred_Simple_IsRule152Enabled,
1968 GICXXPred_Simple_IsRule153Enabled,
1969 GICXXPred_Simple_IsRule154Enabled,
1970 GICXXPred_Simple_IsRule155Enabled,
1971 GICXXPred_Simple_IsRule156Enabled,
1972 GICXXPred_Simple_IsRule157Enabled,
1973 GICXXPred_Simple_IsRule158Enabled,
1974 GICXXPred_Simple_IsRule159Enabled,
1975 GICXXPred_Simple_IsRule160Enabled,
1976 GICXXPred_Simple_IsRule161Enabled,
1977 GICXXPred_Simple_IsRule162Enabled,
1978 GICXXPred_Simple_IsRule163Enabled,
1979 GICXXPred_Simple_IsRule164Enabled,
1980 GICXXPred_Simple_IsRule165Enabled,
1981 GICXXPred_Simple_IsRule166Enabled,
1982 GICXXPred_Simple_IsRule167Enabled,
1983 GICXXPred_Simple_IsRule168Enabled,
1984 GICXXPred_Simple_IsRule169Enabled,
1985 GICXXPred_Simple_IsRule170Enabled,
1986 GICXXPred_Simple_IsRule171Enabled,
1987 GICXXPred_Simple_IsRule172Enabled,
1988 GICXXPred_Simple_IsRule173Enabled,
1989 GICXXPred_Simple_IsRule174Enabled,
1990 GICXXPred_Simple_IsRule175Enabled,
1991 GICXXPred_Simple_IsRule176Enabled,
1992 GICXXPred_Simple_IsRule177Enabled,
1993 GICXXPred_Simple_IsRule178Enabled,
1994 GICXXPred_Simple_IsRule179Enabled,
1995 GICXXPred_Simple_IsRule180Enabled,
1996 GICXXPred_Simple_IsRule181Enabled,
1997 GICXXPred_Simple_IsRule182Enabled,
1998 GICXXPred_Simple_IsRule183Enabled,
1999 GICXXPred_Simple_IsRule184Enabled,
2000 GICXXPred_Simple_IsRule185Enabled,
2001 GICXXPred_Simple_IsRule186Enabled,
2002 GICXXPred_Simple_IsRule187Enabled,
2003 GICXXPred_Simple_IsRule188Enabled,
2004 GICXXPred_Simple_IsRule189Enabled,
2005 GICXXPred_Simple_IsRule190Enabled,
2006 GICXXPred_Simple_IsRule191Enabled,
2007 GICXXPred_Simple_IsRule192Enabled,
2008 GICXXPred_Simple_IsRule193Enabled,
2009 GICXXPred_Simple_IsRule194Enabled,
2010 GICXXPred_Simple_IsRule195Enabled,
2011 GICXXPred_Simple_IsRule196Enabled,
2012 GICXXPred_Simple_IsRule197Enabled,
2013 GICXXPred_Simple_IsRule198Enabled,
2014 GICXXPred_Simple_IsRule199Enabled,
2015 GICXXPred_Simple_IsRule200Enabled,
2016 GICXXPred_Simple_IsRule201Enabled,
2017 GICXXPred_Simple_IsRule202Enabled,
2018 GICXXPred_Simple_IsRule203Enabled,
2019 GICXXPred_Simple_IsRule204Enabled,
2020 GICXXPred_Simple_IsRule205Enabled,
2021 GICXXPred_Simple_IsRule206Enabled,
2022 GICXXPred_Simple_IsRule207Enabled,
2023 GICXXPred_Simple_IsRule208Enabled,
2024 GICXXPred_Simple_IsRule209Enabled,
2025 GICXXPred_Simple_IsRule210Enabled,
2026 GICXXPred_Simple_IsRule211Enabled,
2027 GICXXPred_Simple_IsRule212Enabled,
2028 GICXXPred_Simple_IsRule213Enabled,
2029 GICXXPred_Simple_IsRule214Enabled,
2030 GICXXPred_Simple_IsRule215Enabled,
2031 GICXXPred_Simple_IsRule216Enabled,
2032 GICXXPred_Simple_IsRule217Enabled,
2033 GICXXPred_Simple_IsRule218Enabled,
2034 GICXXPred_Simple_IsRule219Enabled,
2035 GICXXPred_Simple_IsRule220Enabled,
2036 GICXXPred_Simple_IsRule221Enabled,
2037 GICXXPred_Simple_IsRule222Enabled,
2038 GICXXPred_Simple_IsRule223Enabled,
2039 GICXXPred_Simple_IsRule224Enabled,
2040 GICXXPred_Simple_IsRule225Enabled,
2041 GICXXPred_Simple_IsRule226Enabled,
2042 GICXXPred_Simple_IsRule227Enabled,
2043 GICXXPred_Simple_IsRule228Enabled,
2044 GICXXPred_Simple_IsRule229Enabled,
2045 GICXXPred_Simple_IsRule230Enabled,
2046 GICXXPred_Simple_IsRule231Enabled,
2047 GICXXPred_Simple_IsRule232Enabled,
2048 GICXXPred_Simple_IsRule233Enabled,
2049 GICXXPred_Simple_IsRule234Enabled,
2050 GICXXPred_Simple_IsRule235Enabled,
2051 GICXXPred_Simple_IsRule236Enabled,
2052 GICXXPred_Simple_IsRule237Enabled,
2053 GICXXPred_Simple_IsRule238Enabled,
2054 GICXXPred_Simple_IsRule239Enabled,
2055 GICXXPred_Simple_IsRule240Enabled,
2056 GICXXPred_Simple_IsRule241Enabled,
2057 GICXXPred_Simple_IsRule242Enabled,
2058 GICXXPred_Simple_IsRule243Enabled,
2059 GICXXPred_Simple_IsRule244Enabled,
2060 GICXXPred_Simple_IsRule245Enabled,
2061};
2062
2063bool AMDGPUPreLegalizerCombinerImpl::testSimplePredicate(unsigned Predicate) const {
2064 return RuleConfig.isRuleEnabled(Predicate - GICXXPred_Invalid - 1);
2065}
2066// Custom renderers.
2067enum {
2068 GICR_Invalid,
2069};
2070AMDGPUPreLegalizerCombinerImpl::CustomRendererFn
2071AMDGPUPreLegalizerCombinerImpl::CustomRenderers[] = {
2072 nullptr, // GICR_Invalid
2073};
2074
2075bool AMDGPUPreLegalizerCombinerImpl::tryCombineAllImpl(MachineInstr &I) const {
2076 const TargetSubtargetInfo &ST = MF.getSubtarget();
2077 const PredicateBitset AvailableFeatures = getAvailableFeatures();
2078 B.setInstrAndDebugLoc(I);
2079 State.MIs.clear();
2080 State.MIs.push_back(&I);
2081 if (executeMatchTable(*this, State, ExecInfo, B, getMatchTable(), *ST.getInstrInfo(), MRI, *MRI.getTargetRegisterInfo(), *ST.getRegBankInfo(), AvailableFeatures, /*CoverageInfo*/ nullptr)) {
2082 return true;
2083 }
2084
2085 return false;
2086}
2087
2088enum {
2089 GICXXCustomAction_GICombiner0 = GICXXCustomAction_Invalid + 1,
2090 GICXXCustomAction_GICombiner1,
2091 GICXXCustomAction_GICombiner2,
2092 GICXXCustomAction_GICombiner3,
2093 GICXXCustomAction_GICombiner4,
2094 GICXXCustomAction_GICombiner5,
2095 GICXXCustomAction_GICombiner6,
2096 GICXXCustomAction_GICombiner7,
2097 GICXXCustomAction_GICombiner8,
2098 GICXXCustomAction_GICombiner9,
2099 GICXXCustomAction_GICombiner10,
2100 GICXXCustomAction_GICombiner11,
2101 GICXXCustomAction_GICombiner12,
2102 GICXXCustomAction_GICombiner13,
2103 GICXXCustomAction_GICombiner14,
2104 GICXXCustomAction_GICombiner15,
2105 GICXXCustomAction_GICombiner16,
2106 GICXXCustomAction_GICombiner17,
2107 GICXXCustomAction_GICombiner18,
2108 GICXXCustomAction_GICombiner19,
2109 GICXXCustomAction_GICombiner20,
2110 GICXXCustomAction_GICombiner21,
2111 GICXXCustomAction_GICombiner22,
2112 GICXXCustomAction_GICombiner23,
2113 GICXXCustomAction_GICombiner24,
2114 GICXXCustomAction_GICombiner25,
2115 GICXXCustomAction_GICombiner26,
2116 GICXXCustomAction_GICombiner27,
2117 GICXXCustomAction_GICombiner28,
2118 GICXXCustomAction_GICombiner29,
2119 GICXXCustomAction_GICombiner30,
2120 GICXXCustomAction_GICombiner31,
2121 GICXXCustomAction_GICombiner32,
2122 GICXXCustomAction_GICombiner33,
2123 GICXXCustomAction_GICombiner34,
2124 GICXXCustomAction_GICombiner35,
2125 GICXXCustomAction_GICombiner36,
2126 GICXXCustomAction_GICombiner37,
2127 GICXXCustomAction_GICombiner38,
2128 GICXXCustomAction_GICombiner39,
2129 GICXXCustomAction_GICombiner40,
2130 GICXXCustomAction_GICombiner41,
2131 GICXXCustomAction_GICombiner42,
2132 GICXXCustomAction_GICombiner43,
2133 GICXXCustomAction_GICombiner44,
2134 GICXXCustomAction_GICombiner45,
2135 GICXXCustomAction_GICombiner46,
2136 GICXXCustomAction_GICombiner47,
2137 GICXXCustomAction_GICombiner48,
2138 GICXXCustomAction_GICombiner49,
2139 GICXXCustomAction_GICombiner50,
2140 GICXXCustomAction_GICombiner51,
2141 GICXXCustomAction_GICombiner52,
2142 GICXXCustomAction_GICombiner53,
2143 GICXXCustomAction_GICombiner54,
2144 GICXXCustomAction_GICombiner55,
2145 GICXXCustomAction_GICombiner56,
2146 GICXXCustomAction_GICombiner57,
2147 GICXXCustomAction_GICombiner58,
2148 GICXXCustomAction_GICombiner59,
2149 GICXXCustomAction_GICombiner60,
2150 GICXXCustomAction_GICombiner61,
2151 GICXXCustomAction_GICombiner62,
2152 GICXXCustomAction_GICombiner63,
2153 GICXXCustomAction_GICombiner64,
2154 GICXXCustomAction_GICombiner65,
2155 GICXXCustomAction_GICombiner66,
2156 GICXXCustomAction_GICombiner67,
2157 GICXXCustomAction_GICombiner68,
2158 GICXXCustomAction_GICombiner69,
2159 GICXXCustomAction_GICombiner70,
2160 GICXXCustomAction_GICombiner71,
2161 GICXXCustomAction_GICombiner72,
2162 GICXXCustomAction_GICombiner73,
2163 GICXXCustomAction_GICombiner74,
2164 GICXXCustomAction_GICombiner75,
2165 GICXXCustomAction_GICombiner76,
2166 GICXXCustomAction_GICombiner77,
2167 GICXXCustomAction_GICombiner78,
2168 GICXXCustomAction_GICombiner79,
2169 GICXXCustomAction_GICombiner80,
2170 GICXXCustomAction_GICombiner81,
2171 GICXXCustomAction_GICombiner82,
2172 GICXXCustomAction_GICombiner83,
2173 GICXXCustomAction_GICombiner84,
2174 GICXXCustomAction_GICombiner85,
2175 GICXXCustomAction_GICombiner86,
2176 GICXXCustomAction_GICombiner87,
2177 GICXXCustomAction_GICombiner88,
2178 GICXXCustomAction_GICombiner89,
2179 GICXXCustomAction_GICombiner90,
2180 GICXXCustomAction_GICombiner91,
2181 GICXXCustomAction_GICombiner92,
2182 GICXXCustomAction_GICombiner93,
2183 GICXXCustomAction_GICombiner94,
2184 GICXXCustomAction_GICombiner95,
2185 GICXXCustomAction_GICombiner96,
2186 GICXXCustomAction_GICombiner97,
2187 GICXXCustomAction_GICombiner98,
2188 GICXXCustomAction_GICombiner99,
2189 GICXXCustomAction_GICombiner100,
2190 GICXXCustomAction_GICombiner101,
2191 GICXXCustomAction_GICombiner102,
2192 GICXXCustomAction_GICombiner103,
2193 GICXXCustomAction_GICombiner104,
2194 GICXXCustomAction_GICombiner105,
2195 GICXXCustomAction_GICombiner106,
2196 GICXXCustomAction_GICombiner107,
2197 GICXXCustomAction_GICombiner108,
2198 GICXXCustomAction_GICombiner109,
2199 GICXXCustomAction_GICombiner110,
2200 GICXXCustomAction_GICombiner111,
2201 GICXXCustomAction_GICombiner112,
2202 GICXXCustomAction_GICombiner113,
2203 GICXXCustomAction_GICombiner114,
2204 GICXXCustomAction_GICombiner115,
2205 GICXXCustomAction_GICombiner116,
2206 GICXXCustomAction_GICombiner117,
2207 GICXXCustomAction_GICombiner118,
2208 GICXXCustomAction_GICombiner119,
2209 GICXXCustomAction_GICombiner120,
2210 GICXXCustomAction_GICombiner121,
2211 GICXXCustomAction_GICombiner122,
2212 GICXXCustomAction_GICombiner123,
2213 GICXXCustomAction_GICombiner124,
2214 GICXXCustomAction_GICombiner125,
2215 GICXXCustomAction_GICombiner126,
2216 GICXXCustomAction_GICombiner127,
2217 GICXXCustomAction_GICombiner128,
2218 GICXXCustomAction_GICombiner129,
2219 GICXXCustomAction_GICombiner130,
2220 GICXXCustomAction_GICombiner131,
2221 GICXXCustomAction_GICombiner132,
2222 GICXXCustomAction_GICombiner133,
2223 GICXXCustomAction_GICombiner134,
2224 GICXXCustomAction_GICombiner135,
2225 GICXXCustomAction_GICombiner136,
2226 GICXXCustomAction_GICombiner137,
2227 GICXXCustomAction_GICombiner138,
2228 GICXXCustomAction_GICombiner139,
2229 GICXXCustomAction_GICombiner140,
2230 GICXXCustomAction_GICombiner141,
2231 GICXXCustomAction_GICombiner142,
2232 GICXXCustomAction_GICombiner143,
2233 GICXXCustomAction_GICombiner144,
2234 GICXXCustomAction_GICombiner145,
2235 GICXXCustomAction_GICombiner146,
2236 GICXXCustomAction_GICombiner147,
2237 GICXXCustomAction_GICombiner148,
2238 GICXXCustomAction_GICombiner149,
2239 GICXXCustomAction_GICombiner150,
2240 GICXXCustomAction_GICombiner151,
2241 GICXXCustomAction_GICombiner152,
2242 GICXXCustomAction_GICombiner153,
2243 GICXXCustomAction_GICombiner154,
2244 GICXXCustomAction_GICombiner155,
2245 GICXXCustomAction_GICombiner156,
2246 GICXXCustomAction_GICombiner157,
2247 GICXXCustomAction_GICombiner158,
2248 GICXXCustomAction_GICombiner159,
2249};
2250bool AMDGPUPreLegalizerCombinerImpl::runCustomAction(unsigned ApplyID, const MatcherState &State, NewMIVector &OutMIs) const {
2251 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
2252 switch(ApplyID) {
2253 case GICXXCustomAction_GICombiner0:{
2254 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2255 // Match Patterns
2256 if(![&](){return Helper.matchFoldAPlusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2257 return false;
2258 }
2259 // Apply Patterns
2260 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2261 return true;
2262 }
2263 case GICXXCustomAction_GICombiner1:{
2264 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2265 // Match Patterns
2266 if(![&](){return Helper.matchFoldC2MinusAPlusC1(*State.MIs[0], GIMatchData_matchinfo);}()) {
2267 return false;
2268 }
2269 // Apply Patterns
2270 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2271 return true;
2272 }
2273 case GICXXCustomAction_GICombiner2:{
2274 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2275 // Match Patterns
2276 if(![&](){return Helper.matchFoldAMinusC1MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2277 return false;
2278 }
2279 // Apply Patterns
2280 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2281 return true;
2282 }
2283 case GICXXCustomAction_GICombiner3:{
2284 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2285 // Match Patterns
2286 if(![&](){return Helper.matchFoldC1Minus2MinusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2287 return false;
2288 }
2289 // Apply Patterns
2290 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2291 return true;
2292 }
2293 case GICXXCustomAction_GICombiner4:{
2294 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2295 // Match Patterns
2296 if(![&](){return Helper.matchFoldAMinusC1PlusC2(*State.MIs[0], GIMatchData_matchinfo);}()) {
2297 return false;
2298 }
2299 // Apply Patterns
2300 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2301 return true;
2302 }
2303 case GICXXCustomAction_GICombiner5:{
2304 // Match Patterns
2305 if(![&](){return Helper.matchCombineCopy(*State.MIs[0]);}()) {
2306 return false;
2307 }
2308 // Apply Patterns
2309 Helper.applyCombineCopy(*State.MIs[0]);
2310 return true;
2311 }
2312 case GICXXCustomAction_GICombiner6:{
2313 unsigned GIMatchData_matchinfo;
2314 // Match Patterns
2315 if(![&](){return Helper.matchCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);}()) {
2316 return false;
2317 }
2318 // Apply Patterns
2319 Helper.applyCombineMulToShl(*State.MIs[0], GIMatchData_matchinfo);
2320 return true;
2321 }
2322 case GICXXCustomAction_GICombiner7:{
2323 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2324 // Match Patterns
2325 if(![&](){return Helper.matchCombineSubToAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2326 return false;
2327 }
2328 // Apply Patterns
2329 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2330 return true;
2331 }
2332 case GICXXCustomAction_GICombiner8:{
2333 std::pair<Register, bool> GIMatchData_info;
2334 // Match Patterns
2335 if(![&](){return Helper.matchCombineAddP2IToPtrAdd(*State.MIs[0], GIMatchData_info);}()) {
2336 return false;
2337 }
2338 // Apply Patterns
2339 Helper.applyCombineAddP2IToPtrAdd(*State.MIs[0], GIMatchData_info);
2340 return true;
2341 }
2342 case GICXXCustomAction_GICombiner9:{
2343 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2344 // Match Patterns
2345 if(![&](){return Helper.matchExtractVectorElement(*State.MIs[0], GIMatchData_matchinfo);}()) {
2346 return false;
2347 }
2348 // Apply Patterns
2349 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2350 return true;
2351 }
2352 case GICXXCustomAction_GICombiner10:{
2353 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2354 // Match Patterns
2355 if(![&](){return Helper.matchInsertVectorElementOOB(*State.MIs[0], GIMatchData_matchinfo);}()) {
2356 return false;
2357 }
2358 // Apply Patterns
2359 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2360 return true;
2361 }
2362 case GICXXCustomAction_GICombiner11:{
2363 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2364 // Match Patterns
2365 if(![&](){return Helper.matchExtractVectorElementWithDifferentIndices(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2366 return false;
2367 }
2368 // Apply Patterns
2369 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2370 return true;
2371 }
2372 case GICXXCustomAction_GICombiner12:{
2373 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2374 // Match Patterns
2375 if(![&](){return Helper.matchExtractVectorElementWithBuildVector(*State.MIs[0], *State.MIs[1],
2376 GIMatchData_matchinfo);}()) {
2377 return false;
2378 }
2379 // Apply Patterns
2380 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2381 return true;
2382 }
2383 case GICXXCustomAction_GICombiner13:{
2384 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2385 // Match Patterns
2386 if(![&](){return Helper.matchExtractVectorElementWithBuildVectorTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2387 return false;
2388 }
2389 // Apply Patterns
2390 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2391 return true;
2392 }
2393 case GICXXCustomAction_GICombiner14:{
2394 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2395 // Match Patterns
2396 if(![&](){return Helper.matchExtractVectorElementWithShuffleVector(*State.MIs[0], *State.MIs[1],
2397 GIMatchData_matchinfo);}()) {
2398 return false;
2399 }
2400 // Apply Patterns
2401 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2402 return true;
2403 }
2404 case GICXXCustomAction_GICombiner15:{
2405 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2406 // Match Patterns
2407 if(![&](){return Helper.matchAddOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2408 return false;
2409 }
2410 // Apply Patterns
2411 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2412 return true;
2413 }
2414 case GICXXCustomAction_GICombiner16:{
2415 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2416 // Match Patterns
2417 if(![&](){return Helper.matchMulOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2418 return false;
2419 }
2420 // Apply Patterns
2421 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2422 return true;
2423 }
2424 case GICXXCustomAction_GICombiner17:{
2425 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2426 // Match Patterns
2427 if(![&](){return Helper.matchShlOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2428 return false;
2429 }
2430 // Apply Patterns
2431 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2432 return true;
2433 }
2434 case GICXXCustomAction_GICombiner18:{
2435 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2436 // Match Patterns
2437 if(![&](){return Helper.matchSubOfVScale(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
2438 return false;
2439 }
2440 // Apply Patterns
2441 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
2442 return true;
2443 }
2444 case GICXXCustomAction_GICombiner19:{
2445 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2446 // Match Patterns
2447 if(![&](){return !isGuaranteedNotToBePoison(State.MIs[0]->getOperand(1).getReg(), MRI) && Helper.matchFreezeOfSingleMaybePoisonOperand(*State.MIs[0], GIMatchData_matchinfo);}()) {
2448 return false;
2449 }
2450 // Apply Patterns
2451 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2452 return true;
2453 }
2454 case GICXXCustomAction_GICombiner20:{
2455 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2456 // Match Patterns
2457 if(![&](){return Helper.matchTruncateOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2458 return false;
2459 }
2460 // Apply Patterns
2461 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2462 return true;
2463 }
2464 case GICXXCustomAction_GICombiner21:{
2465 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2466 // Match Patterns
2467 if(![&](){return Helper.matchExtOfExt(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2468 return false;
2469 }
2470 // Apply Patterns
2471 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2472 return true;
2473 }
2474 case GICXXCustomAction_GICombiner22:{
2475 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2476 // Match Patterns
2477 if(![&](){return Helper.matchRedundantSextInReg(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2478 return false;
2479 }
2480 // Apply Patterns
2481 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2482 return true;
2483 }
2484 case GICXXCustomAction_GICombiner23:{
2485 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2486 // Match Patterns
2487 if(![&](){return Helper.matchCastOfSelect(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2488 return false;
2489 }
2490 // Apply Patterns
2491 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2492 return true;
2493 }
2494 case GICXXCustomAction_GICombiner24:{
2495 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2496 // Match Patterns
2497 if(![&](){return Helper.matchCastOfBuildVector(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2498 return false;
2499 }
2500 // Apply Patterns
2501 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2502 return true;
2503 }
2504 case GICXXCustomAction_GICombiner25:{
2505 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2506 // Match Patterns
2507 if(![&](){return Helper.matchNarrowBinop(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
2508 return false;
2509 }
2510 // Apply Patterns
2511 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2512 return true;
2513 }
2514 case GICXXCustomAction_GICombiner26:{
2515 APInt GIMatchData_matchinfo;
2516 // Match Patterns
2517 if(![&](){return Helper.matchCastOfInteger(*State.MIs[0], GIMatchData_matchinfo);}()) {
2518 return false;
2519 }
2520 // Apply Patterns
2521 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
2522 return true;
2523 }
2524 case GICXXCustomAction_GICombiner27:{
2525 SmallVector<Register> GIMatchData_info;
2526 // Match Patterns
2527 if(![&](){return Helper.matchCombineInsertVecElts(*State.MIs[0], GIMatchData_info);}()) {
2528 return false;
2529 }
2530 // Apply Patterns
2531 Helper.applyCombineInsertVecElts(*State.MIs[0], GIMatchData_info);
2532 return true;
2533 }
2534 case GICXXCustomAction_GICombiner28:{
2535 Register GIMatchData_matchinfo;
2536 // Match Patterns
2537 if(![&](){return Helper.matchExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);}()) {
2538 return false;
2539 }
2540 // Apply Patterns
2541 Helper.applyExtractVecEltBuildVec(*State.MIs[0], GIMatchData_matchinfo);
2542 return true;
2543 }
2544 case GICXXCustomAction_GICombiner29:{
2545 SmallVector<std::pair<Register, MachineInstr*>> GIMatchData_matchinfo;
2546 // Match Patterns
2547 if(![&](){return Helper.matchExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
2548 return false;
2549 }
2550 // Apply Patterns
2551 Helper.applyExtractAllEltsFromBuildVector(*State.MIs[0], GIMatchData_matchinfo);
2552 return true;
2553 }
2554 case GICXXCustomAction_GICombiner30:{
2555 PreferredTuple GIMatchData_matchinfo;
2556 // Match Patterns
2557 if(![&](){return Helper.matchCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);}()) {
2558 return false;
2559 }
2560 // Apply Patterns
2561 Helper.applyCombineExtendingLoads(*State.MIs[0], GIMatchData_matchinfo);
2562 return true;
2563 }
2564 case GICXXCustomAction_GICombiner31:{
2565 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2566 // Match Patterns
2567 if(![&](){return Helper.matchCombineLoadWithAndMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
2568 return false;
2569 }
2570 // Apply Patterns
2571 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2572 return true;
2573 }
2574 case GICXXCustomAction_GICombiner32:{
2575 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2576 // Match Patterns
2577 if(![&](){return Helper.matchCombineExtractedVectorLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
2578 return false;
2579 }
2580 // Apply Patterns
2581 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2582 return true;
2583 }
2584 case GICXXCustomAction_GICombiner33:{
2585 // Match Patterns
2586 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2587 return false;
2588 }
2589 // Apply Patterns
2590 Helper.replaceInstWithFConstant(*State.MIs[0], 0.0);
2591 return true;
2592 }
2593 case GICXXCustomAction_GICombiner34:{
2594 // Match Patterns
2595 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2596 return false;
2597 }
2598 // Apply Patterns
2599 Helper.replaceInstWithConstant(*State.MIs[0], 0);
2600 return true;
2601 }
2602 case GICXXCustomAction_GICombiner35:{
2603 // Match Patterns
2604 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2605 return false;
2606 }
2607 // Apply Patterns
2608 Helper.replaceInstWithConstant(*State.MIs[0], -1);
2609 return true;
2610 }
2611 case GICXXCustomAction_GICombiner36:{
2612 // Match Patterns
2613 if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 1);}()) {
2614 return false;
2615 }
2616 // Apply Patterns
2617 Helper.replaceInstWithConstant(*State.MIs[0], 0);
2618 return true;
2619 }
2620 case GICXXCustomAction_GICombiner37:{
2621 // Match Patterns
2622 if(![&](){return Helper.matchOperandIsUndef(*State.MIs[0], 2);}()) {
2623 return false;
2624 }
2625 // Apply Patterns
2626 Helper.replaceInstWithUndef(*State.MIs[0]);
2627 return true;
2628 }
2629 case GICXXCustomAction_GICombiner38:{
2630 // Apply Patterns
2631 Helper.replaceInstWithUndef(*State.MIs[0]->getOperand(0).getParent());
2632 return true;
2633 }
2634 case GICXXCustomAction_GICombiner39:{
2635 // Match Patterns
2636 if(![&](){return Helper.matchAnyExplicitUseIsUndef(*State.MIs[0]);}()) {
2637 return false;
2638 }
2639 // Apply Patterns
2640 Helper.replaceInstWithUndef(*State.MIs[0]);
2641 return true;
2642 }
2643 case GICXXCustomAction_GICombiner40:{
2644 // Match Patterns
2645 if(![&](){return Helper.matchAllExplicitUsesAreUndef(*State.MIs[0]);}()) {
2646 return false;
2647 }
2648 // Apply Patterns
2649 Helper.replaceInstWithUndef(*State.MIs[0]);
2650 return true;
2651 }
2652 case GICXXCustomAction_GICombiner41:{
2653 // Match Patterns
2654 if(![&](){return Helper.matchUndefShuffleVectorMask(*State.MIs[0]);}()) {
2655 return false;
2656 }
2657 // Apply Patterns
2658 Helper.replaceInstWithUndef(*State.MIs[0]);
2659 return true;
2660 }
2661 case GICXXCustomAction_GICombiner42:{
2662 // Match Patterns
2663 if(![&](){return Helper.matchUndefStore(*State.MIs[0]);}()) {
2664 return false;
2665 }
2666 // Apply Patterns
2667 Helper.eraseInst(*State.MIs[0]);
2668 return true;
2669 }
2670 case GICXXCustomAction_GICombiner43:{
2671 // Match Patterns
2672 if(![&](){return Helper.matchInsertExtractVecEltOutOfBounds(*State.MIs[0]);}()) {
2673 return false;
2674 }
2675 // Apply Patterns
2676 Helper.replaceInstWithUndef(*State.MIs[0]);
2677 return true;
2678 }
2679 case GICXXCustomAction_GICombiner44:{
2680 // Match Patterns
2681 if(![&](){return Helper.matchSelectSameVal(*State.MIs[0]);}()) {
2682 return false;
2683 }
2684 // Apply Patterns
2685 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 2);
2686 return true;
2687 }
2688 case GICXXCustomAction_GICombiner45:{
2689 Register GIMatchData_info;
2690 // Match Patterns
2691 if(![&](){return Helper.matchCombineI2PToP2I(*State.MIs[0], GIMatchData_info);}()) {
2692 return false;
2693 }
2694 // Apply Patterns
2695 Helper.applyCombineI2PToP2I(*State.MIs[0], GIMatchData_info);
2696 return true;
2697 }
2698 case GICXXCustomAction_GICombiner46:{
2699 Register GIMatchData_info;
2700 // Match Patterns
2701 if(![&](){GIMatchData_info = State.MIs[1]->getOperand(1).getReg(); return true;}()) {
2702 return false;
2703 }
2704 // Apply Patterns
2705 Helper.applyCombineP2IToI2P(*State.MIs[0], GIMatchData_info);
2706 return true;
2707 }
2708 case GICXXCustomAction_GICombiner47:{
2709 Register GIMatchData_matchinfo;
2710 // Match Patterns
2711 if(![&](){return Helper.matchCombineAnyExtTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
2712 return false;
2713 }
2714 // Apply Patterns
2715 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2716 return true;
2717 }
2718 case GICXXCustomAction_GICombiner48:{
2719 Register GIMatchData_matchinfo;
2720 // Match Patterns
2721 if(![&](){return Helper.matchBuildVectorIdentityFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
2722 return false;
2723 }
2724 // Apply Patterns
2725 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2726 return true;
2727 }
2728 case GICXXCustomAction_GICombiner49:{
2729 Register GIMatchData_matchinfo;
2730 // Match Patterns
2731 if(![&](){return Helper.matchTruncBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
2732 return false;
2733 }
2734 // Apply Patterns
2735 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2736 return true;
2737 }
2738 case GICXXCustomAction_GICombiner50:{
2739 Register GIMatchData_matchinfo;
2740 // Match Patterns
2741 if(![&](){return Helper.matchTruncLshrBuildVectorFold(*State.MIs[0], GIMatchData_matchinfo);}()) {
2742 return false;
2743 }
2744 // Apply Patterns
2745 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2746 return true;
2747 }
2748 case GICXXCustomAction_GICombiner51:{
2749 // Match Patterns
2750 if(![&](){return MRI.getType(State.MIs[1]->getOperand(1).getReg()) == MRI.getType(State.MIs[0]->getOperand(0).getReg());}()) {
2751 return false;
2752 }
2753 // Apply Patterns
2754 Helper.replaceSingleDefInstWithReg(*State.MIs[0], State.MIs[1]->getOperand(1).getReg());
2755 return true;
2756 }
2757 case GICXXCustomAction_GICombiner52:{
2758 MachineInstr* GIMatchData_matchinfo;
2759 // Match Patterns
2760 if(![&](){return Helper.matchExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);}()) {
2761 return false;
2762 }
2763 // Apply Patterns
2764 Helper.applyExtendThroughPhis(*State.MIs[0], GIMatchData_matchinfo);
2765 return true;
2766 }
2767 case GICXXCustomAction_GICombiner53:{
2768 std::tuple<Register, Register> GIMatchData_info;
2769 // Match Patterns
2770 if(![&](){return Helper.matchSimplifyAddToSub(*State.MIs[0], GIMatchData_info);}()) {
2771 return false;
2772 }
2773 // Apply Patterns
2774 Helper.applySimplifyAddToSub(*State.MIs[0], GIMatchData_info);
2775 return true;
2776 }
2777 case GICXXCustomAction_GICombiner54:{
2778 InstructionStepsMatchInfo GIMatchData_info;
2779 // Match Patterns
2780 if(![&](){return Helper.matchHoistLogicOpWithSameOpcodeHands(*State.MIs[0], GIMatchData_info);}()) {
2781 return false;
2782 }
2783 // Apply Patterns
2784 Helper.applyBuildInstructionSteps(*State.MIs[0], GIMatchData_info);
2785 return true;
2786 }
2787 case GICXXCustomAction_GICombiner55:{
2788 std::optional<int64_t> GIMatchData_matchinfo;
2789 // Match Patterns
2790 if(![&](){return Helper.matchShiftsTooBig(*State.MIs[0], GIMatchData_matchinfo);}()) {
2791 return false;
2792 }
2793 // Apply Patterns
2794 if (GIMatchData_matchinfo) {
2795 Helper.replaceInstWithConstant(*State.MIs[0], *GIMatchData_matchinfo);
2796 } else {
2797 Helper.replaceInstWithUndef(*State.MIs[0]);
2798 }
2799 return true;
2800 }
2801 case GICXXCustomAction_GICombiner56:{
2802 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2803 // Match Patterns
2804 if(![&](){return Helper.matchReassocPtrAdd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2805 return false;
2806 }
2807 // Apply Patterns
2808 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2809 return true;
2810 }
2811 case GICXXCustomAction_GICombiner57:{
2812 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2813 // Match Patterns
2814 if(![&](){return Helper.matchReassocCommBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2815 return false;
2816 }
2817 // Apply Patterns
2818 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2819 return true;
2820 }
2821 case GICXXCustomAction_GICombiner58:{
2822 PtrAddChain GIMatchData_matchinfo;
2823 // Match Patterns
2824 if(![&](){return Helper.matchPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
2825 return false;
2826 }
2827 // Apply Patterns
2828 Helper.applyPtrAddImmedChain(*State.MIs[0], GIMatchData_matchinfo);
2829 return true;
2830 }
2831 case GICXXCustomAction_GICombiner59:{
2832 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2833 // Match Patterns
2834 if(![&](){return Helper.matchCanonicalizeICmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2835 return false;
2836 }
2837 // Apply Patterns
2838 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2839 return true;
2840 }
2841 case GICXXCustomAction_GICombiner60:{
2842 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2843 // Match Patterns
2844 if(![&](){return Helper.matchCanonicalizeFCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2845 return false;
2846 }
2847 // Apply Patterns
2848 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2849 return true;
2850 }
2851 case GICXXCustomAction_GICombiner61:{
2852 int64_t GIMatchData_matchinfo;
2853 // Match Patterns
2854 if(![&](){return Helper.matchICmpToTrueFalseKnownBits(*State.MIs[0], GIMatchData_matchinfo);}()) {
2855 return false;
2856 }
2857 // Apply Patterns
2858 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
2859 return true;
2860 }
2861 case GICXXCustomAction_GICombiner62:{
2862 std::function<void(MachineIRBuilder &)> GIMatchData_info;
2863 // Match Patterns
2864 if(![&](){return Helper.matchICmpToLHSKnownBits(*State.MIs[0], GIMatchData_info);}()) {
2865 return false;
2866 }
2867 // Apply Patterns
2868 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
2869 return true;
2870 }
2871 case GICXXCustomAction_GICombiner63:{
2872 std::function<void(MachineIRBuilder &)> GIMatchData_info;
2873 // Match Patterns
2874 if(![&](){return Helper.matchRedundantBinOpInEquality(*State.MIs[0], GIMatchData_info);}()) {
2875 return false;
2876 }
2877 // Apply Patterns
2878 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
2879 return true;
2880 }
2881 case GICXXCustomAction_GICombiner64:{
2882 std::tuple<Register, int64_t> GIMatchData_info;
2883 // Match Patterns
2884 if(![&](){return Helper.matchAshrShlToSextInreg(*State.MIs[0], GIMatchData_info);}()) {
2885 return false;
2886 }
2887 // Apply Patterns
2888 Helper.applyAshShlToSextInreg(*State.MIs[0], GIMatchData_info);
2889 return true;
2890 }
2891 case GICXXCustomAction_GICombiner65:{
2892 std::tuple<Register, unsigned> GIMatchData_matchinfo;
2893 // Match Patterns
2894 if(![&](){return Helper.matchSextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);}()) {
2895 return false;
2896 }
2897 // Apply Patterns
2898 Helper.applySextInRegOfLoad(*State.MIs[0], GIMatchData_matchinfo);
2899 return true;
2900 }
2901 case GICXXCustomAction_GICombiner66:{
2902 RegisterImmPair GIMatchData_matchinfo;
2903 // Match Patterns
2904 if(![&](){return Helper.matchCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);}()) {
2905 return false;
2906 }
2907 // Apply Patterns
2908 Helper.applyCombineShlOfExtend(*State.MIs[0], GIMatchData_matchinfo);
2909 return true;
2910 }
2911 case GICXXCustomAction_GICombiner67:{
2912 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2913 // Match Patterns
2914 if(![&](){return Helper.matchNarrowBinopFeedingAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2915 return false;
2916 }
2917 // Apply Patterns
2918 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
2919 return true;
2920 }
2921 case GICXXCustomAction_GICombiner68:{
2922 unsigned GIMatchData_matchinfo;
2923 // Match Patterns
2924 if(![&](){return Helper.matchConstantSelectCmp(*State.MIs[0], GIMatchData_matchinfo);}()) {
2925 return false;
2926 }
2927 // Apply Patterns
2928 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_matchinfo);
2929 return true;
2930 }
2931 case GICXXCustomAction_GICombiner69:{
2932 std::function<void(MachineIRBuilder &)> GIMatchData_info;
2933 // Match Patterns
2934 if(![&](){return Helper.matchSelectIMinMax(State.MIs[0]->getOperand(0), GIMatchData_info);}()) {
2935 return false;
2936 }
2937 // Apply Patterns
2938 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_info);
2939 return true;
2940 }
2941 case GICXXCustomAction_GICombiner70:{
2942 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
2943 // Match Patterns
2944 if(![&](){return Helper.matchSelect(*State.MIs[0], GIMatchData_matchinfo);}()) {
2945 return false;
2946 }
2947 // Apply Patterns
2948 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
2949 return true;
2950 }
2951 case GICXXCustomAction_GICombiner71:{
2952 Register GIMatchData_matchinfo;
2953 // Match Patterns
2954 if(![&](){return Helper.matchRedundantAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
2955 return false;
2956 }
2957 // Apply Patterns
2958 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2959 return true;
2960 }
2961 case GICXXCustomAction_GICombiner72:{
2962 // Match Patterns
2963 if(![&](){return Helper.matchRedundantSExtInReg(*State.MIs[0]);}()) {
2964 return false;
2965 }
2966 // Apply Patterns
2967 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], 1);
2968 return true;
2969 }
2970 case GICXXCustomAction_GICombiner73:{
2971 Register GIMatchData_matchinfo;
2972 // Match Patterns
2973 if(![&](){return Helper.matchRedundantOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
2974 return false;
2975 }
2976 // Apply Patterns
2977 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2978 return true;
2979 }
2980 case GICXXCustomAction_GICombiner74:{
2981 // Match Patterns
2982 if(![&](){return Helper.matchOperandIsKnownToBeAPowerOfTwo(*State.MIs[0], 2);}()) {
2983 return false;
2984 }
2985 // Apply Patterns
2986 Helper.applySimplifyURemByPow2(*State.MIs[0]);
2987 return true;
2988 }
2989 case GICXXCustomAction_GICombiner75:{
2990 Register GIMatchData_matchinfo;
2991 // Match Patterns
2992 if(![&](){return Helper.matchCombineZextTrunc(*State.MIs[0], GIMatchData_matchinfo);}()) {
2993 return false;
2994 }
2995 // Apply Patterns
2996 Helper.replaceSingleDefInstWithReg(*State.MIs[0], GIMatchData_matchinfo);
2997 return true;
2998 }
2999 case GICXXCustomAction_GICombiner76:{
3000 // Match Patterns
3001 if(![&](){unsigned BitWidth = MRI.getType(State.MIs[0]->getOperand(1).getReg()).getScalarSizeInBits();
3002 return Helper.getValueTracking()->maskedValueIsZero(State.MIs[0]->getOperand(1).getReg(),
3003 APInt::getOneBitSet(BitWidth, State.MIs[0]->getOperand(2).getImm() - 1));}()) {
3004 return false;
3005 }
3006 // Apply Patterns
3007 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
3008 Helper.getBuilder().buildZExtInReg(State.MIs[0]->getOperand(0), State.MIs[0]->getOperand(1), State.MIs[0]->getOperand(2).getImm());
3009 State.MIs[0]->eraseFromParent();
3010 return true;
3011 }
3012 case GICXXCustomAction_GICombiner77:{
3013 std::pair<MachineInstr*, LLT> GIMatchData_matchinfo;
3014 // Match Patterns
3015 if(![&](){return Helper.matchCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
3016 return false;
3017 }
3018 // Apply Patterns
3019 Helper.applyCombineTruncOfShift(*State.MIs[0], GIMatchData_matchinfo);
3020 return true;
3021 }
3022 case GICXXCustomAction_GICombiner78:{
3023 SmallVector<Register> GIMatchData_info;
3024 // Match Patterns
3025 if(![&](){return Helper.matchNotCmp(*State.MIs[0], GIMatchData_info);}()) {
3026 return false;
3027 }
3028 // Apply Patterns
3029 Helper.applyNotCmp(*State.MIs[0], GIMatchData_info);
3030 return true;
3031 }
3032 case GICXXCustomAction_GICombiner79:{
3033 MachineInstr * GIMatchData_matchinfo;
3034 // Match Patterns
3035 if(![&](){return Helper.matchOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);}()) {
3036 return false;
3037 }
3038 // Apply Patterns
3039 Helper.applyOptBrCondByInvertingCond(*State.MIs[0], GIMatchData_matchinfo);
3040 return true;
3041 }
3042 case GICXXCustomAction_GICombiner80:{
3043 // Apply Patterns
3044 Helper.applyCombineConstantFoldFpUnary(*State.MIs[0], State.MIs[1]->getOperand(1).getFPImm());
3045 return true;
3046 }
3047 case GICXXCustomAction_GICombiner81:{
3048 // Apply Patterns
3049 Helper.replaceInstWithFConstant(*State.MIs[0]->getOperand(0).getParent(), 0.0);
3050 return true;
3051 }
3052 case GICXXCustomAction_GICombiner82:{
3053 APInt GIMatchData_info;
3054 // Match Patterns
3055 if(![&](){return Helper.matchCombineConstPtrAddToI2P(*State.MIs[0], GIMatchData_info);}()) {
3056 return false;
3057 }
3058 // Apply Patterns
3059 Helper.applyCombineConstPtrAddToI2P(*State.MIs[0], GIMatchData_info);
3060 return true;
3061 }
3062 case GICXXCustomAction_GICombiner83:{
3063 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3064 // Match Patterns
3065 if(![&](){return Helper.matchOverlappingAnd(*State.MIs[0], GIMatchData_info);}()) {
3066 return false;
3067 }
3068 // Apply Patterns
3069 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3070 return true;
3071 }
3072 case GICXXCustomAction_GICombiner84:{
3073 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3074 // Match Patterns
3075 if(![&](){return Helper.matchMulOBy2(*State.MIs[0], GIMatchData_matchinfo);}()) {
3076 return false;
3077 }
3078 // Apply Patterns
3079 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3080 return true;
3081 }
3082 case GICXXCustomAction_GICombiner85:{
3083 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3084 // Match Patterns
3085 if(![&](){return Helper.matchMulOBy0(*State.MIs[0], GIMatchData_matchinfo);}()) {
3086 return false;
3087 }
3088 // Apply Patterns
3089 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3090 return true;
3091 }
3092 case GICXXCustomAction_GICombiner86:{
3093 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3094 // Match Patterns
3095 if(![&](){return Helper.matchAddEToAddO(*State.MIs[0], GIMatchData_matchinfo);}()) {
3096 return false;
3097 }
3098 // Apply Patterns
3099 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3100 return true;
3101 }
3102 case GICXXCustomAction_GICombiner87:{
3103 unsigned GIMatchData_info;
3104 // Match Patterns
3105 if(![&](){return Helper.matchCombineFMinMaxNaN(*State.MIs[0], GIMatchData_info);}()) {
3106 return false;
3107 }
3108 // Apply Patterns
3109 Helper.replaceSingleDefInstWithOperand(*State.MIs[0], GIMatchData_info);
3110 return true;
3111 }
3112 case GICXXCustomAction_GICombiner88:{
3113 // Match Patterns
3114 if(![&](){return Helper.matchFPowIExpansion(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());}()) {
3115 return false;
3116 }
3117 // Apply Patterns
3118 Helper.applyExpandFPowI(*State.MIs[0], State.MIs[1]->getOperand(1).getCImm()->getSExtValue());
3119 return true;
3120 }
3121 case GICXXCustomAction_GICombiner89:{
3122 std::pair<Register, Register> GIMatchData_matchinfo;
3123 // Match Patterns
3124 if(![&](){return Helper.matchXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3125 return false;
3126 }
3127 // Apply Patterns
3128 Helper.applyXorOfAndWithSameReg(*State.MIs[0], GIMatchData_matchinfo);
3129 return true;
3130 }
3131 case GICXXCustomAction_GICombiner90:{
3132 // Match Patterns
3133 if(![&](){return Helper.matchPtrAddZero(*State.MIs[0]);}()) {
3134 return false;
3135 }
3136 // Apply Patterns
3137 Helper.applyPtrAddZero(*State.MIs[0]);
3138 return true;
3139 }
3140 case GICXXCustomAction_GICombiner91:{
3141 RegisterImmPair GIMatchData_matchinfo;
3142 // Match Patterns
3143 if(![&](){return Helper.matchShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);}()) {
3144 return false;
3145 }
3146 // Apply Patterns
3147 Helper.applyShiftImmedChain(*State.MIs[0], GIMatchData_matchinfo);
3148 return true;
3149 }
3150 case GICXXCustomAction_GICombiner92:{
3151 ShiftOfShiftedLogic GIMatchData_matchinfo;
3152 // Match Patterns
3153 if(![&](){return Helper.matchShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);}()) {
3154 return false;
3155 }
3156 // Apply Patterns
3157 Helper.applyShiftOfShiftedLogic(*State.MIs[0], GIMatchData_matchinfo);
3158 return true;
3159 }
3160 case GICXXCustomAction_GICombiner93:{
3161 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3162 // Match Patterns
3163 if(![&](){return Helper.matchLoadOrCombine(*State.MIs[0], GIMatchData_info);}()) {
3164 return false;
3165 }
3166 // Apply Patterns
3167 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3168 return true;
3169 }
3170 case GICXXCustomAction_GICombiner94:{
3171 MachineInstr * GIMatchData_matchinfo;
3172 // Match Patterns
3173 if(![&](){return Helper.matchCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);}()) {
3174 return false;
3175 }
3176 // Apply Patterns
3177 Helper.applyCombineDivRem(*State.MIs[0], GIMatchData_matchinfo);
3178 return true;
3179 }
3180 case GICXXCustomAction_GICombiner95:{
3181 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3182 // Match Patterns
3183 if(![&](){return Helper.matchOrShiftToFunnelShift(*State.MIs[0], false, GIMatchData_info);}()) {
3184 return false;
3185 }
3186 // Apply Patterns
3187 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3188 return true;
3189 }
3190 case GICXXCustomAction_GICombiner96:{
3191 // Match Patterns
3192 if(![&](){return Helper.matchFunnelShiftToRotate(*State.MIs[0]);}()) {
3193 return false;
3194 }
3195 // Apply Patterns
3196 Helper.applyFunnelShiftToRotate(*State.MIs[0]);
3197 return true;
3198 }
3199 case GICXXCustomAction_GICombiner97:{
3200 // Match Patterns
3201 if(![&](){return Helper.matchConstantLargerBitWidth(*State.MIs[0], 3);}()) {
3202 return false;
3203 }
3204 // Apply Patterns
3205 Helper.applyFunnelShiftConstantModulo(*State.MIs[0]);
3206 return true;
3207 }
3208 case GICXXCustomAction_GICombiner98:{
3209 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3210 // Match Patterns
3211 if(![&](){return Helper.matchCommuteShift(*State.MIs[0], GIMatchData_matchinfo);}()) {
3212 return false;
3213 }
3214 // Apply Patterns
3215 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3216 return true;
3217 }
3218 case GICXXCustomAction_GICombiner99:{
3219 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3220 // Match Patterns
3221 if(![&](){return Helper.matchBitfieldExtractFromSExtInReg(*State.MIs[0], GIMatchData_info);}()) {
3222 return false;
3223 }
3224 // Apply Patterns
3225 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3226 return true;
3227 }
3228 case GICXXCustomAction_GICombiner100:{
3229 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3230 // Match Patterns
3231 if(![&](){return Helper.matchBitfieldExtractFromAnd(*State.MIs[0], GIMatchData_info);}()) {
3232 return false;
3233 }
3234 // Apply Patterns
3235 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3236 return true;
3237 }
3238 case GICXXCustomAction_GICombiner101:{
3239 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3240 // Match Patterns
3241 if(![&](){return Helper.matchBitfieldExtractFromShr(*State.MIs[0], GIMatchData_info);}()) {
3242 return false;
3243 }
3244 // Apply Patterns
3245 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3246 return true;
3247 }
3248 case GICXXCustomAction_GICombiner102:{
3249 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3250 // Match Patterns
3251 if(![&](){return Helper.matchBitfieldExtractFromShrAnd(*State.MIs[0], GIMatchData_info);}()) {
3252 return false;
3253 }
3254 // Apply Patterns
3255 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3256 return true;
3257 }
3258 case GICXXCustomAction_GICombiner103:{
3259 APInt GIMatchData_matchinfo;
3260 // Match Patterns
3261 if(![&](){return Helper.matchConstantFoldBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3262 return false;
3263 }
3264 // Apply Patterns
3265 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3266 return true;
3267 }
3268 case GICXXCustomAction_GICombiner104:{
3269 ConstantFP* GIMatchData_matchinfo;
3270 // Match Patterns
3271 if(![&](){return Helper.matchConstantFoldFPBinOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3272 return false;
3273 }
3274 // Apply Patterns
3275 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3276 return true;
3277 }
3278 case GICXXCustomAction_GICombiner105:{
3279 ConstantFP* GIMatchData_matchinfo;
3280 // Match Patterns
3281 if(![&](){return Helper.matchConstantFoldFMA(*State.MIs[0], GIMatchData_matchinfo);}()) {
3282 return false;
3283 }
3284 // Apply Patterns
3285 Helper.replaceInstWithFConstant(*State.MIs[0], GIMatchData_matchinfo);
3286 return true;
3287 }
3288 case GICXXCustomAction_GICombiner106:{
3289 APInt GIMatchData_matchinfo;
3290 // Match Patterns
3291 if(![&](){return Helper.matchConstantFoldCastOp(*State.MIs[0], GIMatchData_matchinfo);}()) {
3292 return false;
3293 }
3294 // Apply Patterns
3295 Helper.replaceInstWithConstant(*State.MIs[0], GIMatchData_matchinfo);
3296 return true;
3297 }
3298 case GICXXCustomAction_GICombiner107:{
3299 // Match Patterns
3300 if(![&](){return Helper.matchUMulHToLShr(*State.MIs[0]);}()) {
3301 return false;
3302 }
3303 // Apply Patterns
3304 Helper.applyUMulHToLShr(*State.MIs[0]);
3305 return true;
3306 }
3307 case GICXXCustomAction_GICombiner108:{
3308 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3309 // Match Patterns
3310 if(![&](){return Helper.matchRedundantNegOperands(*State.MIs[0], GIMatchData_matchinfo);}()) {
3311 return false;
3312 }
3313 // Apply Patterns
3314 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_matchinfo);
3315 return true;
3316 }
3317 case GICXXCustomAction_GICombiner109:{
3318 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3319 // Match Patterns
3320 if(![&](){return Helper.matchAndOrDisjointMask(*State.MIs[0], GIMatchData_info);}()) {
3321 return false;
3322 }
3323 // Apply Patterns
3324 Helper.applyBuildFnNoErase(*State.MIs[0], GIMatchData_info);
3325 return true;
3326 }
3327 case GICXXCustomAction_GICombiner110:{
3328 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3329 // Match Patterns
3330 if(![&](){return Helper.matchCombineFAddFMulToFMadOrFMA(*State.MIs[0],
3331 GIMatchData_info);}()) {
3332 return false;
3333 }
3334 // Apply Patterns
3335 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3336 return true;
3337 }
3338 case GICXXCustomAction_GICombiner111:{
3339 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3340 // Match Patterns
3341 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMA(*State.MIs[0],
3342 GIMatchData_info);}()) {
3343 return false;
3344 }
3345 // Apply Patterns
3346 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3347 return true;
3348 }
3349 case GICXXCustomAction_GICombiner112:{
3350 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3351 // Match Patterns
3352 if(![&](){return Helper.matchCombineFAddFMAFMulToFMadOrFMA(*State.MIs[0],
3353 GIMatchData_info);}()) {
3354 return false;
3355 }
3356 // Apply Patterns
3357 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3358 return true;
3359 }
3360 case GICXXCustomAction_GICombiner113:{
3361 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3362 // Match Patterns
3363 if(![&](){return Helper.matchCombineFAddFpExtFMulToFMadOrFMAAggressive(
3364 *State.MIs[0], GIMatchData_info);}()) {
3365 return false;
3366 }
3367 // Apply Patterns
3368 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3369 return true;
3370 }
3371 case GICXXCustomAction_GICombiner114:{
3372 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3373 // Match Patterns
3374 if(![&](){return Helper.matchCombineFSubFMulToFMadOrFMA(*State.MIs[0],
3375 GIMatchData_info);}()) {
3376 return false;
3377 }
3378 // Apply Patterns
3379 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3380 return true;
3381 }
3382 case GICXXCustomAction_GICombiner115:{
3383 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3384 // Match Patterns
3385 if(![&](){return Helper.matchCombineFSubFNegFMulToFMadOrFMA(*State.MIs[0],
3386 GIMatchData_info);}()) {
3387 return false;
3388 }
3389 // Apply Patterns
3390 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3391 return true;
3392 }
3393 case GICXXCustomAction_GICombiner116:{
3394 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3395 // Match Patterns
3396 if(![&](){return Helper.matchCombineFSubFpExtFMulToFMadOrFMA(*State.MIs[0],
3397 GIMatchData_info);}()) {
3398 return false;
3399 }
3400 // Apply Patterns
3401 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3402 return true;
3403 }
3404 case GICXXCustomAction_GICombiner117:{
3405 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3406 // Match Patterns
3407 if(![&](){return Helper.matchCombineFSubFpExtFNegFMulToFMadOrFMA(
3408 *State.MIs[0], GIMatchData_info);}()) {
3409 return false;
3410 }
3411 // Apply Patterns
3412 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3413 return true;
3414 }
3415 case GICXXCustomAction_GICombiner118:{
3416 unsigned GIMatchData_select_op_no;
3417 // Match Patterns
3418 if(![&](){return Helper.matchFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);}()) {
3419 return false;
3420 }
3421 // Apply Patterns
3422 Helper.applyFoldBinOpIntoSelect(*State.MIs[0], GIMatchData_select_op_no);
3423 return true;
3424 }
3425 case GICXXCustomAction_GICombiner119:{
3426 // Match Patterns
3427 if(![&](){return Helper.matchUDivOrURemByConst(*State.MIs[0]);}()) {
3428 return false;
3429 }
3430 // Apply Patterns
3431 Helper.applyUDivOrURemByConst(*State.MIs[0]);
3432 return true;
3433 }
3434 case GICXXCustomAction_GICombiner120:{
3435 // Match Patterns
3436 if(![&](){return Helper.matchSDivOrSRemByConst(*State.MIs[0]);}()) {
3437 return false;
3438 }
3439 // Apply Patterns
3440 Helper.applySDivOrSRemByConst(*State.MIs[0]);
3441 return true;
3442 }
3443 case GICXXCustomAction_GICombiner121:{
3444 // Match Patterns
3445 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/false);}()) {
3446 return false;
3447 }
3448 // Apply Patterns
3449 Helper.applyUDivByPow2(*State.MIs[0]);
3450 return true;
3451 }
3452 case GICXXCustomAction_GICombiner122:{
3453 // Match Patterns
3454 if(![&](){return Helper.matchDivByPow2(*State.MIs[0], /*IsSigned=*/true);}()) {
3455 return false;
3456 }
3457 // Apply Patterns
3458 Helper.applySDivByPow2(*State.MIs[0]);
3459 return true;
3460 }
3461 case GICXXCustomAction_GICombiner123:{
3462 SmallVector<MachineInstr *> GIMatchData_matchinfo;
3463 // Match Patterns
3464 if(![&](){return Helper.matchRepeatedFPDivisor(*State.MIs[0], GIMatchData_matchinfo);}()) {
3465 return false;
3466 }
3467 // Apply Patterns
3468 Helper.applyRepeatedFPDivisor(GIMatchData_matchinfo);
3469 return true;
3470 }
3471 case GICXXCustomAction_GICombiner124:{
3472 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3473 // Match Patterns
3474 if(![&](){return Helper.matchSubAddSameReg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3475 return false;
3476 }
3477 // Apply Patterns
3478 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3479 return true;
3480 }
3481 case GICXXCustomAction_GICombiner125:{
3482 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3483 // Match Patterns
3484 if(![&](){return Helper.matchSimplifySelectToMinMax(*State.MIs[0], GIMatchData_info);}()) {
3485 return false;
3486 }
3487 // Apply Patterns
3488 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3489 return true;
3490 }
3491 case GICXXCustomAction_GICombiner126:{
3492 Register GIMatchData_matchinfo;
3493 // Match Patterns
3494 if(![&](){return Helper.matchFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3495 return false;
3496 }
3497 // Apply Patterns
3498 Helper.applyFsubToFneg(*State.MIs[0], GIMatchData_matchinfo);
3499 return true;
3500 }
3501 case GICXXCustomAction_GICombiner127:{
3502 // Match Patterns
3503 if(![&](){return Helper.matchCommuteConstantToRHS(*State.MIs[0]);}()) {
3504 return false;
3505 }
3506 // Apply Patterns
3507 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
3508 return true;
3509 }
3510 case GICXXCustomAction_GICombiner128:{
3511 // Match Patterns
3512 if(![&](){return Helper.matchCommuteFPConstantToRHS(*State.MIs[0]);}()) {
3513 return false;
3514 }
3515 // Apply Patterns
3516 Helper.applyCommuteBinOpOperands(*State.MIs[0]);
3517 return true;
3518 }
3519 case GICXXCustomAction_GICombiner129:{
3520 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3521 // Match Patterns
3522 if(![&](){return Helper.matchAnd(*State.MIs[0], GIMatchData_matchinfo);}()) {
3523 return false;
3524 }
3525 // Apply Patterns
3526 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3527 return true;
3528 }
3529 case GICXXCustomAction_GICombiner130:{
3530 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3531 // Match Patterns
3532 if(![&](){return Helper.matchOr(*State.MIs[0], GIMatchData_matchinfo);}()) {
3533 return false;
3534 }
3535 // Apply Patterns
3536 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3537 return true;
3538 }
3539 case GICXXCustomAction_GICombiner131:{
3540 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3541 // Match Patterns
3542 if(![&](){return Helper.matchSimplifyNegMinMax(*State.MIs[0], GIMatchData_matchinfo);}()) {
3543 return false;
3544 }
3545 // Apply Patterns
3546 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3547 return true;
3548 }
3549 case GICXXCustomAction_GICombiner132:{
3550 SmallVector<Register> GIMatchData_matchinfo;
3551 // Match Patterns
3552 if(![&](){return Helper.matchCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);}()) {
3553 return false;
3554 }
3555 // Apply Patterns
3556 Helper.applyCombineConcatVectors(*State.MIs[0], GIMatchData_matchinfo);
3557 return true;
3558 }
3559 case GICXXCustomAction_GICombiner133:{
3560 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3561 // Match Patterns
3562 if(![&](){return Helper.matchSextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3563 return false;
3564 }
3565 // Apply Patterns
3566 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3567 return true;
3568 }
3569 case GICXXCustomAction_GICombiner134:{
3570 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3571 // Match Patterns
3572 if(![&](){return Helper.matchZextOfTrunc(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3573 return false;
3574 }
3575 // Apply Patterns
3576 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3577 return true;
3578 }
3579 case GICXXCustomAction_GICombiner135:{
3580 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3581 // Match Patterns
3582 if(![&](){return Helper.matchNonNegZext(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);}()) {
3583 return false;
3584 }
3585 // Apply Patterns
3586 Helper.applyBuildFnMO(State.MIs[0]->getOperand(0), GIMatchData_matchinfo);
3587 return true;
3588 }
3589 case GICXXCustomAction_GICombiner136:{
3590 SmallVector<Register> GIMatchData_matchinfo;
3591 // Match Patterns
3592 if(![&](){return Helper.matchCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);}()) {
3593 return false;
3594 }
3595 // Apply Patterns
3596 Helper.applyCombineShuffleConcat(*State.MIs[0], GIMatchData_matchinfo);
3597 return true;
3598 }
3599 case GICXXCustomAction_GICombiner137:{
3600 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3601 // Match Patterns
3602 if(![&](){return Helper.matchShuffleUndefRHS(*State.MIs[0], GIMatchData_matchinfo);}()) {
3603 return false;
3604 }
3605 // Apply Patterns
3606 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3607 return true;
3608 }
3609 case GICXXCustomAction_GICombiner138:{
3610 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3611 // Match Patterns
3612 if(![&](){return Helper.matchShuffleDisjointMask(*State.MIs[0], GIMatchData_matchinfo);}()) {
3613 return false;
3614 }
3615 // Apply Patterns
3616 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3617 return true;
3618 }
3619 case GICXXCustomAction_GICombiner139:{
3620 Register GIMatchData_matchinfo;
3621 // Match Patterns
3622 if(![&](){return Helper.matchUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);}()) {
3623 return false;
3624 }
3625 // Apply Patterns
3626 Helper.applyUseVectorTruncate(*State.MIs[0], GIMatchData_matchinfo);
3627 return true;
3628 }
3629 case GICXXCustomAction_GICombiner140:{
3630 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3631 // Match Patterns
3632 if(![&](){return Helper.matchUnmergeValuesAnyExtBuildVector(*State.MIs[0], GIMatchData_matchinfo);}()) {
3633 return false;
3634 }
3635 // Apply Patterns
3636 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3637 return true;
3638 }
3639 case GICXXCustomAction_GICombiner141:{
3640 SmallVector<Register> GIMatchData_info;
3641 // Match Patterns
3642 if(![&](){return Helper.matchCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);}()) {
3643 return false;
3644 }
3645 // Apply Patterns
3646 Helper.applyCombineUnmergeMergeToPlainValues(*State.MIs[0], GIMatchData_info);
3647 return true;
3648 }
3649 case GICXXCustomAction_GICombiner142:{
3650 Register GIMatchData_src;
3651 // Match Patterns
3652 if(![&](){// Check if first source comes from G_UNMERGE_VALUES.
3653 Register FirstMergeSrc = getRemainingOperands(*State.MIs[0], 1)[0].getReg();
3654 MachineInstr *UnmergeMI = MRI.getVRegDef(FirstMergeSrc);
3655 if (!UnmergeMI || UnmergeMI->getOpcode() != TargetOpcode::G_UNMERGE_VALUES)
3656 return false;
3657
3658 // Check counts match.
3659 unsigned NumMergeSrcs = getRemainingOperands(*State.MIs[0], 1).size();
3660 unsigned NumUnmergeDefs = UnmergeMI->getNumDefs();
3661 if (NumMergeSrcs != NumUnmergeDefs)
3662 return false;
3663
3664 // Verify all merge sources match unmerge defs in order.
3665 for (unsigned I = 0; I < NumMergeSrcs; ++I) {
3666 Register MergeSrc = getRemainingOperands(*State.MIs[0], 1)[I].getReg();
3667 Register UnmergeDef = UnmergeMI->getOperand(I).getReg();
3668
3669 if (MergeSrc != UnmergeDef)
3670 return false;
3671
3672 if (!MRI.hasOneNonDBGUse(MergeSrc))
3673 return false;
3674 }
3675
3676 // Check size compatibility.
3677 GIMatchData_src = UnmergeMI->getOperand(NumUnmergeDefs).getReg();
3678 LLT SrcTy = MRI.getType(GIMatchData_src);
3679 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
3680 if (SrcTy.getSizeInBits() != DstTy.getSizeInBits())
3681 return false;
3682
3683 // Check bitcast legality.
3684 if (SrcTy != DstTy) {
3685 std::array<LLT, 2> Types = {{DstTy, SrcTy}};
3686 LegalityQuery Query(TargetOpcode::G_BITCAST, Types);
3687 if (!Helper.isLegalOrBeforeLegalizer(Query))
3688 return false;
3689 }
3690
3691 return true;}()) {
3692 return false;
3693 }
3694 // Apply Patterns
3695 LLT SrcTy = MRI.getType(GIMatchData_src);
3696 LLT DstTy = MRI.getType(State.MIs[0]->getOperand(0).getReg());
3697
3698 Helper.getBuilder().setInstrAndDebugLoc(*State.MIs[0]);
3699
3700 if (SrcTy == DstTy) {
3701 Helper.replaceRegWith(MRI, State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
3702 } else {
3703 Helper.getBuilder().buildBitcast(State.MIs[0]->getOperand(0).getReg(), GIMatchData_src);
3704 }
3705
3706 State.MIs[0]->eraseFromParent();
3707 return true;
3708 }
3709 case GICXXCustomAction_GICombiner143:{
3710 SmallVector<APInt, 8> GIMatchData_info;
3711 // Match Patterns
3712 if(![&](){return Helper.matchCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);}()) {
3713 return false;
3714 }
3715 // Apply Patterns
3716 Helper.applyCombineUnmergeConstant(*State.MIs[0], GIMatchData_info);
3717 return true;
3718 }
3719 case GICXXCustomAction_GICombiner144:{
3720 std::function<void(MachineIRBuilder &)> GIMatchData_info;
3721 // Match Patterns
3722 if(![&](){return Helper.matchCombineUnmergeUndef(*State.MIs[0], GIMatchData_info);}()) {
3723 return false;
3724 }
3725 // Apply Patterns
3726 Helper.applyBuildFn(*State.MIs[0], GIMatchData_info);
3727 return true;
3728 }
3729 case GICXXCustomAction_GICombiner145:{
3730 // Match Patterns
3731 if(![&](){return Helper.matchCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);}()) {
3732 return false;
3733 }
3734 // Apply Patterns
3735 Helper.applyCombineUnmergeWithDeadLanesToTrunc(*State.MIs[0]);
3736 return true;
3737 }
3738 case GICXXCustomAction_GICombiner146:{
3739 // Match Patterns
3740 if(![&](){return Helper.matchCombineUnmergeZExtToZExt(*State.MIs[0]);}()) {
3741 return false;
3742 }
3743 // Apply Patterns
3744 Helper.applyCombineUnmergeZExtToZExt(*State.MIs[0]);
3745 return true;
3746 }
3747 case GICXXCustomAction_GICombiner147:{
3748 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3749 // Match Patterns
3750 if(![&](){return Helper.matchMergeXAndUndef(*State.MIs[0], GIMatchData_matchinfo);}()) {
3751 return false;
3752 }
3753 // Apply Patterns
3754 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3755 return true;
3756 }
3757 case GICXXCustomAction_GICombiner148:{
3758 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3759 // Match Patterns
3760 if(![&](){return Helper.matchMergeXAndZero(*State.MIs[0], GIMatchData_matchinfo);}()) {
3761 return false;
3762 }
3763 // Apply Patterns
3764 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3765 return true;
3766 }
3767 case GICXXCustomAction_GICombiner149:{
3768 Register GIMatchData_unmergeSrc;
3769 // Match Patterns
3770 if(![&](){return Helper.matchCombineBuildUnmerge(*State.MIs[0], MRI, GIMatchData_unmergeSrc);}()) {
3771 return false;
3772 }
3773 // Apply Patterns
3774 Helper.applyCombineBuildUnmerge(*State.MIs[0], MRI, B, GIMatchData_unmergeSrc);
3775 return true;
3776 }
3777 case GICXXCustomAction_GICombiner150:{
3778 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3779 // Match Patterns
3780 if(![&](){return Helper.matchAddOverflow(*State.MIs[0], GIMatchData_matchinfo);}()) {
3781 return false;
3782 }
3783 // Apply Patterns
3784 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3785 return true;
3786 }
3787 case GICXXCustomAction_GICombiner151:{
3788 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3789 // Match Patterns
3790 if(![&](){return Helper.matchSuboCarryOut(*State.MIs[0], GIMatchData_matchinfo);}()) {
3791 return false;
3792 }
3793 // Apply Patterns
3794 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3795 return true;
3796 }
3797 case GICXXCustomAction_GICombiner152:{
3798 Register GIMatchData_matchinfo;
3799 // Match Patterns
3800 if(![&](){return Helper.matchTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);}()) {
3801 return false;
3802 }
3803 // Apply Patterns
3804 Helper.applyTruncSSatS(*State.MIs[0], GIMatchData_matchinfo);
3805 return true;
3806 }
3807 case GICXXCustomAction_GICombiner153:{
3808 Register GIMatchData_matchinfo;
3809 // Match Patterns
3810 if(![&](){return Helper.matchTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);}()) {
3811 return false;
3812 }
3813 // Apply Patterns
3814 Helper.applyTruncSSatU(*State.MIs[0], GIMatchData_matchinfo);
3815 return true;
3816 }
3817 case GICXXCustomAction_GICombiner154:{
3818 LshrOfTruncOfLshr GIMatchData_matchinfo;
3819 // Match Patterns
3820 if(![&](){return Helper.matchLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo, *State.MIs[2]);}()) {
3821 return false;
3822 }
3823 // Apply Patterns
3824 Helper.applyLshrOfTruncOfLshr(*State.MIs[0], GIMatchData_matchinfo);
3825 return true;
3826 }
3827 case GICXXCustomAction_GICombiner155:{
3828 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3829 // Match Patterns
3830 if(![&](){return Helper.matchCtls(*State.MIs[0], GIMatchData_matchinfo);}()) {
3831 return false;
3832 }
3833 // Apply Patterns
3834 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3835 return true;
3836 }
3837 case GICXXCustomAction_GICombiner156:{
3838 std::function<void(MachineIRBuilder &)> GIMatchData_matchinfo;
3839 // Match Patterns
3840 if(![&](){return Helper.matchCombineFmulWithSelectToFldexp(*State.MIs[0], *State.MIs[1], GIMatchData_matchinfo);}()) {
3841 return false;
3842 }
3843 // Apply Patterns
3844 Helper.applyBuildFn(*State.MIs[0], GIMatchData_matchinfo);
3845 return true;
3846 }
3847 case GICXXCustomAction_GICombiner157:{
3848 ClampI64ToI16MatchInfo GIMatchData_matchinfo;
3849 // Match Patterns
3850 if(![&](){return matchClampI64ToI16(*State.MIs[0], MRI, MF, GIMatchData_matchinfo);}()) {
3851 return false;
3852 }
3853 // Apply Patterns
3854 applyClampI64ToI16(*State.MIs[0], GIMatchData_matchinfo);
3855 return true;
3856 }
3857 case GICXXCustomAction_GICombiner158:{
3858 MachineInstr * GIMatchData_matchinfo;
3859 // Match Patterns
3860 if(![&](){return Helper.matchFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);}()) {
3861 return false;
3862 }
3863 // Apply Patterns
3864 Helper.applyFoldableFneg(*State.MIs[0], GIMatchData_matchinfo);
3865 return true;
3866 }
3867 case GICXXCustomAction_GICombiner159:{
3868 // Apply Patterns
3869 Helper.applyCombineShuffleToBuildVector(*State.MIs[0]);
3870 return true;
3871 }
3872 }
3873 llvm_unreachable("Unknown Apply Action");
3874}
3875#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
3876#define GIMT_Encode2(Val) uint8_t(Val), uint8_t((Val) >> 8)
3877#define GIMT_Encode4(Val) uint8_t(Val), uint8_t((Val) >> 8), uint8_t((Val) >> 16), uint8_t((Val) >> 24)
3878#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)
3879#else
3880#define GIMT_Encode2(Val) uint8_t((Val) >> 8), uint8_t(Val)
3881#define GIMT_Encode4(Val) uint8_t((Val) >> 24), uint8_t((Val) >> 16), uint8_t((Val) >> 8), uint8_t(Val)
3882#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)
3883#endif
3884const uint8_t *AMDGPUPreLegalizerCombinerImpl::getMatchTable() const {
3885 constexpr static uint8_t MatchTable0[] = {
3886 /* 0 */ GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2(20), GIMT_Encode2(280), /*)*//*default:*//*Label 106*/ GIMT_Encode4(8634),
3887 /* 10 */ /*TargetOpcode::COPY*//*Label 0*/ GIMT_Encode4(1050), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3888 /* 150 */ /*TargetOpcode::G_ADD*//*Label 1*/ GIMT_Encode4(1062),
3889 /* 154 */ /*TargetOpcode::G_SUB*//*Label 2*/ GIMT_Encode4(1795),
3890 /* 158 */ /*TargetOpcode::G_MUL*//*Label 3*/ GIMT_Encode4(2203),
3891 /* 162 */ /*TargetOpcode::G_SDIV*//*Label 4*/ GIMT_Encode4(2409),
3892 /* 166 */ /*TargetOpcode::G_UDIV*//*Label 5*/ GIMT_Encode4(2511),
3893 /* 170 */ /*TargetOpcode::G_SREM*//*Label 6*/ GIMT_Encode4(2624),
3894 /* 174 */ /*TargetOpcode::G_UREM*//*Label 7*/ GIMT_Encode4(2709), GIMT_Encode4(0), GIMT_Encode4(0),
3895 /* 186 */ /*TargetOpcode::G_AND*//*Label 8*/ GIMT_Encode4(2816),
3896 /* 190 */ /*TargetOpcode::G_OR*//*Label 9*/ GIMT_Encode4(3211),
3897 /* 194 */ /*TargetOpcode::G_XOR*//*Label 10*/ GIMT_Encode4(3932), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3898 /* 226 */ /*TargetOpcode::G_PHI*//*Label 11*/ GIMT_Encode4(4033), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3899 /* 250 */ /*TargetOpcode::G_UNMERGE_VALUES*//*Label 12*/ GIMT_Encode4(4045), GIMT_Encode4(0),
3900 /* 258 */ /*TargetOpcode::G_MERGE_VALUES*//*Label 13*/ GIMT_Encode4(4112),
3901 /* 262 */ /*TargetOpcode::G_BUILD_VECTOR*//*Label 14*/ GIMT_Encode4(4189),
3902 /* 266 */ /*TargetOpcode::G_BUILD_VECTOR_TRUNC*//*Label 15*/ GIMT_Encode4(4254),
3903 /* 270 */ /*TargetOpcode::G_CONCAT_VECTORS*//*Label 16*/ GIMT_Encode4(4266),
3904 /* 274 */ /*TargetOpcode::G_PTRTOINT*//*Label 17*/ GIMT_Encode4(4278),
3905 /* 278 */ /*TargetOpcode::G_INTTOPTR*//*Label 18*/ GIMT_Encode4(4321),
3906 /* 282 */ /*TargetOpcode::G_BITCAST*//*Label 19*/ GIMT_Encode4(4354),
3907 /* 286 */ /*TargetOpcode::G_FREEZE*//*Label 20*/ GIMT_Encode4(4397), GIMT_Encode4(0), GIMT_Encode4(0),
3908 /* 298 */ /*TargetOpcode::G_INTRINSIC_TRUNC*//*Label 21*/ GIMT_Encode4(4461),
3909 /* 302 */ /*TargetOpcode::G_INTRINSIC_ROUND*//*Label 22*/ GIMT_Encode4(4483), GIMT_Encode4(0), GIMT_Encode4(0),
3910 /* 314 */ /*TargetOpcode::G_INTRINSIC_ROUNDEVEN*//*Label 23*/ GIMT_Encode4(4505), GIMT_Encode4(0), GIMT_Encode4(0),
3911 /* 326 */ /*TargetOpcode::G_LOAD*//*Label 24*/ GIMT_Encode4(4527),
3912 /* 330 */ /*TargetOpcode::G_SEXTLOAD*//*Label 25*/ GIMT_Encode4(4539),
3913 /* 334 */ /*TargetOpcode::G_ZEXTLOAD*//*Label 26*/ GIMT_Encode4(4551), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3914 /* 350 */ /*TargetOpcode::G_STORE*//*Label 27*/ GIMT_Encode4(4563), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3915 /* 486 */ /*TargetOpcode::G_ANYEXT*//*Label 28*/ GIMT_Encode4(4575),
3916 /* 490 */ /*TargetOpcode::G_TRUNC*//*Label 29*/ GIMT_Encode4(4703), GIMT_Encode4(0), GIMT_Encode4(0),
3917 /* 502 */ /*TargetOpcode::G_TRUNC_USAT_U*//*Label 30*/ GIMT_Encode4(5126), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3918 /* 522 */ /*TargetOpcode::G_SEXT*//*Label 31*/ GIMT_Encode4(5159),
3919 /* 526 */ /*TargetOpcode::G_SEXT_INREG*//*Label 32*/ GIMT_Encode4(5234),
3920 /* 530 */ /*TargetOpcode::G_ZEXT*//*Label 33*/ GIMT_Encode4(5300),
3921 /* 534 */ /*TargetOpcode::G_SHL*//*Label 34*/ GIMT_Encode4(5430),
3922 /* 538 */ /*TargetOpcode::G_LSHR*//*Label 35*/ GIMT_Encode4(5628),
3923 /* 542 */ /*TargetOpcode::G_ASHR*//*Label 36*/ GIMT_Encode4(5809),
3924 /* 546 */ /*TargetOpcode::G_FSHL*//*Label 37*/ GIMT_Encode4(5972),
3925 /* 550 */ /*TargetOpcode::G_FSHR*//*Label 38*/ GIMT_Encode4(6015),
3926 /* 554 */ /*TargetOpcode::G_ROTR*//*Label 39*/ GIMT_Encode4(6058),
3927 /* 558 */ /*TargetOpcode::G_ROTL*//*Label 40*/ GIMT_Encode4(6082),
3928 /* 562 */ /*TargetOpcode::G_ICMP*//*Label 41*/ GIMT_Encode4(6106),
3929 /* 566 */ /*TargetOpcode::G_FCMP*//*Label 42*/ GIMT_Encode4(6151), GIMT_Encode4(0), GIMT_Encode4(0),
3930 /* 578 */ /*TargetOpcode::G_SELECT*//*Label 43*/ GIMT_Encode4(6163),
3931 /* 582 */ /*TargetOpcode::G_UADDO*//*Label 44*/ GIMT_Encode4(6258),
3932 /* 586 */ /*TargetOpcode::G_UADDE*//*Label 45*/ GIMT_Encode4(6281),
3933 /* 590 */ /*TargetOpcode::G_USUBO*//*Label 46*/ GIMT_Encode4(6293),
3934 /* 594 */ /*TargetOpcode::G_USUBE*//*Label 47*/ GIMT_Encode4(6305),
3935 /* 598 */ /*TargetOpcode::G_SADDO*//*Label 48*/ GIMT_Encode4(6317),
3936 /* 602 */ /*TargetOpcode::G_SADDE*//*Label 49*/ GIMT_Encode4(6340),
3937 /* 606 */ /*TargetOpcode::G_SSUBO*//*Label 50*/ GIMT_Encode4(6352),
3938 /* 610 */ /*TargetOpcode::G_SSUBE*//*Label 51*/ GIMT_Encode4(6364),
3939 /* 614 */ /*TargetOpcode::G_UMULO*//*Label 52*/ GIMT_Encode4(6376),
3940 /* 618 */ /*TargetOpcode::G_SMULO*//*Label 53*/ GIMT_Encode4(6410),
3941 /* 622 */ /*TargetOpcode::G_UMULH*//*Label 54*/ GIMT_Encode4(6444),
3942 /* 626 */ /*TargetOpcode::G_SMULH*//*Label 55*/ GIMT_Encode4(6467),
3943 /* 630 */ /*TargetOpcode::G_UADDSAT*//*Label 56*/ GIMT_Encode4(6479),
3944 /* 634 */ /*TargetOpcode::G_SADDSAT*//*Label 57*/ GIMT_Encode4(6491), GIMT_Encode4(0), GIMT_Encode4(0),
3945 /* 646 */ /*TargetOpcode::G_USHLSAT*//*Label 58*/ GIMT_Encode4(6503),
3946 /* 650 */ /*TargetOpcode::G_SSHLSAT*//*Label 59*/ GIMT_Encode4(6526),
3947 /* 654 */ /*TargetOpcode::G_SMULFIX*//*Label 60*/ GIMT_Encode4(6549),
3948 /* 658 */ /*TargetOpcode::G_UMULFIX*//*Label 61*/ GIMT_Encode4(6561),
3949 /* 662 */ /*TargetOpcode::G_SMULFIXSAT*//*Label 62*/ GIMT_Encode4(6573),
3950 /* 666 */ /*TargetOpcode::G_UMULFIXSAT*//*Label 63*/ GIMT_Encode4(6585), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3951 /* 686 */ /*TargetOpcode::G_FADD*//*Label 64*/ GIMT_Encode4(6597),
3952 /* 690 */ /*TargetOpcode::G_FSUB*//*Label 65*/ GIMT_Encode4(6738),
3953 /* 694 */ /*TargetOpcode::G_FMUL*//*Label 66*/ GIMT_Encode4(6827),
3954 /* 698 */ /*TargetOpcode::G_FMA*//*Label 67*/ GIMT_Encode4(6936),
3955 /* 702 */ /*TargetOpcode::G_FMAD*//*Label 68*/ GIMT_Encode4(6959),
3956 /* 706 */ /*TargetOpcode::G_FDIV*//*Label 69*/ GIMT_Encode4(6982),
3957 /* 710 */ /*TargetOpcode::G_FREM*//*Label 70*/ GIMT_Encode4(7027), GIMT_Encode4(0), GIMT_Encode4(0),
3958 /* 722 */ /*TargetOpcode::G_FPOWI*//*Label 71*/ GIMT_Encode4(7039), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3959 /* 742 */ /*TargetOpcode::G_FLOG2*//*Label 72*/ GIMT_Encode4(7061), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3960 /* 758 */ /*TargetOpcode::G_FNEG*//*Label 73*/ GIMT_Encode4(7083),
3961 /* 762 */ /*TargetOpcode::G_FPEXT*//*Label 74*/ GIMT_Encode4(7145),
3962 /* 766 */ /*TargetOpcode::G_FPTRUNC*//*Label 75*/ GIMT_Encode4(7167),
3963 /* 770 */ /*TargetOpcode::G_FPTOSI*//*Label 76*/ GIMT_Encode4(7210),
3964 /* 774 */ /*TargetOpcode::G_FPTOUI*//*Label 77*/ GIMT_Encode4(7232),
3965 /* 778 */ /*TargetOpcode::G_SITOFP*//*Label 78*/ GIMT_Encode4(7254),
3966 /* 782 */ /*TargetOpcode::G_UITOFP*//*Label 79*/ GIMT_Encode4(7281), GIMT_Encode4(0), GIMT_Encode4(0),
3967 /* 794 */ /*TargetOpcode::G_FABS*//*Label 80*/ GIMT_Encode4(7308), GIMT_Encode4(0), GIMT_Encode4(0),
3968 /* 806 */ /*TargetOpcode::G_FCANONICALIZE*//*Label 81*/ GIMT_Encode4(7387),
3969 /* 810 */ /*TargetOpcode::G_FMINNUM*//*Label 82*/ GIMT_Encode4(7417),
3970 /* 814 */ /*TargetOpcode::G_FMAXNUM*//*Label 83*/ GIMT_Encode4(7451),
3971 /* 818 */ /*TargetOpcode::G_FMINNUM_IEEE*//*Label 84*/ GIMT_Encode4(7485),
3972 /* 822 */ /*TargetOpcode::G_FMAXNUM_IEEE*//*Label 85*/ GIMT_Encode4(7497),
3973 /* 826 */ /*TargetOpcode::G_FMINIMUM*//*Label 86*/ GIMT_Encode4(7509),
3974 /* 830 */ /*TargetOpcode::G_FMAXIMUM*//*Label 87*/ GIMT_Encode4(7543), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3975 /* 874 */ /*TargetOpcode::G_PTR_ADD*//*Label 88*/ GIMT_Encode4(7577), GIMT_Encode4(0),
3976 /* 882 */ /*TargetOpcode::G_SMIN*//*Label 89*/ GIMT_Encode4(7667),
3977 /* 886 */ /*TargetOpcode::G_SMAX*//*Label 90*/ GIMT_Encode4(7701),
3978 /* 890 */ /*TargetOpcode::G_UMIN*//*Label 91*/ GIMT_Encode4(7735),
3979 /* 894 */ /*TargetOpcode::G_UMAX*//*Label 92*/ GIMT_Encode4(7769),
3980 /* 898 */ /*TargetOpcode::G_ABS*//*Label 93*/ GIMT_Encode4(7803), GIMT_Encode4(0), GIMT_Encode4(0),
3981 /* 910 */ /*TargetOpcode::G_BR*//*Label 94*/ GIMT_Encode4(7815), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3982 /* 930 */ /*TargetOpcode::G_INSERT_VECTOR_ELT*//*Label 95*/ GIMT_Encode4(7827),
3983 /* 934 */ /*TargetOpcode::G_EXTRACT_VECTOR_ELT*//*Label 96*/ GIMT_Encode4(7957),
3984 /* 938 */ /*TargetOpcode::G_SHUFFLE_VECTOR*//*Label 97*/ GIMT_Encode4(8334), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3985 /* 962 */ /*TargetOpcode::G_CTLZ*//*Label 98*/ GIMT_Encode4(8411),
3986 /* 966 */ /*TargetOpcode::G_CTLZ_ZERO_UNDEF*//*Label 99*/ GIMT_Encode4(8423), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3987 /* 982 */ /*TargetOpcode::G_BITREVERSE*//*Label 100*/ GIMT_Encode4(8435),
3988 /* 986 */ /*TargetOpcode::G_FCEIL*//*Label 101*/ GIMT_Encode4(8524), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
3989 /* 1034 */ /*TargetOpcode::G_FSQRT*//*Label 102*/ GIMT_Encode4(8546),
3990 /* 1038 */ /*TargetOpcode::G_FFLOOR*//*Label 103*/ GIMT_Encode4(8568),
3991 /* 1042 */ /*TargetOpcode::G_FRINT*//*Label 104*/ GIMT_Encode4(8590),
3992 /* 1046 */ /*TargetOpcode::G_FNEARBYINT*//*Label 105*/ GIMT_Encode4(8612),
3993 /* 1050 */ // Label 0: @1050
3994 /* 1050 */ GIM_Try, /*On fail goto*//*Label 107*/ GIMT_Encode4(1061), // Rule ID 15 //
3995 /* 1055 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule15Enabled),
3996 /* 1058 */ // MIs[0] d
3997 /* 1058 */ // No operand predicates
3998 /* 1058 */ // MIs[0] s
3999 /* 1058 */ // No operand predicates
4000 /* 1058 */ // Combiner Rule #15: copy_prop
4001 /* 1058 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner5),
4002 /* 1061 */ // Label 107: @1061
4003 /* 1061 */ GIM_Reject,
4004 /* 1062 */ // Label 1: @1062
4005 /* 1062 */ GIM_Try, /*On fail goto*//*Label 108*/ GIMT_Encode4(1073), // Rule ID 18 //
4006 /* 1067 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule18Enabled),
4007 /* 1070 */ // Combiner Rule #18: add_p2i_to_ptradd; wip_match_opcode 'G_ADD'
4008 /* 1070 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner8),
4009 /* 1073 */ // Label 108: @1073
4010 /* 1073 */ GIM_Try, /*On fail goto*//*Label 109*/ GIMT_Encode4(1084), // Rule ID 96 //
4011 /* 1078 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
4012 /* 1081 */ // Combiner Rule #80: propagate_undef_any_op; wip_match_opcode 'G_ADD'
4013 /* 1081 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
4014 /* 1084 */ // Label 109: @1084
4015 /* 1084 */ GIM_Try, /*On fail goto*//*Label 110*/ GIMT_Encode4(1095), // Rule ID 145 //
4016 /* 1089 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule106Enabled),
4017 /* 1092 */ // Combiner Rule #106: simplify_add_to_sub; wip_match_opcode 'G_ADD'
4018 /* 1092 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner53),
4019 /* 1095 */ // Label 110: @1095
4020 /* 1095 */ GIM_Try, /*On fail goto*//*Label 111*/ GIMT_Encode4(1106), // Rule ID 247 //
4021 /* 1100 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
4022 /* 1103 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_ADD'
4023 /* 1103 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4024 /* 1106 */ // Label 111: @1106
4025 /* 1106 */ GIM_Try, /*On fail goto*//*Label 112*/ GIMT_Encode4(1117), // Rule ID 291 //
4026 /* 1111 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
4027 /* 1114 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_ADD'
4028 /* 1114 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
4029 /* 1117 */ // Label 112: @1117
4030 /* 1117 */ GIM_Try, /*On fail goto*//*Label 113*/ GIMT_Encode4(1128), // Rule ID 327 //
4031 /* 1122 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
4032 /* 1125 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_ADD'
4033 /* 1125 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
4034 /* 1128 */ // Label 113: @1128
4035 /* 1128 */ GIM_Try, /*On fail goto*//*Label 114*/ GIMT_Encode4(1216), // Rule ID 389 //
4036 /* 1133 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule238Enabled),
4037 /* 1136 */ // MIs[0] dst
4038 /* 1136 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4039 /* 1140 */ // MIs[0] __add_shift_match_0.shl_neg
4040 /* 1140 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4041 /* 1144 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
4042 /* 1148 */ // MIs[1] __add_shift_match_0.neg_y
4043 /* 1148 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4044 /* 1152 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4045 /* 1156 */ // MIs[2] __add_shift_match_0.zero
4046 /* 1156 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
4047 /* 1160 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4048 /* 1164 */ // MIs[3] Operand 1
4049 /* 1164 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
4050 /* 1175 */ // MIs[2] y
4051 /* 1175 */ // No operand predicates
4052 /* 1175 */ // MIs[1] n
4053 /* 1175 */ // No operand predicates
4054 /* 1175 */ // MIs[0] x
4055 /* 1175 */ // No operand predicates
4056 /* 1175 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner14),
4057 /* 1179 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4058 /* 1181 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4059 /* 1184 */ // Combiner Rule #238: add_shift @ [__add_shift_match_0[1]]
4060 /* 1184 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
4061 /* 1187 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4062 /* 1192 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
4063 /* 1196 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
4064 /* 1200 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4065 /* 1204 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4066 /* 1208 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // x
4067 /* 1212 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4068 /* 1215 */ GIR_EraseRootFromParent_Done,
4069 /* 1216 */ // Label 114: @1216
4070 /* 1216 */ GIM_Try, /*On fail goto*//*Label 115*/ GIMT_Encode4(1304), // Rule ID 388 //
4071 /* 1221 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule238Enabled),
4072 /* 1224 */ // MIs[0] dst
4073 /* 1224 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4074 /* 1228 */ // MIs[0] x
4075 /* 1228 */ // No operand predicates
4076 /* 1228 */ // MIs[0] __add_shift_match_0.shl_neg
4077 /* 1228 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4078 /* 1232 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
4079 /* 1236 */ // MIs[1] __add_shift_match_0.neg_y
4080 /* 1236 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4081 /* 1240 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4082 /* 1244 */ // MIs[2] __add_shift_match_0.zero
4083 /* 1244 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/1, // MIs[3]
4084 /* 1248 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4085 /* 1252 */ // MIs[3] Operand 1
4086 /* 1252 */ GIM_CheckLiteralInt, /*MI*/3, /*Op*/1, GIMT_Encode8(0),
4087 /* 1263 */ // MIs[2] y
4088 /* 1263 */ // No operand predicates
4089 /* 1263 */ // MIs[1] n
4090 /* 1263 */ // No operand predicates
4091 /* 1263 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner13),
4092 /* 1267 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4093 /* 1269 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4094 /* 1272 */ // Combiner Rule #238: add_shift @ [__add_shift_match_0[0]]
4095 /* 1272 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
4096 /* 1275 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
4097 /* 1280 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // y
4098 /* 1284 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // n
4099 /* 1288 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4100 /* 1292 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // dst
4101 /* 1296 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // x
4102 /* 1300 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
4103 /* 1303 */ GIR_EraseRootFromParent_Done,
4104 /* 1304 */ // Label 115: @1304
4105 /* 1304 */ GIM_Try, /*On fail goto*//*Label 116*/ GIMT_Encode4(1338), // Rule ID 2 //
4106 /* 1309 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
4107 /* 1312 */ // MIs[0] root
4108 /* 1312 */ // No operand predicates
4109 /* 1312 */ // MIs[0] sub
4110 /* 1312 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4111 /* 1316 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4112 /* 1320 */ // MIs[1] Operand 1
4113 /* 1320 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
4114 /* 1324 */ // MIs[1] A
4115 /* 1324 */ // No operand predicates
4116 /* 1324 */ // MIs[0] B
4117 /* 1324 */ // No operand predicates
4118 /* 1324 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4119 /* 1326 */ // Combiner Rule #2: ZeroMinusAPlusB
4120 /* 1326 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4121 /* 1329 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4122 /* 1331 */ GIR_RootToRootCopy, /*OpIdx*/2, // B
4123 /* 1333 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // A
4124 /* 1337 */ GIR_EraseRootFromParent_Done,
4125 /* 1338 */ // Label 116: @1338
4126 /* 1338 */ GIM_Try, /*On fail goto*//*Label 117*/ GIMT_Encode4(1375), // Rule ID 14 //
4127 /* 1343 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule14Enabled),
4128 /* 1346 */ // MIs[0] root
4129 /* 1346 */ // No operand predicates
4130 /* 1346 */ // MIs[0] sub
4131 /* 1346 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4132 /* 1350 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4133 /* 1354 */ // MIs[1] A
4134 /* 1354 */ // No operand predicates
4135 /* 1354 */ // MIs[1] c1
4136 /* 1354 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4137 /* 1358 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4138 /* 1362 */ // MIs[2] imm1
4139 /* 1362 */ // No operand predicates
4140 /* 1362 */ // MIs[0] c2
4141 /* 1362 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4142 /* 1366 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4143 /* 1370 */ // MIs[3] imm2
4144 /* 1370 */ // No operand predicates
4145 /* 1370 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4146 /* 1372 */ // Combiner Rule #14: AMinusC1PlusC2
4147 /* 1372 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner4),
4148 /* 1375 */ // Label 117: @1375
4149 /* 1375 */ GIM_Try, /*On fail goto*//*Label 118*/ GIMT_Encode4(1409), // Rule ID 5 //
4150 /* 1380 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule5Enabled),
4151 /* 1383 */ // MIs[0] root
4152 /* 1383 */ // No operand predicates
4153 /* 1383 */ // MIs[0] sub
4154 /* 1383 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4155 /* 1387 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4156 /* 1391 */ // MIs[1] B
4157 /* 1391 */ // No operand predicates
4158 /* 1391 */ // MIs[1] A
4159 /* 1391 */ // No operand predicates
4160 /* 1391 */ // MIs[0] A
4161 /* 1391 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
4162 /* 1396 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4163 /* 1401 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4164 /* 1403 */ // Combiner Rule #5: BMinusAPlusA
4165 /* 1403 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4166 /* 1408 */ GIR_EraseRootFromParent_Done,
4167 /* 1409 */ // Label 118: @1409
4168 /* 1409 */ GIM_Try, /*On fail goto*//*Label 119*/ GIMT_Encode4(1443), // Rule ID 134 //
4169 /* 1414 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule96Enabled),
4170 /* 1417 */ // MIs[0] dst
4171 /* 1417 */ // No operand predicates
4172 /* 1417 */ // MIs[0] __add_sub_reg_match_0.tmp
4173 /* 1417 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4174 /* 1421 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4175 /* 1425 */ // MIs[1] src
4176 /* 1425 */ // No operand predicates
4177 /* 1425 */ // MIs[1] __add_sub_reg_match_0.x
4178 /* 1425 */ // No operand predicates
4179 /* 1425 */ // MIs[0] __add_sub_reg_match_0.x
4180 /* 1425 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/2,
4181 /* 1430 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4182 /* 1435 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4183 /* 1437 */ // Combiner Rule #96: add_sub_reg @ [__add_sub_reg_match_0[1]]
4184 /* 1437 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4185 /* 1442 */ GIR_EraseRootFromParent_Done,
4186 /* 1443 */ // Label 119: @1443
4187 /* 1443 */ GIM_Try, /*On fail goto*//*Label 120*/ GIMT_Encode4(1488), // Rule ID 7 //
4188 /* 1448 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule7Enabled),
4189 /* 1451 */ // MIs[0] root
4190 /* 1451 */ // No operand predicates
4191 /* 1451 */ // MIs[0] sub1
4192 /* 1451 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4193 /* 1455 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4194 /* 1459 */ // MIs[1] A
4195 /* 1459 */ // No operand predicates
4196 /* 1459 */ // MIs[1] B
4197 /* 1459 */ // No operand predicates
4198 /* 1459 */ // MIs[0] sub2
4199 /* 1459 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4200 /* 1463 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4201 /* 1467 */ // MIs[2] B
4202 /* 1467 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
4203 /* 1472 */ // MIs[2] C
4204 /* 1472 */ // No operand predicates
4205 /* 1472 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4206 /* 1474 */ // Combiner Rule #7: AMinusBPlusBMinusC
4207 /* 1474 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4208 /* 1477 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4209 /* 1479 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
4210 /* 1483 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
4211 /* 1487 */ GIR_EraseRootFromParent_Done,
4212 /* 1488 */ // Label 120: @1488
4213 /* 1488 */ GIM_Try, /*On fail goto*//*Label 121*/ GIMT_Encode4(1533), // Rule ID 6 //
4214 /* 1493 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule6Enabled),
4215 /* 1496 */ // MIs[0] root
4216 /* 1496 */ // No operand predicates
4217 /* 1496 */ // MIs[0] sub1
4218 /* 1496 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4219 /* 1500 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4220 /* 1504 */ // MIs[1] A
4221 /* 1504 */ // No operand predicates
4222 /* 1504 */ // MIs[1] B
4223 /* 1504 */ // No operand predicates
4224 /* 1504 */ // MIs[0] sub2
4225 /* 1504 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4226 /* 1508 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4227 /* 1512 */ // MIs[2] C
4228 /* 1512 */ // No operand predicates
4229 /* 1512 */ // MIs[2] A
4230 /* 1512 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
4231 /* 1517 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4232 /* 1519 */ // Combiner Rule #6: AMinusBPlusCMinusA
4233 /* 1519 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4234 /* 1522 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4235 /* 1524 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
4236 /* 1528 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
4237 /* 1532 */ GIR_EraseRootFromParent_Done,
4238 /* 1533 */ // Label 121: @1533
4239 /* 1533 */ GIM_Try, /*On fail goto*//*Label 122*/ GIMT_Encode4(1568), // Rule ID 41 //
4240 /* 1538 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule39Enabled),
4241 /* 1541 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
4242 /* 1547 */ // MIs[0] root
4243 /* 1547 */ // No operand predicates
4244 /* 1547 */ // MIs[0] left
4245 /* 1547 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4246 /* 1551 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
4247 /* 1555 */ // MIs[1] imm1
4248 /* 1555 */ // No operand predicates
4249 /* 1555 */ // MIs[0] right
4250 /* 1555 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4251 /* 1559 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_VSCALE),
4252 /* 1563 */ // MIs[2] imm2
4253 /* 1563 */ // No operand predicates
4254 /* 1563 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4255 /* 1565 */ // Combiner Rule #39: add_of_vscale
4256 /* 1565 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner15),
4257 /* 1568 */ // Label 122: @1568
4258 /* 1568 */ GIM_Try, /*On fail goto*//*Label 123*/ GIMT_Encode4(1602), // Rule ID 3 //
4259 /* 1573 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
4260 /* 1576 */ // MIs[0] root
4261 /* 1576 */ // No operand predicates
4262 /* 1576 */ // MIs[0] A
4263 /* 1576 */ // No operand predicates
4264 /* 1576 */ // MIs[0] sub
4265 /* 1576 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4266 /* 1580 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4267 /* 1584 */ // MIs[1] Operand 1
4268 /* 1584 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/1, 0,
4269 /* 1588 */ // MIs[1] B
4270 /* 1588 */ // No operand predicates
4271 /* 1588 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4272 /* 1590 */ // Combiner Rule #3: APlusZeroMinusB
4273 /* 1590 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4274 /* 1593 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4275 /* 1595 */ GIR_RootToRootCopy, /*OpIdx*/1, // A
4276 /* 1597 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // B
4277 /* 1601 */ GIR_EraseRootFromParent_Done,
4278 /* 1602 */ // Label 123: @1602
4279 /* 1602 */ GIM_Try, /*On fail goto*//*Label 124*/ GIMT_Encode4(1636), // Rule ID 4 //
4280 /* 1607 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule4Enabled),
4281 /* 1610 */ // MIs[0] root
4282 /* 1610 */ // No operand predicates
4283 /* 1610 */ // MIs[0] A
4284 /* 1610 */ // No operand predicates
4285 /* 1610 */ // MIs[0] sub
4286 /* 1610 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4287 /* 1614 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4288 /* 1618 */ // MIs[1] B
4289 /* 1618 */ // No operand predicates
4290 /* 1618 */ // MIs[1] A
4291 /* 1618 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4292 /* 1623 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4293 /* 1628 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4294 /* 1630 */ // Combiner Rule #4: APlusBMinusB
4295 /* 1630 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4296 /* 1635 */ GIR_EraseRootFromParent_Done,
4297 /* 1636 */ // Label 124: @1636
4298 /* 1636 */ GIM_Try, /*On fail goto*//*Label 125*/ GIMT_Encode4(1670), // Rule ID 133 //
4299 /* 1641 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule96Enabled),
4300 /* 1644 */ // MIs[0] dst
4301 /* 1644 */ // No operand predicates
4302 /* 1644 */ // MIs[0] __add_sub_reg_match_0.x
4303 /* 1644 */ // No operand predicates
4304 /* 1644 */ // MIs[0] __add_sub_reg_match_0.tmp
4305 /* 1644 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4306 /* 1648 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4307 /* 1652 */ // MIs[1] src
4308 /* 1652 */ // No operand predicates
4309 /* 1652 */ // MIs[1] __add_sub_reg_match_0.x
4310 /* 1652 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4311 /* 1657 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4312 /* 1662 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4313 /* 1664 */ // Combiner Rule #96: add_sub_reg @ [__add_sub_reg_match_0[0]]
4314 /* 1664 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
4315 /* 1669 */ GIR_EraseRootFromParent_Done,
4316 /* 1670 */ // Label 125: @1670
4317 /* 1670 */ GIM_Try, /*On fail goto*//*Label 126*/ GIMT_Encode4(1715), // Rule ID 8 //
4318 /* 1675 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule8Enabled),
4319 /* 1678 */ // MIs[0] root
4320 /* 1678 */ // No operand predicates
4321 /* 1678 */ // MIs[0] A
4322 /* 1678 */ // No operand predicates
4323 /* 1678 */ // MIs[0] sub1
4324 /* 1678 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4325 /* 1682 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4326 /* 1686 */ // MIs[1] B
4327 /* 1686 */ // No operand predicates
4328 /* 1686 */ // MIs[1] add1
4329 /* 1686 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4330 /* 1690 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
4331 /* 1694 */ // MIs[2] A
4332 /* 1694 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
4333 /* 1699 */ // MIs[2] C
4334 /* 1699 */ // No operand predicates
4335 /* 1699 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4336 /* 1701 */ // Combiner Rule #8: APlusBMinusAplusC
4337 /* 1701 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4338 /* 1704 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4339 /* 1706 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
4340 /* 1710 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
4341 /* 1714 */ GIR_EraseRootFromParent_Done,
4342 /* 1715 */ // Label 126: @1715
4343 /* 1715 */ GIM_Try, /*On fail goto*//*Label 127*/ GIMT_Encode4(1760), // Rule ID 9 //
4344 /* 1720 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule9Enabled),
4345 /* 1723 */ // MIs[0] root
4346 /* 1723 */ // No operand predicates
4347 /* 1723 */ // MIs[0] A
4348 /* 1723 */ // No operand predicates
4349 /* 1723 */ // MIs[0] sub1
4350 /* 1723 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4351 /* 1727 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4352 /* 1731 */ // MIs[1] B
4353 /* 1731 */ // No operand predicates
4354 /* 1731 */ // MIs[1] add1
4355 /* 1731 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4356 /* 1735 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
4357 /* 1739 */ // MIs[2] C
4358 /* 1739 */ // No operand predicates
4359 /* 1739 */ // MIs[2] A
4360 /* 1739 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
4361 /* 1744 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4362 /* 1746 */ // Combiner Rule #9: APlusBMinusCPlusA
4363 /* 1746 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4364 /* 1749 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4365 /* 1751 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // B
4366 /* 1755 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // C
4367 /* 1759 */ GIR_EraseRootFromParent_Done,
4368 /* 1760 */ // Label 127: @1760
4369 /* 1760 */ GIM_Try, /*On fail goto*//*Label 128*/ GIMT_Encode4(1783), // Rule ID 107 //
4370 /* 1765 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
4371 /* 1768 */ // MIs[0] dst
4372 /* 1768 */ // No operand predicates
4373 /* 1768 */ // MIs[0] lhs
4374 /* 1768 */ // No operand predicates
4375 /* 1768 */ // MIs[0] Operand 2
4376 /* 1768 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4377 /* 1772 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4378 /* 1777 */ // Combiner Rule #86: right_identity_zero @ [__right_identity_zero_match_0[1]]
4379 /* 1777 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4380 /* 1782 */ GIR_EraseRootFromParent_Done,
4381 /* 1783 */ // Label 128: @1783
4382 /* 1783 */ GIM_Try, /*On fail goto*//*Label 129*/ GIMT_Encode4(1794), // Rule ID 153 //
4383 /* 1788 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule110Enabled),
4384 /* 1791 */ // MIs[0] root
4385 /* 1791 */ // No operand predicates
4386 /* 1791 */ // MIs[0] src1
4387 /* 1791 */ // No operand predicates
4388 /* 1791 */ // MIs[0] src2
4389 /* 1791 */ // No operand predicates
4390 /* 1791 */ // Combiner Rule #110: reassoc_comm_binops
4391 /* 1791 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner57),
4392 /* 1794 */ // Label 129: @1794
4393 /* 1794 */ GIM_Reject,
4394 /* 1795 */ // Label 2: @1795
4395 /* 1795 */ GIM_Try, /*On fail goto*//*Label 130*/ GIMT_Encode4(1806), // Rule ID 97 //
4396 /* 1800 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
4397 /* 1803 */ // Combiner Rule #80: propagate_undef_any_op; wip_match_opcode 'G_SUB'
4398 /* 1803 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
4399 /* 1806 */ // Label 130: @1806
4400 /* 1806 */ GIM_Try, /*On fail goto*//*Label 131*/ GIMT_Encode4(1817), // Rule ID 255 //
4401 /* 1811 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
4402 /* 1814 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_SUB'
4403 /* 1814 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4404 /* 1817 */ // Label 131: @1817
4405 /* 1817 */ GIM_Try, /*On fail goto*//*Label 132*/ GIMT_Encode4(1828), // Rule ID 292 //
4406 /* 1822 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
4407 /* 1825 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_SUB'
4408 /* 1825 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
4409 /* 1828 */ // Label 132: @1828
4410 /* 1828 */ GIM_Try, /*On fail goto*//*Label 133*/ GIMT_Encode4(1839), // Rule ID 324 //
4411 /* 1833 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule203Enabled),
4412 /* 1836 */ // Combiner Rule #203: sub_add_reg; wip_match_opcode 'G_SUB'
4413 /* 1836 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner124),
4414 /* 1839 */ // Label 133: @1839
4415 /* 1839 */ GIM_Try, /*On fail goto*//*Label 134*/ GIMT_Encode4(1850), // Rule ID 358 //
4416 /* 1844 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule210Enabled),
4417 /* 1847 */ // Combiner Rule #210: simplify_neg_minmax; wip_match_opcode 'G_SUB'
4418 /* 1847 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner131),
4419 /* 1850 */ // Label 134: @1850
4420 /* 1850 */ GIM_Try, /*On fail goto*//*Label 135*/ GIMT_Encode4(1895), // Rule ID 0 //
4421 /* 1855 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
4422 /* 1858 */ // MIs[0] root
4423 /* 1858 */ // No operand predicates
4424 /* 1858 */ // MIs[0] add1
4425 /* 1858 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4426 /* 1862 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
4427 /* 1866 */ // MIs[1] A
4428 /* 1866 */ // No operand predicates
4429 /* 1866 */ // MIs[1] sub1
4430 /* 1866 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4431 /* 1870 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4432 /* 1874 */ // MIs[2] B
4433 /* 1874 */ // No operand predicates
4434 /* 1874 */ // MIs[2] C
4435 /* 1874 */ // No operand predicates
4436 /* 1874 */ // MIs[0] B
4437 /* 1874 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/1,
4438 /* 1879 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4439 /* 1881 */ // Combiner Rule #0: APlusBMinusCMinusB
4440 /* 1881 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4441 /* 1884 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4442 /* 1886 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
4443 /* 1890 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // C
4444 /* 1894 */ GIR_EraseRootFromParent_Done,
4445 /* 1895 */ // Label 135: @1895
4446 /* 1895 */ GIM_Try, /*On fail goto*//*Label 136*/ GIMT_Encode4(1932), // Rule ID 10 //
4447 /* 1900 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule10Enabled),
4448 /* 1903 */ // MIs[0] root
4449 /* 1903 */ // No operand predicates
4450 /* 1903 */ // MIs[0] add
4451 /* 1903 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4452 /* 1907 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
4453 /* 1911 */ // MIs[1] A
4454 /* 1911 */ // No operand predicates
4455 /* 1911 */ // MIs[1] c1
4456 /* 1911 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4457 /* 1915 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4458 /* 1919 */ // MIs[2] imm1
4459 /* 1919 */ // No operand predicates
4460 /* 1919 */ // MIs[0] c2
4461 /* 1919 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4462 /* 1923 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4463 /* 1927 */ // MIs[3] imm2
4464 /* 1927 */ // No operand predicates
4465 /* 1927 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4466 /* 1929 */ // Combiner Rule #10: APlusC1MinusC2
4467 /* 1929 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
4468 /* 1932 */ // Label 136: @1932
4469 /* 1932 */ GIM_Try, /*On fail goto*//*Label 137*/ GIMT_Encode4(1969), // Rule ID 13 //
4470 /* 1937 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule13Enabled),
4471 /* 1940 */ // MIs[0] root
4472 /* 1940 */ // No operand predicates
4473 /* 1940 */ // MIs[0] sub1
4474 /* 1940 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4475 /* 1944 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4476 /* 1948 */ // MIs[1] c1
4477 /* 1948 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
4478 /* 1952 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4479 /* 1956 */ // MIs[2] imm1
4480 /* 1956 */ // No operand predicates
4481 /* 1956 */ // MIs[1] A
4482 /* 1956 */ // No operand predicates
4483 /* 1956 */ // MIs[0] c2
4484 /* 1956 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4485 /* 1960 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4486 /* 1964 */ // MIs[3] imm2
4487 /* 1964 */ // No operand predicates
4488 /* 1964 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4489 /* 1966 */ // Combiner Rule #13: C1Minus2MinusC2
4490 /* 1966 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner3),
4491 /* 1969 */ // Label 137: @1969
4492 /* 1969 */ GIM_Try, /*On fail goto*//*Label 138*/ GIMT_Encode4(2014), // Rule ID 1 //
4493 /* 1974 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
4494 /* 1977 */ // MIs[0] root
4495 /* 1977 */ // No operand predicates
4496 /* 1977 */ // MIs[0] sub2
4497 /* 1977 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4498 /* 1981 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4499 /* 1985 */ // MIs[1] A
4500 /* 1985 */ // No operand predicates
4501 /* 1985 */ // MIs[1] sub1
4502 /* 1985 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4503 /* 1989 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SUB),
4504 /* 1993 */ // MIs[2] B
4505 /* 1993 */ // No operand predicates
4506 /* 1993 */ // MIs[2] C
4507 /* 1993 */ // No operand predicates
4508 /* 1993 */ // MIs[0] C
4509 /* 1993 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/2, /*OtherOpIdx*/2,
4510 /* 1998 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4511 /* 2000 */ // Combiner Rule #1: AMinusBMinusCMinusC
4512 /* 2000 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4513 /* 2003 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
4514 /* 2005 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // A
4515 /* 2009 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // B
4516 /* 2013 */ GIR_EraseRootFromParent_Done,
4517 /* 2014 */ // Label 138: @2014
4518 /* 2014 */ GIM_Try, /*On fail goto*//*Label 139*/ GIMT_Encode4(2051), // Rule ID 12 //
4519 /* 2019 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule12Enabled),
4520 /* 2022 */ // MIs[0] root
4521 /* 2022 */ // No operand predicates
4522 /* 2022 */ // MIs[0] sub1
4523 /* 2022 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4524 /* 2026 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
4525 /* 2030 */ // MIs[1] A
4526 /* 2030 */ // No operand predicates
4527 /* 2030 */ // MIs[1] c1
4528 /* 2030 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
4529 /* 2034 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4530 /* 2038 */ // MIs[2] imm1
4531 /* 2038 */ // No operand predicates
4532 /* 2038 */ // MIs[0] c2
4533 /* 2038 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
4534 /* 2042 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4535 /* 2046 */ // MIs[3] imm2
4536 /* 2046 */ // No operand predicates
4537 /* 2046 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4538 /* 2048 */ // Combiner Rule #12: AMinusC1MinusC2
4539 /* 2048 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
4540 /* 2051 */ // Label 139: @2051
4541 /* 2051 */ GIM_Try, /*On fail goto*//*Label 140*/ GIMT_Encode4(2094), // Rule ID 163 //
4542 /* 2056 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule120Enabled),
4543 /* 2059 */ // MIs[0] dst
4544 /* 2059 */ // No operand predicates
4545 /* 2059 */ // MIs[0] Operand 1
4546 /* 2059 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
4547 /* 2063 */ // MIs[0] and
4548 /* 2063 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4549 /* 2067 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
4550 /* 2071 */ // MIs[1] x
4551 /* 2071 */ // No operand predicates
4552 /* 2071 */ // MIs[1] Operand 2
4553 /* 2071 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/2, 1,
4554 /* 2075 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner8),
4555 /* 2079 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4556 /* 2081 */ // Combiner Rule #120: neg_and_one_to_sext_inreg
4557 /* 2081 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
4558 /* 2084 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
4559 /* 2086 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
4560 /* 2090 */ GIR_AddImm8, /*InsnID*/0, /*Imm*/1,
4561 /* 2093 */ GIR_EraseRootFromParent_Done,
4562 /* 2094 */ // Label 140: @2094
4563 /* 2094 */ GIM_Try, /*On fail goto*//*Label 141*/ GIMT_Encode4(2131), // Rule ID 11 //
4564 /* 2099 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule11Enabled),
4565 /* 2102 */ // MIs[0] root
4566 /* 2102 */ // No operand predicates
4567 /* 2102 */ // MIs[0] c2
4568 /* 2102 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4569 /* 2106 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4570 /* 2110 */ // MIs[1] imm2
4571 /* 2110 */ // No operand predicates
4572 /* 2110 */ // MIs[0] add
4573 /* 2110 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4574 /* 2114 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ADD),
4575 /* 2118 */ // MIs[2] A
4576 /* 2118 */ // No operand predicates
4577 /* 2118 */ // MIs[2] c1
4578 /* 2118 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/2, /*OpIdx*/2, // MIs[3]
4579 /* 2122 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4580 /* 2126 */ // MIs[3] imm1
4581 /* 2126 */ // No operand predicates
4582 /* 2126 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
4583 /* 2128 */ // Combiner Rule #11: C2MinusAPlusC1
4584 /* 2128 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
4585 /* 2131 */ // Label 141: @2131
4586 /* 2131 */ GIM_Try, /*On fail goto*//*Label 142*/ GIMT_Encode4(2158), // Rule ID 44 //
4587 /* 2136 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule42Enabled),
4588 /* 2139 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
4589 /* 2145 */ // MIs[0] root
4590 /* 2145 */ // No operand predicates
4591 /* 2145 */ // MIs[0] x
4592 /* 2145 */ // No operand predicates
4593 /* 2145 */ // MIs[0] right
4594 /* 2145 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4595 /* 2149 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
4596 /* 2153 */ // MIs[1] imm
4597 /* 2153 */ // No operand predicates
4598 /* 2153 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4599 /* 2155 */ // Combiner Rule #42: sub_of_vscale
4600 /* 2155 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner18),
4601 /* 2158 */ // Label 142: @2158
4602 /* 2158 */ GIM_Try, /*On fail goto*//*Label 143*/ GIMT_Encode4(2181), // Rule ID 106 //
4603 /* 2163 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
4604 /* 2166 */ // MIs[0] dst
4605 /* 2166 */ // No operand predicates
4606 /* 2166 */ // MIs[0] lhs
4607 /* 2166 */ // No operand predicates
4608 /* 2166 */ // MIs[0] Operand 2
4609 /* 2166 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4610 /* 2170 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4611 /* 2175 */ // Combiner Rule #86: right_identity_zero @ [__right_identity_zero_match_0[0]]
4612 /* 2175 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4613 /* 2180 */ GIR_EraseRootFromParent_Done,
4614 /* 2181 */ // Label 143: @2181
4615 /* 2181 */ GIM_Try, /*On fail goto*//*Label 144*/ GIMT_Encode4(2202), // Rule ID 17 //
4616 /* 2186 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule17Enabled),
4617 /* 2189 */ // MIs[0] d
4618 /* 2189 */ // No operand predicates
4619 /* 2189 */ // MIs[0] op1
4620 /* 2189 */ // No operand predicates
4621 /* 2189 */ // MIs[0] c
4622 /* 2189 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
4623 /* 2193 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4624 /* 2197 */ // MIs[1] imm
4625 /* 2197 */ // No operand predicates
4626 /* 2197 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4627 /* 2199 */ // Combiner Rule #17: sub_to_add
4628 /* 2199 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner7),
4629 /* 2202 */ // Label 144: @2202
4630 /* 2202 */ GIM_Reject,
4631 /* 2203 */ // Label 3: @2203
4632 /* 2203 */ GIM_Try, /*On fail goto*//*Label 145*/ GIMT_Encode4(2214), // Rule ID 80 //
4633 /* 2208 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
4634 /* 2211 */ // Combiner Rule #74: undef_to_int_zero; wip_match_opcode 'G_MUL'
4635 /* 2211 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
4636 /* 2214 */ // Label 145: @2214
4637 /* 2214 */ GIM_Try, /*On fail goto*//*Label 146*/ GIMT_Encode4(2225), // Rule ID 252 //
4638 /* 2219 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
4639 /* 2222 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_MUL'
4640 /* 2222 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4641 /* 2225 */ // Label 146: @2225
4642 /* 2225 */ GIM_Try, /*On fail goto*//*Label 147*/ GIMT_Encode4(2236), // Rule ID 328 //
4643 /* 2230 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
4644 /* 2233 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_MUL'
4645 /* 2233 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
4646 /* 2236 */ // Label 147: @2236
4647 /* 2236 */ GIM_Try, /*On fail goto*//*Label 148*/ GIMT_Encode4(2276), // Rule ID 19 //
4648 /* 2241 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule19Enabled),
4649 /* 2244 */ // MIs[0] dst
4650 /* 2244 */ GIM_RecordRegType, /*MI*/0, /*Op*/0, /*TempTypeIdx*/255,
4651 /* 2248 */ // MIs[0] x
4652 /* 2248 */ // No operand predicates
4653 /* 2248 */ // MIs[0] Operand 2
4654 /* 2248 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 255,
4655 /* 2252 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
4656 /* 2255 */ GIR_BuildConstant, /*TempRegID*/0, /*Val*/GIMT_Encode8(0),
4657 /* 2265 */ // Combiner Rule #19: mul_by_neg_one
4658 /* 2265 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SUB),
4659 /* 2268 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
4660 /* 2270 */ GIR_AddSimpleTempRegister, /*InsnID*/0, /*TempRegID*/0,
4661 /* 2273 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
4662 /* 2275 */ GIR_EraseRootFromParent_Done,
4663 /* 2276 */ // Label 148: @2276
4664 /* 2276 */ GIM_Try, /*On fail goto*//*Label 149*/ GIMT_Encode4(2311), // Rule ID 42 //
4665 /* 2281 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule40Enabled),
4666 /* 2284 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
4667 /* 2290 */ // MIs[0] root
4668 /* 2290 */ // No operand predicates
4669 /* 2290 */ // MIs[0] left
4670 /* 2290 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4671 /* 2294 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
4672 /* 2298 */ // MIs[1] scale
4673 /* 2298 */ // No operand predicates
4674 /* 2298 */ // MIs[0] x
4675 /* 2298 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
4676 /* 2302 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4677 /* 2306 */ // MIs[2] imm1
4678 /* 2306 */ // No operand predicates
4679 /* 2306 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
4680 /* 2308 */ // Combiner Rule #40: mul_of_vscale
4681 /* 2308 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner16),
4682 /* 2311 */ // Label 149: @2311
4683 /* 2311 */ GIM_Try, /*On fail goto*//*Label 150*/ GIMT_Encode4(2351), // Rule ID 125 //
4684 /* 2316 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
4685 /* 2319 */ // MIs[0] dst
4686 /* 2319 */ // No operand predicates
4687 /* 2319 */ // MIs[0] zero
4688 /* 2319 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4689 /* 2323 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4690 /* 2327 */ // MIs[1] Operand 1
4691 /* 2327 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
4692 /* 2338 */ // MIs[0] rhs
4693 /* 2338 */ // No operand predicates
4694 /* 2338 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4695 /* 2343 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4696 /* 2345 */ // Combiner Rule #88: binop_left_to_zero @ [__binop_left_to_zero_match_0[7]]
4697 /* 2345 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4698 /* 2350 */ GIR_EraseRootFromParent_Done,
4699 /* 2351 */ // Label 150: @2351
4700 /* 2351 */ GIM_Try, /*On fail goto*//*Label 151*/ GIMT_Encode4(2374), // Rule ID 126 //
4701 /* 2356 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule89Enabled),
4702 /* 2359 */ // MIs[0] dst
4703 /* 2359 */ // No operand predicates
4704 /* 2359 */ // MIs[0] lhs
4705 /* 2359 */ // No operand predicates
4706 /* 2359 */ // MIs[0] zero
4707 /* 2359 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
4708 /* 2363 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
4709 /* 2368 */ // Combiner Rule #89: binop_right_to_zero
4710 /* 2368 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
4711 /* 2373 */ GIR_EraseRootFromParent_Done,
4712 /* 2374 */ // Label 151: @2374
4713 /* 2374 */ GIM_Try, /*On fail goto*//*Label 152*/ GIMT_Encode4(2397), // Rule ID 131 //
4714 /* 2379 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule94Enabled),
4715 /* 2382 */ // MIs[0] dst
4716 /* 2382 */ // No operand predicates
4717 /* 2382 */ // MIs[0] x
4718 /* 2382 */ // No operand predicates
4719 /* 2382 */ // MIs[0] Operand 2
4720 /* 2382 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 1,
4721 /* 2386 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4722 /* 2391 */ // Combiner Rule #94: right_identity_one_int
4723 /* 2391 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4724 /* 2396 */ GIR_EraseRootFromParent_Done,
4725 /* 2397 */ // Label 152: @2397
4726 /* 2397 */ GIM_Try, /*On fail goto*//*Label 153*/ GIMT_Encode4(2408), // Rule ID 16 //
4727 /* 2402 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule16Enabled),
4728 /* 2405 */ // MIs[0] d
4729 /* 2405 */ // No operand predicates
4730 /* 2405 */ // MIs[0] op1
4731 /* 2405 */ // No operand predicates
4732 /* 2405 */ // MIs[0] op2
4733 /* 2405 */ // No operand predicates
4734 /* 2405 */ // Combiner Rule #16: mul_to_shl
4735 /* 2405 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner6),
4736 /* 2408 */ // Label 153: @2408
4737 /* 2408 */ GIM_Reject,
4738 /* 2409 */ // Label 4: @2409
4739 /* 2409 */ GIM_Try, /*On fail goto*//*Label 154*/ GIMT_Encode4(2420), // Rule ID 223 //
4740 /* 2414 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
4741 /* 2417 */ // Combiner Rule #164: div_rem_to_divrem; wip_match_opcode 'G_SDIV'
4742 /* 2417 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
4743 /* 2420 */ // Label 154: @2420
4744 /* 2420 */ GIM_Try, /*On fail goto*//*Label 155*/ GIMT_Encode4(2431), // Rule ID 258 //
4745 /* 2425 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
4746 /* 2428 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_SDIV'
4747 /* 2428 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4748 /* 2431 */ // Label 155: @2431
4749 /* 2431 */ GIM_Try, /*On fail goto*//*Label 156*/ GIMT_Encode4(2442), // Rule ID 297 //
4750 /* 2436 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
4751 /* 2439 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_SDIV'
4752 /* 2439 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
4753 /* 2442 */ // Label 156: @2442
4754 /* 2442 */ GIM_Try, /*On fail goto*//*Label 157*/ GIMT_Encode4(2482), // Rule ID 121 //
4755 /* 2447 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
4756 /* 2450 */ // MIs[0] dst
4757 /* 2450 */ // No operand predicates
4758 /* 2450 */ // MIs[0] zero
4759 /* 2450 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4760 /* 2454 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4761 /* 2458 */ // MIs[1] Operand 1
4762 /* 2458 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
4763 /* 2469 */ // MIs[0] rhs
4764 /* 2469 */ // No operand predicates
4765 /* 2469 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4766 /* 2474 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4767 /* 2476 */ // Combiner Rule #88: binop_left_to_zero @ [__binop_left_to_zero_match_0[3]]
4768 /* 2476 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4769 /* 2481 */ GIR_EraseRootFromParent_Done,
4770 /* 2482 */ // Label 157: @2482
4771 /* 2482 */ GIM_Try, /*On fail goto*//*Label 158*/ GIMT_Encode4(2499), // Rule ID 320 //
4772 /* 2487 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule199Enabled),
4773 /* 2490 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
4774 /* 2496 */ // MIs[0] dst
4775 /* 2496 */ // No operand predicates
4776 /* 2496 */ // MIs[0] x
4777 /* 2496 */ // No operand predicates
4778 /* 2496 */ // MIs[0] y
4779 /* 2496 */ // No operand predicates
4780 /* 2496 */ // Combiner Rule #199: sdiv_by_pow2
4781 /* 2496 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner122),
4782 /* 2499 */ // Label 158: @2499
4783 /* 2499 */ GIM_Try, /*On fail goto*//*Label 159*/ GIMT_Encode4(2510), // Rule ID 322 //
4784 /* 2504 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule201Enabled),
4785 /* 2507 */ // MIs[0] dst
4786 /* 2507 */ // No operand predicates
4787 /* 2507 */ // MIs[0] x
4788 /* 2507 */ // No operand predicates
4789 /* 2507 */ // MIs[0] y
4790 /* 2507 */ // No operand predicates
4791 /* 2507 */ // Combiner Rule #201: sdiv_by_const
4792 /* 2507 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
4793 /* 2510 */ // Label 159: @2510
4794 /* 2510 */ GIM_Reject,
4795 /* 2511 */ // Label 5: @2511
4796 /* 2511 */ GIM_Try, /*On fail goto*//*Label 160*/ GIMT_Encode4(2522), // Rule ID 83 //
4797 /* 2516 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
4798 /* 2519 */ // Combiner Rule #76: binop_left_undef_to_zero; wip_match_opcode 'G_UDIV'
4799 /* 2519 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
4800 /* 2522 */ // Label 160: @2522
4801 /* 2522 */ GIM_Try, /*On fail goto*//*Label 161*/ GIMT_Encode4(2533), // Rule ID 224 //
4802 /* 2527 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
4803 /* 2530 */ // Combiner Rule #164: div_rem_to_divrem; wip_match_opcode 'G_UDIV'
4804 /* 2530 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
4805 /* 2533 */ // Label 161: @2533
4806 /* 2533 */ GIM_Try, /*On fail goto*//*Label 162*/ GIMT_Encode4(2544), // Rule ID 257 //
4807 /* 2538 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
4808 /* 2541 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_UDIV'
4809 /* 2541 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4810 /* 2544 */ // Label 162: @2544
4811 /* 2544 */ GIM_Try, /*On fail goto*//*Label 163*/ GIMT_Encode4(2555), // Rule ID 299 //
4812 /* 2549 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
4813 /* 2552 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_UDIV'
4814 /* 2552 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
4815 /* 2555 */ // Label 163: @2555
4816 /* 2555 */ GIM_Try, /*On fail goto*//*Label 164*/ GIMT_Encode4(2595), // Rule ID 122 //
4817 /* 2560 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
4818 /* 2563 */ // MIs[0] dst
4819 /* 2563 */ // No operand predicates
4820 /* 2563 */ // MIs[0] zero
4821 /* 2563 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4822 /* 2567 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4823 /* 2571 */ // MIs[1] Operand 1
4824 /* 2571 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
4825 /* 2582 */ // MIs[0] rhs
4826 /* 2582 */ // No operand predicates
4827 /* 2582 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4828 /* 2587 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4829 /* 2589 */ // Combiner Rule #88: binop_left_to_zero @ [__binop_left_to_zero_match_0[4]]
4830 /* 2589 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4831 /* 2594 */ GIR_EraseRootFromParent_Done,
4832 /* 2595 */ // Label 164: @2595
4833 /* 2595 */ GIM_Try, /*On fail goto*//*Label 165*/ GIMT_Encode4(2612), // Rule ID 319 //
4834 /* 2600 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule198Enabled),
4835 /* 2603 */ GIM_MIFlagsNot, /*MI*/0, GIMT_Encode4(MachineInstr::IsExact),
4836 /* 2609 */ // MIs[0] dst
4837 /* 2609 */ // No operand predicates
4838 /* 2609 */ // MIs[0] x
4839 /* 2609 */ // No operand predicates
4840 /* 2609 */ // MIs[0] y
4841 /* 2609 */ // No operand predicates
4842 /* 2609 */ // Combiner Rule #198: udiv_by_pow2
4843 /* 2609 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner121),
4844 /* 2612 */ // Label 165: @2612
4845 /* 2612 */ GIM_Try, /*On fail goto*//*Label 166*/ GIMT_Encode4(2623), // Rule ID 321 //
4846 /* 2617 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule200Enabled),
4847 /* 2620 */ // MIs[0] dst
4848 /* 2620 */ // No operand predicates
4849 /* 2620 */ // MIs[0] x
4850 /* 2620 */ // No operand predicates
4851 /* 2620 */ // MIs[0] y
4852 /* 2620 */ // No operand predicates
4853 /* 2620 */ // Combiner Rule #200: udiv_by_const
4854 /* 2620 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
4855 /* 2623 */ // Label 166: @2623
4856 /* 2623 */ GIM_Reject,
4857 /* 2624 */ // Label 6: @2624
4858 /* 2624 */ GIM_Try, /*On fail goto*//*Label 167*/ GIMT_Encode4(2635), // Rule ID 225 //
4859 /* 2629 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
4860 /* 2632 */ // Combiner Rule #164: div_rem_to_divrem; wip_match_opcode 'G_SREM'
4861 /* 2632 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
4862 /* 2635 */ // Label 167: @2635
4863 /* 2635 */ GIM_Try, /*On fail goto*//*Label 168*/ GIMT_Encode4(2646), // Rule ID 260 //
4864 /* 2640 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
4865 /* 2643 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_SREM'
4866 /* 2643 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4867 /* 2646 */ // Label 168: @2646
4868 /* 2646 */ GIM_Try, /*On fail goto*//*Label 169*/ GIMT_Encode4(2657), // Rule ID 298 //
4869 /* 2651 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
4870 /* 2654 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_SREM'
4871 /* 2654 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
4872 /* 2657 */ // Label 169: @2657
4873 /* 2657 */ GIM_Try, /*On fail goto*//*Label 170*/ GIMT_Encode4(2697), // Rule ID 123 //
4874 /* 2662 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
4875 /* 2665 */ // MIs[0] dst
4876 /* 2665 */ // No operand predicates
4877 /* 2665 */ // MIs[0] zero
4878 /* 2665 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4879 /* 2669 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4880 /* 2673 */ // MIs[1] Operand 1
4881 /* 2673 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
4882 /* 2684 */ // MIs[0] rhs
4883 /* 2684 */ // No operand predicates
4884 /* 2684 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4885 /* 2689 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4886 /* 2691 */ // Combiner Rule #88: binop_left_to_zero @ [__binop_left_to_zero_match_0[5]]
4887 /* 2691 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4888 /* 2696 */ GIR_EraseRootFromParent_Done,
4889 /* 2697 */ // Label 170: @2697
4890 /* 2697 */ GIM_Try, /*On fail goto*//*Label 171*/ GIMT_Encode4(2708), // Rule ID 318 //
4891 /* 2702 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule197Enabled),
4892 /* 2705 */ // MIs[0] dst
4893 /* 2705 */ // No operand predicates
4894 /* 2705 */ // MIs[0] x
4895 /* 2705 */ // No operand predicates
4896 /* 2705 */ // MIs[0] y
4897 /* 2705 */ // No operand predicates
4898 /* 2705 */ // Combiner Rule #197: srem_by_const
4899 /* 2705 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner120),
4900 /* 2708 */ // Label 171: @2708
4901 /* 2708 */ GIM_Reject,
4902 /* 2709 */ // Label 7: @2709
4903 /* 2709 */ GIM_Try, /*On fail goto*//*Label 172*/ GIMT_Encode4(2720), // Rule ID 84 //
4904 /* 2714 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
4905 /* 2717 */ // Combiner Rule #76: binop_left_undef_to_zero; wip_match_opcode 'G_UREM'
4906 /* 2717 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
4907 /* 2720 */ // Label 172: @2720
4908 /* 2720 */ GIM_Try, /*On fail goto*//*Label 173*/ GIMT_Encode4(2731), // Rule ID 174 //
4909 /* 2725 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule131Enabled),
4910 /* 2728 */ // Combiner Rule #131: urem_pow2_to_mask; wip_match_opcode 'G_UREM'
4911 /* 2728 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner74),
4912 /* 2731 */ // Label 173: @2731
4913 /* 2731 */ GIM_Try, /*On fail goto*//*Label 174*/ GIMT_Encode4(2742), // Rule ID 226 //
4914 /* 2736 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule164Enabled),
4915 /* 2739 */ // Combiner Rule #164: div_rem_to_divrem; wip_match_opcode 'G_UREM'
4916 /* 2739 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner94),
4917 /* 2742 */ // Label 174: @2742
4918 /* 2742 */ GIM_Try, /*On fail goto*//*Label 175*/ GIMT_Encode4(2753), // Rule ID 259 //
4919 /* 2747 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
4920 /* 2750 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_UREM'
4921 /* 2750 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4922 /* 2753 */ // Label 175: @2753
4923 /* 2753 */ GIM_Try, /*On fail goto*//*Label 176*/ GIMT_Encode4(2764), // Rule ID 300 //
4924 /* 2758 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
4925 /* 2761 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_UREM'
4926 /* 2761 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
4927 /* 2764 */ // Label 176: @2764
4928 /* 2764 */ GIM_Try, /*On fail goto*//*Label 177*/ GIMT_Encode4(2804), // Rule ID 124 //
4929 /* 2769 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
4930 /* 2772 */ // MIs[0] dst
4931 /* 2772 */ // No operand predicates
4932 /* 2772 */ // MIs[0] zero
4933 /* 2772 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
4934 /* 2776 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
4935 /* 2780 */ // MIs[1] Operand 1
4936 /* 2780 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
4937 /* 2791 */ // MIs[0] rhs
4938 /* 2791 */ // No operand predicates
4939 /* 2791 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4940 /* 2796 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
4941 /* 2798 */ // Combiner Rule #88: binop_left_to_zero @ [__binop_left_to_zero_match_0[6]]
4942 /* 2798 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
4943 /* 2803 */ GIR_EraseRootFromParent_Done,
4944 /* 2804 */ // Label 177: @2804
4945 /* 2804 */ GIM_Try, /*On fail goto*//*Label 178*/ GIMT_Encode4(2815), // Rule ID 317 //
4946 /* 2809 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule196Enabled),
4947 /* 2812 */ // MIs[0] dst
4948 /* 2812 */ // No operand predicates
4949 /* 2812 */ // MIs[0] x
4950 /* 2812 */ // No operand predicates
4951 /* 2812 */ // MIs[0] y
4952 /* 2812 */ // No operand predicates
4953 /* 2812 */ // Combiner Rule #196: urem_by_const
4954 /* 2812 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner119),
4955 /* 2815 */ // Label 178: @2815
4956 /* 2815 */ GIM_Reject,
4957 /* 2816 */ // Label 8: @2816
4958 /* 2816 */ GIM_Try, /*On fail goto*//*Label 179*/ GIMT_Encode4(2827), // Rule ID 75 //
4959 /* 2821 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule71Enabled),
4960 /* 2824 */ // Combiner Rule #71: load_and_mask; wip_match_opcode 'G_AND'
4961 /* 2824 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner31),
4962 /* 2827 */ // Label 179: @2827
4963 /* 2827 */ GIM_Try, /*On fail goto*//*Label 180*/ GIMT_Encode4(2838), // Rule ID 79 //
4964 /* 2832 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule74Enabled),
4965 /* 2835 */ // Combiner Rule #74: undef_to_int_zero; wip_match_opcode 'G_AND'
4966 /* 2835 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner34),
4967 /* 2838 */ // Label 180: @2838
4968 /* 2838 */ GIM_Try, /*On fail goto*//*Label 181*/ GIMT_Encode4(2849), // Rule ID 146 //
4969 /* 2843 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule107Enabled),
4970 /* 2846 */ // Combiner Rule #107: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_AND'
4971 /* 2846 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
4972 /* 2849 */ // Label 181: @2849
4973 /* 2849 */ GIM_Try, /*On fail goto*//*Label 182*/ GIMT_Encode4(2860), // Rule ID 166 //
4974 /* 2854 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule123Enabled),
4975 /* 2857 */ // Combiner Rule #123: narrow_binop_feeding_and; wip_match_opcode 'G_AND'
4976 /* 2857 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner67),
4977 /* 2860 */ // Label 182: @2860
4978 /* 2860 */ GIM_Try, /*On fail goto*//*Label 183*/ GIMT_Encode4(2871), // Rule ID 171 //
4979 /* 2865 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule128Enabled),
4980 /* 2868 */ // Combiner Rule #128: redundant_and; wip_match_opcode 'G_AND'
4981 /* 2868 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner71),
4982 /* 2871 */ // Label 183: @2871
4983 /* 2871 */ GIM_Try, /*On fail goto*//*Label 184*/ GIMT_Encode4(2882), // Rule ID 196 //
4984 /* 2876 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule153Enabled),
4985 /* 2879 */ // Combiner Rule #153: overlapping_and; wip_match_opcode 'G_AND'
4986 /* 2879 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner83),
4987 /* 2882 */ // Label 184: @2882
4988 /* 2882 */ GIM_Try, /*On fail goto*//*Label 185*/ GIMT_Encode4(2893), // Rule ID 249 //
4989 /* 2887 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
4990 /* 2890 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_AND'
4991 /* 2890 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
4992 /* 2893 */ // Label 185: @2893
4993 /* 2893 */ GIM_Try, /*On fail goto*//*Label 186*/ GIMT_Encode4(2904), // Rule ID 282 //
4994 /* 2898 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule186Enabled),
4995 /* 2901 */ // Combiner Rule #186: and_or_disjoint_mask; wip_match_opcode 'G_AND'
4996 /* 2901 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner109),
4997 /* 2904 */ // Label 186: @2904
4998 /* 2904 */ GIM_Try, /*On fail goto*//*Label 187*/ GIMT_Encode4(2915), // Rule ID 294 //
4999 /* 2909 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
5000 /* 2912 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_AND'
5001 /* 2912 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5002 /* 2915 */ // Label 187: @2915
5003 /* 2915 */ GIM_Try, /*On fail goto*//*Label 188*/ GIMT_Encode4(2926), // Rule ID 329 //
5004 /* 2920 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
5005 /* 2923 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_AND'
5006 /* 2923 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
5007 /* 2926 */ // Label 188: @2926
5008 /* 2926 */ GIM_Try, /*On fail goto*//*Label 189*/ GIMT_Encode4(2937), // Rule ID 356 //
5009 /* 2931 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule208Enabled),
5010 /* 2934 */ // Combiner Rule #208: match_ands; wip_match_opcode 'G_AND'
5011 /* 2934 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner129),
5012 /* 2937 */ // Label 189: @2937
5013 /* 2937 */ GIM_Try, /*On fail goto*//*Label 190*/ GIMT_Encode4(3035), // Rule ID 159 //
5014 /* 2942 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule116Enabled),
5015 /* 2945 */ // MIs[0] root
5016 /* 2945 */ // No operand predicates
5017 /* 2945 */ // MIs[0] d1
5018 /* 2945 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5019 /* 2949 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
5020 /* 2953 */ // MIs[1] p
5021 /* 2953 */ // No operand predicates
5022 /* 2953 */ // MIs[1] s1
5023 /* 2953 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
5024 /* 2957 */ // MIs[1] Operand 3
5025 /* 2957 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
5026 /* 2961 */ // MIs[0] d2
5027 /* 2961 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5028 /* 2965 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
5029 /* 2969 */ // MIs[2] p
5030 /* 2969 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
5031 /* 2974 */ // MIs[2] s2
5032 /* 2974 */ // No operand predicates
5033 /* 2974 */ // MIs[2] Operand 3
5034 /* 2974 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
5035 /* 2978 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner6),
5036 /* 2982 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5037 /* 2984 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5038 /* 2987 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5039 /* 2997 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5040 /* 3000 */ // Combiner Rule #116: double_icmp_zero_and_combine
5041 /* 3000 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5042 /* 3003 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5043 /* 3008 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
5044 /* 3012 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
5045 /* 3016 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
5046 /* 3020 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5047 /* 3024 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
5048 /* 3028 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5049 /* 3031 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
5050 /* 3034 */ GIR_EraseRootFromParent_Done,
5051 /* 3035 */ // Label 190: @3035
5052 /* 3035 */ GIM_Try, /*On fail goto*//*Label 191*/ GIMT_Encode4(3072), // Rule ID 242 //
5053 /* 3040 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule176Enabled),
5054 /* 3043 */ // MIs[0] root
5055 /* 3043 */ // No operand predicates
5056 /* 3043 */ // MIs[0] shift
5057 /* 3043 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5058 /* 3047 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
5059 /* 3051 */ // MIs[1] x
5060 /* 3051 */ // No operand predicates
5061 /* 3051 */ // MIs[1] lsb
5062 /* 3051 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5063 /* 3055 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5064 /* 3059 */ // MIs[2] imm1
5065 /* 3059 */ // No operand predicates
5066 /* 3059 */ // MIs[0] mask
5067 /* 3059 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/3, /*MI*/0, /*OpIdx*/2, // MIs[3]
5068 /* 3063 */ GIM_CheckOpcode, /*MI*/3, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5069 /* 3067 */ // MIs[3] imm2
5070 /* 3067 */ // No operand predicates
5071 /* 3067 */ GIM_CheckIsSafeToFold, /*NumInsns*/3,
5072 /* 3069 */ // Combiner Rule #176: bitfield_extract_from_and
5073 /* 3069 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner100),
5074 /* 3072 */ // Label 191: @3072
5075 /* 3072 */ GIM_Try, /*On fail goto*//*Label 192*/ GIMT_Encode4(3186), // Rule ID 395 //
5076 /* 3077 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule244Enabled),
5077 /* 3080 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
5078 /* 3083 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
5079 /* 3086 */ // MIs[0] dst
5080 /* 3086 */ // No operand predicates
5081 /* 3086 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner15),
5082 /* 3090 */ GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_s32,
5083 /* 3093 */ GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_s32,
5084 /* 3096 */ GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_s32,
5085 /* 3099 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
5086 /* 3102 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
5087 /* 3105 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
5088 /* 3108 */ // Combiner Rule #244: combine_and_s64_with_s32_mask
5089 /* 3108 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5090 /* 3111 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5091 /* 3116 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5092 /* 3121 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
5093 /* 3123 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5094 /* 3127 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5095 /* 3132 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5096 /* 3137 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // y
5097 /* 3141 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
5098 /* 3145 */ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5099 /* 3150 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
5100 /* 3153 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
5101 /* 3156 */ GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::G_AND),
5102 /* 3160 */ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5103 /* 3165 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/1,
5104 /* 3168 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
5105 /* 3171 */ GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
5106 /* 3175 */ GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/0, // dst
5107 /* 3179 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
5108 /* 3182 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/5,
5109 /* 3185 */ GIR_EraseRootFromParent_Done,
5110 /* 3186 */ // Label 192: @3186
5111 /* 3186 */ GIM_Try, /*On fail goto*//*Label 193*/ GIMT_Encode4(3210), // Rule ID 116 //
5112 /* 3191 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
5113 /* 3194 */ // MIs[0] dst
5114 /* 3194 */ // No operand predicates
5115 /* 3194 */ // MIs[0] src
5116 /* 3194 */ // No operand predicates
5117 /* 3194 */ // MIs[0] src
5118 /* 3194 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5119 /* 3199 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5120 /* 3204 */ // Combiner Rule #87: binop_same_val @ [__binop_same_val_match_0[0]]
5121 /* 3204 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5122 /* 3209 */ GIR_EraseRootFromParent_Done,
5123 /* 3210 */ // Label 193: @3210
5124 /* 3210 */ GIM_Reject,
5125 /* 3211 */ // Label 9: @3211
5126 /* 3211 */ GIM_Try, /*On fail goto*//*Label 194*/ GIMT_Encode4(3222), // Rule ID 81 //
5127 /* 3216 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule75Enabled),
5128 /* 3219 */ // Combiner Rule #75: undef_to_negative_one; wip_match_opcode 'G_OR'
5129 /* 3219 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner35),
5130 /* 3222 */ // Label 194: @3222
5131 /* 3222 */ GIM_Try, /*On fail goto*//*Label 195*/ GIMT_Encode4(3233), // Rule ID 147 //
5132 /* 3227 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule107Enabled),
5133 /* 3230 */ // Combiner Rule #107: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_OR'
5134 /* 3230 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
5135 /* 3233 */ // Label 195: @3233
5136 /* 3233 */ GIM_Try, /*On fail goto*//*Label 196*/ GIMT_Encode4(3244), // Rule ID 173 //
5137 /* 3238 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule130Enabled),
5138 /* 3241 */ // Combiner Rule #130: redundant_or; wip_match_opcode 'G_OR'
5139 /* 3241 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner73),
5140 /* 3244 */ // Label 196: @3244
5141 /* 3244 */ GIM_Try, /*On fail goto*//*Label 197*/ GIMT_Encode4(3255), // Rule ID 222 //
5142 /* 3249 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule163Enabled),
5143 /* 3252 */ // Combiner Rule #163: load_or_combine; wip_match_opcode 'G_OR'
5144 /* 3252 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner93),
5145 /* 3255 */ // Label 197: @3255
5146 /* 3255 */ GIM_Try, /*On fail goto*//*Label 198*/ GIMT_Encode4(3266), // Rule ID 227 //
5147 /* 3260 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule165Enabled),
5148 /* 3263 */ // Combiner Rule #165: funnel_shift_from_or_shift; wip_match_opcode 'G_OR'
5149 /* 3263 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner95),
5150 /* 3266 */ // Label 198: @3266
5151 /* 3266 */ GIM_Try, /*On fail goto*//*Label 199*/ GIMT_Encode4(3277), // Rule ID 253 //
5152 /* 3271 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
5153 /* 3274 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_OR'
5154 /* 3274 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5155 /* 3277 */ // Label 199: @3277
5156 /* 3277 */ GIM_Try, /*On fail goto*//*Label 200*/ GIMT_Encode4(3288), // Rule ID 295 //
5157 /* 3282 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
5158 /* 3285 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_OR'
5159 /* 3285 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5160 /* 3288 */ // Label 200: @3288
5161 /* 3288 */ GIM_Try, /*On fail goto*//*Label 201*/ GIMT_Encode4(3299), // Rule ID 330 //
5162 /* 3293 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
5163 /* 3296 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_OR'
5164 /* 3296 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
5165 /* 3299 */ // Label 201: @3299
5166 /* 3299 */ GIM_Try, /*On fail goto*//*Label 202*/ GIMT_Encode4(3310), // Rule ID 357 //
5167 /* 3304 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule209Enabled),
5168 /* 3307 */ // Combiner Rule #209: match_ors; wip_match_opcode 'G_OR'
5169 /* 3307 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner130),
5170 /* 3310 */ // Label 202: @3310
5171 /* 3310 */ GIM_Try, /*On fail goto*//*Label 203*/ GIMT_Encode4(3397), // Rule ID 397 //
5172 /* 3315 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule245Enabled),
5173 /* 3318 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
5174 /* 3321 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
5175 /* 3324 */ // MIs[0] dst
5176 /* 3324 */ // No operand predicates
5177 /* 3324 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5178 /* 3328 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
5179 /* 3332 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5180 /* 3336 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
5181 /* 3340 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5182 /* 3342 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
5183 /* 3345 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5184 /* 3348 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5185 /* 3351 */ // Combiner Rule #245: combine_or_s64_s32 @ [dst[1]]
5186 /* 3351 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5187 /* 3354 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5188 /* 3359 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5189 /* 3364 */ GIR_RootToRootCopy, /*OpIdx*/2, // x
5190 /* 3366 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5191 /* 3370 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5192 /* 3375 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5193 /* 3378 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // y
5194 /* 3382 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
5195 /* 3386 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
5196 /* 3390 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
5197 /* 3393 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
5198 /* 3396 */ GIR_EraseRootFromParent_Done,
5199 /* 3397 */ // Label 203: @3397
5200 /* 3397 */ GIM_Try, /*On fail goto*//*Label 204*/ GIMT_Encode4(3444), // Rule ID 234 //
5201 /* 3402 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
5202 /* 3405 */ // MIs[0] root
5203 /* 3405 */ // No operand predicates
5204 /* 3405 */ // MIs[0] out1
5205 /* 3405 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5206 /* 3409 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHL),
5207 /* 3413 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
5208 /* 3413 */ // No operand predicates
5209 /* 3413 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
5210 /* 3413 */ // No operand predicates
5211 /* 3413 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
5212 /* 3413 */ // No operand predicates
5213 /* 3413 */ // MIs[0] out2
5214 /* 3413 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5215 /* 3417 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_SHL),
5216 /* 3421 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
5217 /* 3421 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
5218 /* 3426 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
5219 /* 3426 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
5220 /* 3431 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5221 /* 3436 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5222 /* 3438 */ // Combiner Rule #170: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[0]]
5223 /* 3438 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5224 /* 3443 */ GIR_EraseRootFromParent_Done,
5225 /* 3444 */ // Label 204: @3444
5226 /* 3444 */ GIM_Try, /*On fail goto*//*Label 205*/ GIMT_Encode4(3491), // Rule ID 236 //
5227 /* 3449 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
5228 /* 3452 */ // MIs[0] root
5229 /* 3452 */ // No operand predicates
5230 /* 3452 */ // MIs[0] out1
5231 /* 3452 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5232 /* 3456 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FSHR),
5233 /* 3460 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
5234 /* 3460 */ // No operand predicates
5235 /* 3460 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
5236 /* 3460 */ // No operand predicates
5237 /* 3460 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
5238 /* 3460 */ // No operand predicates
5239 /* 3460 */ // MIs[0] out2
5240 /* 3460 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5241 /* 3464 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
5242 /* 3468 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
5243 /* 3468 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/2,
5244 /* 3473 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
5245 /* 3473 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
5246 /* 3478 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5247 /* 3483 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5248 /* 3485 */ // Combiner Rule #171: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[0]]
5249 /* 3485 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5250 /* 3490 */ GIR_EraseRootFromParent_Done,
5251 /* 3491 */ // Label 205: @3491
5252 /* 3491 */ GIM_Try, /*On fail goto*//*Label 206*/ GIMT_Encode4(3589), // Rule ID 160 //
5253 /* 3496 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule117Enabled),
5254 /* 3499 */ // MIs[0] root
5255 /* 3499 */ // No operand predicates
5256 /* 3499 */ // MIs[0] d1
5257 /* 3499 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5258 /* 3503 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
5259 /* 3507 */ // MIs[1] p
5260 /* 3507 */ // No operand predicates
5261 /* 3507 */ // MIs[1] s1
5262 /* 3507 */ GIM_RecordRegType, /*MI*/1, /*Op*/2, /*TempTypeIdx*/255,
5263 /* 3511 */ // MIs[1] Operand 3
5264 /* 3511 */ GIM_CheckConstantInt8, /*MI*/1, /*Op*/3, 0,
5265 /* 3515 */ // MIs[0] d2
5266 /* 3515 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5267 /* 3519 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_ICMP),
5268 /* 3523 */ // MIs[2] p
5269 /* 3523 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
5270 /* 3528 */ // MIs[2] s2
5271 /* 3528 */ // No operand predicates
5272 /* 3528 */ // MIs[2] Operand 3
5273 /* 3528 */ GIM_CheckConstantInt8, /*MI*/2, /*Op*/3, 0,
5274 /* 3532 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner7),
5275 /* 3536 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5276 /* 3538 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5277 /* 3541 */ GIR_BuildConstant, /*TempRegID*/1, /*Val*/GIMT_Encode8(0),
5278 /* 3551 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5279 /* 3554 */ // Combiner Rule #117: double_icmp_zero_or_combine
5280 /* 3554 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5281 /* 3557 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5282 /* 3562 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // s1
5283 /* 3566 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/2, // s2
5284 /* 3570 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_ICMP),
5285 /* 3574 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/0, // root
5286 /* 3578 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // p
5287 /* 3582 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5288 /* 3585 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/1,
5289 /* 3588 */ GIR_EraseRootFromParent_Done,
5290 /* 3589 */ // Label 206: @3589
5291 /* 3589 */ GIM_Try, /*On fail goto*//*Label 207*/ GIMT_Encode4(3636), // Rule ID 237 //
5292 /* 3594 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule171Enabled),
5293 /* 3597 */ // MIs[0] root
5294 /* 3597 */ // No operand predicates
5295 /* 3597 */ // MIs[0] out2
5296 /* 3597 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5297 /* 3601 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
5298 /* 3605 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
5299 /* 3605 */ // No operand predicates
5300 /* 3605 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
5301 /* 3605 */ // No operand predicates
5302 /* 3605 */ // MIs[0] out1
5303 /* 3605 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5304 /* 3609 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHR),
5305 /* 3613 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.z
5306 /* 3613 */ // No operand predicates
5307 /* 3613 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.x
5308 /* 3613 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/1,
5309 /* 3618 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_right_match_0.y
5310 /* 3618 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
5311 /* 3623 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5312 /* 3628 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5313 /* 3630 */ // Combiner Rule #171: funnel_shift_or_shift_to_funnel_shift_right @ [__funnel_shift_or_shift_to_funnel_shift_right_match_0[1]]
5314 /* 3630 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5315 /* 3635 */ GIR_EraseRootFromParent_Done,
5316 /* 3636 */ // Label 207: @3636
5317 /* 3636 */ GIM_Try, /*On fail goto*//*Label 208*/ GIMT_Encode4(3683), // Rule ID 235 //
5318 /* 3641 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule170Enabled),
5319 /* 3644 */ // MIs[0] root
5320 /* 3644 */ // No operand predicates
5321 /* 3644 */ // MIs[0] out2
5322 /* 3644 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5323 /* 3648 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
5324 /* 3652 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
5325 /* 3652 */ // No operand predicates
5326 /* 3652 */ // MIs[1] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
5327 /* 3652 */ // No operand predicates
5328 /* 3652 */ // MIs[0] out1
5329 /* 3652 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
5330 /* 3656 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_FSHL),
5331 /* 3660 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.x
5332 /* 3660 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/1, /*OtherMI*/1, /*OtherOpIdx*/1,
5333 /* 3665 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.z
5334 /* 3665 */ // No operand predicates
5335 /* 3665 */ // MIs[2] __funnel_shift_or_shift_to_funnel_shift_left_match_0.y
5336 /* 3665 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/2, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
5337 /* 3670 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5338 /* 3675 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5339 /* 3677 */ // Combiner Rule #170: funnel_shift_or_shift_to_funnel_shift_left @ [__funnel_shift_or_shift_to_funnel_shift_left_match_0[1]]
5340 /* 3677 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/2,
5341 /* 3682 */ GIR_EraseRootFromParent_Done,
5342 /* 3683 */ // Label 208: @3683
5343 /* 3683 */ GIM_Try, /*On fail goto*//*Label 209*/ GIMT_Encode4(3884),
5344 /* 3688 */ GIM_RootCheckType, /*Op*/1, /*Type*/GILLT_s64,
5345 /* 3691 */ GIM_RootCheckType, /*Op*/2, /*Type*/GILLT_s64,
5346 /* 3694 */ GIM_Try, /*On fail goto*//*Label 210*/ GIMT_Encode4(3775), // Rule ID 396 //
5347 /* 3699 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule245Enabled),
5348 /* 3702 */ // MIs[0] dst
5349 /* 3702 */ // No operand predicates
5350 /* 3702 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5351 /* 3706 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
5352 /* 3710 */ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
5353 /* 3714 */ GIM_RecordRegType, /*MI*/1, /*Op*/1, /*TempTypeIdx*/255,
5354 /* 3718 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5355 /* 3720 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/255,
5356 /* 3723 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/255,
5357 /* 3726 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/255,
5358 /* 3729 */ // Combiner Rule #245: combine_or_s64_s32 @ [dst[0]]
5359 /* 3729 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5360 /* 3732 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5361 /* 3737 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5362 /* 3742 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
5363 /* 3744 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5364 /* 3748 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5365 /* 3753 */ GIR_AddSimpleTempRegister, /*InsnID*/1, /*TempRegID*/0,
5366 /* 3756 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/1, /*OpIdx*/1, // y
5367 /* 3760 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
5368 /* 3764 */ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/0, // dst
5369 /* 3768 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
5370 /* 3771 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/1,
5371 /* 3774 */ GIR_EraseRootFromParent_Done,
5372 /* 3775 */ // Label 210: @3775
5373 /* 3775 */ GIM_Try, /*On fail goto*//*Label 211*/ GIMT_Encode4(3883), // Rule ID 394 //
5374 /* 3780 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule243Enabled),
5375 /* 3783 */ // MIs[0] dst
5376 /* 3783 */ // No operand predicates
5377 /* 3783 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner15),
5378 /* 3787 */ GIR_MakeTempReg, /*TempRegID*/5, /*TypeID*/GILLT_s32,
5379 /* 3790 */ GIR_MakeTempReg, /*TempRegID*/4, /*TypeID*/GILLT_s32,
5380 /* 3793 */ GIR_MakeTempReg, /*TempRegID*/3, /*TypeID*/GILLT_s32,
5381 /* 3796 */ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
5382 /* 3799 */ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
5383 /* 3802 */ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
5384 /* 3805 */ // Combiner Rule #243: combine_or_s64_with_s32_mask
5385 /* 3805 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5386 /* 3808 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5387 /* 3813 */ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5388 /* 3818 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
5389 /* 3820 */ GIR_BuildMI, /*InsnID*/1, /*Opcode*/GIMT_Encode2(TargetOpcode::G_UNMERGE_VALUES),
5390 /* 3824 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5391 /* 3829 */ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/3, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5392 /* 3834 */ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // y
5393 /* 3838 */ GIR_BuildMI, /*InsnID*/2, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5394 /* 3842 */ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/4, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5395 /* 3847 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/0,
5396 /* 3850 */ GIR_AddSimpleTempRegister, /*InsnID*/2, /*TempRegID*/2,
5397 /* 3853 */ GIR_BuildMI, /*InsnID*/3, /*Opcode*/GIMT_Encode2(TargetOpcode::G_OR),
5398 /* 3857 */ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/5, /*TempRegFlags*/GIMT_Encode2(static_cast<uint16_t>(RegState::Define)),
5399 /* 3862 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/1,
5400 /* 3865 */ GIR_AddSimpleTempRegister, /*InsnID*/3, /*TempRegID*/3,
5401 /* 3868 */ GIR_BuildMI, /*InsnID*/4, /*Opcode*/GIMT_Encode2(TargetOpcode::G_MERGE_VALUES),
5402 /* 3872 */ GIR_Copy, /*NewInsnID*/4, /*OldInsnID*/0, /*OpIdx*/0, // dst
5403 /* 3876 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/4,
5404 /* 3879 */ GIR_AddSimpleTempRegister, /*InsnID*/4, /*TempRegID*/5,
5405 /* 3882 */ GIR_EraseRootFromParent_Done,
5406 /* 3883 */ // Label 211: @3883
5407 /* 3883 */ GIM_Reject,
5408 /* 3884 */ // Label 209: @3884
5409 /* 3884 */ GIM_Try, /*On fail goto*//*Label 212*/ GIMT_Encode4(3908), // Rule ID 117 //
5410 /* 3889 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule87Enabled),
5411 /* 3892 */ // MIs[0] dst
5412 /* 3892 */ // No operand predicates
5413 /* 3892 */ // MIs[0] src
5414 /* 3892 */ // No operand predicates
5415 /* 3892 */ // MIs[0] src
5416 /* 3892 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/0, /*OtherOpIdx*/1,
5417 /* 3897 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5418 /* 3902 */ // Combiner Rule #87: binop_same_val @ [__binop_same_val_match_0[1]]
5419 /* 3902 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5420 /* 3907 */ GIR_EraseRootFromParent_Done,
5421 /* 3908 */ // Label 212: @3908
5422 /* 3908 */ GIM_Try, /*On fail goto*//*Label 213*/ GIMT_Encode4(3931), // Rule ID 108 //
5423 /* 3913 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
5424 /* 3916 */ // MIs[0] dst
5425 /* 3916 */ // No operand predicates
5426 /* 3916 */ // MIs[0] lhs
5427 /* 3916 */ // No operand predicates
5428 /* 3916 */ // MIs[0] Operand 2
5429 /* 3916 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5430 /* 3920 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5431 /* 3925 */ // Combiner Rule #86: right_identity_zero @ [__right_identity_zero_match_0[2]]
5432 /* 3925 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5433 /* 3930 */ GIR_EraseRootFromParent_Done,
5434 /* 3931 */ // Label 213: @3931
5435 /* 3931 */ GIM_Reject,
5436 /* 3932 */ // Label 10: @3932
5437 /* 3932 */ GIM_Try, /*On fail goto*//*Label 214*/ GIMT_Encode4(3943), // Rule ID 98 //
5438 /* 3937 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule80Enabled),
5439 /* 3940 */ // Combiner Rule #80: propagate_undef_any_op; wip_match_opcode 'G_XOR'
5440 /* 3940 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner39),
5441 /* 3943 */ // Label 214: @3943
5442 /* 3943 */ GIM_Try, /*On fail goto*//*Label 215*/ GIMT_Encode4(3954), // Rule ID 148 //
5443 /* 3948 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule107Enabled),
5444 /* 3951 */ // Combiner Rule #107: hoist_logic_op_with_same_opcode_hands; wip_match_opcode 'G_XOR'
5445 /* 3951 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner54),
5446 /* 3954 */ // Label 215: @3954
5447 /* 3954 */ GIM_Try, /*On fail goto*//*Label 216*/ GIMT_Encode4(3965), // Rule ID 178 //
5448 /* 3959 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule135Enabled),
5449 /* 3962 */ // Combiner Rule #135: not_cmp_fold; wip_match_opcode 'G_XOR'
5450 /* 3962 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner78),
5451 /* 3965 */ // Label 216: @3965
5452 /* 3965 */ GIM_Try, /*On fail goto*//*Label 217*/ GIMT_Encode4(3976), // Rule ID 210 //
5453 /* 3970 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule159Enabled),
5454 /* 3973 */ // Combiner Rule #159: xor_of_and_with_same_reg; wip_match_opcode 'G_XOR'
5455 /* 3973 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner89),
5456 /* 3976 */ // Label 217: @3976
5457 /* 3976 */ GIM_Try, /*On fail goto*//*Label 218*/ GIMT_Encode4(3987), // Rule ID 256 //
5458 /* 3981 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
5459 /* 3984 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_XOR'
5460 /* 3984 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
5461 /* 3987 */ // Label 218: @3987
5462 /* 3987 */ GIM_Try, /*On fail goto*//*Label 219*/ GIMT_Encode4(3998), // Rule ID 296 //
5463 /* 3992 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
5464 /* 3995 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_XOR'
5465 /* 3995 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
5466 /* 3998 */ // Label 219: @3998
5467 /* 3998 */ GIM_Try, /*On fail goto*//*Label 220*/ GIMT_Encode4(4009), // Rule ID 331 //
5468 /* 4003 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
5469 /* 4006 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_XOR'
5470 /* 4006 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
5471 /* 4009 */ // Label 220: @4009
5472 /* 4009 */ GIM_Try, /*On fail goto*//*Label 221*/ GIMT_Encode4(4032), // Rule ID 109 //
5473 /* 4014 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
5474 /* 4017 */ // MIs[0] dst
5475 /* 4017 */ // No operand predicates
5476 /* 4017 */ // MIs[0] lhs
5477 /* 4017 */ // No operand predicates
5478 /* 4017 */ // MIs[0] Operand 2
5479 /* 4017 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
5480 /* 4021 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5481 /* 4026 */ // Combiner Rule #86: right_identity_zero @ [__right_identity_zero_match_0[3]]
5482 /* 4026 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5483 /* 4031 */ GIR_EraseRootFromParent_Done,
5484 /* 4032 */ // Label 221: @4032
5485 /* 4032 */ GIM_Reject,
5486 /* 4033 */ // Label 11: @4033
5487 /* 4033 */ GIM_Try, /*On fail goto*//*Label 222*/ GIMT_Encode4(4044), // Rule ID 144 //
5488 /* 4038 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule105Enabled),
5489 /* 4041 */ // Combiner Rule #105: extend_through_phis; wip_match_opcode 'G_PHI'
5490 /* 4041 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner52),
5491 /* 4044 */ // Label 222: @4044
5492 /* 4044 */ GIM_Reject,
5493 /* 4045 */ // Label 12: @4045
5494 /* 4045 */ GIM_Try, /*On fail goto*//*Label 223*/ GIMT_Encode4(4056), // Rule ID 367 //
5495 /* 4050 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule219Enabled),
5496 /* 4053 */ // Combiner Rule #219: unmerge_anyext_build_vector; wip_match_opcode 'G_UNMERGE_VALUES'
5497 /* 4053 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner140),
5498 /* 4056 */ // Label 223: @4056
5499 /* 4056 */ GIM_Try, /*On fail goto*//*Label 224*/ GIMT_Encode4(4067), // Rule ID 368 //
5500 /* 4061 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule220Enabled),
5501 /* 4064 */ // Combiner Rule #220: unmerge_merge; wip_match_opcode 'G_UNMERGE_VALUES'
5502 /* 4064 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner141),
5503 /* 4067 */ // Label 224: @4067
5504 /* 4067 */ GIM_Try, /*On fail goto*//*Label 225*/ GIMT_Encode4(4078), // Rule ID 370 //
5505 /* 4072 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule222Enabled),
5506 /* 4075 */ // Combiner Rule #222: unmerge_cst; wip_match_opcode 'G_UNMERGE_VALUES'
5507 /* 4075 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner143),
5508 /* 4078 */ // Label 225: @4078
5509 /* 4078 */ GIM_Try, /*On fail goto*//*Label 226*/ GIMT_Encode4(4089), // Rule ID 371 //
5510 /* 4083 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule223Enabled),
5511 /* 4086 */ // Combiner Rule #223: unmerge_undef; wip_match_opcode 'G_UNMERGE_VALUES'
5512 /* 4086 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner144),
5513 /* 4089 */ // Label 226: @4089
5514 /* 4089 */ GIM_Try, /*On fail goto*//*Label 227*/ GIMT_Encode4(4100), // Rule ID 372 //
5515 /* 4094 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule224Enabled),
5516 /* 4097 */ // Combiner Rule #224: unmerge_dead_to_trunc; wip_match_opcode 'G_UNMERGE_VALUES'
5517 /* 4097 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner145),
5518 /* 4100 */ // Label 227: @4100
5519 /* 4100 */ GIM_Try, /*On fail goto*//*Label 228*/ GIMT_Encode4(4111), // Rule ID 373 //
5520 /* 4105 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule225Enabled),
5521 /* 4108 */ // Combiner Rule #225: unmerge_zext_to_zext; wip_match_opcode 'G_UNMERGE_VALUES'
5522 /* 4108 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner146),
5523 /* 4111 */ // Label 228: @4111
5524 /* 4111 */ GIM_Reject,
5525 /* 4112 */ // Label 13: @4112
5526 /* 4112 */ GIM_Try, /*On fail goto*//*Label 229*/ GIMT_Encode4(4126), // Rule ID 369 //
5527 /* 4117 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule221Enabled),
5528 /* 4120 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
5529 /* 4123 */ // MIs[0] dst
5530 /* 4123 */ // No operand predicates
5531 /* 4123 */ // MIs[0] merge_srcs
5532 /* 4123 */ // No operand predicates
5533 /* 4123 */ // Combiner Rule #221: merge_unmerge
5534 /* 4123 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner142),
5535 /* 4126 */ // Label 229: @4126
5536 /* 4126 */ GIM_Try, /*On fail goto*//*Label 230*/ GIMT_Encode4(4188),
5537 /* 4131 */ GIM_CheckNumOperands, /*MI*/0, /*Expected*/3,
5538 /* 4134 */ GIM_Try, /*On fail goto*//*Label 231*/ GIMT_Encode4(4155), // Rule ID 374 //
5539 /* 4139 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule226Enabled),
5540 /* 4142 */ // MIs[0] root
5541 /* 4142 */ // No operand predicates
5542 /* 4142 */ // MIs[0] x
5543 /* 4142 */ // No operand predicates
5544 /* 4142 */ // MIs[0] undef
5545 /* 4142 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5546 /* 4146 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5547 /* 4150 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5548 /* 4152 */ // Combiner Rule #226: merge_of_x_and_undef
5549 /* 4152 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner147),
5550 /* 4155 */ // Label 231: @4155
5551 /* 4155 */ GIM_Try, /*On fail goto*//*Label 232*/ GIMT_Encode4(4187), // Rule ID 375 //
5552 /* 4160 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule227Enabled),
5553 /* 4163 */ // MIs[0] root
5554 /* 4163 */ // No operand predicates
5555 /* 4163 */ // MIs[0] x
5556 /* 4163 */ // No operand predicates
5557 /* 4163 */ // MIs[0] zero
5558 /* 4163 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
5559 /* 4167 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5560 /* 4171 */ // MIs[1] Operand 1
5561 /* 4171 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
5562 /* 4182 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5563 /* 4184 */ // Combiner Rule #227: merge_of_x_and_zero
5564 /* 4184 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner148),
5565 /* 4187 */ // Label 232: @4187
5566 /* 4187 */ GIM_Reject,
5567 /* 4188 */ // Label 230: @4188
5568 /* 4188 */ GIM_Reject,
5569 /* 4189 */ // Label 14: @4189
5570 /* 4189 */ GIM_Try, /*On fail goto*//*Label 233*/ GIMT_Encode4(4200), // Rule ID 71 //
5571 /* 4194 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule69Enabled),
5572 /* 4197 */ // Combiner Rule #69: extract_all_elts_from_build_vector; wip_match_opcode 'G_BUILD_VECTOR'
5573 /* 4197 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner29),
5574 /* 4200 */ // Label 233: @4200
5575 /* 4200 */ GIM_Try, /*On fail goto*//*Label 234*/ GIMT_Encode4(4211), // Rule ID 100 //
5576 /* 4205 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
5577 /* 4208 */ // Combiner Rule #81: propagate_undef_all_ops; wip_match_opcode 'G_BUILD_VECTOR'
5578 /* 4208 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
5579 /* 4211 */ // Label 234: @4211
5580 /* 4211 */ GIM_Try, /*On fail goto*//*Label 235*/ GIMT_Encode4(4222), // Rule ID 136 //
5581 /* 4216 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule97Enabled),
5582 /* 4219 */ // Combiner Rule #97: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR'
5583 /* 4219 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
5584 /* 4222 */ // Label 235: @4222
5585 /* 4222 */ GIM_Try, /*On fail goto*//*Label 236*/ GIMT_Encode4(4253),
5586 /* 4227 */ GIM_CheckNumOperandsGE, /*MI*/0, /*Expected*/2,
5587 /* 4230 */ GIM_Try, /*On fail goto*//*Label 237*/ GIMT_Encode4(4241), // Rule ID 366 //
5588 /* 4235 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule218Enabled),
5589 /* 4238 */ // MIs[0] dst
5590 /* 4238 */ // No operand predicates
5591 /* 4238 */ // MIs[0] unused
5592 /* 4238 */ // No operand predicates
5593 /* 4238 */ // Combiner Rule #218: combine_use_vector_truncate
5594 /* 4238 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner139),
5595 /* 4241 */ // Label 237: @4241
5596 /* 4241 */ GIM_Try, /*On fail goto*//*Label 238*/ GIMT_Encode4(4252), // Rule ID 376 //
5597 /* 4246 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule228Enabled),
5598 /* 4249 */ // MIs[0] dst
5599 /* 4249 */ // No operand predicates
5600 /* 4249 */ // MIs[0] unused
5601 /* 4249 */ // No operand predicates
5602 /* 4249 */ // Combiner Rule #228: combine_build_unmerge
5603 /* 4249 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner149),
5604 /* 4252 */ // Label 238: @4252
5605 /* 4252 */ GIM_Reject,
5606 /* 4253 */ // Label 236: @4253
5607 /* 4253 */ GIM_Reject,
5608 /* 4254 */ // Label 15: @4254
5609 /* 4254 */ GIM_Try, /*On fail goto*//*Label 239*/ GIMT_Encode4(4265), // Rule ID 135 //
5610 /* 4259 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule97Enabled),
5611 /* 4262 */ // Combiner Rule #97: buildvector_identity_fold; wip_match_opcode 'G_BUILD_VECTOR_TRUNC'
5612 /* 4262 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner48),
5613 /* 4265 */ // Label 239: @4265
5614 /* 4265 */ GIM_Reject,
5615 /* 4266 */ // Label 16: @4266
5616 /* 4266 */ GIM_Try, /*On fail goto*//*Label 240*/ GIMT_Encode4(4277), // Rule ID 359 //
5617 /* 4271 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule211Enabled),
5618 /* 4274 */ // Combiner Rule #211: combine_concat_vector; wip_match_opcode 'G_CONCAT_VECTORS'
5619 /* 4274 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner132),
5620 /* 4277 */ // Label 240: @4277
5621 /* 4277 */ GIM_Reject,
5622 /* 4278 */ // Label 17: @4278
5623 /* 4278 */ GIM_Try, /*On fail goto*//*Label 241*/ GIMT_Encode4(4299), // Rule ID 128 //
5624 /* 4283 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule91Enabled),
5625 /* 4286 */ // MIs[0] dst
5626 /* 4286 */ // No operand predicates
5627 /* 4286 */ // MIs[0] t
5628 /* 4286 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5629 /* 4290 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INTTOPTR),
5630 /* 4294 */ // MIs[1] ptr
5631 /* 4294 */ // No operand predicates
5632 /* 4294 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5633 /* 4296 */ // Combiner Rule #91: i2p_to_p2i
5634 /* 4296 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner46),
5635 /* 4299 */ // Label 241: @4299
5636 /* 4299 */ GIM_Try, /*On fail goto*//*Label 242*/ GIMT_Encode4(4320), // Rule ID 92 //
5637 /* 4304 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
5638 /* 4307 */ // MIs[0] dst
5639 /* 4307 */ // No operand predicates
5640 /* 4307 */ // MIs[0] __unary_undef_to_undef_match_0.x
5641 /* 4307 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5642 /* 4311 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5643 /* 4315 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5644 /* 4317 */ // Combiner Rule #79: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[3]]
5645 /* 4317 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
5646 /* 4320 */ // Label 242: @4320
5647 /* 4320 */ GIM_Reject,
5648 /* 4321 */ // Label 18: @4321
5649 /* 4321 */ GIM_Try, /*On fail goto*//*Label 243*/ GIMT_Encode4(4332), // Rule ID 127 //
5650 /* 4326 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule90Enabled),
5651 /* 4329 */ // Combiner Rule #90: p2i_to_i2p; wip_match_opcode 'G_INTTOPTR'
5652 /* 4329 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner45),
5653 /* 4332 */ // Label 243: @4332
5654 /* 4332 */ GIM_Try, /*On fail goto*//*Label 244*/ GIMT_Encode4(4353), // Rule ID 93 //
5655 /* 4337 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
5656 /* 4340 */ // MIs[0] dst
5657 /* 4340 */ // No operand predicates
5658 /* 4340 */ // MIs[0] __unary_undef_to_undef_match_0.x
5659 /* 4340 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5660 /* 4344 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5661 /* 4348 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5662 /* 4350 */ // Combiner Rule #79: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[4]]
5663 /* 4350 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
5664 /* 4353 */ // Label 244: @4353
5665 /* 4353 */ GIM_Reject,
5666 /* 4354 */ // Label 19: @4354
5667 /* 4354 */ GIM_Try, /*On fail goto*//*Label 245*/ GIMT_Encode4(4375), // Rule ID 139 //
5668 /* 4359 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule100Enabled),
5669 /* 4362 */ // MIs[0] dst
5670 /* 4362 */ // No operand predicates
5671 /* 4362 */ // MIs[0] src1
5672 /* 4362 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5673 /* 4366 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BITCAST),
5674 /* 4370 */ // MIs[1] src0
5675 /* 4370 */ // No operand predicates
5676 /* 4370 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5677 /* 4372 */ // Combiner Rule #100: bitcast_bitcast_fold
5678 /* 4372 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
5679 /* 4375 */ // Label 245: @4375
5680 /* 4375 */ GIM_Try, /*On fail goto*//*Label 246*/ GIMT_Encode4(4396), // Rule ID 90 //
5681 /* 4380 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
5682 /* 4383 */ // MIs[0] dst
5683 /* 4383 */ // No operand predicates
5684 /* 4383 */ // MIs[0] __unary_undef_to_undef_match_0.x
5685 /* 4383 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5686 /* 4387 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5687 /* 4391 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5688 /* 4393 */ // Combiner Rule #79: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[1]]
5689 /* 4393 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
5690 /* 4396 */ // Label 246: @4396
5691 /* 4396 */ GIM_Reject,
5692 /* 4397 */ // Label 20: @4397
5693 /* 4397 */ GIM_Try, /*On fail goto*//*Label 247*/ GIMT_Encode4(4426), // Rule ID 20 //
5694 /* 4402 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
5695 /* 4405 */ // MIs[0] dst
5696 /* 4405 */ // No operand predicates
5697 /* 4405 */ // MIs[0] src
5698 /* 4405 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5699 /* 4409 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FREEZE),
5700 /* 4413 */ // MIs[1] __idempotent_prop_match_0.x
5701 /* 4413 */ // No operand predicates
5702 /* 4413 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5703 /* 4418 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5704 /* 4420 */ // Combiner Rule #20: idempotent_prop @ [__idempotent_prop_match_0[0]]
5705 /* 4420 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5706 /* 4425 */ GIR_EraseRootFromParent_Done,
5707 /* 4426 */ // Label 247: @4426
5708 /* 4426 */ GIM_Try, /*On fail goto*//*Label 248*/ GIMT_Encode4(4449), // Rule ID 45 //
5709 /* 4431 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule43Enabled),
5710 /* 4434 */ // MIs[0] root
5711 /* 4434 */ // No operand predicates
5712 /* 4434 */ // MIs[0] src
5713 /* 4434 */ // No operand predicates
5714 /* 4434 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
5715 /* 4438 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5716 /* 4443 */ // Combiner Rule #43: freeze_of_non_undef_non_poison
5717 /* 4443 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
5718 /* 4448 */ GIR_EraseRootFromParent_Done,
5719 /* 4449 */ // Label 248: @4449
5720 /* 4449 */ GIM_Try, /*On fail goto*//*Label 249*/ GIMT_Encode4(4460), // Rule ID 46 //
5721 /* 4454 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule44Enabled),
5722 /* 4457 */ // MIs[0] dst
5723 /* 4457 */ // No operand predicates
5724 /* 4457 */ // MIs[0] src
5725 /* 4457 */ // No operand predicates
5726 /* 4457 */ // Combiner Rule #44: push_freeze_to_prevent_poison_from_propagating
5727 /* 4457 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner19),
5728 /* 4460 */ // Label 249: @4460
5729 /* 4460 */ GIM_Reject,
5730 /* 4461 */ // Label 21: @4461
5731 /* 4461 */ GIM_Try, /*On fail goto*//*Label 250*/ GIMT_Encode4(4482), // Rule ID 188 //
5732 /* 4466 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule145Enabled),
5733 /* 4469 */ // MIs[0] dst
5734 /* 4469 */ // No operand predicates
5735 /* 4469 */ // MIs[0] src0
5736 /* 4469 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5737 /* 4473 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
5738 /* 4477 */ // MIs[1] cst
5739 /* 4477 */ // No operand predicates
5740 /* 4477 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5741 /* 4479 */ // Combiner Rule #145: constant_fold_intrinsic_trunc
5742 /* 4479 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
5743 /* 4482 */ // Label 250: @4482
5744 /* 4482 */ GIM_Reject,
5745 /* 4483 */ // Label 22: @4483
5746 /* 4483 */ GIM_Try, /*On fail goto*//*Label 251*/ GIMT_Encode4(4504), // Rule ID 189 //
5747 /* 4488 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule146Enabled),
5748 /* 4491 */ // MIs[0] dst
5749 /* 4491 */ // No operand predicates
5750 /* 4491 */ // MIs[0] src0
5751 /* 4491 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5752 /* 4495 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
5753 /* 4499 */ // MIs[1] cst
5754 /* 4499 */ // No operand predicates
5755 /* 4499 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5756 /* 4501 */ // Combiner Rule #146: constant_fold_intrinsic_round
5757 /* 4501 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
5758 /* 4504 */ // Label 251: @4504
5759 /* 4504 */ GIM_Reject,
5760 /* 4505 */ // Label 23: @4505
5761 /* 4505 */ GIM_Try, /*On fail goto*//*Label 252*/ GIMT_Encode4(4526), // Rule ID 190 //
5762 /* 4510 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule147Enabled),
5763 /* 4513 */ // MIs[0] dst
5764 /* 4513 */ // No operand predicates
5765 /* 4513 */ // MIs[0] src0
5766 /* 4513 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5767 /* 4517 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
5768 /* 4521 */ // MIs[1] cst
5769 /* 4521 */ // No operand predicates
5770 /* 4521 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5771 /* 4523 */ // Combiner Rule #147: constant_fold_intrinsic_roundeven
5772 /* 4523 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
5773 /* 4526 */ // Label 252: @4526
5774 /* 4526 */ GIM_Reject,
5775 /* 4527 */ // Label 24: @4527
5776 /* 4527 */ GIM_Try, /*On fail goto*//*Label 253*/ GIMT_Encode4(4538), // Rule ID 72 //
5777 /* 4532 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled),
5778 /* 4535 */ // Combiner Rule #70: extending_loads; wip_match_opcode 'G_LOAD'
5779 /* 4535 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
5780 /* 4538 */ // Label 253: @4538
5781 /* 4538 */ GIM_Reject,
5782 /* 4539 */ // Label 25: @4539
5783 /* 4539 */ GIM_Try, /*On fail goto*//*Label 254*/ GIMT_Encode4(4550), // Rule ID 73 //
5784 /* 4544 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled),
5785 /* 4547 */ // Combiner Rule #70: extending_loads; wip_match_opcode 'G_SEXTLOAD'
5786 /* 4547 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
5787 /* 4550 */ // Label 254: @4550
5788 /* 4550 */ GIM_Reject,
5789 /* 4551 */ // Label 26: @4551
5790 /* 4551 */ GIM_Try, /*On fail goto*//*Label 255*/ GIMT_Encode4(4562), // Rule ID 74 //
5791 /* 4556 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule70Enabled),
5792 /* 4559 */ // Combiner Rule #70: extending_loads; wip_match_opcode 'G_ZEXTLOAD'
5793 /* 4559 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner30),
5794 /* 4562 */ // Label 255: @4562
5795 /* 4562 */ GIM_Reject,
5796 /* 4563 */ // Label 27: @4563
5797 /* 4563 */ GIM_Try, /*On fail goto*//*Label 256*/ GIMT_Encode4(4574), // Rule ID 102 //
5798 /* 4568 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule83Enabled),
5799 /* 4571 */ // Combiner Rule #83: erase_undef_store; wip_match_opcode 'G_STORE'
5800 /* 4571 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner42),
5801 /* 4574 */ // Label 256: @4574
5802 /* 4574 */ GIM_Reject,
5803 /* 4575 */ // Label 28: @4575
5804 /* 4575 */ GIM_Try, /*On fail goto*//*Label 257*/ GIMT_Encode4(4586), // Rule ID 129 //
5805 /* 4580 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule92Enabled),
5806 /* 4583 */ // Combiner Rule #92: anyext_trunc_fold; wip_match_opcode 'G_ANYEXT'
5807 /* 4583 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner47),
5808 /* 4586 */ // Label 257: @4586
5809 /* 4586 */ GIM_Try, /*On fail goto*//*Label 258*/ GIMT_Encode4(4597), // Rule ID 273 //
5810 /* 4591 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
5811 /* 4594 */ // Combiner Rule #182: constant_fold_cast_op; wip_match_opcode 'G_ANYEXT'
5812 /* 4594 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
5813 /* 4597 */ // Label 258: @4597
5814 /* 4597 */ GIM_Try, /*On fail goto*//*Label 259*/ GIMT_Encode4(4618), // Rule ID 59 //
5815 /* 4602 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule57Enabled),
5816 /* 4605 */ // MIs[0] root
5817 /* 4605 */ // No operand predicates
5818 /* 4605 */ // MIs[0] select
5819 /* 4605 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5820 /* 4609 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
5821 /* 4613 */ // MIs[1] cond
5822 /* 4613 */ // No operand predicates
5823 /* 4613 */ // MIs[1] true
5824 /* 4613 */ // No operand predicates
5825 /* 4613 */ // MIs[1] false
5826 /* 4613 */ // No operand predicates
5827 /* 4613 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5828 /* 4615 */ // Combiner Rule #57: select_of_anyext
5829 /* 4615 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
5830 /* 4618 */ // Label 259: @4618
5831 /* 4618 */ GIM_Try, /*On fail goto*//*Label 260*/ GIMT_Encode4(4639), // Rule ID 54 //
5832 /* 4623 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule52Enabled),
5833 /* 4626 */ // MIs[0] root
5834 /* 4626 */ // No operand predicates
5835 /* 4626 */ // MIs[0] second
5836 /* 4626 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5837 /* 4630 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
5838 /* 4634 */ // MIs[1] src
5839 /* 4634 */ // No operand predicates
5840 /* 4634 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5841 /* 4636 */ // Combiner Rule #52: anyext_of_anyext
5842 /* 4636 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
5843 /* 4639 */ // Label 260: @4639
5844 /* 4639 */ GIM_Try, /*On fail goto*//*Label 261*/ GIMT_Encode4(4660), // Rule ID 56 //
5845 /* 4644 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule54Enabled),
5846 /* 4647 */ // MIs[0] root
5847 /* 4647 */ // No operand predicates
5848 /* 4647 */ // MIs[0] second
5849 /* 4647 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5850 /* 4651 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
5851 /* 4655 */ // MIs[1] src
5852 /* 4655 */ // No operand predicates
5853 /* 4655 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5854 /* 4657 */ // Combiner Rule #54: anyext_of_sext
5855 /* 4657 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
5856 /* 4660 */ // Label 261: @4660
5857 /* 4660 */ GIM_Try, /*On fail goto*//*Label 262*/ GIMT_Encode4(4681), // Rule ID 55 //
5858 /* 4665 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule53Enabled),
5859 /* 4668 */ // MIs[0] root
5860 /* 4668 */ // No operand predicates
5861 /* 4668 */ // MIs[0] second
5862 /* 4668 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5863 /* 4672 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
5864 /* 4676 */ // MIs[1] src
5865 /* 4676 */ // No operand predicates
5866 /* 4676 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5867 /* 4678 */ // Combiner Rule #53: anyext_of_zext
5868 /* 4678 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
5869 /* 4681 */ // Label 262: @4681
5870 /* 4681 */ GIM_Try, /*On fail goto*//*Label 263*/ GIMT_Encode4(4702), // Rule ID 91 //
5871 /* 4686 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
5872 /* 4689 */ // MIs[0] dst
5873 /* 4689 */ // No operand predicates
5874 /* 4689 */ // MIs[0] __unary_undef_to_undef_match_0.x
5875 /* 4689 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5876 /* 4693 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
5877 /* 4697 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5878 /* 4699 */ // Combiner Rule #79: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[2]]
5879 /* 4699 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
5880 /* 4702 */ // Label 263: @4702
5881 /* 4702 */ GIM_Reject,
5882 /* 4703 */ // Label 29: @4703
5883 /* 4703 */ GIM_Try, /*On fail goto*//*Label 264*/ GIMT_Encode4(4714), // Rule ID 137 //
5884 /* 4708 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule98Enabled),
5885 /* 4711 */ // Combiner Rule #98: trunc_buildvector_fold; wip_match_opcode 'G_TRUNC'
5886 /* 4711 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner49),
5887 /* 4714 */ // Label 264: @4714
5888 /* 4714 */ GIM_Try, /*On fail goto*//*Label 265*/ GIMT_Encode4(4725), // Rule ID 138 //
5889 /* 4719 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule99Enabled),
5890 /* 4722 */ // Combiner Rule #99: trunc_lshr_buildvector_fold; wip_match_opcode 'G_TRUNC'
5891 /* 4722 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner50),
5892 /* 4725 */ // Label 265: @4725
5893 /* 4725 */ GIM_Try, /*On fail goto*//*Label 266*/ GIMT_Encode4(4736), // Rule ID 177 //
5894 /* 4730 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule134Enabled),
5895 /* 4733 */ // Combiner Rule #134: trunc_shift; wip_match_opcode 'G_TRUNC'
5896 /* 4733 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner77),
5897 /* 4736 */ // Label 266: @4736
5898 /* 4736 */ GIM_Try, /*On fail goto*//*Label 267*/ GIMT_Encode4(4747), // Rule ID 391 //
5899 /* 4741 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule240Enabled),
5900 /* 4744 */ // Combiner Rule #240: clamp_i64_to_i16; wip_match_opcode 'G_TRUNC'
5901 /* 4744 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner157),
5902 /* 4747 */ // Label 267: @4747
5903 /* 4747 */ GIM_Try, /*On fail goto*//*Label 268*/ GIMT_Encode4(4768), // Rule ID 60 //
5904 /* 4752 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule58Enabled),
5905 /* 4755 */ // MIs[0] root
5906 /* 4755 */ // No operand predicates
5907 /* 4755 */ // MIs[0] select
5908 /* 4755 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5909 /* 4759 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
5910 /* 4763 */ // MIs[1] cond
5911 /* 4763 */ // No operand predicates
5912 /* 4763 */ // MIs[1] true
5913 /* 4763 */ // No operand predicates
5914 /* 4763 */ // MIs[1] false
5915 /* 4763 */ // No operand predicates
5916 /* 4763 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
5917 /* 4765 */ // Combiner Rule #58: select_of_truncate
5918 /* 4765 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
5919 /* 4768 */ // Label 268: @4768
5920 /* 4768 */ GIM_Try, /*On fail goto*//*Label 269*/ GIMT_Encode4(4797), // Rule ID 62 //
5921 /* 4773 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule60Enabled),
5922 /* 4776 */ // MIs[0] root
5923 /* 4776 */ // No operand predicates
5924 /* 4776 */ // MIs[0] binop
5925 /* 4776 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5926 /* 4780 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ADD),
5927 /* 4784 */ // MIs[1] x
5928 /* 4784 */ // No operand predicates
5929 /* 4784 */ // MIs[1] const
5930 /* 4784 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5931 /* 4788 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5932 /* 4792 */ // MIs[2] imm
5933 /* 4792 */ // No operand predicates
5934 /* 4792 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5935 /* 4794 */ // Combiner Rule #60: narrow_binop_add
5936 /* 4794 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
5937 /* 4797 */ // Label 269: @4797
5938 /* 4797 */ GIM_Try, /*On fail goto*//*Label 270*/ GIMT_Encode4(4826), // Rule ID 65 //
5939 /* 4802 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule63Enabled),
5940 /* 4805 */ // MIs[0] root
5941 /* 4805 */ // No operand predicates
5942 /* 4805 */ // MIs[0] binop
5943 /* 4805 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5944 /* 4809 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_AND),
5945 /* 4813 */ // MIs[1] x
5946 /* 4813 */ // No operand predicates
5947 /* 4813 */ // MIs[1] const
5948 /* 4813 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5949 /* 4817 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5950 /* 4821 */ // MIs[2] imm
5951 /* 4821 */ // No operand predicates
5952 /* 4821 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5953 /* 4823 */ // Combiner Rule #63: narrow_binop_and
5954 /* 4823 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
5955 /* 4826 */ // Label 270: @4826
5956 /* 4826 */ GIM_Try, /*On fail goto*//*Label 271*/ GIMT_Encode4(4855), // Rule ID 64 //
5957 /* 4831 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule62Enabled),
5958 /* 4834 */ // MIs[0] root
5959 /* 4834 */ // No operand predicates
5960 /* 4834 */ // MIs[0] binop
5961 /* 4834 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5962 /* 4838 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_MUL),
5963 /* 4842 */ // MIs[1] x
5964 /* 4842 */ // No operand predicates
5965 /* 4842 */ // MIs[1] const
5966 /* 4842 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5967 /* 4846 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5968 /* 4850 */ // MIs[2] imm
5969 /* 4850 */ // No operand predicates
5970 /* 4850 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5971 /* 4852 */ // Combiner Rule #62: narrow_binop_mul
5972 /* 4852 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
5973 /* 4855 */ // Label 271: @4855
5974 /* 4855 */ GIM_Try, /*On fail goto*//*Label 272*/ GIMT_Encode4(4884), // Rule ID 66 //
5975 /* 4860 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule64Enabled),
5976 /* 4863 */ // MIs[0] root
5977 /* 4863 */ // No operand predicates
5978 /* 4863 */ // MIs[0] binop
5979 /* 4863 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5980 /* 4867 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_OR),
5981 /* 4871 */ // MIs[1] x
5982 /* 4871 */ // No operand predicates
5983 /* 4871 */ // MIs[1] const
5984 /* 4871 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
5985 /* 4875 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
5986 /* 4879 */ // MIs[2] imm
5987 /* 4879 */ // No operand predicates
5988 /* 4879 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
5989 /* 4881 */ // Combiner Rule #64: narrow_binop_or
5990 /* 4881 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
5991 /* 4884 */ // Label 272: @4884
5992 /* 4884 */ GIM_Try, /*On fail goto*//*Label 273*/ GIMT_Encode4(4913), // Rule ID 63 //
5993 /* 4889 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule61Enabled),
5994 /* 4892 */ // MIs[0] root
5995 /* 4892 */ // No operand predicates
5996 /* 4892 */ // MIs[0] binop
5997 /* 4892 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
5998 /* 4896 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SUB),
5999 /* 4900 */ // MIs[1] x
6000 /* 4900 */ // No operand predicates
6001 /* 4900 */ // MIs[1] const
6002 /* 4900 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6003 /* 4904 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6004 /* 4908 */ // MIs[2] imm
6005 /* 4908 */ // No operand predicates
6006 /* 4908 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6007 /* 4910 */ // Combiner Rule #61: narrow_binop_sub
6008 /* 4910 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
6009 /* 4913 */ // Label 273: @4913
6010 /* 4913 */ GIM_Try, /*On fail goto*//*Label 274*/ GIMT_Encode4(4945), // Rule ID 383 //
6011 /* 4918 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule233Enabled),
6012 /* 4921 */ // MIs[0] dst
6013 /* 4921 */ // No operand predicates
6014 /* 4921 */ // MIs[0] min
6015 /* 4921 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6016 /* 4925 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_UMIN),
6017 /* 4929 */ // MIs[1] x
6018 /* 4929 */ // No operand predicates
6019 /* 4929 */ // MIs[1] y
6020 /* 4929 */ // No operand predicates
6021 /* 4929 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner11),
6022 /* 4933 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6023 /* 4935 */ // Combiner Rule #233: trunc_usatu
6024 /* 4935 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_TRUNC_USAT_U),
6025 /* 4938 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6026 /* 4940 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6027 /* 4944 */ GIR_EraseRootFromParent_Done,
6028 /* 4945 */ // Label 274: @4945
6029 /* 4945 */ GIM_Try, /*On fail goto*//*Label 275*/ GIMT_Encode4(4974), // Rule ID 67 //
6030 /* 4950 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule65Enabled),
6031 /* 4953 */ // MIs[0] root
6032 /* 4953 */ // No operand predicates
6033 /* 4953 */ // MIs[0] binop
6034 /* 4953 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6035 /* 4957 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_XOR),
6036 /* 4961 */ // MIs[1] x
6037 /* 4961 */ // No operand predicates
6038 /* 4961 */ // MIs[1] const
6039 /* 4961 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
6040 /* 4965 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6041 /* 4969 */ // MIs[2] imm
6042 /* 4969 */ // No operand predicates
6043 /* 4969 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6044 /* 4971 */ // Combiner Rule #65: narrow_binop_xor
6045 /* 4971 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner25),
6046 /* 4974 */ // Label 275: @4974
6047 /* 4974 */ GIM_Try, /*On fail goto*//*Label 276*/ GIMT_Encode4(4995), // Rule ID 49 //
6048 /* 4979 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule47Enabled),
6049 /* 4982 */ // MIs[0] root
6050 /* 4982 */ // No operand predicates
6051 /* 4982 */ // MIs[0] ext
6052 /* 4982 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6053 /* 4986 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
6054 /* 4990 */ // MIs[1] src
6055 /* 4990 */ // No operand predicates
6056 /* 4990 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6057 /* 4992 */ // Combiner Rule #47: truncate_of_anyext
6058 /* 4992 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
6059 /* 4995 */ // Label 276: @4995
6060 /* 4995 */ GIM_Try, /*On fail goto*//*Label 277*/ GIMT_Encode4(5019), // Rule ID 61 //
6061 /* 5000 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule59Enabled),
6062 /* 5003 */ // MIs[0] root
6063 /* 5003 */ // No operand predicates
6064 /* 5003 */ // MIs[0] bv
6065 /* 5003 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6066 /* 5007 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
6067 /* 5011 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
6068 /* 5014 */ // MIs[1] unused
6069 /* 5014 */ // No operand predicates
6070 /* 5014 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6071 /* 5016 */ // Combiner Rule #59: buildvector_of_truncate
6072 /* 5016 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner24),
6073 /* 5019 */ // Label 277: @5019
6074 /* 5019 */ GIM_Try, /*On fail goto*//*Label 278*/ GIMT_Encode4(5040), // Rule ID 48 //
6075 /* 5024 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule46Enabled),
6076 /* 5027 */ // MIs[0] root
6077 /* 5027 */ // No operand predicates
6078 /* 5027 */ // MIs[0] ext
6079 /* 5027 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6080 /* 5031 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
6081 /* 5035 */ // MIs[1] src
6082 /* 5035 */ // No operand predicates
6083 /* 5035 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6084 /* 5037 */ // Combiner Rule #46: truncate_of_sext
6085 /* 5037 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
6086 /* 5040 */ // Label 278: @5040
6087 /* 5040 */ GIM_Try, /*On fail goto*//*Label 279*/ GIMT_Encode4(5061), // Rule ID 47 //
6088 /* 5045 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule45Enabled),
6089 /* 5048 */ // MIs[0] root
6090 /* 5048 */ // No operand predicates
6091 /* 5048 */ // MIs[0] ext
6092 /* 5048 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6093 /* 5052 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6094 /* 5056 */ // MIs[1] src
6095 /* 5056 */ // No operand predicates
6096 /* 5056 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6097 /* 5058 */ // Combiner Rule #45: truncate_of_zext
6098 /* 5058 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner20),
6099 /* 5061 */ // Label 279: @5061
6100 /* 5061 */ GIM_Try, /*On fail goto*//*Label 280*/ GIMT_Encode4(5082), // Rule ID 89 //
6101 /* 5066 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
6102 /* 5069 */ // MIs[0] dst
6103 /* 5069 */ // No operand predicates
6104 /* 5069 */ // MIs[0] __unary_undef_to_undef_match_0.x
6105 /* 5069 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6106 /* 5073 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6107 /* 5077 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6108 /* 5079 */ // Combiner Rule #79: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[0]]
6109 /* 5079 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
6110 /* 5082 */ // Label 280: @5082
6111 /* 5082 */ GIM_Try, /*On fail goto*//*Label 281*/ GIMT_Encode4(5103), // Rule ID 68 //
6112 /* 5087 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule66Enabled),
6113 /* 5090 */ // MIs[0] root
6114 /* 5090 */ // No operand predicates
6115 /* 5090 */ // MIs[0] int
6116 /* 5090 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6117 /* 5094 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6118 /* 5098 */ // MIs[1] imm
6119 /* 5098 */ // No operand predicates
6120 /* 5098 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6121 /* 5100 */ // Combiner Rule #66: integer_of_truncate
6122 /* 5100 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner26),
6123 /* 5103 */ // Label 281: @5103
6124 /* 5103 */ GIM_Try, /*On fail goto*//*Label 282*/ GIMT_Encode4(5114), // Rule ID 381 //
6125 /* 5108 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule231Enabled),
6126 /* 5111 */ // MIs[0] dst
6127 /* 5111 */ // No operand predicates
6128 /* 5111 */ // MIs[0] src
6129 /* 5111 */ // No operand predicates
6130 /* 5111 */ // Combiner Rule #231: trunc_ssats
6131 /* 5111 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner152),
6132 /* 5114 */ // Label 282: @5114
6133 /* 5114 */ GIM_Try, /*On fail goto*//*Label 283*/ GIMT_Encode4(5125), // Rule ID 382 //
6134 /* 5119 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule232Enabled),
6135 /* 5122 */ // MIs[0] dst
6136 /* 5122 */ // No operand predicates
6137 /* 5122 */ // MIs[0] src
6138 /* 5122 */ // No operand predicates
6139 /* 5122 */ // Combiner Rule #232: trunc_ssatu
6140 /* 5122 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner153),
6141 /* 5125 */ // Label 283: @5125
6142 /* 5125 */ GIM_Reject,
6143 /* 5126 */ // Label 30: @5126
6144 /* 5126 */ GIM_Try, /*On fail goto*//*Label 284*/ GIMT_Encode4(5158), // Rule ID 384 //
6145 /* 5131 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule234Enabled),
6146 /* 5134 */ // MIs[0] dst
6147 /* 5134 */ // No operand predicates
6148 /* 5134 */ // MIs[0] src
6149 /* 5134 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6150 /* 5138 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPTOUI),
6151 /* 5142 */ // MIs[1] x
6152 /* 5142 */ // No operand predicates
6153 /* 5142 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner12),
6154 /* 5146 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6155 /* 5148 */ // Combiner Rule #234: truncusatu_to_fptouisat
6156 /* 5148 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FPTOUI_SAT),
6157 /* 5151 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
6158 /* 5153 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
6159 /* 5157 */ GIR_EraseRootFromParent_Done,
6160 /* 5158 */ // Label 284: @5158
6161 /* 5158 */ GIM_Reject,
6162 /* 5159 */ // Label 31: @5159
6163 /* 5159 */ GIM_Try, /*On fail goto*//*Label 285*/ GIMT_Encode4(5170), // Rule ID 272 //
6164 /* 5164 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
6165 /* 5167 */ // Combiner Rule #182: constant_fold_cast_op; wip_match_opcode 'G_SEXT'
6166 /* 5167 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
6167 /* 5170 */ // Label 285: @5170
6168 /* 5170 */ GIM_Try, /*On fail goto*//*Label 286*/ GIMT_Encode4(5191), // Rule ID 53 //
6169 /* 5175 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule51Enabled),
6170 /* 5178 */ // MIs[0] root
6171 /* 5178 */ // No operand predicates
6172 /* 5178 */ // MIs[0] second
6173 /* 5178 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6174 /* 5182 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
6175 /* 5186 */ // MIs[1] src
6176 /* 5186 */ // No operand predicates
6177 /* 5186 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6178 /* 5188 */ // Combiner Rule #51: sext_of_anyext
6179 /* 5188 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6180 /* 5191 */ // Label 286: @5191
6181 /* 5191 */ GIM_Try, /*On fail goto*//*Label 287*/ GIMT_Encode4(5212), // Rule ID 52 //
6182 /* 5196 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule50Enabled),
6183 /* 5199 */ // MIs[0] root
6184 /* 5199 */ // No operand predicates
6185 /* 5199 */ // MIs[0] second
6186 /* 5199 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6187 /* 5203 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT),
6188 /* 5207 */ // MIs[1] src
6189 /* 5207 */ // No operand predicates
6190 /* 5207 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6191 /* 5209 */ // Combiner Rule #50: sext_of_sext
6192 /* 5209 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6193 /* 5212 */ // Label 287: @5212
6194 /* 5212 */ GIM_Try, /*On fail goto*//*Label 288*/ GIMT_Encode4(5233), // Rule ID 360 //
6195 /* 5217 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule212Enabled),
6196 /* 5220 */ // MIs[0] root
6197 /* 5220 */ // No operand predicates
6198 /* 5220 */ // MIs[0] src
6199 /* 5220 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6200 /* 5224 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
6201 /* 5228 */ // MIs[1] x
6202 /* 5228 */ // No operand predicates
6203 /* 5228 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6204 /* 5230 */ // Combiner Rule #212: sext_trunc
6205 /* 5230 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner133),
6206 /* 5233 */ // Label 288: @5233
6207 /* 5233 */ GIM_Reject,
6208 /* 5234 */ // Label 32: @5234
6209 /* 5234 */ GIM_Try, /*On fail goto*//*Label 289*/ GIMT_Encode4(5245), // Rule ID 164 //
6210 /* 5239 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule121Enabled),
6211 /* 5242 */ // Combiner Rule #121: sext_inreg_of_load; wip_match_opcode 'G_SEXT_INREG'
6212 /* 5242 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner65),
6213 /* 5245 */ // Label 289: @5245
6214 /* 5245 */ GIM_Try, /*On fail goto*//*Label 290*/ GIMT_Encode4(5256), // Rule ID 172 //
6215 /* 5250 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule129Enabled),
6216 /* 5253 */ // Combiner Rule #129: redundant_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
6217 /* 5253 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner72),
6218 /* 5256 */ // Label 290: @5256
6219 /* 5256 */ GIM_Try, /*On fail goto*//*Label 291*/ GIMT_Encode4(5267), // Rule ID 241 //
6220 /* 5261 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule175Enabled),
6221 /* 5264 */ // Combiner Rule #175: bitfield_extract_from_sext_inreg; wip_match_opcode 'G_SEXT_INREG'
6222 /* 5264 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner99),
6223 /* 5267 */ // Label 291: @5267
6224 /* 5267 */ GIM_Try, /*On fail goto*//*Label 292*/ GIMT_Encode4(5288), // Rule ID 57 //
6225 /* 5272 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule55Enabled),
6226 /* 5275 */ // MIs[0] dst
6227 /* 5275 */ // No operand predicates
6228 /* 5275 */ // MIs[0] x
6229 /* 5275 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6230 /* 5279 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SEXT_INREG),
6231 /* 5283 */ // MIs[1] src
6232 /* 5283 */ // No operand predicates
6233 /* 5283 */ // MIs[1] a
6234 /* 5283 */ // No operand predicates
6235 /* 5283 */ // MIs[0] b
6236 /* 5283 */ // No operand predicates
6237 /* 5283 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6238 /* 5285 */ // Combiner Rule #55: sext_inreg_of_sext_inreg
6239 /* 5285 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner22),
6240 /* 5288 */ // Label 292: @5288
6241 /* 5288 */ GIM_Try, /*On fail goto*//*Label 293*/ GIMT_Encode4(5299), // Rule ID 176 //
6242 /* 5293 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule133Enabled),
6243 /* 5296 */ // MIs[0] dst
6244 /* 5296 */ // No operand predicates
6245 /* 5296 */ // MIs[0] src
6246 /* 5296 */ // No operand predicates
6247 /* 5296 */ // MIs[0] imm
6248 /* 5296 */ // No operand predicates
6249 /* 5296 */ // Combiner Rule #133: sext_inreg_to_zext_inreg
6250 /* 5296 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner76),
6251 /* 5299 */ // Label 293: @5299
6252 /* 5299 */ GIM_Reject,
6253 /* 5300 */ // Label 33: @5300
6254 /* 5300 */ GIM_Try, /*On fail goto*//*Label 294*/ GIMT_Encode4(5311), // Rule ID 175 //
6255 /* 5305 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule132Enabled),
6256 /* 5308 */ // Combiner Rule #132: zext_trunc_fold; wip_match_opcode 'G_ZEXT'
6257 /* 5308 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner75),
6258 /* 5311 */ // Label 294: @5311
6259 /* 5311 */ GIM_Try, /*On fail goto*//*Label 295*/ GIMT_Encode4(5322), // Rule ID 271 //
6260 /* 5316 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule182Enabled),
6261 /* 5319 */ // Combiner Rule #182: constant_fold_cast_op; wip_match_opcode 'G_ZEXT'
6262 /* 5319 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner106),
6263 /* 5322 */ // Label 295: @5322
6264 /* 5322 */ GIM_Try, /*On fail goto*//*Label 296*/ GIMT_Encode4(5343), // Rule ID 58 //
6265 /* 5327 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule56Enabled),
6266 /* 5330 */ // MIs[0] root
6267 /* 5330 */ // No operand predicates
6268 /* 5330 */ // MIs[0] select
6269 /* 5330 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6270 /* 5334 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
6271 /* 5338 */ // MIs[1] cond
6272 /* 5338 */ // No operand predicates
6273 /* 5338 */ // MIs[1] true
6274 /* 5338 */ // No operand predicates
6275 /* 5338 */ // MIs[1] false
6276 /* 5338 */ // No operand predicates
6277 /* 5338 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6278 /* 5340 */ // Combiner Rule #56: select_of_zext
6279 /* 5340 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner23),
6280 /* 5343 */ // Label 296: @5343
6281 /* 5343 */ GIM_Try, /*On fail goto*//*Label 297*/ GIMT_Encode4(5364), // Rule ID 51 //
6282 /* 5348 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule49Enabled),
6283 /* 5351 */ // MIs[0] root
6284 /* 5351 */ // No operand predicates
6285 /* 5351 */ // MIs[0] second
6286 /* 5351 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6287 /* 5355 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ANYEXT),
6288 /* 5359 */ // MIs[1] src
6289 /* 5359 */ // No operand predicates
6290 /* 5359 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6291 /* 5361 */ // Combiner Rule #49: zext_of_anyext
6292 /* 5361 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6293 /* 5364 */ // Label 297: @5364
6294 /* 5364 */ GIM_Try, /*On fail goto*//*Label 298*/ GIMT_Encode4(5391), // Rule ID 361 //
6295 /* 5369 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule213Enabled),
6296 /* 5372 */ // MIs[0] root
6297 /* 5372 */ // No operand predicates
6298 /* 5372 */ // MIs[0] src
6299 /* 5372 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6300 /* 5376 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
6301 /* 5380 */ GIM_MIFlags, /*MI*/1, GIMT_Encode4(MachineInstr::NoUWrap),
6302 /* 5386 */ // MIs[1] x
6303 /* 5386 */ // No operand predicates
6304 /* 5386 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6305 /* 5388 */ // Combiner Rule #213: zext_trunc
6306 /* 5388 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner134),
6307 /* 5391 */ // Label 298: @5391
6308 /* 5391 */ GIM_Try, /*On fail goto*//*Label 299*/ GIMT_Encode4(5412), // Rule ID 50 //
6309 /* 5396 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule48Enabled),
6310 /* 5399 */ // MIs[0] root
6311 /* 5399 */ // No operand predicates
6312 /* 5399 */ // MIs[0] second
6313 /* 5399 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6314 /* 5403 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ZEXT),
6315 /* 5407 */ // MIs[1] src
6316 /* 5407 */ // No operand predicates
6317 /* 5407 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6318 /* 5409 */ // Combiner Rule #48: zext_of_zext
6319 /* 5409 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner21),
6320 /* 5412 */ // Label 299: @5412
6321 /* 5412 */ GIM_Try, /*On fail goto*//*Label 300*/ GIMT_Encode4(5429), // Rule ID 362 //
6322 /* 5417 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule214Enabled),
6323 /* 5420 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NonNeg),
6324 /* 5426 */ // MIs[0] root
6325 /* 5426 */ // No operand predicates
6326 /* 5426 */ // MIs[0] x
6327 /* 5426 */ // No operand predicates
6328 /* 5426 */ // Combiner Rule #214: nneg_zext
6329 /* 5426 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner135),
6330 /* 5429 */ // Label 300: @5429
6331 /* 5429 */ GIM_Reject,
6332 /* 5430 */ // Label 34: @5430
6333 /* 5430 */ GIM_Try, /*On fail goto*//*Label 301*/ GIMT_Encode4(5441), // Rule ID 82 //
6334 /* 5435 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule76Enabled),
6335 /* 5438 */ // Combiner Rule #76: binop_left_undef_to_zero; wip_match_opcode 'G_SHL'
6336 /* 5438 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
6337 /* 5441 */ // Label 301: @5441
6338 /* 5441 */ GIM_Try, /*On fail goto*//*Label 302*/ GIMT_Encode4(5452), // Rule ID 85 //
6339 /* 5446 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6340 /* 5449 */ // Combiner Rule #77: binop_right_undef_to_undef; wip_match_opcode 'G_SHL'
6341 /* 5449 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
6342 /* 5452 */ // Label 302: @5452
6343 /* 5452 */ GIM_Try, /*On fail goto*//*Label 303*/ GIMT_Encode4(5463), // Rule ID 212 //
6344 /* 5457 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
6345 /* 5460 */ // Combiner Rule #161: shift_immed_chain; wip_match_opcode 'G_SHL'
6346 /* 5460 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
6347 /* 5463 */ // Label 303: @5463
6348 /* 5463 */ GIM_Try, /*On fail goto*//*Label 304*/ GIMT_Encode4(5474), // Rule ID 217 //
6349 /* 5468 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
6350 /* 5471 */ // Combiner Rule #162: shift_of_shifted_logic_chain; wip_match_opcode 'G_SHL'
6351 /* 5471 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6352 /* 5474 */ // Label 304: @5474
6353 /* 5474 */ GIM_Try, /*On fail goto*//*Label 305*/ GIMT_Encode4(5485), // Rule ID 240 //
6354 /* 5479 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule174Enabled),
6355 /* 5482 */ // Combiner Rule #174: commute_shift; wip_match_opcode 'G_SHL'
6356 /* 5482 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner98),
6357 /* 5485 */ // Label 305: @5485
6358 /* 5485 */ GIM_Try, /*On fail goto*//*Label 306*/ GIMT_Encode4(5496), // Rule ID 254 //
6359 /* 5490 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
6360 /* 5493 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_SHL'
6361 /* 5493 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
6362 /* 5496 */ // Label 306: @5496
6363 /* 5496 */ GIM_Try, /*On fail goto*//*Label 307*/ GIMT_Encode4(5507), // Rule ID 303 //
6364 /* 5501 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
6365 /* 5504 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_SHL'
6366 /* 5504 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
6367 /* 5507 */ // Label 307: @5507
6368 /* 5507 */ GIM_Try, /*On fail goto*//*Label 308*/ GIMT_Encode4(5542), // Rule ID 43 //
6369 /* 5512 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule41Enabled),
6370 /* 5515 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::NoSWrap),
6371 /* 5521 */ // MIs[0] root
6372 /* 5521 */ // No operand predicates
6373 /* 5521 */ // MIs[0] left
6374 /* 5521 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6375 /* 5525 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_VSCALE),
6376 /* 5529 */ // MIs[1] imm
6377 /* 5529 */ // No operand predicates
6378 /* 5529 */ // MIs[0] x
6379 /* 5529 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
6380 /* 5533 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6381 /* 5537 */ // MIs[2] imm1
6382 /* 5537 */ // No operand predicates
6383 /* 5537 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6384 /* 5539 */ // Combiner Rule #41: shl_of_vscale
6385 /* 5539 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner17),
6386 /* 5542 */ // Label 308: @5542
6387 /* 5542 */ GIM_Try, /*On fail goto*//*Label 309*/ GIMT_Encode4(5582), // Rule ID 118 //
6388 /* 5547 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
6389 /* 5550 */ // MIs[0] dst
6390 /* 5550 */ // No operand predicates
6391 /* 5550 */ // MIs[0] zero
6392 /* 5550 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6393 /* 5554 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6394 /* 5558 */ // MIs[1] Operand 1
6395 /* 5558 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
6396 /* 5569 */ // MIs[0] rhs
6397 /* 5569 */ // No operand predicates
6398 /* 5569 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6399 /* 5574 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6400 /* 5576 */ // Combiner Rule #88: binop_left_to_zero @ [__binop_left_to_zero_match_0[0]]
6401 /* 5576 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6402 /* 5581 */ GIR_EraseRootFromParent_Done,
6403 /* 5582 */ // Label 309: @5582
6404 /* 5582 */ GIM_Try, /*On fail goto*//*Label 310*/ GIMT_Encode4(5605), // Rule ID 110 //
6405 /* 5587 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
6406 /* 5590 */ // MIs[0] dst
6407 /* 5590 */ // No operand predicates
6408 /* 5590 */ // MIs[0] lhs
6409 /* 5590 */ // No operand predicates
6410 /* 5590 */ // MIs[0] Operand 2
6411 /* 5590 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6412 /* 5594 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6413 /* 5599 */ // Combiner Rule #86: right_identity_zero @ [__right_identity_zero_match_0[4]]
6414 /* 5599 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6415 /* 5604 */ GIR_EraseRootFromParent_Done,
6416 /* 5605 */ // Label 310: @5605
6417 /* 5605 */ GIM_Try, /*On fail goto*//*Label 311*/ GIMT_Encode4(5616), // Rule ID 149 //
6418 /* 5610 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule108Enabled),
6419 /* 5613 */ // MIs[0] root
6420 /* 5613 */ // No operand predicates
6421 /* 5613 */ // MIs[0] mi.shifted
6422 /* 5613 */ // No operand predicates
6423 /* 5613 */ // MIs[0] mi.amt
6424 /* 5613 */ // No operand predicates
6425 /* 5613 */ // Combiner Rule #108: shifts_too_big @ [mi[0]]
6426 /* 5613 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
6427 /* 5616 */ // Label 311: @5616
6428 /* 5616 */ GIM_Try, /*On fail goto*//*Label 312*/ GIMT_Encode4(5627), // Rule ID 165 //
6429 /* 5621 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule122Enabled),
6430 /* 5624 */ // MIs[0] dst
6431 /* 5624 */ // No operand predicates
6432 /* 5624 */ // MIs[0] src0
6433 /* 5624 */ // No operand predicates
6434 /* 5624 */ // MIs[0] src1
6435 /* 5624 */ // No operand predicates
6436 /* 5624 */ // Combiner Rule #122: reduce_shl_of_extend
6437 /* 5624 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner66),
6438 /* 5627 */ // Label 312: @5627
6439 /* 5627 */ GIM_Reject,
6440 /* 5628 */ // Label 35: @5628
6441 /* 5628 */ GIM_Try, /*On fail goto*//*Label 313*/ GIMT_Encode4(5639), // Rule ID 87 //
6442 /* 5633 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6443 /* 5636 */ // Combiner Rule #77: binop_right_undef_to_undef; wip_match_opcode 'G_LSHR'
6444 /* 5636 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
6445 /* 5639 */ // Label 313: @5639
6446 /* 5639 */ GIM_Try, /*On fail goto*//*Label 314*/ GIMT_Encode4(5650), // Rule ID 214 //
6447 /* 5644 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
6448 /* 5647 */ // Combiner Rule #161: shift_immed_chain; wip_match_opcode 'G_LSHR'
6449 /* 5647 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
6450 /* 5650 */ // Label 314: @5650
6451 /* 5650 */ GIM_Try, /*On fail goto*//*Label 315*/ GIMT_Encode4(5661), // Rule ID 219 //
6452 /* 5655 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
6453 /* 5658 */ // Combiner Rule #162: shift_of_shifted_logic_chain; wip_match_opcode 'G_LSHR'
6454 /* 5658 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6455 /* 5661 */ // Label 315: @5661
6456 /* 5661 */ GIM_Try, /*On fail goto*//*Label 316*/ GIMT_Encode4(5672), // Rule ID 244 //
6457 /* 5666 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled),
6458 /* 5669 */ // Combiner Rule #177: bitfield_extract_from_shr; wip_match_opcode 'G_LSHR'
6459 /* 5669 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
6460 /* 5672 */ // Label 316: @5672
6461 /* 5672 */ GIM_Try, /*On fail goto*//*Label 317*/ GIMT_Encode4(5683), // Rule ID 246 //
6462 /* 5677 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
6463 /* 5680 */ // Combiner Rule #178: bitfield_extract_from_shr_and; wip_match_opcode 'G_LSHR'
6464 /* 5680 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
6465 /* 5683 */ // Label 317: @5683
6466 /* 5683 */ GIM_Try, /*On fail goto*//*Label 318*/ GIMT_Encode4(5694), // Rule ID 251 //
6467 /* 5688 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
6468 /* 5691 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_LSHR'
6469 /* 5691 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
6470 /* 5694 */ // Label 318: @5694
6471 /* 5694 */ GIM_Try, /*On fail goto*//*Label 319*/ GIMT_Encode4(5705), // Rule ID 301 //
6472 /* 5699 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
6473 /* 5702 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_LSHR'
6474 /* 5702 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
6475 /* 5705 */ // Label 319: @5705
6476 /* 5705 */ GIM_Try, /*On fail goto*//*Label 320*/ GIMT_Encode4(5734), // Rule ID 385 //
6477 /* 5710 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule235Enabled),
6478 /* 5713 */ // MIs[0] dst
6479 /* 5713 */ // No operand predicates
6480 /* 5713 */ // MIs[0] d2
6481 /* 5713 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6482 /* 5717 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_TRUNC),
6483 /* 5721 */ // MIs[1] d1
6484 /* 5721 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
6485 /* 5725 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_LSHR),
6486 /* 5729 */ // MIs[2] x
6487 /* 5729 */ // No operand predicates
6488 /* 5729 */ // MIs[2] y
6489 /* 5729 */ // No operand predicates
6490 /* 5729 */ // MIs[0] z
6491 /* 5729 */ // No operand predicates
6492 /* 5729 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
6493 /* 5731 */ // Combiner Rule #235: lshr_of_trunc_of_lshr
6494 /* 5731 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner154),
6495 /* 5734 */ // Label 320: @5734
6496 /* 5734 */ GIM_Try, /*On fail goto*//*Label 321*/ GIMT_Encode4(5774), // Rule ID 119 //
6497 /* 5739 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
6498 /* 5742 */ // MIs[0] dst
6499 /* 5742 */ // No operand predicates
6500 /* 5742 */ // MIs[0] zero
6501 /* 5742 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6502 /* 5746 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6503 /* 5750 */ // MIs[1] Operand 1
6504 /* 5750 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
6505 /* 5761 */ // MIs[0] rhs
6506 /* 5761 */ // No operand predicates
6507 /* 5761 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6508 /* 5766 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6509 /* 5768 */ // Combiner Rule #88: binop_left_to_zero @ [__binop_left_to_zero_match_0[1]]
6510 /* 5768 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6511 /* 5773 */ GIR_EraseRootFromParent_Done,
6512 /* 5774 */ // Label 321: @5774
6513 /* 5774 */ GIM_Try, /*On fail goto*//*Label 322*/ GIMT_Encode4(5797), // Rule ID 112 //
6514 /* 5779 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
6515 /* 5782 */ // MIs[0] dst
6516 /* 5782 */ // No operand predicates
6517 /* 5782 */ // MIs[0] lhs
6518 /* 5782 */ // No operand predicates
6519 /* 5782 */ // MIs[0] Operand 2
6520 /* 5782 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6521 /* 5786 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6522 /* 5791 */ // Combiner Rule #86: right_identity_zero @ [__right_identity_zero_match_0[6]]
6523 /* 5791 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6524 /* 5796 */ GIR_EraseRootFromParent_Done,
6525 /* 5797 */ // Label 322: @5797
6526 /* 5797 */ GIM_Try, /*On fail goto*//*Label 323*/ GIMT_Encode4(5808), // Rule ID 151 //
6527 /* 5802 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule108Enabled),
6528 /* 5805 */ // MIs[0] root
6529 /* 5805 */ // No operand predicates
6530 /* 5805 */ // MIs[0] mi.shifted
6531 /* 5805 */ // No operand predicates
6532 /* 5805 */ // MIs[0] mi.amt
6533 /* 5805 */ // No operand predicates
6534 /* 5805 */ // Combiner Rule #108: shifts_too_big @ [mi[2]]
6535 /* 5805 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
6536 /* 5808 */ // Label 323: @5808
6537 /* 5808 */ GIM_Reject,
6538 /* 5809 */ // Label 36: @5809
6539 /* 5809 */ GIM_Try, /*On fail goto*//*Label 324*/ GIMT_Encode4(5820), // Rule ID 86 //
6540 /* 5814 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule77Enabled),
6541 /* 5817 */ // Combiner Rule #77: binop_right_undef_to_undef; wip_match_opcode 'G_ASHR'
6542 /* 5817 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner37),
6543 /* 5820 */ // Label 324: @5820
6544 /* 5820 */ GIM_Try, /*On fail goto*//*Label 325*/ GIMT_Encode4(5831), // Rule ID 162 //
6545 /* 5825 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule119Enabled),
6546 /* 5828 */ // Combiner Rule #119: shl_ashr_to_sext_inreg; wip_match_opcode 'G_ASHR'
6547 /* 5828 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner64),
6548 /* 5831 */ // Label 325: @5831
6549 /* 5831 */ GIM_Try, /*On fail goto*//*Label 326*/ GIMT_Encode4(5842), // Rule ID 213 //
6550 /* 5836 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
6551 /* 5839 */ // Combiner Rule #161: shift_immed_chain; wip_match_opcode 'G_ASHR'
6552 /* 5839 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
6553 /* 5842 */ // Label 326: @5842
6554 /* 5842 */ GIM_Try, /*On fail goto*//*Label 327*/ GIMT_Encode4(5853), // Rule ID 218 //
6555 /* 5847 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
6556 /* 5850 */ // Combiner Rule #162: shift_of_shifted_logic_chain; wip_match_opcode 'G_ASHR'
6557 /* 5850 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6558 /* 5853 */ // Label 327: @5853
6559 /* 5853 */ GIM_Try, /*On fail goto*//*Label 328*/ GIMT_Encode4(5864), // Rule ID 243 //
6560 /* 5858 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule177Enabled),
6561 /* 5861 */ // Combiner Rule #177: bitfield_extract_from_shr; wip_match_opcode 'G_ASHR'
6562 /* 5861 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner101),
6563 /* 5864 */ // Label 328: @5864
6564 /* 5864 */ GIM_Try, /*On fail goto*//*Label 329*/ GIMT_Encode4(5875), // Rule ID 245 //
6565 /* 5869 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule178Enabled),
6566 /* 5872 */ // Combiner Rule #178: bitfield_extract_from_shr_and; wip_match_opcode 'G_ASHR'
6567 /* 5872 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner102),
6568 /* 5875 */ // Label 329: @5875
6569 /* 5875 */ GIM_Try, /*On fail goto*//*Label 330*/ GIMT_Encode4(5886), // Rule ID 250 //
6570 /* 5880 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
6571 /* 5883 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_ASHR'
6572 /* 5883 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
6573 /* 5886 */ // Label 330: @5886
6574 /* 5886 */ GIM_Try, /*On fail goto*//*Label 331*/ GIMT_Encode4(5897), // Rule ID 302 //
6575 /* 5891 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
6576 /* 5894 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_ASHR'
6577 /* 5894 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
6578 /* 5897 */ // Label 331: @5897
6579 /* 5897 */ GIM_Try, /*On fail goto*//*Label 332*/ GIMT_Encode4(5937), // Rule ID 120 //
6580 /* 5902 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule88Enabled),
6581 /* 5905 */ // MIs[0] dst
6582 /* 5905 */ // No operand predicates
6583 /* 5905 */ // MIs[0] zero
6584 /* 5905 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6585 /* 5909 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
6586 /* 5913 */ // MIs[1] Operand 1
6587 /* 5913 */ GIM_CheckLiteralInt, /*MI*/1, /*Op*/1, GIMT_Encode8(0),
6588 /* 5924 */ // MIs[0] rhs
6589 /* 5924 */ // No operand predicates
6590 /* 5924 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6591 /* 5929 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6592 /* 5931 */ // Combiner Rule #88: binop_left_to_zero @ [__binop_left_to_zero_match_0[2]]
6593 /* 5931 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6594 /* 5936 */ GIR_EraseRootFromParent_Done,
6595 /* 5937 */ // Label 332: @5937
6596 /* 5937 */ GIM_Try, /*On fail goto*//*Label 333*/ GIMT_Encode4(5960), // Rule ID 111 //
6597 /* 5942 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
6598 /* 5945 */ // MIs[0] dst
6599 /* 5945 */ // No operand predicates
6600 /* 5945 */ // MIs[0] lhs
6601 /* 5945 */ // No operand predicates
6602 /* 5945 */ // MIs[0] Operand 2
6603 /* 5945 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6604 /* 5949 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6605 /* 5954 */ // Combiner Rule #86: right_identity_zero @ [__right_identity_zero_match_0[5]]
6606 /* 5954 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6607 /* 5959 */ GIR_EraseRootFromParent_Done,
6608 /* 5960 */ // Label 333: @5960
6609 /* 5960 */ GIM_Try, /*On fail goto*//*Label 334*/ GIMT_Encode4(5971), // Rule ID 150 //
6610 /* 5965 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule108Enabled),
6611 /* 5968 */ // MIs[0] root
6612 /* 5968 */ // No operand predicates
6613 /* 5968 */ // MIs[0] mi.shifted
6614 /* 5968 */ // No operand predicates
6615 /* 5968 */ // MIs[0] mi.amt
6616 /* 5968 */ // No operand predicates
6617 /* 5968 */ // Combiner Rule #108: shifts_too_big @ [mi[1]]
6618 /* 5968 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner55),
6619 /* 5971 */ // Label 334: @5971
6620 /* 5971 */ GIM_Reject,
6621 /* 5972 */ // Label 37: @5972
6622 /* 5972 */ GIM_Try, /*On fail goto*//*Label 335*/ GIMT_Encode4(5983), // Rule ID 228 //
6623 /* 5977 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
6624 /* 5980 */ // Combiner Rule #166: funnel_shift_to_rotate; wip_match_opcode 'G_FSHL'
6625 /* 5980 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
6626 /* 5983 */ // Label 335: @5983
6627 /* 5983 */ GIM_Try, /*On fail goto*//*Label 336*/ GIMT_Encode4(5994), // Rule ID 232 //
6628 /* 5988 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
6629 /* 5991 */ // Combiner Rule #169: funnel_shift_overshift; wip_match_opcode 'G_FSHL'
6630 /* 5991 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
6631 /* 5994 */ // Label 336: @5994
6632 /* 5994 */ GIM_Try, /*On fail goto*//*Label 337*/ GIMT_Encode4(6014), // Rule ID 231 //
6633 /* 5999 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule168Enabled),
6634 /* 6002 */ // MIs[0] x
6635 /* 6002 */ // No operand predicates
6636 /* 6002 */ // MIs[0] y
6637 /* 6002 */ // No operand predicates
6638 /* 6002 */ // MIs[0] z
6639 /* 6002 */ // No operand predicates
6640 /* 6002 */ // MIs[0] Operand 3
6641 /* 6002 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
6642 /* 6006 */ // Combiner Rule #168: funnel_shift_left_zero
6643 /* 6006 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
6644 /* 6009 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
6645 /* 6011 */ GIR_RootToRootCopy, /*OpIdx*/1, // y
6646 /* 6013 */ GIR_EraseRootFromParent_Done,
6647 /* 6014 */ // Label 337: @6014
6648 /* 6014 */ GIM_Reject,
6649 /* 6015 */ // Label 38: @6015
6650 /* 6015 */ GIM_Try, /*On fail goto*//*Label 338*/ GIMT_Encode4(6026), // Rule ID 229 //
6651 /* 6020 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule166Enabled),
6652 /* 6023 */ // Combiner Rule #166: funnel_shift_to_rotate; wip_match_opcode 'G_FSHR'
6653 /* 6023 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner96),
6654 /* 6026 */ // Label 338: @6026
6655 /* 6026 */ GIM_Try, /*On fail goto*//*Label 339*/ GIMT_Encode4(6037), // Rule ID 233 //
6656 /* 6031 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule169Enabled),
6657 /* 6034 */ // Combiner Rule #169: funnel_shift_overshift; wip_match_opcode 'G_FSHR'
6658 /* 6034 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner97),
6659 /* 6037 */ // Label 339: @6037
6660 /* 6037 */ GIM_Try, /*On fail goto*//*Label 340*/ GIMT_Encode4(6057), // Rule ID 230 //
6661 /* 6042 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule167Enabled),
6662 /* 6045 */ // MIs[0] x
6663 /* 6045 */ // No operand predicates
6664 /* 6045 */ // MIs[0] y
6665 /* 6045 */ // No operand predicates
6666 /* 6045 */ // MIs[0] z
6667 /* 6045 */ // No operand predicates
6668 /* 6045 */ // MIs[0] Operand 3
6669 /* 6045 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/3, 0,
6670 /* 6049 */ // Combiner Rule #167: funnel_shift_right_zero
6671 /* 6049 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::COPY),
6672 /* 6052 */ GIR_RootToRootCopy, /*OpIdx*/0, // x
6673 /* 6054 */ GIR_RootToRootCopy, /*OpIdx*/2, // z
6674 /* 6056 */ GIR_EraseRootFromParent_Done,
6675 /* 6057 */ // Label 340: @6057
6676 /* 6057 */ GIM_Reject,
6677 /* 6058 */ // Label 39: @6058
6678 /* 6058 */ GIM_Try, /*On fail goto*//*Label 341*/ GIMT_Encode4(6081), // Rule ID 115 //
6679 /* 6063 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
6680 /* 6066 */ // MIs[0] dst
6681 /* 6066 */ // No operand predicates
6682 /* 6066 */ // MIs[0] lhs
6683 /* 6066 */ // No operand predicates
6684 /* 6066 */ // MIs[0] Operand 2
6685 /* 6066 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6686 /* 6070 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6687 /* 6075 */ // Combiner Rule #86: right_identity_zero @ [__right_identity_zero_match_0[9]]
6688 /* 6075 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6689 /* 6080 */ GIR_EraseRootFromParent_Done,
6690 /* 6081 */ // Label 341: @6081
6691 /* 6081 */ GIM_Reject,
6692 /* 6082 */ // Label 40: @6082
6693 /* 6082 */ GIM_Try, /*On fail goto*//*Label 342*/ GIMT_Encode4(6105), // Rule ID 114 //
6694 /* 6087 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
6695 /* 6090 */ // MIs[0] dst
6696 /* 6090 */ // No operand predicates
6697 /* 6090 */ // MIs[0] lhs
6698 /* 6090 */ // No operand predicates
6699 /* 6090 */ // MIs[0] Operand 2
6700 /* 6090 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
6701 /* 6094 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6702 /* 6099 */ // Combiner Rule #86: right_identity_zero @ [__right_identity_zero_match_0[8]]
6703 /* 6099 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
6704 /* 6104 */ GIR_EraseRootFromParent_Done,
6705 /* 6105 */ // Label 342: @6105
6706 /* 6105 */ GIM_Reject,
6707 /* 6106 */ // Label 41: @6106
6708 /* 6106 */ GIM_Try, /*On fail goto*//*Label 343*/ GIMT_Encode4(6117), // Rule ID 157 //
6709 /* 6111 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule114Enabled),
6710 /* 6114 */ // Combiner Rule #114: icmp_to_true_false_known_bits; wip_match_opcode 'G_ICMP'
6711 /* 6114 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner61),
6712 /* 6117 */ // Label 343: @6117
6713 /* 6117 */ GIM_Try, /*On fail goto*//*Label 344*/ GIMT_Encode4(6128), // Rule ID 158 //
6714 /* 6122 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule115Enabled),
6715 /* 6125 */ // Combiner Rule #115: icmp_to_lhs_known_bits; wip_match_opcode 'G_ICMP'
6716 /* 6125 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner62),
6717 /* 6128 */ // Label 344: @6128
6718 /* 6128 */ GIM_Try, /*On fail goto*//*Label 345*/ GIMT_Encode4(6139), // Rule ID 161 //
6719 /* 6133 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule118Enabled),
6720 /* 6136 */ // Combiner Rule #118: redundant_binop_in_equality; wip_match_opcode 'G_ICMP'
6721 /* 6136 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner63),
6722 /* 6139 */ // Label 345: @6139
6723 /* 6139 */ GIM_Try, /*On fail goto*//*Label 346*/ GIMT_Encode4(6150), // Rule ID 155 //
6724 /* 6144 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule112Enabled),
6725 /* 6147 */ // MIs[0] root
6726 /* 6147 */ // No operand predicates
6727 /* 6147 */ // MIs[0] pred
6728 /* 6147 */ // No operand predicates
6729 /* 6147 */ // MIs[0] lhs
6730 /* 6147 */ // No operand predicates
6731 /* 6147 */ // MIs[0] rhs
6732 /* 6147 */ // No operand predicates
6733 /* 6147 */ // Combiner Rule #112: canonicalize_icmp
6734 /* 6147 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner59),
6735 /* 6150 */ // Label 346: @6150
6736 /* 6150 */ GIM_Reject,
6737 /* 6151 */ // Label 42: @6151
6738 /* 6151 */ GIM_Try, /*On fail goto*//*Label 347*/ GIMT_Encode4(6162), // Rule ID 156 //
6739 /* 6156 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule113Enabled),
6740 /* 6159 */ // MIs[0] root
6741 /* 6159 */ // No operand predicates
6742 /* 6159 */ // MIs[0] pred
6743 /* 6159 */ // No operand predicates
6744 /* 6159 */ // MIs[0] lhs
6745 /* 6159 */ // No operand predicates
6746 /* 6159 */ // MIs[0] rhs
6747 /* 6159 */ // No operand predicates
6748 /* 6159 */ // Combiner Rule #113: canonicalize_fcmp
6749 /* 6159 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner60),
6750 /* 6162 */ // Label 347: @6162
6751 /* 6162 */ GIM_Reject,
6752 /* 6163 */ // Label 43: @6163
6753 /* 6163 */ GIM_Try, /*On fail goto*//*Label 348*/ GIMT_Encode4(6174), // Rule ID 105 //
6754 /* 6168 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule85Enabled),
6755 /* 6171 */ // Combiner Rule #85: select_same_val; wip_match_opcode 'G_SELECT'
6756 /* 6171 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner44),
6757 /* 6174 */ // Label 348: @6174
6758 /* 6174 */ GIM_Try, /*On fail goto*//*Label 349*/ GIMT_Encode4(6185), // Rule ID 168 //
6759 /* 6179 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule125Enabled),
6760 /* 6182 */ // Combiner Rule #125: select_constant_cmp; wip_match_opcode 'G_SELECT'
6761 /* 6182 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner68),
6762 /* 6185 */ // Label 349: @6185
6763 /* 6185 */ GIM_Try, /*On fail goto*//*Label 350*/ GIMT_Encode4(6196), // Rule ID 170 //
6764 /* 6190 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule127Enabled),
6765 /* 6193 */ // Combiner Rule #127: match_selects; wip_match_opcode 'G_SELECT'
6766 /* 6193 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner70),
6767 /* 6196 */ // Label 350: @6196
6768 /* 6196 */ GIM_Try, /*On fail goto*//*Label 351*/ GIMT_Encode4(6207), // Rule ID 325 //
6769 /* 6201 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule204Enabled),
6770 /* 6204 */ // Combiner Rule #204: select_to_minmax; wip_match_opcode 'G_SELECT'
6771 /* 6204 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner125),
6772 /* 6207 */ // Label 351: @6207
6773 /* 6207 */ GIM_Try, /*On fail goto*//*Label 352*/ GIMT_Encode4(6228), // Rule ID 169 //
6774 /* 6212 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule126Enabled),
6775 /* 6215 */ // MIs[0] root
6776 /* 6215 */ // No operand predicates
6777 /* 6215 */ // MIs[0] tst
6778 /* 6215 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6779 /* 6219 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_ICMP),
6780 /* 6223 */ // MIs[1] tst1
6781 /* 6223 */ // No operand predicates
6782 /* 6223 */ // MIs[1] a
6783 /* 6223 */ // No operand predicates
6784 /* 6223 */ // MIs[1] b
6785 /* 6223 */ // No operand predicates
6786 /* 6223 */ // MIs[0] x
6787 /* 6223 */ // No operand predicates
6788 /* 6223 */ // MIs[0] y
6789 /* 6223 */ // No operand predicates
6790 /* 6223 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6791 /* 6225 */ // Combiner Rule #126: select_to_iminmax
6792 /* 6225 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner69),
6793 /* 6228 */ // Label 352: @6228
6794 /* 6228 */ GIM_Try, /*On fail goto*//*Label 353*/ GIMT_Encode4(6257), // Rule ID 167 //
6795 /* 6233 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule124Enabled),
6796 /* 6236 */ // MIs[0] dst
6797 /* 6236 */ // No operand predicates
6798 /* 6236 */ // MIs[0] undef
6799 /* 6236 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
6800 /* 6240 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
6801 /* 6244 */ // MIs[0] x
6802 /* 6244 */ // No operand predicates
6803 /* 6244 */ // MIs[0] y
6804 /* 6244 */ // No operand predicates
6805 /* 6244 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
6806 /* 6249 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
6807 /* 6251 */ // Combiner Rule #124: select_undef_cmp
6808 /* 6251 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/3,
6809 /* 6256 */ GIR_EraseRootFromParent_Done,
6810 /* 6257 */ // Label 353: @6257
6811 /* 6257 */ GIM_Reject,
6812 /* 6258 */ // Label 44: @6258
6813 /* 6258 */ GIM_Try, /*On fail goto*//*Label 354*/ GIMT_Encode4(6269), // Rule ID 336 //
6814 /* 6263 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
6815 /* 6266 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDO'
6816 /* 6266 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6817 /* 6269 */ // Label 354: @6269
6818 /* 6269 */ GIM_Try, /*On fail goto*//*Label 355*/ GIMT_Encode4(6280), // Rule ID 378 //
6819 /* 6274 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule229Enabled),
6820 /* 6277 */ // Combiner Rule #229: match_addos; wip_match_opcode 'G_UADDO'
6821 /* 6277 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner150),
6822 /* 6280 */ // Label 355: @6280
6823 /* 6280 */ GIM_Reject,
6824 /* 6281 */ // Label 45: @6281
6825 /* 6281 */ GIM_Try, /*On fail goto*//*Label 356*/ GIMT_Encode4(6292), // Rule ID 201 //
6826 /* 6286 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
6827 /* 6289 */ // Combiner Rule #156: adde_to_addo; wip_match_opcode 'G_UADDE'
6828 /* 6289 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
6829 /* 6292 */ // Label 356: @6292
6830 /* 6292 */ GIM_Reject,
6831 /* 6293 */ // Label 46: @6293
6832 /* 6293 */ GIM_Try, /*On fail goto*//*Label 357*/ GIMT_Encode4(6304), // Rule ID 380 //
6833 /* 6298 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule230Enabled),
6834 /* 6301 */ // Combiner Rule #230: match_subo_no_overflow; wip_match_opcode 'G_USUBO'
6835 /* 6301 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner151),
6836 /* 6304 */ // Label 357: @6304
6837 /* 6304 */ GIM_Reject,
6838 /* 6305 */ // Label 47: @6305
6839 /* 6305 */ GIM_Try, /*On fail goto*//*Label 358*/ GIMT_Encode4(6316), // Rule ID 203 //
6840 /* 6310 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
6841 /* 6313 */ // Combiner Rule #156: adde_to_addo; wip_match_opcode 'G_USUBE'
6842 /* 6313 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
6843 /* 6316 */ // Label 358: @6316
6844 /* 6316 */ GIM_Reject,
6845 /* 6317 */ // Label 48: @6317
6846 /* 6317 */ GIM_Try, /*On fail goto*//*Label 359*/ GIMT_Encode4(6328), // Rule ID 337 //
6847 /* 6322 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
6848 /* 6325 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDO'
6849 /* 6325 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6850 /* 6328 */ // Label 359: @6328
6851 /* 6328 */ GIM_Try, /*On fail goto*//*Label 360*/ GIMT_Encode4(6339), // Rule ID 377 //
6852 /* 6333 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule229Enabled),
6853 /* 6336 */ // Combiner Rule #229: match_addos; wip_match_opcode 'G_SADDO'
6854 /* 6336 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner150),
6855 /* 6339 */ // Label 360: @6339
6856 /* 6339 */ GIM_Reject,
6857 /* 6340 */ // Label 49: @6340
6858 /* 6340 */ GIM_Try, /*On fail goto*//*Label 361*/ GIMT_Encode4(6351), // Rule ID 202 //
6859 /* 6345 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
6860 /* 6348 */ // Combiner Rule #156: adde_to_addo; wip_match_opcode 'G_SADDE'
6861 /* 6348 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
6862 /* 6351 */ // Label 361: @6351
6863 /* 6351 */ GIM_Reject,
6864 /* 6352 */ // Label 50: @6352
6865 /* 6352 */ GIM_Try, /*On fail goto*//*Label 362*/ GIMT_Encode4(6363), // Rule ID 379 //
6866 /* 6357 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule230Enabled),
6867 /* 6360 */ // Combiner Rule #230: match_subo_no_overflow; wip_match_opcode 'G_SSUBO'
6868 /* 6360 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner151),
6869 /* 6363 */ // Label 362: @6363
6870 /* 6363 */ GIM_Reject,
6871 /* 6364 */ // Label 51: @6364
6872 /* 6364 */ GIM_Try, /*On fail goto*//*Label 363*/ GIMT_Encode4(6375), // Rule ID 204 //
6873 /* 6369 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule156Enabled),
6874 /* 6372 */ // Combiner Rule #156: adde_to_addo; wip_match_opcode 'G_SSUBE'
6875 /* 6372 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner86),
6876 /* 6375 */ // Label 363: @6375
6877 /* 6375 */ GIM_Reject,
6878 /* 6376 */ // Label 52: @6376
6879 /* 6376 */ GIM_Try, /*On fail goto*//*Label 364*/ GIMT_Encode4(6387), // Rule ID 197 //
6880 /* 6381 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule154Enabled),
6881 /* 6384 */ // Combiner Rule #154: mulo_by_2; wip_match_opcode 'G_UMULO'
6882 /* 6384 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
6883 /* 6387 */ // Label 364: @6387
6884 /* 6387 */ GIM_Try, /*On fail goto*//*Label 365*/ GIMT_Encode4(6398), // Rule ID 199 //
6885 /* 6392 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
6886 /* 6395 */ // Combiner Rule #155: mulo_by_0; wip_match_opcode 'G_UMULO'
6887 /* 6395 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
6888 /* 6398 */ // Label 365: @6398
6889 /* 6398 */ GIM_Try, /*On fail goto*//*Label 366*/ GIMT_Encode4(6409), // Rule ID 338 //
6890 /* 6403 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
6891 /* 6406 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULO'
6892 /* 6406 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6893 /* 6409 */ // Label 366: @6409
6894 /* 6409 */ GIM_Reject,
6895 /* 6410 */ // Label 53: @6410
6896 /* 6410 */ GIM_Try, /*On fail goto*//*Label 367*/ GIMT_Encode4(6421), // Rule ID 198 //
6897 /* 6415 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule154Enabled),
6898 /* 6418 */ // Combiner Rule #154: mulo_by_2; wip_match_opcode 'G_SMULO'
6899 /* 6418 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner84),
6900 /* 6421 */ // Label 367: @6421
6901 /* 6421 */ GIM_Try, /*On fail goto*//*Label 368*/ GIMT_Encode4(6432), // Rule ID 200 //
6902 /* 6426 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule155Enabled),
6903 /* 6429 */ // Combiner Rule #155: mulo_by_0; wip_match_opcode 'G_SMULO'
6904 /* 6429 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner85),
6905 /* 6432 */ // Label 368: @6432
6906 /* 6432 */ GIM_Try, /*On fail goto*//*Label 369*/ GIMT_Encode4(6443), // Rule ID 339 //
6907 /* 6437 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
6908 /* 6440 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULO'
6909 /* 6440 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6910 /* 6443 */ // Label 369: @6443
6911 /* 6443 */ GIM_Reject,
6912 /* 6444 */ // Label 54: @6444
6913 /* 6444 */ GIM_Try, /*On fail goto*//*Label 370*/ GIMT_Encode4(6455), // Rule ID 275 //
6914 /* 6449 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule184Enabled),
6915 /* 6452 */ // Combiner Rule #184: mulh_to_lshr; wip_match_opcode 'G_UMULH'
6916 /* 6452 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner107),
6917 /* 6455 */ // Label 370: @6455
6918 /* 6455 */ GIM_Try, /*On fail goto*//*Label 371*/ GIMT_Encode4(6466), // Rule ID 340 //
6919 /* 6460 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
6920 /* 6463 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULH'
6921 /* 6463 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6922 /* 6466 */ // Label 371: @6466
6923 /* 6466 */ GIM_Reject,
6924 /* 6467 */ // Label 55: @6467
6925 /* 6467 */ GIM_Try, /*On fail goto*//*Label 372*/ GIMT_Encode4(6478), // Rule ID 341 //
6926 /* 6472 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
6927 /* 6475 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULH'
6928 /* 6475 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6929 /* 6478 */ // Label 372: @6478
6930 /* 6478 */ GIM_Reject,
6931 /* 6479 */ // Label 56: @6479
6932 /* 6479 */ GIM_Try, /*On fail goto*//*Label 373*/ GIMT_Encode4(6490), // Rule ID 342 //
6933 /* 6484 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
6934 /* 6487 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_UADDSAT'
6935 /* 6487 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6936 /* 6490 */ // Label 373: @6490
6937 /* 6490 */ GIM_Reject,
6938 /* 6491 */ // Label 57: @6491
6939 /* 6491 */ GIM_Try, /*On fail goto*//*Label 374*/ GIMT_Encode4(6502), // Rule ID 343 //
6940 /* 6496 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
6941 /* 6499 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_SADDSAT'
6942 /* 6499 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6943 /* 6502 */ // Label 374: @6502
6944 /* 6502 */ GIM_Reject,
6945 /* 6503 */ // Label 58: @6503
6946 /* 6503 */ GIM_Try, /*On fail goto*//*Label 375*/ GIMT_Encode4(6514), // Rule ID 216 //
6947 /* 6508 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
6948 /* 6511 */ // Combiner Rule #161: shift_immed_chain; wip_match_opcode 'G_USHLSAT'
6949 /* 6511 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
6950 /* 6514 */ // Label 375: @6514
6951 /* 6514 */ GIM_Try, /*On fail goto*//*Label 376*/ GIMT_Encode4(6525), // Rule ID 220 //
6952 /* 6519 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
6953 /* 6522 */ // Combiner Rule #162: shift_of_shifted_logic_chain; wip_match_opcode 'G_USHLSAT'
6954 /* 6522 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6955 /* 6525 */ // Label 376: @6525
6956 /* 6525 */ GIM_Reject,
6957 /* 6526 */ // Label 59: @6526
6958 /* 6526 */ GIM_Try, /*On fail goto*//*Label 377*/ GIMT_Encode4(6537), // Rule ID 215 //
6959 /* 6531 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule161Enabled),
6960 /* 6534 */ // Combiner Rule #161: shift_immed_chain; wip_match_opcode 'G_SSHLSAT'
6961 /* 6534 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner91),
6962 /* 6537 */ // Label 377: @6537
6963 /* 6537 */ GIM_Try, /*On fail goto*//*Label 378*/ GIMT_Encode4(6548), // Rule ID 221 //
6964 /* 6542 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule162Enabled),
6965 /* 6545 */ // Combiner Rule #162: shift_of_shifted_logic_chain; wip_match_opcode 'G_SSHLSAT'
6966 /* 6545 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner92),
6967 /* 6548 */ // Label 378: @6548
6968 /* 6548 */ GIM_Reject,
6969 /* 6549 */ // Label 60: @6549
6970 /* 6549 */ GIM_Try, /*On fail goto*//*Label 379*/ GIMT_Encode4(6560), // Rule ID 344 //
6971 /* 6554 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
6972 /* 6557 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIX'
6973 /* 6557 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6974 /* 6560 */ // Label 379: @6560
6975 /* 6560 */ GIM_Reject,
6976 /* 6561 */ // Label 61: @6561
6977 /* 6561 */ GIM_Try, /*On fail goto*//*Label 380*/ GIMT_Encode4(6572), // Rule ID 345 //
6978 /* 6566 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
6979 /* 6569 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIX'
6980 /* 6569 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6981 /* 6572 */ // Label 380: @6572
6982 /* 6572 */ GIM_Reject,
6983 /* 6573 */ // Label 62: @6573
6984 /* 6573 */ GIM_Try, /*On fail goto*//*Label 381*/ GIMT_Encode4(6584), // Rule ID 346 //
6985 /* 6578 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
6986 /* 6581 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_SMULFIXSAT'
6987 /* 6581 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6988 /* 6584 */ // Label 381: @6584
6989 /* 6584 */ GIM_Reject,
6990 /* 6585 */ // Label 63: @6585
6991 /* 6585 */ GIM_Try, /*On fail goto*//*Label 382*/ GIMT_Encode4(6596), // Rule ID 347 //
6992 /* 6590 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
6993 /* 6593 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_UMULFIXSAT'
6994 /* 6593 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
6995 /* 6596 */ // Label 382: @6596
6996 /* 6596 */ GIM_Reject,
6997 /* 6597 */ // Label 64: @6597
6998 /* 6597 */ GIM_Try, /*On fail goto*//*Label 383*/ GIMT_Encode4(6608), // Rule ID 265 //
6999 /* 6602 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
7000 /* 6605 */ // Combiner Rule #180: constant_fold_fp_binop; wip_match_opcode 'G_FADD'
7001 /* 6605 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
7002 /* 6608 */ // Label 383: @6608
7003 /* 6608 */ GIM_Try, /*On fail goto*//*Label 384*/ GIMT_Encode4(6619), // Rule ID 276 //
7004 /* 6613 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
7005 /* 6616 */ // Combiner Rule #185: redundant_neg_operands; wip_match_opcode 'G_FADD'
7006 /* 6616 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7007 /* 6619 */ // Label 384: @6619
7008 /* 6619 */ GIM_Try, /*On fail goto*//*Label 385*/ GIMT_Encode4(6630), // Rule ID 283 //
7009 /* 6624 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule187Enabled),
7010 /* 6627 */ // Combiner Rule #187: combine_fadd_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
7011 /* 6627 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner110),
7012 /* 6630 */ // Label 385: @6630
7013 /* 6630 */ GIM_Try, /*On fail goto*//*Label 386*/ GIMT_Encode4(6641), // Rule ID 284 //
7014 /* 6635 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule188Enabled),
7015 /* 6638 */ // Combiner Rule #188: combine_fadd_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
7016 /* 6638 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner111),
7017 /* 6641 */ // Label 386: @6641
7018 /* 6641 */ GIM_Try, /*On fail goto*//*Label 387*/ GIMT_Encode4(6652), // Rule ID 285 //
7019 /* 6646 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule189Enabled),
7020 /* 6649 */ // Combiner Rule #189: combine_fadd_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
7021 /* 6649 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner112),
7022 /* 6652 */ // Label 387: @6652
7023 /* 6652 */ GIM_Try, /*On fail goto*//*Label 388*/ GIMT_Encode4(6663), // Rule ID 286 //
7024 /* 6657 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule190Enabled),
7025 /* 6660 */ // Combiner Rule #190: combine_fadd_fpext_fma_fmul_to_fmad_or_fma; wip_match_opcode 'G_FADD'
7026 /* 6660 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner113),
7027 /* 6663 */ // Label 388: @6663
7028 /* 6663 */ GIM_Try, /*On fail goto*//*Label 389*/ GIMT_Encode4(6674), // Rule ID 309 //
7029 /* 6668 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7030 /* 6671 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_FADD'
7031 /* 6671 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7032 /* 6674 */ // Label 389: @6674
7033 /* 6674 */ GIM_Try, /*On fail goto*//*Label 390*/ GIMT_Encode4(6685), // Rule ID 348 //
7034 /* 6679 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
7035 /* 6682 */ // Combiner Rule #207: commute_fp_constant_to_rhs; wip_match_opcode 'G_FADD'
7036 /* 6682 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7037 /* 6685 */ // Label 390: @6685
7038 /* 6685 */ GIM_Try, /*On fail goto*//*Label 391*/ GIMT_Encode4(6708), // Rule ID 141 //
7039 /* 6690 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule102Enabled),
7040 /* 6693 */ // MIs[0] dst
7041 /* 6693 */ // No operand predicates
7042 /* 6693 */ // MIs[0] x
7043 /* 6693 */ // No operand predicates
7044 /* 6693 */ // MIs[0] y
7045 /* 6693 */ // No operand predicates
7046 /* 6693 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner3),
7047 /* 6697 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7048 /* 6702 */ // Combiner Rule #102: right_identity_neg_zero_fp
7049 /* 6702 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7050 /* 6707 */ GIR_EraseRootFromParent_Done,
7051 /* 6708 */ // Label 391: @6708
7052 /* 6708 */ GIM_Try, /*On fail goto*//*Label 392*/ GIMT_Encode4(6737), // Rule ID 142 //
7053 /* 6713 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule103Enabled),
7054 /* 6716 */ GIM_MIFlags, /*MI*/0, GIMT_Encode4(MachineInstr::FmNsz),
7055 /* 6722 */ // MIs[0] dst
7056 /* 6722 */ // No operand predicates
7057 /* 6722 */ // MIs[0] x
7058 /* 6722 */ // No operand predicates
7059 /* 6722 */ // MIs[0] y
7060 /* 6722 */ // No operand predicates
7061 /* 6722 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner4),
7062 /* 6726 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7063 /* 6731 */ // Combiner Rule #103: right_identity_neg_zero_fp_nsz
7064 /* 6731 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7065 /* 6736 */ GIR_EraseRootFromParent_Done,
7066 /* 6737 */ // Label 392: @6737
7067 /* 6737 */ GIM_Reject,
7068 /* 6738 */ // Label 65: @6738
7069 /* 6738 */ GIM_Try, /*On fail goto*//*Label 393*/ GIMT_Encode4(6749), // Rule ID 266 //
7070 /* 6743 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
7071 /* 6746 */ // Combiner Rule #180: constant_fold_fp_binop; wip_match_opcode 'G_FSUB'
7072 /* 6746 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
7073 /* 6749 */ // Label 393: @6749
7074 /* 6749 */ GIM_Try, /*On fail goto*//*Label 394*/ GIMT_Encode4(6760), // Rule ID 277 //
7075 /* 6754 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
7076 /* 6757 */ // Combiner Rule #185: redundant_neg_operands; wip_match_opcode 'G_FSUB'
7077 /* 6757 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7078 /* 6760 */ // Label 394: @6760
7079 /* 6760 */ GIM_Try, /*On fail goto*//*Label 395*/ GIMT_Encode4(6771), // Rule ID 287 //
7080 /* 6765 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule191Enabled),
7081 /* 6768 */ // Combiner Rule #191: combine_fsub_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
7082 /* 6768 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner114),
7083 /* 6771 */ // Label 395: @6771
7084 /* 6771 */ GIM_Try, /*On fail goto*//*Label 396*/ GIMT_Encode4(6782), // Rule ID 288 //
7085 /* 6776 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule192Enabled),
7086 /* 6779 */ // Combiner Rule #192: combine_fsub_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
7087 /* 6779 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner115),
7088 /* 6782 */ // Label 396: @6782
7089 /* 6782 */ GIM_Try, /*On fail goto*//*Label 397*/ GIMT_Encode4(6793), // Rule ID 289 //
7090 /* 6787 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule193Enabled),
7091 /* 6790 */ // Combiner Rule #193: combine_fsub_fpext_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
7092 /* 6790 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner116),
7093 /* 6793 */ // Label 397: @6793
7094 /* 6793 */ GIM_Try, /*On fail goto*//*Label 398*/ GIMT_Encode4(6804), // Rule ID 290 //
7095 /* 6798 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule194Enabled),
7096 /* 6801 */ // Combiner Rule #194: combine_fsub_fpext_fneg_fmul_to_fmad_or_fma; wip_match_opcode 'G_FSUB'
7097 /* 6801 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner117),
7098 /* 6804 */ // Label 398: @6804
7099 /* 6804 */ GIM_Try, /*On fail goto*//*Label 399*/ GIMT_Encode4(6815), // Rule ID 310 //
7100 /* 6809 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7101 /* 6812 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_FSUB'
7102 /* 6812 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7103 /* 6815 */ // Label 399: @6815
7104 /* 6815 */ GIM_Try, /*On fail goto*//*Label 400*/ GIMT_Encode4(6826), // Rule ID 326 //
7105 /* 6820 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule205Enabled),
7106 /* 6823 */ // Combiner Rule #205: fsub_to_fneg; wip_match_opcode 'G_FSUB'
7107 /* 6823 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner126),
7108 /* 6826 */ // Label 400: @6826
7109 /* 6826 */ GIM_Reject,
7110 /* 6827 */ // Label 66: @6827
7111 /* 6827 */ GIM_Try, /*On fail goto*//*Label 401*/ GIMT_Encode4(6838), // Rule ID 267 //
7112 /* 6832 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
7113 /* 6835 */ // Combiner Rule #180: constant_fold_fp_binop; wip_match_opcode 'G_FMUL'
7114 /* 6835 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
7115 /* 6838 */ // Label 401: @6838
7116 /* 6838 */ GIM_Try, /*On fail goto*//*Label 402*/ GIMT_Encode4(6849), // Rule ID 278 //
7117 /* 6843 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
7118 /* 6846 */ // Combiner Rule #185: redundant_neg_operands; wip_match_opcode 'G_FMUL'
7119 /* 6846 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7120 /* 6849 */ // Label 402: @6849
7121 /* 6849 */ GIM_Try, /*On fail goto*//*Label 403*/ GIMT_Encode4(6860), // Rule ID 308 //
7122 /* 6854 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7123 /* 6857 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_FMUL'
7124 /* 6857 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7125 /* 6860 */ // Label 403: @6860
7126 /* 6860 */ GIM_Try, /*On fail goto*//*Label 404*/ GIMT_Encode4(6871), // Rule ID 349 //
7127 /* 6865 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
7128 /* 6868 */ // Combiner Rule #207: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMUL'
7129 /* 6868 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7130 /* 6871 */ // Label 404: @6871
7131 /* 6871 */ GIM_Try, /*On fail goto*//*Label 405*/ GIMT_Encode4(6892), // Rule ID 390 //
7132 /* 6876 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule239Enabled),
7133 /* 6879 */ // MIs[0] dst
7134 /* 6879 */ // No operand predicates
7135 /* 6879 */ // MIs[0] x
7136 /* 6879 */ // No operand predicates
7137 /* 6879 */ // MIs[0] select
7138 /* 6879 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7139 /* 6883 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SELECT),
7140 /* 6887 */ // MIs[1] y
7141 /* 6887 */ // No operand predicates
7142 /* 6887 */ // MIs[1] A
7143 /* 6887 */ // No operand predicates
7144 /* 6887 */ // MIs[1] B
7145 /* 6887 */ // No operand predicates
7146 /* 6887 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7147 /* 6889 */ // Combiner Rule #239: combine_fmul_with_select_to_fldexp
7148 /* 6889 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner156),
7149 /* 6892 */ // Label 405: @6892
7150 /* 6892 */ GIM_Try, /*On fail goto*//*Label 406*/ GIMT_Encode4(6915), // Rule ID 132 //
7151 /* 6897 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule95Enabled),
7152 /* 6900 */ // MIs[0] dst
7153 /* 6900 */ // No operand predicates
7154 /* 6900 */ // MIs[0] x
7155 /* 6900 */ // No operand predicates
7156 /* 6900 */ // MIs[0] y
7157 /* 6900 */ // No operand predicates
7158 /* 6900 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner2),
7159 /* 6904 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7160 /* 6909 */ // Combiner Rule #95: right_identity_one_fp
7161 /* 6909 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7162 /* 6914 */ GIR_EraseRootFromParent_Done,
7163 /* 6915 */ // Label 406: @6915
7164 /* 6915 */ GIM_Try, /*On fail goto*//*Label 407*/ GIMT_Encode4(6935), // Rule ID 143 //
7165 /* 6920 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule104Enabled),
7166 /* 6923 */ // MIs[0] dst
7167 /* 6923 */ // No operand predicates
7168 /* 6923 */ // MIs[0] x
7169 /* 6923 */ // No operand predicates
7170 /* 6923 */ // MIs[0] y
7171 /* 6923 */ // No operand predicates
7172 /* 6923 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner5),
7173 /* 6927 */ // Combiner Rule #104: right_identity_neg_one_fp
7174 /* 6927 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FNEG),
7175 /* 6930 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7176 /* 6932 */ GIR_RootToRootCopy, /*OpIdx*/1, // x
7177 /* 6934 */ GIR_EraseRootFromParent_Done,
7178 /* 6935 */ // Label 407: @6935
7179 /* 6935 */ GIM_Reject,
7180 /* 6936 */ // Label 67: @6936
7181 /* 6936 */ GIM_Try, /*On fail goto*//*Label 408*/ GIMT_Encode4(6947), // Rule ID 270 //
7182 /* 6941 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
7183 /* 6944 */ // Combiner Rule #181: constant_fold_fma; wip_match_opcode 'G_FMA'
7184 /* 6944 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
7185 /* 6947 */ // Label 408: @6947
7186 /* 6947 */ GIM_Try, /*On fail goto*//*Label 409*/ GIMT_Encode4(6958), // Rule ID 281 //
7187 /* 6952 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
7188 /* 6955 */ // Combiner Rule #185: redundant_neg_operands; wip_match_opcode 'G_FMA'
7189 /* 6955 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7190 /* 6958 */ // Label 409: @6958
7191 /* 6958 */ GIM_Reject,
7192 /* 6959 */ // Label 68: @6959
7193 /* 6959 */ GIM_Try, /*On fail goto*//*Label 410*/ GIMT_Encode4(6970), // Rule ID 269 //
7194 /* 6964 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule181Enabled),
7195 /* 6967 */ // Combiner Rule #181: constant_fold_fma; wip_match_opcode 'G_FMAD'
7196 /* 6967 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner105),
7197 /* 6970 */ // Label 410: @6970
7198 /* 6970 */ GIM_Try, /*On fail goto*//*Label 411*/ GIMT_Encode4(6981), // Rule ID 280 //
7199 /* 6975 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
7200 /* 6978 */ // Combiner Rule #185: redundant_neg_operands; wip_match_opcode 'G_FMAD'
7201 /* 6978 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7202 /* 6981 */ // Label 411: @6981
7203 /* 6981 */ GIM_Reject,
7204 /* 6982 */ // Label 69: @6982
7205 /* 6982 */ GIM_Try, /*On fail goto*//*Label 412*/ GIMT_Encode4(6993), // Rule ID 268 //
7206 /* 6987 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule180Enabled),
7207 /* 6990 */ // Combiner Rule #180: constant_fold_fp_binop; wip_match_opcode 'G_FDIV'
7208 /* 6990 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner104),
7209 /* 6993 */ // Label 412: @6993
7210 /* 6993 */ GIM_Try, /*On fail goto*//*Label 413*/ GIMT_Encode4(7004), // Rule ID 279 //
7211 /* 6998 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule185Enabled),
7212 /* 7001 */ // Combiner Rule #185: redundant_neg_operands; wip_match_opcode 'G_FDIV'
7213 /* 7001 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner108),
7214 /* 7004 */ // Label 413: @7004
7215 /* 7004 */ GIM_Try, /*On fail goto*//*Label 414*/ GIMT_Encode4(7015), // Rule ID 311 //
7216 /* 7009 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7217 /* 7012 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_FDIV'
7218 /* 7012 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7219 /* 7015 */ // Label 414: @7015
7220 /* 7015 */ GIM_Try, /*On fail goto*//*Label 415*/ GIMT_Encode4(7026), // Rule ID 323 //
7221 /* 7020 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule202Enabled),
7222 /* 7023 */ // MIs[0] dst
7223 /* 7023 */ // No operand predicates
7224 /* 7023 */ // MIs[0] src1
7225 /* 7023 */ // No operand predicates
7226 /* 7023 */ // MIs[0] src2
7227 /* 7023 */ // No operand predicates
7228 /* 7023 */ // Combiner Rule #202: fdiv_repeated_divison
7229 /* 7023 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner123),
7230 /* 7026 */ // Label 415: @7026
7231 /* 7026 */ GIM_Reject,
7232 /* 7027 */ // Label 70: @7027
7233 /* 7027 */ GIM_Try, /*On fail goto*//*Label 416*/ GIMT_Encode4(7038), // Rule ID 312 //
7234 /* 7032 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7235 /* 7035 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_FREM'
7236 /* 7035 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7237 /* 7038 */ // Label 416: @7038
7238 /* 7038 */ GIM_Reject,
7239 /* 7039 */ // Label 71: @7039
7240 /* 7039 */ GIM_Try, /*On fail goto*//*Label 417*/ GIMT_Encode4(7060), // Rule ID 209 //
7241 /* 7044 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule158Enabled),
7242 /* 7047 */ // MIs[0] dst
7243 /* 7047 */ // No operand predicates
7244 /* 7047 */ // MIs[0] float
7245 /* 7047 */ // No operand predicates
7246 /* 7047 */ // MIs[0] int
7247 /* 7047 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7248 /* 7051 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7249 /* 7055 */ // MIs[1] imm
7250 /* 7055 */ // No operand predicates
7251 /* 7055 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7252 /* 7057 */ // Combiner Rule #158: expand_const_fpowi
7253 /* 7057 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner88),
7254 /* 7060 */ // Label 417: @7060
7255 /* 7060 */ GIM_Reject,
7256 /* 7061 */ // Label 72: @7061
7257 /* 7061 */ GIM_Try, /*On fail goto*//*Label 418*/ GIMT_Encode4(7082), // Rule ID 183 //
7258 /* 7066 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule140Enabled),
7259 /* 7069 */ // MIs[0] dst
7260 /* 7069 */ // No operand predicates
7261 /* 7069 */ // MIs[0] src0
7262 /* 7069 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7263 /* 7073 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7264 /* 7077 */ // MIs[1] cst
7265 /* 7077 */ // No operand predicates
7266 /* 7077 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7267 /* 7079 */ // Combiner Rule #140: constant_fold_flog2
7268 /* 7079 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7269 /* 7082 */ // Label 418: @7082
7270 /* 7082 */ GIM_Reject,
7271 /* 7083 */ // Label 73: @7083
7272 /* 7083 */ GIM_Try, /*On fail goto*//*Label 419*/ GIMT_Encode4(7094), // Rule ID 392 //
7273 /* 7088 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule241Enabled),
7274 /* 7091 */ // Combiner Rule #241: foldable_fneg; wip_match_opcode 'G_FNEG'
7275 /* 7091 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner158),
7276 /* 7094 */ // Label 419: @7094
7277 /* 7094 */ GIM_Try, /*On fail goto*//*Label 420*/ GIMT_Encode4(7115), // Rule ID 180 //
7278 /* 7099 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule137Enabled),
7279 /* 7102 */ // MIs[0] dst
7280 /* 7102 */ // No operand predicates
7281 /* 7102 */ // MIs[0] src0
7282 /* 7102 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7283 /* 7106 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7284 /* 7110 */ // MIs[1] cst
7285 /* 7110 */ // No operand predicates
7286 /* 7110 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7287 /* 7112 */ // Combiner Rule #137: constant_fold_fneg
7288 /* 7112 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7289 /* 7115 */ // Label 420: @7115
7290 /* 7115 */ GIM_Try, /*On fail goto*//*Label 421*/ GIMT_Encode4(7144), // Rule ID 130 //
7291 /* 7120 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule93Enabled),
7292 /* 7123 */ // MIs[0] dst
7293 /* 7123 */ // No operand predicates
7294 /* 7123 */ // MIs[0] t
7295 /* 7123 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7296 /* 7127 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
7297 /* 7131 */ // MIs[1] src
7298 /* 7131 */ // No operand predicates
7299 /* 7131 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
7300 /* 7136 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7301 /* 7138 */ // Combiner Rule #93: fneg_fneg_fold
7302 /* 7138 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/1,
7303 /* 7143 */ GIR_EraseRootFromParent_Done,
7304 /* 7144 */ // Label 421: @7144
7305 /* 7144 */ GIM_Reject,
7306 /* 7145 */ // Label 74: @7145
7307 /* 7145 */ GIM_Try, /*On fail goto*//*Label 422*/ GIMT_Encode4(7166), // Rule ID 185 //
7308 /* 7150 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule142Enabled),
7309 /* 7153 */ // MIs[0] dst
7310 /* 7153 */ // No operand predicates
7311 /* 7153 */ // MIs[0] src0
7312 /* 7153 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7313 /* 7157 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7314 /* 7161 */ // MIs[1] cst
7315 /* 7161 */ // No operand predicates
7316 /* 7161 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7317 /* 7163 */ // Combiner Rule #142: constant_fold_fpext
7318 /* 7163 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7319 /* 7166 */ // Label 422: @7166
7320 /* 7166 */ GIM_Reject,
7321 /* 7167 */ // Label 75: @7167
7322 /* 7167 */ GIM_Try, /*On fail goto*//*Label 423*/ GIMT_Encode4(7188), // Rule ID 184 //
7323 /* 7172 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule141Enabled),
7324 /* 7175 */ // MIs[0] dst
7325 /* 7175 */ // No operand predicates
7326 /* 7175 */ // MIs[0] src0
7327 /* 7175 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7328 /* 7179 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7329 /* 7183 */ // MIs[1] cst
7330 /* 7183 */ // No operand predicates
7331 /* 7183 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7332 /* 7185 */ // Combiner Rule #141: constant_fold_fptrunc
7333 /* 7185 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7334 /* 7188 */ // Label 423: @7188
7335 /* 7188 */ GIM_Try, /*On fail goto*//*Label 424*/ GIMT_Encode4(7209), // Rule ID 140 //
7336 /* 7193 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule101Enabled),
7337 /* 7196 */ // MIs[0] dst
7338 /* 7196 */ // No operand predicates
7339 /* 7196 */ // MIs[0] src1
7340 /* 7196 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7341 /* 7200 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FPEXT),
7342 /* 7204 */ // MIs[1] src0
7343 /* 7204 */ // No operand predicates
7344 /* 7204 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7345 /* 7206 */ // Combiner Rule #101: fptrunc_fpext_fold
7346 /* 7206 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner51),
7347 /* 7209 */ // Label 424: @7209
7348 /* 7209 */ GIM_Reject,
7349 /* 7210 */ // Label 76: @7210
7350 /* 7210 */ GIM_Try, /*On fail goto*//*Label 425*/ GIMT_Encode4(7231), // Rule ID 94 //
7351 /* 7215 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
7352 /* 7218 */ // MIs[0] dst
7353 /* 7218 */ // No operand predicates
7354 /* 7218 */ // MIs[0] __unary_undef_to_undef_match_0.x
7355 /* 7218 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7356 /* 7222 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7357 /* 7226 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7358 /* 7228 */ // Combiner Rule #79: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[5]]
7359 /* 7228 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
7360 /* 7231 */ // Label 425: @7231
7361 /* 7231 */ GIM_Reject,
7362 /* 7232 */ // Label 77: @7232
7363 /* 7232 */ GIM_Try, /*On fail goto*//*Label 426*/ GIMT_Encode4(7253), // Rule ID 95 //
7364 /* 7237 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule79Enabled),
7365 /* 7240 */ // MIs[0] dst
7366 /* 7240 */ // No operand predicates
7367 /* 7240 */ // MIs[0] __unary_undef_to_undef_match_0.x
7368 /* 7240 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7369 /* 7244 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7370 /* 7248 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7371 /* 7250 */ // Combiner Rule #79: unary_undef_to_undef @ [__unary_undef_to_undef_match_0[6]]
7372 /* 7250 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner38),
7373 /* 7253 */ // Label 426: @7253
7374 /* 7253 */ GIM_Reject,
7375 /* 7254 */ // Label 78: @7254
7376 /* 7254 */ GIM_Try, /*On fail goto*//*Label 427*/ GIMT_Encode4(7265), // Rule ID 78 //
7377 /* 7259 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
7378 /* 7262 */ // Combiner Rule #73: undef_to_fp_zero; wip_match_opcode 'G_SITOFP'
7379 /* 7262 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
7380 /* 7265 */ // Label 427: @7265
7381 /* 7265 */ GIM_Try, /*On fail goto*//*Label 428*/ GIMT_Encode4(7280), // Rule ID 193 //
7382 /* 7270 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule150Enabled),
7383 /* 7273 */ // MIs[0] dst
7384 /* 7273 */ // No operand predicates
7385 /* 7273 */ // MIs[0] Operand 1
7386 /* 7273 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
7387 /* 7277 */ // Combiner Rule #150: itof_const_zero_fold_si
7388 /* 7277 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
7389 /* 7280 */ // Label 428: @7280
7390 /* 7280 */ GIM_Reject,
7391 /* 7281 */ // Label 79: @7281
7392 /* 7281 */ GIM_Try, /*On fail goto*//*Label 429*/ GIMT_Encode4(7292), // Rule ID 77 //
7393 /* 7286 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule73Enabled),
7394 /* 7289 */ // Combiner Rule #73: undef_to_fp_zero; wip_match_opcode 'G_UITOFP'
7395 /* 7289 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner33),
7396 /* 7292 */ // Label 429: @7292
7397 /* 7292 */ GIM_Try, /*On fail goto*//*Label 430*/ GIMT_Encode4(7307), // Rule ID 194 //
7398 /* 7297 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule151Enabled),
7399 /* 7300 */ // MIs[0] dst
7400 /* 7300 */ // No operand predicates
7401 /* 7300 */ // MIs[0] Operand 1
7402 /* 7300 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/1, 0,
7403 /* 7304 */ // Combiner Rule #151: itof_const_zero_fold_ui
7404 /* 7304 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner81),
7405 /* 7307 */ // Label 430: @7307
7406 /* 7307 */ GIM_Reject,
7407 /* 7308 */ // Label 80: @7308
7408 /* 7308 */ GIM_Try, /*On fail goto*//*Label 431*/ GIMT_Encode4(7337), // Rule ID 21 //
7409 /* 7313 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
7410 /* 7316 */ // MIs[0] dst
7411 /* 7316 */ // No operand predicates
7412 /* 7316 */ // MIs[0] src
7413 /* 7316 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7414 /* 7320 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FABS),
7415 /* 7324 */ // MIs[1] __idempotent_prop_match_0.x
7416 /* 7324 */ // No operand predicates
7417 /* 7324 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7418 /* 7329 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7419 /* 7331 */ // Combiner Rule #20: idempotent_prop @ [__idempotent_prop_match_0[1]]
7420 /* 7331 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7421 /* 7336 */ GIR_EraseRootFromParent_Done,
7422 /* 7337 */ // Label 431: @7337
7423 /* 7337 */ GIM_Try, /*On fail goto*//*Label 432*/ GIMT_Encode4(7358), // Rule ID 181 //
7424 /* 7342 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule138Enabled),
7425 /* 7345 */ // MIs[0] dst
7426 /* 7345 */ // No operand predicates
7427 /* 7345 */ // MIs[0] src0
7428 /* 7345 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7429 /* 7349 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
7430 /* 7353 */ // MIs[1] cst
7431 /* 7353 */ // No operand predicates
7432 /* 7353 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7433 /* 7355 */ // Combiner Rule #138: constant_fold_fabs
7434 /* 7355 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
7435 /* 7358 */ // Label 432: @7358
7436 /* 7358 */ GIM_Try, /*On fail goto*//*Label 433*/ GIMT_Encode4(7386), // Rule ID 274 //
7437 /* 7363 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule183Enabled),
7438 /* 7366 */ // MIs[0] dst
7439 /* 7366 */ // No operand predicates
7440 /* 7366 */ // MIs[0] tmp
7441 /* 7366 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7442 /* 7370 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FNEG),
7443 /* 7374 */ // MIs[1] x
7444 /* 7374 */ // No operand predicates
7445 /* 7374 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7446 /* 7376 */ // Combiner Rule #183: fabs_fneg_fold
7447 /* 7376 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_FABS),
7448 /* 7379 */ GIR_RootToRootCopy, /*OpIdx*/0, // dst
7449 /* 7381 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // x
7450 /* 7385 */ GIR_EraseRootFromParent_Done,
7451 /* 7386 */ // Label 433: @7386
7452 /* 7386 */ GIM_Reject,
7453 /* 7387 */ // Label 81: @7387
7454 /* 7387 */ GIM_Try, /*On fail goto*//*Label 434*/ GIMT_Encode4(7416), // Rule ID 22 //
7455 /* 7392 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule20Enabled),
7456 /* 7395 */ // MIs[0] dst
7457 /* 7395 */ // No operand predicates
7458 /* 7395 */ // MIs[0] src
7459 /* 7395 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7460 /* 7399 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCANONICALIZE),
7461 /* 7403 */ // MIs[1] __idempotent_prop_match_0.x
7462 /* 7403 */ // No operand predicates
7463 /* 7403 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7464 /* 7408 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7465 /* 7410 */ // Combiner Rule #20: idempotent_prop @ [__idempotent_prop_match_0[2]]
7466 /* 7410 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7467 /* 7415 */ GIR_EraseRootFromParent_Done,
7468 /* 7416 */ // Label 434: @7416
7469 /* 7416 */ GIM_Reject,
7470 /* 7417 */ // Label 82: @7417
7471 /* 7417 */ GIM_Try, /*On fail goto*//*Label 435*/ GIMT_Encode4(7428), // Rule ID 205 //
7472 /* 7422 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
7473 /* 7425 */ // Combiner Rule #157: combine_minmax_nan; wip_match_opcode 'G_FMINNUM'
7474 /* 7425 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
7475 /* 7428 */ // Label 435: @7428
7476 /* 7428 */ GIM_Try, /*On fail goto*//*Label 436*/ GIMT_Encode4(7439), // Rule ID 313 //
7477 /* 7433 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7478 /* 7436 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_FMINNUM'
7479 /* 7436 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7480 /* 7439 */ // Label 436: @7439
7481 /* 7439 */ GIM_Try, /*On fail goto*//*Label 437*/ GIMT_Encode4(7450), // Rule ID 350 //
7482 /* 7444 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
7483 /* 7447 */ // Combiner Rule #207: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM'
7484 /* 7447 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7485 /* 7450 */ // Label 437: @7450
7486 /* 7450 */ GIM_Reject,
7487 /* 7451 */ // Label 83: @7451
7488 /* 7451 */ GIM_Try, /*On fail goto*//*Label 438*/ GIMT_Encode4(7462), // Rule ID 206 //
7489 /* 7456 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
7490 /* 7459 */ // Combiner Rule #157: combine_minmax_nan; wip_match_opcode 'G_FMAXNUM'
7491 /* 7459 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
7492 /* 7462 */ // Label 438: @7462
7493 /* 7462 */ GIM_Try, /*On fail goto*//*Label 439*/ GIMT_Encode4(7473), // Rule ID 314 //
7494 /* 7467 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7495 /* 7470 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_FMAXNUM'
7496 /* 7470 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7497 /* 7473 */ // Label 439: @7473
7498 /* 7473 */ GIM_Try, /*On fail goto*//*Label 440*/ GIMT_Encode4(7484), // Rule ID 351 //
7499 /* 7478 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
7500 /* 7481 */ // Combiner Rule #207: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM'
7501 /* 7481 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7502 /* 7484 */ // Label 440: @7484
7503 /* 7484 */ GIM_Reject,
7504 /* 7485 */ // Label 84: @7485
7505 /* 7485 */ GIM_Try, /*On fail goto*//*Label 441*/ GIMT_Encode4(7496), // Rule ID 352 //
7506 /* 7490 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
7507 /* 7493 */ // Combiner Rule #207: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINNUM_IEEE'
7508 /* 7493 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7509 /* 7496 */ // Label 441: @7496
7510 /* 7496 */ GIM_Reject,
7511 /* 7497 */ // Label 85: @7497
7512 /* 7497 */ GIM_Try, /*On fail goto*//*Label 442*/ GIMT_Encode4(7508), // Rule ID 353 //
7513 /* 7502 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
7514 /* 7505 */ // Combiner Rule #207: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXNUM_IEEE'
7515 /* 7505 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7516 /* 7508 */ // Label 442: @7508
7517 /* 7508 */ GIM_Reject,
7518 /* 7509 */ // Label 86: @7509
7519 /* 7509 */ GIM_Try, /*On fail goto*//*Label 443*/ GIMT_Encode4(7520), // Rule ID 207 //
7520 /* 7514 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
7521 /* 7517 */ // Combiner Rule #157: combine_minmax_nan; wip_match_opcode 'G_FMINIMUM'
7522 /* 7517 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
7523 /* 7520 */ // Label 443: @7520
7524 /* 7520 */ GIM_Try, /*On fail goto*//*Label 444*/ GIMT_Encode4(7531), // Rule ID 315 //
7525 /* 7525 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7526 /* 7528 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_FMINIMUM'
7527 /* 7528 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7528 /* 7531 */ // Label 444: @7531
7529 /* 7531 */ GIM_Try, /*On fail goto*//*Label 445*/ GIMT_Encode4(7542), // Rule ID 354 //
7530 /* 7536 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
7531 /* 7539 */ // Combiner Rule #207: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMINIMUM'
7532 /* 7539 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7533 /* 7542 */ // Label 445: @7542
7534 /* 7542 */ GIM_Reject,
7535 /* 7543 */ // Label 87: @7543
7536 /* 7543 */ GIM_Try, /*On fail goto*//*Label 446*/ GIMT_Encode4(7554), // Rule ID 208 //
7537 /* 7548 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule157Enabled),
7538 /* 7551 */ // Combiner Rule #157: combine_minmax_nan; wip_match_opcode 'G_FMAXIMUM'
7539 /* 7551 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner87),
7540 /* 7554 */ // Label 446: @7554
7541 /* 7554 */ GIM_Try, /*On fail goto*//*Label 447*/ GIMT_Encode4(7565), // Rule ID 316 //
7542 /* 7559 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7543 /* 7562 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_FMAXIMUM'
7544 /* 7562 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7545 /* 7565 */ // Label 447: @7565
7546 /* 7565 */ GIM_Try, /*On fail goto*//*Label 448*/ GIMT_Encode4(7576), // Rule ID 355 //
7547 /* 7570 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule207Enabled),
7548 /* 7573 */ // Combiner Rule #207: commute_fp_constant_to_rhs; wip_match_opcode 'G_FMAXIMUM'
7549 /* 7573 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner128),
7550 /* 7576 */ // Label 448: @7576
7551 /* 7576 */ GIM_Reject,
7552 /* 7577 */ // Label 88: @7577
7553 /* 7577 */ GIM_Try, /*On fail goto*//*Label 449*/ GIMT_Encode4(7588), // Rule ID 152 //
7554 /* 7582 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule109Enabled),
7555 /* 7585 */ // Combiner Rule #109: reassoc_ptradd; wip_match_opcode 'G_PTR_ADD'
7556 /* 7585 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner56),
7557 /* 7588 */ // Label 449: @7588
7558 /* 7588 */ GIM_Try, /*On fail goto*//*Label 450*/ GIMT_Encode4(7599), // Rule ID 154 //
7559 /* 7593 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule111Enabled),
7560 /* 7596 */ // Combiner Rule #111: ptr_add_immed_chain; wip_match_opcode 'G_PTR_ADD'
7561 /* 7596 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner58),
7562 /* 7599 */ // Label 450: @7599
7563 /* 7599 */ GIM_Try, /*On fail goto*//*Label 451*/ GIMT_Encode4(7610), // Rule ID 195 //
7564 /* 7604 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule152Enabled),
7565 /* 7607 */ // Combiner Rule #152: const_ptradd_to_i2p; wip_match_opcode 'G_PTR_ADD'
7566 /* 7607 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner82),
7567 /* 7610 */ // Label 451: @7610
7568 /* 7610 */ GIM_Try, /*On fail goto*//*Label 452*/ GIMT_Encode4(7621), // Rule ID 211 //
7569 /* 7615 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule160Enabled),
7570 /* 7618 */ // Combiner Rule #160: ptr_add_with_zero; wip_match_opcode 'G_PTR_ADD'
7571 /* 7618 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner90),
7572 /* 7621 */ // Label 452: @7621
7573 /* 7621 */ GIM_Try, /*On fail goto*//*Label 453*/ GIMT_Encode4(7632), // Rule ID 248 //
7574 /* 7626 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
7575 /* 7629 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_PTR_ADD'
7576 /* 7629 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7577 /* 7632 */ // Label 453: @7632
7578 /* 7632 */ GIM_Try, /*On fail goto*//*Label 454*/ GIMT_Encode4(7643), // Rule ID 293 //
7579 /* 7637 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7580 /* 7640 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_PTR_ADD'
7581 /* 7640 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7582 /* 7643 */ // Label 454: @7643
7583 /* 7643 */ GIM_Try, /*On fail goto*//*Label 455*/ GIMT_Encode4(7666), // Rule ID 113 //
7584 /* 7648 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule86Enabled),
7585 /* 7651 */ // MIs[0] dst
7586 /* 7651 */ // No operand predicates
7587 /* 7651 */ // MIs[0] lhs
7588 /* 7651 */ // No operand predicates
7589 /* 7651 */ // MIs[0] Operand 2
7590 /* 7651 */ GIM_CheckConstantInt8, /*MI*/0, /*Op*/2, 0,
7591 /* 7655 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7592 /* 7660 */ // Combiner Rule #86: right_identity_zero @ [__right_identity_zero_match_0[7]]
7593 /* 7660 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7594 /* 7665 */ GIR_EraseRootFromParent_Done,
7595 /* 7666 */ // Label 455: @7666
7596 /* 7666 */ GIM_Reject,
7597 /* 7667 */ // Label 89: @7667
7598 /* 7667 */ GIM_Try, /*On fail goto*//*Label 456*/ GIMT_Encode4(7678), // Rule ID 261 //
7599 /* 7672 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
7600 /* 7675 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_SMIN'
7601 /* 7675 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7602 /* 7678 */ // Label 456: @7678
7603 /* 7678 */ GIM_Try, /*On fail goto*//*Label 457*/ GIMT_Encode4(7689), // Rule ID 304 //
7604 /* 7683 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7605 /* 7686 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_SMIN'
7606 /* 7686 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7607 /* 7689 */ // Label 457: @7689
7608 /* 7689 */ GIM_Try, /*On fail goto*//*Label 458*/ GIMT_Encode4(7700), // Rule ID 332 //
7609 /* 7694 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
7610 /* 7697 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_SMIN'
7611 /* 7697 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7612 /* 7700 */ // Label 458: @7700
7613 /* 7700 */ GIM_Reject,
7614 /* 7701 */ // Label 90: @7701
7615 /* 7701 */ GIM_Try, /*On fail goto*//*Label 459*/ GIMT_Encode4(7712), // Rule ID 262 //
7616 /* 7706 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
7617 /* 7709 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_SMAX'
7618 /* 7709 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7619 /* 7712 */ // Label 459: @7712
7620 /* 7712 */ GIM_Try, /*On fail goto*//*Label 460*/ GIMT_Encode4(7723), // Rule ID 305 //
7621 /* 7717 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7622 /* 7720 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_SMAX'
7623 /* 7720 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7624 /* 7723 */ // Label 460: @7723
7625 /* 7723 */ GIM_Try, /*On fail goto*//*Label 461*/ GIMT_Encode4(7734), // Rule ID 333 //
7626 /* 7728 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
7627 /* 7731 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_SMAX'
7628 /* 7731 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7629 /* 7734 */ // Label 461: @7734
7630 /* 7734 */ GIM_Reject,
7631 /* 7735 */ // Label 91: @7735
7632 /* 7735 */ GIM_Try, /*On fail goto*//*Label 462*/ GIMT_Encode4(7746), // Rule ID 263 //
7633 /* 7740 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
7634 /* 7743 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_UMIN'
7635 /* 7743 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7636 /* 7746 */ // Label 462: @7746
7637 /* 7746 */ GIM_Try, /*On fail goto*//*Label 463*/ GIMT_Encode4(7757), // Rule ID 306 //
7638 /* 7751 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7639 /* 7754 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_UMIN'
7640 /* 7754 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7641 /* 7757 */ // Label 463: @7757
7642 /* 7757 */ GIM_Try, /*On fail goto*//*Label 464*/ GIMT_Encode4(7768), // Rule ID 334 //
7643 /* 7762 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
7644 /* 7765 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_UMIN'
7645 /* 7765 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7646 /* 7768 */ // Label 464: @7768
7647 /* 7768 */ GIM_Reject,
7648 /* 7769 */ // Label 92: @7769
7649 /* 7769 */ GIM_Try, /*On fail goto*//*Label 465*/ GIMT_Encode4(7780), // Rule ID 264 //
7650 /* 7774 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule179Enabled),
7651 /* 7777 */ // Combiner Rule #179: constant_fold_binop; wip_match_opcode 'G_UMAX'
7652 /* 7777 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner103),
7653 /* 7780 */ // Label 465: @7780
7654 /* 7780 */ GIM_Try, /*On fail goto*//*Label 466*/ GIMT_Encode4(7791), // Rule ID 307 //
7655 /* 7785 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule195Enabled),
7656 /* 7788 */ // Combiner Rule #195: fold_binop_into_select; wip_match_opcode 'G_UMAX'
7657 /* 7788 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner118),
7658 /* 7791 */ // Label 466: @7791
7659 /* 7791 */ GIM_Try, /*On fail goto*//*Label 467*/ GIMT_Encode4(7802), // Rule ID 335 //
7660 /* 7796 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule206Enabled),
7661 /* 7799 */ // Combiner Rule #206: commute_int_constant_to_rhs; wip_match_opcode 'G_UMAX'
7662 /* 7799 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner127),
7663 /* 7802 */ // Label 467: @7802
7664 /* 7802 */ GIM_Reject,
7665 /* 7803 */ // Label 93: @7803
7666 /* 7803 */ GIM_Try, /*On fail goto*//*Label 468*/ GIMT_Encode4(7814), // Rule ID 88 //
7667 /* 7808 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule78Enabled),
7668 /* 7811 */ // Combiner Rule #78: unary_undef_to_zero; wip_match_opcode 'G_ABS'
7669 /* 7811 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner36),
7670 /* 7814 */ // Label 468: @7814
7671 /* 7814 */ GIM_Reject,
7672 /* 7815 */ // Label 94: @7815
7673 /* 7815 */ GIM_Try, /*On fail goto*//*Label 469*/ GIMT_Encode4(7826), // Rule ID 179 //
7674 /* 7820 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule136Enabled),
7675 /* 7823 */ // Combiner Rule #136: opt_brcond_by_inverting_cond; wip_match_opcode 'G_BR'
7676 /* 7823 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner79),
7677 /* 7826 */ // Label 469: @7826
7678 /* 7826 */ GIM_Reject,
7679 /* 7827 */ // Label 95: @7827
7680 /* 7827 */ GIM_Try, /*On fail goto*//*Label 470*/ GIMT_Encode4(7838), // Rule ID 28 //
7681 /* 7832 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule26Enabled),
7682 /* 7835 */ // Combiner Rule #26: insert_vector_elt_oob; wip_match_opcode 'G_INSERT_VECTOR_ELT'
7683 /* 7835 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner10),
7684 /* 7838 */ // Label 470: @7838
7685 /* 7838 */ GIM_Try, /*On fail goto*//*Label 471*/ GIMT_Encode4(7849), // Rule ID 69 //
7686 /* 7843 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule67Enabled),
7687 /* 7846 */ // Combiner Rule #67: combine_insert_vec_elts_build_vector; wip_match_opcode 'G_INSERT_VECTOR_ELT'
7688 /* 7846 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner27),
7689 /* 7849 */ // Label 471: @7849
7690 /* 7849 */ GIM_Try, /*On fail goto*//*Label 472*/ GIMT_Encode4(7860), // Rule ID 103 //
7691 /* 7854 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
7692 /* 7857 */ // Combiner Rule #84: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_INSERT_VECTOR_ELT'
7693 /* 7857 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
7694 /* 7860 */ // Label 472: @7860
7695 /* 7860 */ GIM_Try, /*On fail goto*//*Label 473*/ GIMT_Encode4(7899), // Rule ID 40 //
7696 /* 7865 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule38Enabled),
7697 /* 7868 */ // MIs[0] root
7698 /* 7868 */ // No operand predicates
7699 /* 7868 */ // MIs[0] src
7700 /* 7868 */ // No operand predicates
7701 /* 7868 */ // MIs[0] elt
7702 /* 7868 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7703 /* 7872 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_EXTRACT_VECTOR_ELT),
7704 /* 7876 */ // MIs[1] src
7705 /* 7876 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/1, /*OpIdx*/1, /*OtherMI*/0, /*OtherOpIdx*/1,
7706 /* 7881 */ // MIs[1] idx
7707 /* 7881 */ // No operand predicates
7708 /* 7881 */ // MIs[0] idx
7709 /* 7881 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/3, /*OtherMI*/1, /*OtherOpIdx*/2,
7710 /* 7886 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7711 /* 7891 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7712 /* 7893 */ // Combiner Rule #38: insert_vector_element_extract_vector_element
7713 /* 7893 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7714 /* 7898 */ GIR_EraseRootFromParent_Done,
7715 /* 7899 */ // Label 473: @7899
7716 /* 7899 */ GIM_Try, /*On fail goto*//*Label 474*/ GIMT_Encode4(7932), // Rule ID 26 //
7717 /* 7904 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule24Enabled),
7718 /* 7907 */ // MIs[0] root
7719 /* 7907 */ // No operand predicates
7720 /* 7907 */ // MIs[0] src
7721 /* 7907 */ // No operand predicates
7722 /* 7907 */ // MIs[0] elt
7723 /* 7907 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
7724 /* 7911 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7725 /* 7915 */ // MIs[0] idx
7726 /* 7915 */ // No operand predicates
7727 /* 7915 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner0),
7728 /* 7919 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7729 /* 7924 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7730 /* 7926 */ // Combiner Rule #24: insert_vector_element_elt_undef
7731 /* 7926 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/0, /*NewOpIdx*/1,
7732 /* 7931 */ GIR_EraseRootFromParent_Done,
7733 /* 7932 */ // Label 474: @7932
7734 /* 7932 */ GIM_Try, /*On fail goto*//*Label 475*/ GIMT_Encode4(7956), // Rule ID 25 //
7735 /* 7937 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule23Enabled),
7736 /* 7940 */ // MIs[0] root
7737 /* 7940 */ // No operand predicates
7738 /* 7940 */ // MIs[0] src
7739 /* 7940 */ // No operand predicates
7740 /* 7940 */ // MIs[0] elt
7741 /* 7940 */ // No operand predicates
7742 /* 7940 */ // MIs[0] idx
7743 /* 7940 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
7744 /* 7944 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7745 /* 7948 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7746 /* 7950 */ // Combiner Rule #23: insert_vector_element_idx_undef
7747 /* 7950 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
7748 /* 7953 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
7749 /* 7955 */ GIR_EraseRootFromParent_Done,
7750 /* 7956 */ // Label 475: @7956
7751 /* 7956 */ GIM_Reject,
7752 /* 7957 */ // Label 96: @7957
7753 /* 7957 */ GIM_Try, /*On fail goto*//*Label 476*/ GIMT_Encode4(7968), // Rule ID 27 //
7754 /* 7962 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule25Enabled),
7755 /* 7965 */ // Combiner Rule #25: match_extract_of_element; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
7756 /* 7965 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner9),
7757 /* 7968 */ // Label 476: @7968
7758 /* 7968 */ GIM_Try, /*On fail goto*//*Label 477*/ GIMT_Encode4(7979), // Rule ID 70 //
7759 /* 7973 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule68Enabled),
7760 /* 7976 */ // Combiner Rule #68: extract_vec_elt_build_vec; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
7761 /* 7976 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner28),
7762 /* 7979 */ // Label 477: @7979
7763 /* 7979 */ GIM_Try, /*On fail goto*//*Label 478*/ GIMT_Encode4(7990), // Rule ID 76 //
7764 /* 7984 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule72Enabled),
7765 /* 7987 */ // Combiner Rule #72: combine_extracted_vector_load; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
7766 /* 7987 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner32),
7767 /* 7990 */ // Label 478: @7990
7768 /* 7990 */ GIM_Try, /*On fail goto*//*Label 479*/ GIMT_Encode4(8001), // Rule ID 104 //
7769 /* 7995 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule84Enabled),
7770 /* 7998 */ // Combiner Rule #84: insert_extract_vec_elt_out_of_bounds; wip_match_opcode 'G_EXTRACT_VECTOR_ELT'
7771 /* 7998 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner43),
7772 /* 8001 */ // Label 479: @8001
7773 /* 8001 */ GIM_Try, /*On fail goto*//*Label 480*/ GIMT_Encode4(8025), // Rule ID 38 //
7774 /* 8006 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule36Enabled),
7775 /* 8009 */ // MIs[0] root
7776 /* 8009 */ // No operand predicates
7777 /* 8009 */ // MIs[0] src
7778 /* 8009 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7779 /* 8013 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
7780 /* 8017 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/9,
7781 /* 8020 */ // MIs[1] x
7782 /* 8020 */ // No operand predicates
7783 /* 8020 */ // MIs[1] y
7784 /* 8020 */ // No operand predicates
7785 /* 8020 */ // MIs[1] z
7786 /* 8020 */ // No operand predicates
7787 /* 8020 */ // MIs[1] a
7788 /* 8020 */ // No operand predicates
7789 /* 8020 */ // MIs[1] b
7790 /* 8020 */ // No operand predicates
7791 /* 8020 */ // MIs[1] c
7792 /* 8020 */ // No operand predicates
7793 /* 8020 */ // MIs[1] d
7794 /* 8020 */ // No operand predicates
7795 /* 8020 */ // MIs[1] e
7796 /* 8020 */ // No operand predicates
7797 /* 8020 */ // MIs[0] idx
7798 /* 8020 */ // No operand predicates
7799 /* 8020 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7800 /* 8022 */ // Combiner Rule #36: extract_vector_element_build_vector_trunc8
7801 /* 8022 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
7802 /* 8025 */ // Label 480: @8025
7803 /* 8025 */ GIM_Try, /*On fail goto*//*Label 481*/ GIMT_Encode4(8049), // Rule ID 37 //
7804 /* 8030 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule35Enabled),
7805 /* 8033 */ // MIs[0] root
7806 /* 8033 */ // No operand predicates
7807 /* 8033 */ // MIs[0] src
7808 /* 8033 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7809 /* 8037 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
7810 /* 8041 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/8,
7811 /* 8044 */ // MIs[1] x
7812 /* 8044 */ // No operand predicates
7813 /* 8044 */ // MIs[1] y
7814 /* 8044 */ // No operand predicates
7815 /* 8044 */ // MIs[1] z
7816 /* 8044 */ // No operand predicates
7817 /* 8044 */ // MIs[1] a
7818 /* 8044 */ // No operand predicates
7819 /* 8044 */ // MIs[1] b
7820 /* 8044 */ // No operand predicates
7821 /* 8044 */ // MIs[1] c
7822 /* 8044 */ // No operand predicates
7823 /* 8044 */ // MIs[1] d
7824 /* 8044 */ // No operand predicates
7825 /* 8044 */ // MIs[0] idx
7826 /* 8044 */ // No operand predicates
7827 /* 8044 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7828 /* 8046 */ // Combiner Rule #35: extract_vector_element_build_vector_trunc7
7829 /* 8046 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
7830 /* 8049 */ // Label 481: @8049
7831 /* 8049 */ GIM_Try, /*On fail goto*//*Label 482*/ GIMT_Encode4(8073), // Rule ID 36 //
7832 /* 8054 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule34Enabled),
7833 /* 8057 */ // MIs[0] root
7834 /* 8057 */ // No operand predicates
7835 /* 8057 */ // MIs[0] src
7836 /* 8057 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7837 /* 8061 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
7838 /* 8065 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/7,
7839 /* 8068 */ // MIs[1] x
7840 /* 8068 */ // No operand predicates
7841 /* 8068 */ // MIs[1] y
7842 /* 8068 */ // No operand predicates
7843 /* 8068 */ // MIs[1] z
7844 /* 8068 */ // No operand predicates
7845 /* 8068 */ // MIs[1] a
7846 /* 8068 */ // No operand predicates
7847 /* 8068 */ // MIs[1] b
7848 /* 8068 */ // No operand predicates
7849 /* 8068 */ // MIs[1] c
7850 /* 8068 */ // No operand predicates
7851 /* 8068 */ // MIs[0] idx
7852 /* 8068 */ // No operand predicates
7853 /* 8068 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7854 /* 8070 */ // Combiner Rule #34: extract_vector_element_build_vector_trunc6
7855 /* 8070 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
7856 /* 8073 */ // Label 482: @8073
7857 /* 8073 */ GIM_Try, /*On fail goto*//*Label 483*/ GIMT_Encode4(8097), // Rule ID 35 //
7858 /* 8078 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule33Enabled),
7859 /* 8081 */ // MIs[0] root
7860 /* 8081 */ // No operand predicates
7861 /* 8081 */ // MIs[0] src
7862 /* 8081 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7863 /* 8085 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
7864 /* 8089 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/6,
7865 /* 8092 */ // MIs[1] x
7866 /* 8092 */ // No operand predicates
7867 /* 8092 */ // MIs[1] y
7868 /* 8092 */ // No operand predicates
7869 /* 8092 */ // MIs[1] z
7870 /* 8092 */ // No operand predicates
7871 /* 8092 */ // MIs[1] a
7872 /* 8092 */ // No operand predicates
7873 /* 8092 */ // MIs[1] b
7874 /* 8092 */ // No operand predicates
7875 /* 8092 */ // MIs[0] idx
7876 /* 8092 */ // No operand predicates
7877 /* 8092 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7878 /* 8094 */ // Combiner Rule #33: extract_vector_element_build_vector_trunc5
7879 /* 8094 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
7880 /* 8097 */ // Label 483: @8097
7881 /* 8097 */ GIM_Try, /*On fail goto*//*Label 484*/ GIMT_Encode4(8121), // Rule ID 34 //
7882 /* 8102 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule32Enabled),
7883 /* 8105 */ // MIs[0] root
7884 /* 8105 */ // No operand predicates
7885 /* 8105 */ // MIs[0] src
7886 /* 8105 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7887 /* 8109 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
7888 /* 8113 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/5,
7889 /* 8116 */ // MIs[1] x
7890 /* 8116 */ // No operand predicates
7891 /* 8116 */ // MIs[1] y
7892 /* 8116 */ // No operand predicates
7893 /* 8116 */ // MIs[1] z
7894 /* 8116 */ // No operand predicates
7895 /* 8116 */ // MIs[1] a
7896 /* 8116 */ // No operand predicates
7897 /* 8116 */ // MIs[0] idx
7898 /* 8116 */ // No operand predicates
7899 /* 8116 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7900 /* 8118 */ // Combiner Rule #32: extract_vector_element_build_vector_trunc4
7901 /* 8118 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
7902 /* 8121 */ // Label 484: @8121
7903 /* 8121 */ GIM_Try, /*On fail goto*//*Label 485*/ GIMT_Encode4(8145), // Rule ID 33 //
7904 /* 8126 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule31Enabled),
7905 /* 8129 */ // MIs[0] root
7906 /* 8129 */ // No operand predicates
7907 /* 8129 */ // MIs[0] src
7908 /* 8129 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7909 /* 8133 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
7910 /* 8137 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/4,
7911 /* 8140 */ // MIs[1] x
7912 /* 8140 */ // No operand predicates
7913 /* 8140 */ // MIs[1] y
7914 /* 8140 */ // No operand predicates
7915 /* 8140 */ // MIs[1] z
7916 /* 8140 */ // No operand predicates
7917 /* 8140 */ // MIs[0] idx
7918 /* 8140 */ // No operand predicates
7919 /* 8140 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7920 /* 8142 */ // Combiner Rule #31: extract_vector_element_build_vector_trunc3
7921 /* 8142 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
7922 /* 8145 */ // Label 485: @8145
7923 /* 8145 */ GIM_Try, /*On fail goto*//*Label 486*/ GIMT_Encode4(8179), // Rule ID 29 //
7924 /* 8150 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule27Enabled),
7925 /* 8153 */ // MIs[0] root
7926 /* 8153 */ // No operand predicates
7927 /* 8153 */ // MIs[0] src
7928 /* 8153 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7929 /* 8157 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
7930 /* 8161 */ // MIs[1] x
7931 /* 8161 */ // No operand predicates
7932 /* 8161 */ // MIs[1] value
7933 /* 8161 */ // No operand predicates
7934 /* 8161 */ // MIs[1] idx
7935 /* 8161 */ // No operand predicates
7936 /* 8161 */ // MIs[0] idx
7937 /* 8161 */ GIM_CheckIsSameOperandIgnoreCopies, /*MI*/0, /*OpIdx*/2, /*OtherMI*/1, /*OtherOpIdx*/3,
7938 /* 8166 */ GIM_CheckCanReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
7939 /* 8171 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7940 /* 8173 */ // Combiner Rule #27: extract_vector_element_not_const
7941 /* 8173 */ GIR_ReplaceReg, /*OldInsnID*/0, /*OldOpIdx*/0, /*NewInsnId*/1, /*NewOpIdx*/2,
7942 /* 8178 */ GIR_EraseRootFromParent_Done,
7943 /* 8179 */ // Label 486: @8179
7944 /* 8179 */ GIM_Try, /*On fail goto*//*Label 487*/ GIMT_Encode4(8200), // Rule ID 30 //
7945 /* 8184 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule28Enabled),
7946 /* 8187 */ // MIs[0] root
7947 /* 8187 */ // No operand predicates
7948 /* 8187 */ // MIs[0] src
7949 /* 8187 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7950 /* 8191 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_INSERT_VECTOR_ELT),
7951 /* 8195 */ // MIs[1] x
7952 /* 8195 */ // No operand predicates
7953 /* 8195 */ // MIs[1] value
7954 /* 8195 */ // No operand predicates
7955 /* 8195 */ // MIs[1] idx2
7956 /* 8195 */ // No operand predicates
7957 /* 8195 */ // MIs[0] idx1
7958 /* 8195 */ // No operand predicates
7959 /* 8195 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
7960 /* 8197 */ // Combiner Rule #28: extract_vector_element_different_indices
7961 /* 8197 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner11),
7962 /* 8200 */ // Label 487: @8200
7963 /* 8200 */ GIM_Try, /*On fail goto*//*Label 488*/ GIMT_Encode4(8229), // Rule ID 39 //
7964 /* 8205 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule37Enabled),
7965 /* 8208 */ // MIs[0] root
7966 /* 8208 */ // No operand predicates
7967 /* 8208 */ // MIs[0] src
7968 /* 8208 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7969 /* 8212 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHUFFLE_VECTOR),
7970 /* 8216 */ // MIs[1] src1
7971 /* 8216 */ // No operand predicates
7972 /* 8216 */ // MIs[1] src2
7973 /* 8216 */ // No operand predicates
7974 /* 8216 */ // MIs[1] mask
7975 /* 8216 */ // No operand predicates
7976 /* 8216 */ // MIs[0] idx
7977 /* 8216 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
7978 /* 8220 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
7979 /* 8224 */ // MIs[2] imm
7980 /* 8224 */ // No operand predicates
7981 /* 8224 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
7982 /* 8226 */ // Combiner Rule #37: extract_vector_element_shuffle_vector
7983 /* 8226 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner14),
7984 /* 8229 */ // Label 488: @8229
7985 /* 8229 */ GIM_Try, /*On fail goto*//*Label 489*/ GIMT_Encode4(8253), // Rule ID 32 //
7986 /* 8234 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule30Enabled),
7987 /* 8237 */ // MIs[0] root
7988 /* 8237 */ // No operand predicates
7989 /* 8237 */ // MIs[0] src
7990 /* 8237 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
7991 /* 8241 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR_TRUNC),
7992 /* 8245 */ GIM_CheckNumOperands, /*MI*/1, /*Expected*/3,
7993 /* 8248 */ // MIs[1] x
7994 /* 8248 */ // No operand predicates
7995 /* 8248 */ // MIs[1] y
7996 /* 8248 */ // No operand predicates
7997 /* 8248 */ // MIs[0] idx
7998 /* 8248 */ // No operand predicates
7999 /* 8248 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8000 /* 8250 */ // Combiner Rule #30: extract_vector_element_build_vector_trunc2
8001 /* 8250 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner13),
8002 /* 8253 */ // Label 489: @8253
8003 /* 8253 */ GIM_Try, /*On fail goto*//*Label 490*/ GIMT_Encode4(8285), // Rule ID 31 //
8004 /* 8258 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule29Enabled),
8005 /* 8261 */ // MIs[0] root
8006 /* 8261 */ // No operand predicates
8007 /* 8261 */ // MIs[0] src
8008 /* 8261 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8009 /* 8265 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_BUILD_VECTOR),
8010 /* 8269 */ GIM_CheckNumOperandsGE, /*MI*/1, /*Expected*/2,
8011 /* 8272 */ // MIs[1] unused
8012 /* 8272 */ // No operand predicates
8013 /* 8272 */ // MIs[0] idx
8014 /* 8272 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/0, /*OpIdx*/2, // MIs[2]
8015 /* 8276 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_CONSTANT),
8016 /* 8280 */ // MIs[2] imm
8017 /* 8280 */ // No operand predicates
8018 /* 8280 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8019 /* 8282 */ // Combiner Rule #29: extract_vector_element_build_vector
8020 /* 8282 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner12),
8021 /* 8285 */ // Label 490: @8285
8022 /* 8285 */ GIM_Try, /*On fail goto*//*Label 491*/ GIMT_Encode4(8309), // Rule ID 23 //
8023 /* 8290 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule21Enabled),
8024 /* 8293 */ // MIs[0] root
8025 /* 8293 */ // No operand predicates
8026 /* 8293 */ // MIs[0] vector
8027 /* 8293 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8028 /* 8297 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8029 /* 8301 */ // MIs[0] idx
8030 /* 8301 */ // No operand predicates
8031 /* 8301 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8032 /* 8303 */ // Combiner Rule #21: match_extract_of_element_undef_vector
8033 /* 8303 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8034 /* 8306 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
8035 /* 8308 */ GIR_EraseRootFromParent_Done,
8036 /* 8309 */ // Label 491: @8309
8037 /* 8309 */ GIM_Try, /*On fail goto*//*Label 492*/ GIMT_Encode4(8333), // Rule ID 24 //
8038 /* 8314 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule22Enabled),
8039 /* 8317 */ // MIs[0] root
8040 /* 8317 */ // No operand predicates
8041 /* 8317 */ // MIs[0] vector
8042 /* 8317 */ // No operand predicates
8043 /* 8317 */ // MIs[0] idx
8044 /* 8317 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8045 /* 8321 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8046 /* 8325 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8047 /* 8327 */ // Combiner Rule #22: match_extract_of_element_undef_index
8048 /* 8327 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8049 /* 8330 */ GIR_RootToRootCopy, /*OpIdx*/0, // root
8050 /* 8332 */ GIR_EraseRootFromParent_Done,
8051 /* 8333 */ // Label 492: @8333
8052 /* 8333 */ GIM_Reject,
8053 /* 8334 */ // Label 97: @8334
8054 /* 8334 */ GIM_Try, /*On fail goto*//*Label 493*/ GIMT_Encode4(8345), // Rule ID 99 //
8055 /* 8339 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule81Enabled),
8056 /* 8342 */ // Combiner Rule #81: propagate_undef_all_ops; wip_match_opcode 'G_SHUFFLE_VECTOR'
8057 /* 8342 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner40),
8058 /* 8345 */ // Label 493: @8345
8059 /* 8345 */ GIM_Try, /*On fail goto*//*Label 494*/ GIMT_Encode4(8356), // Rule ID 101 //
8060 /* 8350 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule82Enabled),
8061 /* 8353 */ // Combiner Rule #82: propagate_undef_shuffle_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
8062 /* 8353 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner41),
8063 /* 8356 */ // Label 494: @8356
8064 /* 8356 */ GIM_Try, /*On fail goto*//*Label 495*/ GIMT_Encode4(8367), // Rule ID 363 //
8065 /* 8361 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule215Enabled),
8066 /* 8364 */ // Combiner Rule #215: combine_shuffle_concat; wip_match_opcode 'G_SHUFFLE_VECTOR'
8067 /* 8364 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner136),
8068 /* 8367 */ // Label 495: @8367
8069 /* 8367 */ GIM_Try, /*On fail goto*//*Label 496*/ GIMT_Encode4(8378), // Rule ID 365 //
8070 /* 8372 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule217Enabled),
8071 /* 8375 */ // Combiner Rule #217: combine_shuffle_disjoint_mask; wip_match_opcode 'G_SHUFFLE_VECTOR'
8072 /* 8375 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner138),
8073 /* 8378 */ // Label 496: @8378
8074 /* 8378 */ GIM_Try, /*On fail goto*//*Label 497*/ GIMT_Encode4(8399), // Rule ID 364 //
8075 /* 8383 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule216Enabled),
8076 /* 8386 */ // MIs[0] root
8077 /* 8386 */ // No operand predicates
8078 /* 8386 */ // MIs[0] src1
8079 /* 8386 */ // No operand predicates
8080 /* 8386 */ // MIs[0] undef
8081 /* 8386 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
8082 /* 8390 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_IMPLICIT_DEF),
8083 /* 8394 */ // MIs[0] mask
8084 /* 8394 */ // No operand predicates
8085 /* 8394 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8086 /* 8396 */ // Combiner Rule #216: combine_shuffle_undef_rhs
8087 /* 8396 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner137),
8088 /* 8399 */ // Label 497: @8399
8089 /* 8399 */ GIM_Try, /*On fail goto*//*Label 498*/ GIMT_Encode4(8410), // Rule ID 393 //
8090 /* 8404 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule242Enabled),
8091 /* 8407 */ // MIs[0] dst
8092 /* 8407 */ // No operand predicates
8093 /* 8407 */ // MIs[0] src1
8094 /* 8407 */ // No operand predicates
8095 /* 8407 */ // MIs[0] src2
8096 /* 8407 */ // No operand predicates
8097 /* 8407 */ // MIs[0] mask
8098 /* 8407 */ // No operand predicates
8099 /* 8407 */ // Combiner Rule #242: combine_shuffle_vector_to_build_vector
8100 /* 8407 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner159),
8101 /* 8410 */ // Label 498: @8410
8102 /* 8410 */ GIM_Reject,
8103 /* 8411 */ // Label 98: @8411
8104 /* 8411 */ GIM_Try, /*On fail goto*//*Label 499*/ GIMT_Encode4(8422), // Rule ID 386 //
8105 /* 8416 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule236Enabled),
8106 /* 8419 */ // MIs[0] dst
8107 /* 8419 */ // No operand predicates
8108 /* 8419 */ // MIs[0] src
8109 /* 8419 */ // No operand predicates
8110 /* 8419 */ // Combiner Rule #236: ctlz_to_ctls
8111 /* 8419 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner155),
8112 /* 8422 */ // Label 499: @8422
8113 /* 8422 */ GIM_Reject,
8114 /* 8423 */ // Label 99: @8423
8115 /* 8423 */ GIM_Try, /*On fail goto*//*Label 500*/ GIMT_Encode4(8434), // Rule ID 387 //
8116 /* 8428 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule237Enabled),
8117 /* 8431 */ // MIs[0] dst
8118 /* 8431 */ // No operand predicates
8119 /* 8431 */ // MIs[0] src
8120 /* 8431 */ // No operand predicates
8121 /* 8431 */ // Combiner Rule #237: ctlz_zero_undef_to_ctls
8122 /* 8431 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner155),
8123 /* 8434 */ // Label 500: @8434
8124 /* 8434 */ GIM_Reject,
8125 /* 8435 */ // Label 100: @8435
8126 /* 8435 */ GIM_Try, /*On fail goto*//*Label 501*/ GIMT_Encode4(8479), // Rule ID 239 //
8127 /* 8440 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule173Enabled),
8128 /* 8443 */ // MIs[0] d
8129 /* 8443 */ // No operand predicates
8130 /* 8443 */ // MIs[0] src
8131 /* 8443 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8132 /* 8447 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_LSHR),
8133 /* 8451 */ // MIs[1] rev
8134 /* 8451 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8135 /* 8455 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
8136 /* 8459 */ // MIs[2] val
8137 /* 8459 */ // No operand predicates
8138 /* 8459 */ // MIs[1] amt
8139 /* 8459 */ // No operand predicates
8140 /* 8459 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner10),
8141 /* 8463 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8142 /* 8465 */ // Combiner Rule #173: bitreverse_lshr
8143 /* 8465 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_SHL),
8144 /* 8468 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
8145 /* 8470 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
8146 /* 8474 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
8147 /* 8478 */ GIR_EraseRootFromParent_Done,
8148 /* 8479 */ // Label 501: @8479
8149 /* 8479 */ GIM_Try, /*On fail goto*//*Label 502*/ GIMT_Encode4(8523), // Rule ID 238 //
8150 /* 8484 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule172Enabled),
8151 /* 8487 */ // MIs[0] d
8152 /* 8487 */ // No operand predicates
8153 /* 8487 */ // MIs[0] src
8154 /* 8487 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8155 /* 8491 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_SHL),
8156 /* 8495 */ // MIs[1] rev
8157 /* 8495 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/2, /*MI*/1, /*OpIdx*/1, // MIs[2]
8158 /* 8499 */ GIM_CheckOpcode, /*MI*/2, GIMT_Encode2(TargetOpcode::G_BITREVERSE),
8159 /* 8503 */ // MIs[2] val
8160 /* 8503 */ // No operand predicates
8161 /* 8503 */ // MIs[1] amt
8162 /* 8503 */ // No operand predicates
8163 /* 8503 */ GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner9),
8164 /* 8507 */ GIM_CheckIsSafeToFold, /*NumInsns*/2,
8165 /* 8509 */ // Combiner Rule #172: bitreverse_shl
8166 /* 8509 */ GIR_BuildRootMI, /*Opcode*/GIMT_Encode2(TargetOpcode::G_LSHR),
8167 /* 8512 */ GIR_RootToRootCopy, /*OpIdx*/0, // d
8168 /* 8514 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // val
8169 /* 8518 */ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/2, // amt
8170 /* 8522 */ GIR_EraseRootFromParent_Done,
8171 /* 8523 */ // Label 502: @8523
8172 /* 8523 */ GIM_Reject,
8173 /* 8524 */ // Label 101: @8524
8174 /* 8524 */ GIM_Try, /*On fail goto*//*Label 503*/ GIMT_Encode4(8545), // Rule ID 186 //
8175 /* 8529 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule143Enabled),
8176 /* 8532 */ // MIs[0] dst
8177 /* 8532 */ // No operand predicates
8178 /* 8532 */ // MIs[0] src0
8179 /* 8532 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8180 /* 8536 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8181 /* 8540 */ // MIs[1] cst
8182 /* 8540 */ // No operand predicates
8183 /* 8540 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8184 /* 8542 */ // Combiner Rule #143: constant_fold_fceil
8185 /* 8542 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8186 /* 8545 */ // Label 503: @8545
8187 /* 8545 */ GIM_Reject,
8188 /* 8546 */ // Label 102: @8546
8189 /* 8546 */ GIM_Try, /*On fail goto*//*Label 504*/ GIMT_Encode4(8567), // Rule ID 182 //
8190 /* 8551 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule139Enabled),
8191 /* 8554 */ // MIs[0] dst
8192 /* 8554 */ // No operand predicates
8193 /* 8554 */ // MIs[0] src0
8194 /* 8554 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8195 /* 8558 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8196 /* 8562 */ // MIs[1] cst
8197 /* 8562 */ // No operand predicates
8198 /* 8562 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8199 /* 8564 */ // Combiner Rule #139: constant_fold_fsqrt
8200 /* 8564 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8201 /* 8567 */ // Label 504: @8567
8202 /* 8567 */ GIM_Reject,
8203 /* 8568 */ // Label 103: @8568
8204 /* 8568 */ GIM_Try, /*On fail goto*//*Label 505*/ GIMT_Encode4(8589), // Rule ID 187 //
8205 /* 8573 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule144Enabled),
8206 /* 8576 */ // MIs[0] dst
8207 /* 8576 */ // No operand predicates
8208 /* 8576 */ // MIs[0] src0
8209 /* 8576 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8210 /* 8580 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8211 /* 8584 */ // MIs[1] cst
8212 /* 8584 */ // No operand predicates
8213 /* 8584 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8214 /* 8586 */ // Combiner Rule #144: constant_fold_ffloor
8215 /* 8586 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8216 /* 8589 */ // Label 505: @8589
8217 /* 8589 */ GIM_Reject,
8218 /* 8590 */ // Label 104: @8590
8219 /* 8590 */ GIM_Try, /*On fail goto*//*Label 506*/ GIMT_Encode4(8611), // Rule ID 191 //
8220 /* 8595 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule148Enabled),
8221 /* 8598 */ // MIs[0] dst
8222 /* 8598 */ // No operand predicates
8223 /* 8598 */ // MIs[0] src0
8224 /* 8598 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8225 /* 8602 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8226 /* 8606 */ // MIs[1] cst
8227 /* 8606 */ // No operand predicates
8228 /* 8606 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8229 /* 8608 */ // Combiner Rule #148: constant_fold_frint
8230 /* 8608 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8231 /* 8611 */ // Label 506: @8611
8232 /* 8611 */ GIM_Reject,
8233 /* 8612 */ // Label 105: @8612
8234 /* 8612 */ GIM_Try, /*On fail goto*//*Label 507*/ GIMT_Encode4(8633), // Rule ID 192 //
8235 /* 8617 */ GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule149Enabled),
8236 /* 8620 */ // MIs[0] dst
8237 /* 8620 */ // No operand predicates
8238 /* 8620 */ // MIs[0] src0
8239 /* 8620 */ GIM_RecordInsnIgnoreCopies, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
8240 /* 8624 */ GIM_CheckOpcode, /*MI*/1, GIMT_Encode2(TargetOpcode::G_FCONSTANT),
8241 /* 8628 */ // MIs[1] cst
8242 /* 8628 */ // No operand predicates
8243 /* 8628 */ GIM_CheckIsSafeToFold, /*NumInsns*/1,
8244 /* 8630 */ // Combiner Rule #149: constant_fold_fnearbyint
8245 /* 8630 */ GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner80),
8246 /* 8633 */ // Label 507: @8633
8247 /* 8633 */ GIM_Reject,
8248 /* 8634 */ // Label 106: @8634
8249 /* 8634 */ GIM_Reject,
8250 /* 8635 */ }; // Size: 8635 bytes
8251 return MatchTable0;
8252}
8253#undef GIMT_Encode2
8254#undef GIMT_Encode4
8255#undef GIMT_Encode8
8256
8257#endif // ifdef GET_GICOMBINER_IMPL
8258
8259#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
8260AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
8261AvailableFunctionFeatures()
8262#endif // ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
8263#ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
8264, State(0),
8265ExecInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
8266#endif // ifdef GET_GICOMBINER_CONSTRUCTOR_INITS
8267
8268